CANopen是基于CAN的通信协议,用于自动化工程中复杂设备结构的网络。CANopen是CAN的进一步发展,由BOSCH引入用于减少汽车制造的电缆。由于CANopen由德国中小型公司发起,得到了博世的支持,CANopen最初从德国扩展到欧洲。到目前为止,CANopen也已经传播到北美和亚洲。
自1995年以来,CANopen由用户和制造商组织CAN in Automation(CIA)维护,并自2002年以来被标准化为欧洲标准EN50325-4。为此,德国KUNBUS公司提供各种形式和不同接口类型的产品。
在产品系列中,可以交换不同的现场总线协议。 统一的管脚引出使得能够使用IC模块作为可选卡。
CANopen基础
CANopen基于CAN(控制器区域网络)和代表主要用于自动化技术的通讯协议。CANopen结合了几项基本服务,也称为服务原语。这些服务如下:
- 指示(应用程序通知消息/结果呈现)
- 响应(应用程序答案显示)
- 确认(当CANopen服务运行时,确认信息发送到应用程序)
CANopen使用以下通信对象:
- (SDO)对象字典条目参数化的服务数据对象
- (PDO)实时数据传输的进程数据对象
- (NMT)状态机控制和节点监控的网络管理对象
- (SYNC)同步对象
- (EMCY)时间戳和错误消息
CANopen对象字典
所有用户和通信对象都注册在CANopen对象字典中。CANopen对象字典也称为连接应用程序和通信单元的链接。各个单独的条目由16位索引表征,并且每个索引都表示一个对象。索引可以包含最大值。256个子索引,可以识别总共65536×254个元素。不可能自由使用子索引0和255。如上所述,CANopen对象字典形成到外部的接口,并且它借助于索引被清楚地定义为设备简档以及通信对象。此外,CANopen的每个通信对象在网络中具有唯一的通信对象标识符= COB-ID。32位COB-ID的前两位具有特定于对象的含义。这样,在11位CAN网络中位29至11的值为0,而位10至0的值等于CAN标识符。服务数据对象提供相应的服务,使得在CANopen内可以访问对象库。这样,每个CANopen设备必须至少有一个SDO服务器可用。此服务器接管接受和处理SDO请求的任务。这里,消息使用节点号+ 1536或相应地使用每个默认设置的CAN标识符作为COB-ID。然后将节点号+ 1408用于答案。具有低优先级的ID因此用于传送对象库中的条目。SDO传输需要4字节协议,因此可以对索引,子索引和传输方向进行编码。由于CANopen数据字段只有8个字节可用,只有4个字节可用于数据内容以供自由使用。因此,大于4字节并且要通过SDO传送来传送的数据量必须回落到另外两个协议上。
CANopen中优先级更高的标识符
为了确保过程数据能够在CANopen网络中快速传输,具有COB-ID的标识符的默认设置在从385到1407的范围内。由于较高的优先级和仅包括有效载荷数据的事实,这里总共有8个字节。PDO映射条目确定有效载荷数据的内容,这些对象是对象库中的对象。与PDO相关,还可以传输具有几个值的对象,其中只有部分数据可以被接收器使用。PDO的传输在循环或同步的级别上进行,其中PDO的接收导致映射条目被写入对象库中的其他对象。
CANopen-独立于制造商
CANopen网络的统一设备配置文件还使独立于制造商的应用成为可能。为此,定义了设备简档,例如目的401 =输入/输出模块。对象库通过设备配置文件确保各个设备的功能和结构的精确定义。CANopen安装:在总线拓扑中CANopen网络在开始和结束时的布线使用120欧姆的电阻。这样,避免短截线必须被考虑。当通过CAN-H和CAN-L信号进行数据传输时,GND作为数据参考电位,一根双绞线电缆(阻抗:120欧姆,电阻70 mOhm/m)被引出。24V电源供应可被选择使用。通常,9针D-sub插头用于将各个站点连接到CANopen网络。可调传输速度在10kbps和1Mbps之间,其中最大127个站点可以连接到CANopen网络。 |