CANopen是在CAL基础上开发的,使用了CAL通讯和服务协议子集,提供了分布式控制系统的一种实现方案。CANopen在保证网络节点互用性的同时允许节点的功能随意扩展:或简单或复杂。
CANopen的核心概念是设备对象字典(OD:Object Dictionary),在其它现场总线(Profibus,Interbus-S)系统中也使用这种设备描述形式。注意:对象字典不是CAL的一部分,而是在CANopen中实现的。
CANopen预定义连接集
为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。CANopen设备必须向它所支持的通讯对象的提供相应的标识符。
缺省ID分配表是基于11位CAN-ID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。如图2-1所示。
2.1预定义连接集ID
|
Node-ID由系统集成商定义,例如通过设备上的拨码开关设置。Node-ID范围是1~127(0不允许被使用)。
预定义的连接集定义了4个接收PDO(Receive-PDO),4个发送PDO(Transmit-PDO),1个SDO(占用2个CAN-ID),1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也支持不需确认的NMT-Module-Control服务,SYNC和Time Stamp对象的广播。
缺省ID分配表如表2-2所示。
表格 2-2CANopen预定义主/从连接集CAN标识符分配表
注意:
. PDO/SDO 发送/接收是由(slave)CAN节点方观察的。
. NMT 错误控制包括节点保护(Node Guarding),心跳报文(Heartbeat)和Boot-up协议。
CANopen boot-up过程
在网络初始化过程中,CANopen支持扩展的boot-up,也支持最小化boot-up过程。
扩展boot-up是可选的,最小boot-up则必须被每个节点支持。两类节点可以在同一个网络中同时存在。
如果使用CAL的DBT服务进行ID分配,则节点必须支持扩展boot-up过程。
可以用节点状态转换图表示这两种初始化过程,如图3-1所示。扩展boot-up的状态图在预操作和操作状态之间比最小化boot-up多了一些状态。
作者:才女小丫
技术支持:广成科技