canopen

Controller Area Network,控制器局域⽹,是国际上应⽤最⼴泛的现场总线之⼀。

20世纪80年代初德国Bosch公司为解决现代汽⻋中众多控制单元、测试仪器之间的实时数据交换⽽开发的⼀种串⾏通信协议

CAN的差分传输

采⽤双线差分信号,两根线构成总线,CAN High与CAN Low,这两根线之间的电位差可以对应两个不同的逻辑状态进⾏编码。

当CAN_H和CAN_L均是2.5V左右,此时CAN_H和CAN_L的压差为0V,此时状态表⽰为逻辑1,称为隐性位。

当CAN_H=3.5V和CAN_L=1.5V,此时CAN_H和CAN_L的压差为2V,此时状态表⽰为逻辑0,称为显性位,竞争时显性位优先。

CAN的传输距离

CAN总线组⽹⽅式

CAN总线节点数量

协议本⾝对节点的数量没有限制,实际应⽤中节点数⽬受⽹络硬件的电⽓特性所限制。

总线上节点的数量可以动态改变,发送⼴播报⽂,报⽂可以被所有节点同时接收。

CAN总线数据格式

CAN总线节点上的节点发送数据是以报⽂的形式⼴播给⽹络中所有节点。收发器接收到数据就把数据传送给控制器,再由控制器检查判断

是不是所需数据。不是则忽略。

⽹络上任何⼀个节点在任何时候都可以发送数据。

多个节点发送数据,优先级低主动退出发送。

短帧结构,每帧数据信息为0~8字节(具体⽤⼾定义),对数据编码⽽不是地址编码。

CAN每帧都有CRC校验和其他检验措施,严重错误的情况下具有⾃动关闭输出的功能。

数据帧

结构上由7个段组成,其中根据仲裁段ID码⻓度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。

帧起始、帧结束

1个位的低电平表⽰帧的开始

7个位的⾼电平表⽰帧的结束

仲裁段

数据段

CANopen对象字典

CANopen对象字典(OD: Object Dictionary)是CANopen协议最为核⼼的概念。

对象字典就是⼀个有序的对象组,描述了对应CANopen节点的所有参数。

最简单的理解就是json字符串

每个对象采⽤⼀个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000到0xFFFF之间。

为了避免数据⼤量时⽆索引可分配,在某些索引下定义了⼀个8 位的索引值,这个索引值通常被称为⼦索引,其范围是0x00到0xFF之间。

每个索引内具体的参数,最⼤⽤32位的变量来表⽰,即Unsigned32,四个字节。

CANOpen包括多种通信⽅式:主从站⽅式、客⼾端服务器⽅式以及⽣产者消费者模式。

SDO使⽤客⼾端服务器模式。

PDO采⽤⽣产者消费者模式。

整个CANopen采⽤主从⽅式通信。

SDO通信⽅式,⽤来传输⾮实时数据,类似于I2C协议通信、Modbus协议通信, 采⽤问答式通信。

PDO通信⽅式,⽤来传输实时数据,PDO 属于过程数据,即单向传输,⽆需接收节点回应报⽂来确认,属于⽣产消费模型。

canfestival移植

相关推荐
zbtlink32 分钟前
路由器安全深度解析:从WPA3协议到自动化审计
网络·网络安全·智能路由器·wps
只吃不吃香菜1 小时前
Windows 下基于 YAML 规则的指定域名分流:以哔哩哔哩为例
网络·网络协议·计算机网络·网络安全·代理模式
我爱cope2 小时前
【计算机网络 | 数据链路层2:差错检测与纠正:奇偶校验、校验和、CRC 分别怎么工作?】
网络·学习·计算机网络
Q741_1472 小时前
TcpDump 使用笔记
网络·c++·笔记·测试工具·tcpdump
探物 AI3 小时前
yolo检测中的激活函数19:ReLU激活函数 (Rectified Linear Unit)
网络·人工智能·深度学习·yolo
buhuizhiyuci4 小时前
【Linux 网络篇】数据的 “循环系统“:协议认识与网络传输的流程
linux·运维·服务器·网络·vscode
2401_8653825014 小时前
密评与等保的关系:不是替代,而是互补
网络·信息化造价
白狐_79816 小时前
408计算机网络第3章:PPP协议——帧格式、LCP/NCP、状态机与真题精讲
网络·计算机网络·智能路由器
MIXLLRED17 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
zt1985q18 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·网络协议·开源