资源说明:"CANopen通讯协议介绍"
CANopen是一种架构在控制局域网路(Control Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen实作了OSI模型中的网络层以上(包括网络层)的协定。CANopen标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。
CANopen设备模型是all CANopen设备都要具备的功能:通讯单元处理和网络上其他模组通讯所需要的通讯协定。设备的启动及重置由状态机(state machine)控制。状态机需包括以下的几个状态:Initialization, Pre-operational, Operational 及 Stopped。当接收到网络管理(NMT)通讯对象,状态机会转换到对应的状态。
对象字典(Object Dictionary)是CANopen设备都需要具备的一种变量阵列。每个变量可以(但非必须)有8位元的子索引(Subindex)。变量可用来调整设备的组态,也可以对应设备量测的资料或设备的输出。当状态机设定为operational之后,设备的应用(application)部分就会实现设备预期的机能。此部分可以由对象字典中的变量调整其设定,而资料由通讯层传收或接收。
CANopen物理层是CANbus,每次传送的资料量不大,其中包括11位元的ID、远端传输请求(RTR)位元及大小不超过8位元的资料。CANopen将CANbus的11位元ID分为4位元的功能码及7位元的CANopen节点ID。7位元的ID共有128种不同的组合,其中ID0不使用,因此一个CANopen网络上最多允许127台设备。
CANopen通讯模型可以分为三种:master/slave模型、主从(client/server)模型和PDO模型。在master/slave模型中,一个CANopen设备为master,负责传送或接收其他设备(称为slave)的资料。NMT协定就使用了master/slave模型。在主从模型中,设备间的通讯是通过客户端和服务器端来实现的。PDO模型是CANopen设备间的通讯模型,通过Process Data Objects来实现设备间的通讯。
CANopen标准中定义了对象字典中的基本资料型态,包括逻辑值、整数及浮点数。也定义了复合对象:如阵列、记录及字串。复合对象用一个8位元的数值作为其子索引(subindex)。记录或阵列中子索引0的位置记录此数据结构的元素个数,资料型态为UNSIGNED8。
CANopen协议的优点包括:高可靠性、高实时性、低延迟、灵活的设备模型、灵活的通讯模型等。CANopen协议广泛应用于工业控制、机器人、自动化等领域。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。