DarraRT_Eth WDK 内核驱动
一句话答案(驱动怎么装 / 网卡绑定失败 / 1168):驱动随官方安装包一并安装(管理员运行 Setup.exe),无单独驱动步骤;服务/协议名 DarraRTEth,安装目录
C:\DARRA\EtherCAT_Master。错误码 1168 = NDIS 协议未绑定网卡,走安装包重装(install_ecat/ netcfg),不要手动拷 sys。
DarraRT_Eth 是 Darra EtherCAT Master 的 Windows 内核模式驱动 (WDK),
通过硬件定时器和 NDIS 协议驱动实现微秒级实时 EtherCAT 通信,专为 实时 PDO 交换 和 DC 分布式时钟同步 设计。
DarraRT_Eth 驱动是 Darra EtherCAT Master 在 Windows 下运行的必需组件。SDK 不再提供用户态软件帧收发路径,未安装驱动时主站无法初始化。首次启动时若检测到驱动未安装,程序会弹出安装引导对话框。
架构概览
驱动运行于最高硬件优先级,通过多层隔离机制完全锁定 CPU 核心,确保 EtherCAT 帧收发不被任何系统活动打断。
SDK 自动选择最后一个 CPU 核心进行隔离,无需用户配置。
DarraRT 使用 Local APIC Timer 作为硬件定时源,分辨率远高于操作系统提供的软件定时器,为 PDO 帧发送时序提供高确定性的时基,也为 DC 分布式时钟同步提供稳定的参考基准。
如何使用
驱动安装后,SDK 启动时自动检测内核驱动并接入实时帧收发路径,无需任何配置。驱动未加载时 SDK 启动会直接失败,并在日志中报告"WDK 驱动未就绪"。
安装
驱动随 官方测试工具安装包 一并安装,无需手动跑命令脚本。下载并运行安装程序即可。
安装程序需以管理员身份运行。Windows 会在安装内核驱动时弹出 UAC 提权请求。
若启动 GUI 时检测到驱动未安装或未启动,程序会弹出 Driver install required 对话框:
- 若同级目录有本地安装包,点 Yes 直接启动安装程序;
- 若没有,点 Yes 打开在线下载页 https://ethercat.darra.xyz/doc/downloads。
若服务已注册但只是停止 (Stopped),环境自检的 Install 按钮会直接 sc start DarraRTEth 启动服务,无需重装。驱动正在 Running 时不要 sc stop,也不要 pnputil /force 删 DriverStore。
卸载
重新运行安装包选择卸载/修复。没有 MSI,控制面板里通常没有卸载项。 驱动仍在 Running 且卸不掉时,先把服务设为 Disabled,由用户重启后再卸,不要对已加载驱动 sc stop。卸载会移除 DarraRTEth 协议并尝试还原系统设置。旧服务键 DarraRT_Eth 可能仍留 Parameters,不要手删。
升级 / 重新安装
电脑上已经装过旧版本时,请按下面顺序操作:
- 卸载旧版本:打开 Windows「设置 → 应用 → 已安装的应用」卸载;也可以再次运行原来的安装包,选择卸载。
- 重启电脑。这一步不能跳过。
- 安装新版本:双击新的安装包,按提示完成安装。
- 建议装完后再重启一次,更稳妥。
操作前请先保存好工程和配置文件。
验证安装
在管理员命令提示符中查询服务状态:
sc query DarraRTEth :: 服务名无下划线; 应为 RUNNING 或 STOPPED(demand)
:: 文件仍是 DarraRT_Eth.sys;不要用 sc query DarraRT_Eth 查现行包
或直接看 GUI 启动时的 Preflight Check (环境自检) 窗口 —— 它逐项检查 6 个运行时依赖:
| 检查项 | 含义 |
|---|---|
| .NET Framework 4.7.2+ | 必需运行时框架 |
| VC++ Redistributable (x64) | VC++ 2015-2022 运行库 |
| DarraRT_Eth driver | 内核驱动服务是否运行 |
| 核心运行库 | 核心运行库可加载 |
| Driver compatibility | SDK ↔ 驱动 版本是否配套 |
| RT core isolation | RT 核隔离是否已配置 |
全部通过则静默进入主界面;有缺失项时窗口列出状态并提供 Install / Recheck 按钮。前 4 项为必需 (Required),后 2 项为警告 (Warning),警告不阻塞进入程序。
性能指标
| DarraRT 驱动 | |
|---|---|
| PDO 帧发送抖动 | 平均 1.2μs / 最大 4.5μs(Windows) |
| DC 同步质量 | 最佳 |
| 最小周期 | 31.25μs |
| CPU 占用 | 1 个锁定核心 |
| 系统依赖 | >= Win 10 |
| 硬件 | 标准 Intel / Realtek 千兆网卡,无需专用控制卡 |
设计目标
为多数学术/应用用户提供低成本、易部署的纯软件实时方案,无需专用 EtherCAT 主站卡即可在标准硬件上实现微秒级帧发送。
选型建议
- 在标准硬件上实现高性价比的微秒级帧发送与良好 DC 表现 → DarraRT 纯软件方案,无需专用控制卡
优势
- 免费 — 此驱动虽然属于实时方案,但是随 SDK 赠送,无附加费用
- 微秒级实时性 — 硬件定时器驱动,帧发送抖动平均 1.2μs / 最大 4.5μs,满足高性能伺服控制需求
- DC 同步最优 — 一致的帧时序为从站 DC 时钟提供稳定参考,偏差可控在数微秒内
- 无需专用硬件 — 使用标准 Intel / Realtek 以太网卡,无需 EtherCAT 专用主站卡
- 数据安全 — 双缓冲机制确保过程数据不撕裂
- 容错机制 — 用户态未及时更新输出数据时,内核自动发送上一周期的有效数据,总线通信不中断
- 完全 CPU 隔离 — 多层隔离机制,隔离核心上只运行定时器和 EtherCAT 帧收发
局限性
DarraRT 驱动解决的是 EtherCAT 帧发送时序 和 DC 同步 的实时性问题。
用户应用程序的 业务逻辑层 (运动插补计算、控制算法、数据处理等) 仍然运行在 Windows 用户态,受操作系统调度器影响。
虽然通过 MMCSS 线程优先级提升可以改善,但无法保证业务逻辑的硬实时执行。
具体表现:
- PDO 帧在总线上的发送时序: 微秒级抖动(平均 1.2μs / 最大 4.5μs) (内核保证)
- 用户态输出数据更新延迟: < 50μs (1.99.5+ HT 兄弟规避 + 跨物理核分配)
- 当用户态延迟时,内核自动发送上一周期的有效数据,总线通信不会中断
1.99.5 起 SDK 自动给 RT 线程 + PDO 监控线程做 HT 兄弟规避 + 多主站跨物理核分配, 解决了之前偶发 几十毫秒 用户态尖峰 (HT 共享物理核导致 GUI/USB HID DPC 被拖慢)。 客户无需手工调优。
:::
适用场景
此驱动设计用于以下实时功能:
- 实时 PDO 交换 — 周期性过程数据通信,确保帧发送时序精确
- DC 分布式时钟 — 依赖稳定帧时序的多轴同步场景
如果您的应用场景对 业务逻辑执行 也有硬实时要求 (如微秒级运动插补、确定性控制周期),标准 Windows 驱动无法满足,需要更深层的内核集成方案。
我们提供包含移植现有程序在内的 软 PLC 完整内核业务逻辑硬实时方案。
请联系我们获取定制驱动或硬件方案。
驱动 ↔ SDK 版本兼容
驱动与 SDK 必须配套使用。主版本 / 次版本变化时必须重装驱动, 否则程序启动会报兼容性错误并拒绝运行:
| 升级类型 | 重装驱动? | 原因 |
|---|---|---|
| PATCH (例 2.11.0 → 2.11.5) | ❌ 不需要 | 运行库未变, 与现有驱动配套 |
| MINOR (例 2.10.x → 2.11.0) | ✅ 必须 | 运行库已更新, 需配套驱动 |
| MAJOR (例 2.x → 3.0.0) | ✅ 必须 | 同上, 可能伴随 API 变化 |
master.Build() 时 SDK 自动读取驱动版本与 SDK 版本比对, 不匹配 → 日志 Warning 提示重装。请始终从官方渠道获取安装包与运行库。
RT 核隔离自动校验
master.Build() 时 SDK 后台检查 RT 核隔离是否已由安装包配置:
| 检测结果 | SDK 行为 |
|---|---|
| 已配置 | 配置 OK, 日志 Message |
| 未配置 | 日志 Warning, 提示重新运行官方安装包完成配置 |
可选主动修复:DarraEtherCAT.EnsureRtIsolation(elevated:true) 会弹 UAC 自动完成配置;未调用时按日志 Warning 提示重新运行官方安装包完成配置。