CANopen通信系统基础知识分享

在阅读有关can总线的文章时,你肯定会遇到“canopen”这个词,它其实是一个基于can 的通信系统。canopen 在基本术语中可以定义为在can 总线传输数据时使用的通信语言。发送者和接收者对数据信息的定义需要遵循共同的标准。
与can 总线底层协议包含物理层和数据链路层相比,canopen 则是包含网络层、传输层、会话层、表示层、应用层这五个层次的高层协议。
在can总线上这些协议层之间都是独立的。
在can总线上这些协议的功能描述如下:
尽管can 总线已经成功的应用在很多行业,但是为了让它能够应用在更多的领域,canopen 被设计出来。最初canopen 是为面向运动的机器控制系统设计的,如今它在各个领域都得到了应用,例如:
● robotics(机器人)
● medical equipment(医疗设备)
● stepper and servo motors(步进电机和伺服电机)
● food processing(食品加工)
● automation(自动化)
● off-road vehicles(非公路车辆)
● marine electronics(船用电子设备)
● railway application(铁路应用)
● building automation(建筑自动化)
● mechanical manufacturing(机械制造)
● industrial machinery(工业机械)
● security monitoring(安防)
canopen 使设计人员能够执行各种功能,使can 总线更适合于嵌入式网络应用,如车内网络。它提供了高度灵活的配置功能。使用can-open,能够做到:
● 实现设备网络行为
● 影响和控制网络行为
● 沟通和处理数据
● 设备内部故障提示
● 设备能够点对点通信
● 定义内部设备结构
● 允许数据速率在10kbps-1000kbps 间调整
canopen 的内部设备结构有三个主要的逻辑部分:
canopen 消息帧格式: canopen 的消息帧格式和can总线的相似。它包含了的cob-id 和控制位,为了避免和can 总线的cob-id 冲突,所有
的cob-id 均不相同。
canopen 协议:
一个canopen协议栈实现几个canopen cob与对应速率的canopen 通信。canopen 协议由以下部分组成:
▶ 数据对象服务协议(sdo)
● sdo服务使canopen节点能够通过can网络读取、编辑、更改或访问另一节点对象字典的值
● 这是一种确认的通信服务,由两个具有不同can标识符的can数据帧组成
● 在以can为传播媒介上建立两个canopen设备之间的对等“客户端-服务器”的通信
server(服务端): 访问对象字典的所有者
client(客户端): 访问对象字典并启动与专用sdo“服务器”通信的设备
尽管sdo 非常灵活,但overhead 的存在使其不太适合实时数据操作。为了解决这个问题,使用了进程数据对象协议。
▶ 进程数据对象协议(pdo)
● pdo 通常被视为一个重要的canopen 协议,因为它承载了大量的信息
● canopen 使用进程数据对象(pdo)跨canopen 节点在实时操作数据中传播高优先级控制和状态信息
● pdo 由单个can 帧组成,可在单个帧内仅传送多达8字节的应用程序数据,其中包含多个对象参数值
producer(生产者): 它产生要传输到主机的数据
consumer(消费者):这里的主机就是消费者。它从生产者那里接收数据
▶ 网络管理协议(nmt)
nmt 服务定义canopen 设备的通信方式。在接收到nmt 协议时,canopen 设备被迫转换到命令的nmt 状态。nmt 状态机包括:
● 初始化状态(设备在通电或复位后进入初始化状态)
● 预运行状态
● 运行状态
● 停止状态
nmt 协议发送单个can 帧,数据长度为2字节,can id为0。它包含命令标识符/功能代码(第一位),它代表请求状态,对于nmt,如果将其设置为显性状态0,则所有节点都必须执行该命令。节点id——作为指定的名字,包含需要遵守状态转换命令的模块id。
在nmt中,模块需要使用sdo协议操作,因为pdo仅在操作状态下才可运作。
▶ 特殊功能协议
为了产生特定的网络行为,canopen提供了三种特定的协议:
● synchronisation protocol(同步协议):该协议允许同步多个设备。同步生成器或应用程序主机定期传输同步协议。根据预定义的连接设置,同步消息映射到单个can 帧,cob id 为80h。(它不携带数据(dlc=0))
● emergency protocol(应急协议):
任何内部设备错误都会触发应急协议。在这种情况下,紧急消息由故障设备发送。每个错误事件只传输一次。故障设备使用将can标识符cob id 80h+(节点id)分配给紧急消息的功能。
如果can总线上的设备没有新的错误,则不会继续传输此类消息
● time-stamp protocol(时间戳协议):允许canopen系统的用户调整特定的网络时间,该时间戳映射到一个can帧,该帧具有6字节的数据。这6个字节中最初的4个字节代表“一天之中的时间”信息,4个字节存储的都为毫秒信息,接下来的2个字节则为1984年1月1日0点这个数据信息。默认情况下,关联的can帧预设值为can标识符100h。
▶ 错误控制协议:监听canopen 网络
● heartbeat protocol(防断连协议):防断连协议验证其可用性及nmt 有限状态自动化(fsa)。对于canopen 中的所有网络。防断连信号循环传输,以确认防断连发生器的可用性。
● boot up protocol(启动协议):这表示一种独特类型的错误控制协议。在进入nmt fsa 预运行状态之前,它将作为nmt fsa 状态初始化中的最终操作进行传输。接收到此消息表示
○ 新设备已注册到canopen 网络
○ 更改网络设置(当有新设备添加到canopen 时)
○ 它可以被认为是canopen 网络中出现错误情况的标志

多核网络处理器及其开发考虑
中国光伏组件彻底摆脱“三头在外”困扰
dfrobot高速双向直流电机(红色)简介
嵌入式Linux操作系统CGI程序设计技术
苏宁焕新节12小时订单量增长164%,悟空榜揭露消费趋势
CANopen通信系统基础知识分享
LTE迈入全电调时代
使用74LS164的并行输出端接8支发光二极管
智能家居智能家居“黄金时代”科技巨头争霸一触即发
区块链技术可以有效的保护公民的网络身份数据
彩色电视机的高压嘴打火的维修
高通骁龙670:“2+6”八核,标准频率430-650Mhz
微型空气自动监测站哪家好
音圈电机可在低温环境下工作?
5G时代下 智能网联汽车赋能新的商业模式
谷歌发布TensorFlow用于人工智能模型的隐私保护
中国PCB制造业在全球顶级制造商排名占有比例更高
扣式电池高低温箱的作用与用途
北京君正乘物联网东风,净利润成倍增长
源创通信SinoV-X100 X电话交换机系统介绍