NMT 协定
NMT(
网络管理,
Network management)协定会定义(设备内部)
状态机的状态变更命令(如启动设备或停止设备)、侦测远端设备 bootup及故障情形。
NMT master 使用的
模组控制协定可变更设备的状态。其 COB-ID 为 0,其功能码及节点 ID 均为 0,因此网络上的所有节点均会处理这个讯息。在此讯息的资料部份会有此讯息实际针对
节点的ID,此 ID 也可为 0,表示所有节点都要变更为指定的状态。
心跳协定(
Heartbeat protocol)是用来监控网络中的
节点及确认其正常工作。心跳讯息的生产者(一般是 slave 设备)周期性的送出功能码 1110、ID 为本身
节点ID 的讯息,讯息的资料部份有一个表示节点状态的位元。而心跳讯息的消费者负责接收上述资料,若在指定时间(于设备的对象字典中定义)内,消费者均未收到讯息,可采取相关行动(例如显示错误或重置该设备)。
其格式为:
COBID + DATA(status of node) CANopen 设备需要在 bootup 时自动从 Initializing 状态切换至 Pre-operational 状态,设备会在切换完成后送出一个心跳讯息,这就是心跳协定。
有一种 pull model 的 NMT 协定,称作节点监控(Node guarding)协定,也可以作从机的监控。
SDO 协定
服务资料对象(
SDO)可用来存取远端节点的对象字典,读取或设定其中的资料。提供对象字典的节点称为SDO server,存取对象字典的节点称为SDO client。SDO 通讯一定由SDO client 开始,并提供初始化相关的参数。
在CANopen的术语中,
上传是指由 SDO server 中读取资料,而
下载是指设定 SDO server 的资料。
PDO 协定
进程数据对象 (
PDO) 协定可用来在许多
节点之间交换即时的资料。可透过一个 PDO ,传送最多 8
字节(64位元)资料给一设备,或由一设备接收最多 8 字节(64位元)的资料。一个 PDO 可以由对象字典中几个不同索引的资料组成,规划方式则是透过对象字典中对应 PDO mapping 及 PDO 参数的索引。
PDO 分为两种:传送用的 TPDO 及接收用的 RPDO。一个节点的 TPDO 是将资料由此节点传输到其他节点,而 RPDO 则是接收由其他节点传输的资料。一个节点分别有 4 个 TPDO 及 4 个 RPDO 。
PDO 可以用同步或异步的方式传送:同步的 PDO 是由 SYNC 讯息触发,而异步的 PDO 是由
节点内部的条件或其他外部条件触发。例如若一个节点规划为允许接受其他节点产生的 TPDO 请求,则可以由其他节点送出一个没有资料但有设定 RTR 位元的 TPDO(TPDO 请求),使该节点送出需求的资料。
借由 RPDO 也可以使两种设备同时启动。
CANopen 专有名词
PDO 程序资料对象 - 对应实际物理量的输入及输出。资料的单位可能是 RPM, V, Hz, mAmp...。
SDO 服务资料对象 - 一般来说是
组态设定的资料,如节点位置、节点ID、通讯速度、位移、增益等。……
COB-ID - CAN 对象编号
CAN ID - CAN Identifier. 是在每个 CAN 讯息前面的讯息识别码,共 11 位元。
EDS - 电子资料档(Electronic data sheet)是 INI 格式或XML格式(从2007年底开始)的档案。
DCF - 设备
组态档案(Device configuration file),是加强版的 EDS,可以设定节点 ID 及通讯速度。