如何实现可靠的 CAN 长字节通讯
时间:2017-10-11 16:12来源:ZLG致远电子
摘要:CAN总线从上个世纪80年代开始,逐渐在汽车电子、轨道交通、医疗电子、工程机械等广泛的工业场合应用。这个“古老”的总线,最让人“不爽”的地方,就是一帧只能传输八字节数据,如果要一次传输更长字节,需要分帧,而选择一种可靠的分帧方法就是使用者一定要注意的。
CAN 总线从上个世纪80年代开始,逐渐在汽车电子、轨道交通、医疗电子、工程机械等广泛的工业场合应用。这个“古老”的总线,最让人“不爽”的地方,就是一帧只能传输八字节数据,如果要一次传输更长字节,需要分帧,而选择一种可靠的分帧方法就是使用者一定要注意的。
CAN 总线作为汽车电子而生的总线,提出了“优先级自动仲裁”和“短帧快速传输”的控制概念,为了达到“高实时性”的快速控制目标。使用一帧八字节的通讯单元具有了一系列的优点缺点:
一、CAN 通讯的优缺点:
优点
(1)8个字节正好是8个字节、4个16位、2个32位、1个64位的变量的存放“容器”。那么用户只要在 ID 中存放“寄存器地址”,然后通过1帧来“读取”或者“修改”,对应的“数值”,这样比较方便;
(2)短帧提高总线共享速度。任何一个 CAN 节点发送报文,在发送一帧后,需要重新和其他节点竞争总线,这样只要用户设计适当的发送间隔,就可以保证所有的点“共享”总线,提高总线利用率,也保证每个节点的发送周期大致保证一致。
缺点
(1)长数据传输时数据负载偏低。在多帧发送时,由于每帧发送都要发送 CANID,所以实际的 CAN 数据所占的比例就很低了,以 CAN 扩展帧为例,其29位 ID 和64位的数据,导致数据承载只能达到60%。所以在长数据传输时,CAN 甚至比不上同样波特率下的 RS485/Modbus;
(2)长数据传输分帧丢帧,会导致整包传输失败。当需要一次传输超过8字节数据时,需要分多帧传输,如果其中一帧“丢失”,则会导致整个发送包的无效。这就要求接收节点对每一个分帧进行确认,以保证每一个分帧的到达,而这么做就会大大降低效率;
(3)长数据传输时同步性差。比如要同时输出动作超过8字节的控制命令时,由于每个帧到达有先后,先到的先动作,后到的后动作,就会引起输出的不同步性。
可见 CAN 总线在当前的主流应用中,主要矛盾集中在其8字节短帧的长数据传输上。因此世界广大科技工作者制定出一系列的改进和改革方法来解决这些缺点。
二、可靠 CAN 长数据通讯:
升级为 CANFD 协议提高数据负载率
几年前,梅赛德斯奔驰的工程师们对 CAN 总线的制定单位 CiA(CAN in Automatic) 协会提出,奔驰已经将 CAN 用尽了。因为奔驰的工程师们通过不断优化通讯机制,已经将奔驰的 CAN 总线利用率提高到90%以上,已经无带宽可用,只能通过网关不断增加新的 CAN 网络来扩展数据通道。这样导致整车的总线区域越来越多。
车载以太网虽然可以解决数据量的问题,但其布线改变过大,成本上升过多,只适合于网关之间的通讯。所以 CiA 协议就联合各大车厂,制定出新一代的 CANFD 协议,以快速升级现有的 CAN2.0B。其主要的内容就是将一帧的数据段由8字节提升到64字节,同时可以提升数据段的波特率,以缩短通讯时间。如图1所示。
这样,不需要每8字节就要发一次 CANID,即使不提升波特率,也提升了8倍的数据负载率。如果提升了8倍波特率,则可以达到64倍的数据负载率,相当于扩充了64倍带宽。其提升效果非常明显。
采用可靠的分帧协议
成熟的应用层协议都有可靠的分帧协议,比如 CANopen,DeviceNET,J1939 协议等,总的方针都是“握手”“传输”“确认”“结束”这四个过程循环。这里只介绍 CANopen 协议中的 SDO多帧传输。
发送方(客户端)发送的报文 CAN-ID为600h+Node-ID,接收方(服务器)成功接收后,回应 CAN-ID 为 580h+Node-ID 的报文。下载协议 download protocol 如图2所示。
上传协议 upload protocol 如图3所示。
采用同步传输协议
同步传输,解决的就是实现整个网络的同步传输,如图4所示,就像阅兵分列式上的方阵,所有士兵迈着整齐的步伐行进。这里以 CANopen 的同步报文为例讲解。
每个节点都以同步报文作为 PDO(过程数据的)触发参数,为了保证时间准确性,该同步报文的 COB-ID 具有比较高的优先级以及最短的传输时间。 CANopen 选用 80h 作为同步报文的 CAN-ID,如图5所示。
一般同步报文由 NMT(网络管理)主机发出,CAN 报文的数据为0字节。但如果一个网络内有2个同步机制,就需要设置不同的同步节拍,比如某些节点按1个同步帧发送1次 PDO,其他的节点收到2个同步帧才发送1此 PDO,
在同步协议中,有2个约束条件:
CAN 总线在诸多爱好者的推动下,不断改进和改革自身,让这个古老的总线焕发出勃勃生机。广州致远电子有限公司,作为 CAN 总线在国内的重要推广者,CANScope 总线综合分析仪已免费标配 CANPRO 软件,可以解析主流的 CANOpen,DeviceNet,J1939 协议。
CAN 总线作为汽车电子而生的总线,提出了“优先级自动仲裁”和“短帧快速传输”的控制概念,为了达到“高实时性”的快速控制目标。使用一帧八字节的通讯单元具有了一系列的优点缺点:
一、CAN 通讯的优缺点:
优点
(1)8个字节正好是8个字节、4个16位、2个32位、1个64位的变量的存放“容器”。那么用户只要在 ID 中存放“寄存器地址”,然后通过1帧来“读取”或者“修改”,对应的“数值”,这样比较方便;
(2)短帧提高总线共享速度。任何一个 CAN 节点发送报文,在发送一帧后,需要重新和其他节点竞争总线,这样只要用户设计适当的发送间隔,就可以保证所有的点“共享”总线,提高总线利用率,也保证每个节点的发送周期大致保证一致。
缺点
(1)长数据传输时数据负载偏低。在多帧发送时,由于每帧发送都要发送 CANID,所以实际的 CAN 数据所占的比例就很低了,以 CAN 扩展帧为例,其29位 ID 和64位的数据,导致数据承载只能达到60%。所以在长数据传输时,CAN 甚至比不上同样波特率下的 RS485/Modbus;
(2)长数据传输分帧丢帧,会导致整包传输失败。当需要一次传输超过8字节数据时,需要分多帧传输,如果其中一帧“丢失”,则会导致整个发送包的无效。这就要求接收节点对每一个分帧进行确认,以保证每一个分帧的到达,而这么做就会大大降低效率;
(3)长数据传输时同步性差。比如要同时输出动作超过8字节的控制命令时,由于每个帧到达有先后,先到的先动作,后到的后动作,就会引起输出的不同步性。
可见 CAN 总线在当前的主流应用中,主要矛盾集中在其8字节短帧的长数据传输上。因此世界广大科技工作者制定出一系列的改进和改革方法来解决这些缺点。
二、可靠 CAN 长数据通讯:
升级为 CANFD 协议提高数据负载率
几年前,梅赛德斯奔驰的工程师们对 CAN 总线的制定单位 CiA(CAN in Automatic) 协会提出,奔驰已经将 CAN 用尽了。因为奔驰的工程师们通过不断优化通讯机制,已经将奔驰的 CAN 总线利用率提高到90%以上,已经无带宽可用,只能通过网关不断增加新的 CAN 网络来扩展数据通道。这样导致整车的总线区域越来越多。
车载以太网虽然可以解决数据量的问题,但其布线改变过大,成本上升过多,只适合于网关之间的通讯。所以 CiA 协议就联合各大车厂,制定出新一代的 CANFD 协议,以快速升级现有的 CAN2.0B。其主要的内容就是将一帧的数据段由8字节提升到64字节,同时可以提升数据段的波特率,以缩短通讯时间。如图1所示。
图 1 CANFD 报文提升数据负载率
这样,不需要每8字节就要发一次 CANID,即使不提升波特率,也提升了8倍的数据负载率。如果提升了8倍波特率,则可以达到64倍的数据负载率,相当于扩充了64倍带宽。其提升效果非常明显。
采用可靠的分帧协议
成熟的应用层协议都有可靠的分帧协议,比如 CANopen,DeviceNET,J1939 协议等,总的方针都是“握手”“传输”“确认”“结束”这四个过程循环。这里只介绍 CANopen 协议中的 SDO多帧传输。
发送方(客户端)发送的报文 CAN-ID为600h+Node-ID,接收方(服务器)成功接收后,回应 CAN-ID 为 580h+Node-ID 的报文。下载协议 download protocol 如图2所示。
图2 普通 SDO 下载协议
上传协议 upload protocol 如图3所示。
图 3普通 SDO 上传协议
采用同步传输协议
同步传输,解决的就是实现整个网络的同步传输,如图4所示,就像阅兵分列式上的方阵,所有士兵迈着整齐的步伐行进。这里以 CANopen 的同步报文为例讲解。
图4同步协议与阅兵分列式
每个节点都以同步报文作为 PDO(过程数据的)触发参数,为了保证时间准确性,该同步报文的 COB-ID 具有比较高的优先级以及最短的传输时间。 CANopen 选用 80h 作为同步报文的 CAN-ID,如图5所示。
图5 同步报文
一般同步报文由 NMT(网络管理)主机发出,CAN 报文的数据为0字节。但如果一个网络内有2个同步机制,就需要设置不同的同步节拍,比如某些节点按1个同步帧发送1次 PDO,其他的节点收到2个同步帧才发送1此 PDO,
在同步协议中,有2个约束条件:
- 同步窗口时间:索引 1007h 约束了同步帧发送后,从节点发送 PDO 的时效,即在这个时间内发送的 PDO 才有效,超过时间的 PDO 将被丢弃,当同步窗口结束后,开始同时执行动作。
- 通讯循环周期:索引 1006h 规定了同步帧的循环周期,就是同步包发送的周期。
CAN 总线在诸多爱好者的推动下,不断改进和改革自身,让这个古老的总线焕发出勃勃生机。广州致远电子有限公司,作为 CAN 总线在国内的重要推广者,CANScope 总线综合分析仪已免费标配 CANPRO 软件,可以解析主流的 CANOpen,DeviceNet,J1939 协议。
图6 协议解析
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 安森美汽车&能源基础设施白皮书下载活动时间:2024年04月01日 - 2024年10月31日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年09月01日 - 2023年09月30日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
分类排行榜
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
编辑推荐
小型化和稳定性如何兼得?ROHM 推出超小型高输出线性 LED 驱动器 IC,为插座型 LED 驱动 IC 装上一颗强有力的 “心脏”
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:10184
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8940
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9585
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:7198
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5971
- PFC电感计算
时间:2022-07-06 浏览量:4183
- 多相同步BUCK
时间:2010-10-03 浏览量:37867
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43162
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:60025
- 精讲双管正激电源
时间:2016-11-25 浏览量:128116
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107560
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:100298