Ethercat学习笔记
Ethercat和CanOpen一样,会用到pdo(Process Data Object)和sdo(Service Data Object)两种主要通信对象。
SDO
通信目的:SDO主要用于传输服务数据,如配置参数、状态信息等,传输过程相对较慢,但更灵活;
通信方式:SDO采用客户-服务器模式,通过主站来读写服务数据;
通信速度:SDO传输速度较慢,因为需要主站介入,且需要建立连接并进行握手;
同步性:SDO的传输是异步的,不需要同步机制;
可靠性:SDO传输有确认机制,保证数据可靠传输。
PDO
通信目的:PDO主要用于传输过程数据,如传感器数据、执行器控制命令等,需要快速高效的传输;
通信方式:PDO采用生产者-消费者模型,设备之间直接传输过程数据,无需主站介入;
通信速度:PDO传输速度较快,因为没有主站介入,数据直接在设备间传输;
同步性:PDO的传输是同步的,可以根据预先设定的时钟信号进行同步传输;
可靠性:PDO传输没有确认机制,可能丢失数据。
PDO需要进行数据映射,在Linux中的映射数据与映射的关系可以通过输入ethercat cstruct来获取。映射以后可以确定需要传输的数据在can报文中的位置。
关于映射可以看看下列博客:
https://blog.csdn.net/cln512/article/details/96968496