CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。本文基于CX1500-M510做主站,BK5120做从站,实现CANopen的主从通信。
-
CANOpen简介 1.1. CAN模型 计算机网络中OSI采用七层模型,如下所示。CAN与OSI网络模型对比,CAN的物理层分了三层,分别是MDI,PMA和PLS,数据链路层分了两层:MAC与LLC。这五层是最原始的CAN协议,标准是ISO11898。也就是说CAN协议一开始是没有应用层的。后来一种叫CANOpen的基于CAN的应用层被开发出来,标准是CiA301。其中,CANopen属于高层协议,非常适用于嵌入式和深度嵌入式领域。
-
CAN硬件相关 2.1. 终端电阻 正常通信都需要在CAN-High和CAN-Low信号线缆两段安装终端电阻,用来防止信号在线缆传输过程中由于反射造成衰减,如果没有在板卡上默认安装终端电阻,则需要用户自己组装,需要在主从站设备的两端都使用接有终端电阻的线缆,如下所示: