EtherCAT命令整理
摘自:EtherCAT数据帧抓包解析(RxPDO配置过程详解) - Panda990 - 博客园
寻址方式及读写方式,EtherCAT所有命令如下表所示
| 寻址方式 | 读写模式 | 命令名称和编号 | 解释 | WKC |
| 空指令 | ---- | NOP(0) No Operation | 没有操作 | 0 |
| 顺序寻址 | 读数据 | APRD(1) Auto Increment Read | 主站使用顺序寻址从从站读取一定长度数据,从站对地址加1 | 1 |
| 写数据 | APWR(2) Auto Increment Write | 主站使用顺序寻址向从站写入一定长度的数据,从站对地址加1 | 1 | |
| 读写 | APRW(3) Auto Increment Read Write | 主站使用顺序寻址与从站交换数据,从站对地址加1 | 3 | |
| 设置寻址 | 读数据 | FPRD(4) Configured Address Read | 主站使用设置寻址从从站读取一定长度的数据 | 1 |
| 写数据 | FPWR(5) Configured Address Write | 主站使用设置寻址向从站写入一定长度的数据 | 1 | |
| 读写 | FPRW(6) Configured Address Read Write | 主站使用设置寻址与从站交换数据 | 3 | |
| 广播寻址 | 读数据 | BRD(7) Broadcast Read | 主站从所有从站的物理地址读取数据并做逻辑或操作,每个从站对地址加1 | 与寻址到从站个数相关 |
| 写数据 | BWR(8) Broadcast Write | 主站广播写入所有从站,每个从站对地址加1 | ||
| 读写 | BRW(9) Broadcast Read Write | 主站与所有从站交换数据,对读取的数据做逻辑或操作,每个从站对地址加1,一般不使用该命令 | ||
| 逻辑寻址 | 读数据 | LRD(10) Logical Memory Read | 读取的逻辑地址和从站设置FMMU一致时,读取一定长度的数据 | |
| 写数据 | LWR(11) Logical Memory Write | 写入的逻辑地址和从站设置FMMU一致时,写入一定长度的数据 | ||
| 读写 | LRW(12) Logical Memory Read Write | 逻辑地址和从站设置FMMU一致时从站交换数据 | ||
| 顺序寻址 | 读,多重写 | ARMW(13) Auto Increment Read Multiple Write | 由从站读取数据,并写入以后所有从站相同的地址 | |
| 设置寻址 | FRMW(14) Configured Read Multiple Write |
配置SM存储同步管理器(SyncManager)
SM相关寄存器信息:
| 偏移地址 | 位 | 名称 | 描述 | 复位值 |
| +0x0 : 0x1 | 0~16 | 数据物理地址起始位 | SM处理的第一个字节在ESC地址空间的起始位置 | 0 |
| +0x2 : 0x3 | 0~16 | SM数据长度 | 分配给SM通道的数据长度,必须大于1,否则SM将不被激活;设置为1时只使能看门狗 | 0 |
| +0x4 | 0~7 | SM控制寄存器 | ||
| 0~1 | 运行模式 | 00:3个缓存区模式 01:保留 10:单个缓存区模式 11:保留 | 00 | |
| 2~3 | 方向 | 00:读,ECAT读访问,PDI写访问 01:写,ECAT写访问,PDI读访问 10:保留 11:保留 | 00 | |
| 4 | ECAT帧中断请求触发 | 0:不使能 1:使能 | 0 | |
| 5 | PDI中断请求触发 | 0:不使能 1:使能 | 0 | |
| 6 | 看门狗触发 | 0:不使能 1:使能 | ||
| 7 | 保留 | |||
| +0x5 | 0~7 | SM状态寄存器 | ||
| 0 | 写中断 | 1:写操作完成后触发中断 0:读第一个字节后清除 | 0 | |
| 1 | 读中断 | 1:写操作完成后触发中断 0:读第一个字节后清除 | 0 | |
| 2 | 保留 | |||
| 3 | 单缓存状态 | 单缓存区模式:缓存区状态 0:缓存区空闲 1:缓存区满 | 0 | |
| 4~5 | 多缓存状态 | 多缓存区模式:最后写入的缓存区 00:缓存区1 01:缓存区2 10:缓存区3 11:没有写入缓存区 | 11 | |
| 6~7 | 保留 | |||
| +0x6 | 0~7 | ECAT帧控制SM激活 | ||
| 0 | SM使能 | 0:不使能,不使用SM控制对内存的访问 1:使能,SM激活,控制设置其中的内存访问 | 0 | |
| 1 | 重复请求 | 请求重复邮箱数据传输,主要与ECAT帧读邮箱一起使用 | 0 | |
| 2~5 | 保留 | |||
| 6 | ECAT帧访问事件锁存 | 0:无操作 1:EtherCAT主站读写一个缓存区后产生锁存事件 | 0 | |
| 7 | PDI访问事件锁存 | 0:无操作 1:PDI读写一个缓存区或PDI访问缓存区起始地址时产生锁存事件 | 0 | |
| +0x7 | 0~7 | PDI控制SM | ||
| 0 | 使SM无效 | 读和写的含义不同 读 0:正常操作,SM激活 1:SM无效,并锁定对内存区的访问 写 0:激活SM 1:请求SM无效,直到当前正在处理的数据帧结束 | 0 | |
| 1 | 重复请求应答 | 与重复请求位相同时,表示PDI对前面设置的重复请求的应答 | 0 | |
| 2~7 | 保留 | 0 | ||
