1.二者的历史渊源
CAN最初是由德国的BOSCH公司为汽车控制系统而设计,并在1993年成为国际标准。之后因其所具有的高可靠性和良好的错误检测能力受到重视,现在已经扩展到医疗、交通、运动控制、工业自动化多个领域。
CANopen是CAN应用层。它是在1995年由欧洲的CIA协会推出第一个标准版本,其后五年在应用中不断完善,现在使用的主要是1999修订的标准。
2.为什么需要CANopen
由于CAN在定义之初并未定义标准的应用层,导致在实际应用中各个厂家对应用层的定义各不相同,这导致同样的CAN报文却因应用层对其解释的不同而产生了不同的功能含义,使其不能相互直接通信,阻碍了CAN网络设备在不同厂商品牌之间的兼容性。为此欧洲专门成立了CIA协会,负责CANopen应用层的推广。另外,CANopen专门针对有同步、实时控制要求的设备开发了PDO报文,大大提高了报文发送的效率。相对于devicenet(CAN的另一个应用层标准),CANopen报文更为简洁和开放,因此CANopen更值得推广。
其实,将报文格式及其实现方式(通信层)标准化还不够,还需要将报文参数和设备的功能参数的对应关系统一起来,以变频器为例,设定频率的参数对应报文中的哪个参数如果不统一,用户使用时仍会因各个厂家对此定义的不同而限制于某个厂家的设备。为此CIA专门针对各类设备也定义了该类设备的标准,例如编码器有CIA 406标准,各个IO模块有CIA 401标准,运控方面的驱动设备有CIA 402标准。这样,只要用户购买的设备遵从这些标准,那么就无需担心该设备是否和其他厂商设备的兼容或相互通信的问题,也就是说,同样的报文指令可以在不同厂商的设备中实现相同的功能,真正做到了与厂商无关。这也是CANop