CANopen是基于CAN(控制区域网络)串行总线系统和CAL(CAN应用层)的高级协议。
CANopen通信协议CiADS-301包括周期和事件驱动的通信,不仅可以将总线负载降低到最小,而且还可以确保非常短的响应时间。
它可以以较低的波特率实现更高的通信性能,从而减少电磁兼容性问题并降低电缆成本。
CANopen使用的物理介质是符合ISO11898标准的两线总线,并采用了子驱动机制和公共反馈。
总线的最大长度取决于通信速度,其指定如下:理论上,最多可以有127个节点。
但是,在实际应用中,最大节点数取决于所用CAN收发器的性能。
CAN总线线路的两端必须连接120欧姆(1%,1 / 4W)电阻器,该电阻器的两端分别连接在CAN-L和CAN-H线路之间,如下所示。
总线电缆是具有两对双绞线的屏蔽电缆:一对双绞线分别连接到CAN-L和CAN-H,另一对双绞线直接连接到GND。
CANopen的核心概念是设备对象字典(OD:ObjectDicTIonary),它也用于其他现场总线(Profibus,Interbus-S)系统中。
CANopen通信可以通过对象字典(OD)访问设备的所有参数。
CAN标识符分配表注意:1.(从)CAN节点观察PDO / SDO的发送/接收。
2.通用设备的CANopen支持4个发送PDO和4个接受PDO。
服务数据对象SDOSDO用于访问设备的对象字典。
访问者称为客户端,访问对象字典并提供所请求服务的CANopen设备称为服务器。
客户端的CAN消息和服务器的响应CAN消息始终包含8个字节的数据(尽管并非所有数据字节都必定有意义)。
客户的请求必须有服务器的响应。
过程数据对象PDOPDO用于传输实时数据,并且数据从一个生产者传输到一个或多个消费者。
数据传输限制为1到8个字节。
PDO通信没有协议约束(意味着数据内容已预先定义),因此使用者可以在短时间内处理接收到的数据。
PDO数据内容仅由其CANID定义。
假定生产者和消费者知道此PDO的数据内容。
PDO消息的内容是预定义的(或在网络启动时配置),并且在设备对象字典中描述了应用程序对象到PDO的映射。
如果设备(生产者和使用者)支持动态映射,则使用SDO消息配置PDO映射参数。
PDO映射必须遵守以下两个规则:1.每个PDO最多可以映射4个对象; 2.每个PDO的长度不得超过64位。
PDO映射过程:1.将与PDO的映射参数相对应的子索引0的内容(例如1600h或1A00h)设置为0; 2.修改与PDO的映射参数(例如1600h或1A00h)相对应的子索引1〜4的内容,并映射数据。
3.,设置PDO的对应映射参数(例如1600h或1A00h),子索引0的内容为合法编号(该PDO映射的对象数)。
4. PDO映射完成。
SYNC消息的同步对象用于控制网络设备之间数据的同步传输,例如同步启动多个轴。
同步消息的传输基于生产者-消费者模型。
所有支持同步PDO的节点都可以(同时)作为使用者接收此消息,并使用此对象与其他节点进行同步。
通用的应用方法是SYNC主节点定期发送SYNC对象,而SYNC从节点在接收到该任务后同步执行该任务。
CANopen建议使用具有最高优先级的COB-ID,以确保同步信号的正常传输。
SYNC消息可能不会传输数据以使消息尽可能短。
紧急消息当设备中发生警报时,CANopen将启动紧急消息,以告知使用者当前设备的类型和错误代码。