CANopen网络管理(NMT)
CANopen网络管理是面向节点的,它遵循 主机/从机 结构。它需要网络中的一个设备完成NMT主机的功能,其它节点都是NMT从机。网络管理提供以下的功能组:针对想要参与分布应用的NMT从机初始化的模块控制服务、针对节点与网络通讯状态管理的错误控制服务以及针对网络中从各模块上传/下载配置数据的配置控制服务。
一个NMT从机所表现的是负责该节点的NMT功能的那部分。NMT从机由它的模块ID来唯一标识。
CANopen NMT从机状态图
CANopen NMT从机设备实现了一个状态机,每个设备在上电与内部初始化后自动进入Pre-operational状态。在该状态下,可以通过SDO对节点进行配置或者参数化(例如利用配置工具),但不允许进行PDO通讯。
NMT主机设备可以将所有节点或者单独一个设备切换至或切换出Operational状态。通过将设备切换进Stopped状态来强制停止该设备进一步的PDO和SDO通讯,该状态能够用来完成确定的应用行为。这些行为的定义属于设备profile的范畴。
在Operational状态中,所有的通讯对象都被激活。可以通过SDO访问对象字典。然而执行状态或应用状态机也许要关闭或者只读取某些应用对象同时进行(例如某个对象可能含有在执行过程中不能改变的应用程序)[吐血了 - Implementation aspects or the application state machine however may require to switch off or to read only certain application objects whilst being operational (e.g. an object may contain the application program, which cannot be changed during execution).]。
CANopen NMT协议
CANopen网络管理提供以下五项服务,它们通过命令指定符[CS - Command Specifier]来区分: * 启动远程节点 (CS = 1), * 停止远程节点 (CS = 2), * 进入Pre-Operational状态 (CS = 128), * 复位节点 (CS = 129)和 * 复位通讯(CS = 130)。
通讯对象拥有标识符 = 0还有另外两个字节组成。Node-ID定义了报文的目的地,若为零则该协议寻址所有的NMT从机。
CANopen 初始化状态
初始化状态被划分为三个子状态,以使节点能够选择进行完全复位或者部分复位。在Reset Application子状态中,特定生产商profile区和标准设备profile区的参数都设置为它们的默认值。设备在设置上电值之后自动进入Reset Communication子状态。
在Reset Communication子状态中,通讯profile的参数均被设置为它们的上电值。
而后设备进入Initializing子状态,在该子状态中执行基本的初始化。设备在进入Pre-Operational状态之前发出Boot-up对象(4.0版本)。
上电值是最后保存的参数。如果设备不支持参数保存或者如果在复位之前接收到restore_default命令(对象1011h),那么上电值是根据通讯profile和设备profile而定的默认值。
CANopen 引导协议
该协议被NMT从机在Initializing状态后用来发出节点已进入Pre-Operational状态的信号。它和错误控制协议使用相同的标识符。
在通讯复位、应用复位以及从上电恢复后都同样发送引导报文。1字节的数据域采用固定值零。
准确的翻译需要对更多相关文档的进一步阅读,译文可能要多次修改…… |