如何构建专属自己的CAN-bus应用层协议
时间:2017-05-04 09:23来源:ZLG致远电子
摘要:随着CAN-bus相关芯片价格的下降,内置CAN控制器MCU的增多,CAN-bus当前已经进入了众多早期由于成本问题无法使用的领域,成为极具生命力的现场总线,今天我们就来探讨如何构建专属自己的CAN-bus应用层协议。
随着CAN-bus相关芯片价格的下降,内置CAN控制器MCU的增多,CAN-bus当前已经进入了众多早期由于成本问题无法使用的领域,成为极具生命力的现场总线,今天我们就来探讨如何构建专属自己的CAN-bus应用层协议。
在CAN-bus网络上,CAN报文以广播的形式发送,CAN报文不包含地址信息,是否处理接收到的CAN报文由接收点的软件确定。CAN-bus只提供可靠的报文传输服务,CAN报文的使用由应用者定义, 所以CAN网络中的节点要相互通信就必须制定一个统一的规则。CAN应用层协议就是这样一个规则。
这个规则,定义了CAN报文中帧ID及帧数据的使用方式,如将帧ID定义为需要处理该帧数据的CAN节点地址等。根据应用场合的不同,国际上出现了多种CAN应用层协议,常见的CAN-bus应用层协议如下:
图1
接下来,我们看一下如何构建CAN-bus应用层协议
包含报文标识符的分配和报文数据的分配,报文格式的定义,实质是将CAN报文的分配规则进行详细的描述。
报文ID的定义:
CAN2.0A帧:11位ID
CAN2.0B帧,29位ID
报文数据的定义:每帧报文最多包含8字节数据
CAN网络数据通信的实现
在CAN网络中,通过报文的标识符进行信息的区分,因此通过报文的各种标识符分配来达到建立信息链接的目的。
图2 命令/响应模式通信
CAN应用层协议:面向节点和面向报文的协议
数据通信协议基本上可以划分为“面向节点的协议”和“面向报文的协议”两种类型,如下图:
图3:面向节点和面向报文的数据通信
制定一个CAN应用层协议
为了给读者演示CAN应用层协议的开发和使用方法,下面定义一个简单的CAN应用协议栈,该协议栈中只用到CAN标准帧中的数据帧,帧ID中的11个位的分配和使用方法如下表所列,协议中另外还定义了功能参数长度变量FunDataLen的功能参数数组FunData,该数组在需要时可以为某些特定功能函数提供足够的控制参数。
图4
在CAN-bus网络上,CAN报文以广播的形式发送,CAN报文不包含地址信息,是否处理接收到的CAN报文由接收点的软件确定。CAN-bus只提供可靠的报文传输服务,CAN报文的使用由应用者定义, 所以CAN网络中的节点要相互通信就必须制定一个统一的规则。CAN应用层协议就是这样一个规则。
这个规则,定义了CAN报文中帧ID及帧数据的使用方式,如将帧ID定义为需要处理该帧数据的CAN节点地址等。根据应用场合的不同,国际上出现了多种CAN应用层协议,常见的CAN-bus应用层协议如下:
图1
接下来,我们看一下如何构建CAN-bus应用层协议
- 构建一个现场总线网络,需要解决的关键技术问题有:
- 总线传输信息的速度、容量、优先等级、节点容量等;
- 高电磁干扰环境下的可靠数据传输;
- 最大传输距离时延时大小的确定;
- 网络的容错技术;
- 网络的监控和故障诊断功能。
- CAN-bus网络传输速度最高可达1Mbps,并采用无损仲裁,通过报文标识符指示报文优先级;
- CAN-bus采用差分信号传输,并采用可靠的数据校验和错误检测机制;
- CAN-bus采用帧传输,每个报文允许传输最多8个字节,帧结构有严格规定,能够确定最大传输延时;
- CAN-bus具有可靠的错误机制和检测机制,发送的信息遭到破坏后可以重新发送;节点在错误严重的情况下,具有自动退出总线的功能;
- 可以通过制定严禁的CAN-bus应用层协议解决网络监控和诊断。
包含报文标识符的分配和报文数据的分配,报文格式的定义,实质是将CAN报文的分配规则进行详细的描述。
报文ID的定义:
CAN2.0A帧:11位ID
CAN2.0B帧,29位ID
报文数据的定义:每帧报文最多包含8字节数据
CAN网络数据通信的实现
在CAN网络中,通过报文的标识符进行信息的区分,因此通过报文的各种标识符分配来达到建立信息链接的目的。
图2 命令/响应模式通信
CAN应用层协议:面向节点和面向报文的协议
数据通信协议基本上可以划分为“面向节点的协议”和“面向报文的协议”两种类型,如下图:
图3:面向节点和面向报文的数据通信
制定一个CAN应用层协议
为了给读者演示CAN应用层协议的开发和使用方法,下面定义一个简单的CAN应用协议栈,该协议栈中只用到CAN标准帧中的数据帧,帧ID中的11个位的分配和使用方法如下表所列,协议中另外还定义了功能参数长度变量FunDataLen的功能参数数组FunData,该数组在需要时可以为某些特定功能函数提供足够的控制参数。
图4
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 仪器使用操作视频教程时间:2023年12月31日 - 2024年01月31日[立即参与]
- 安森美汽车&能源基础设施白皮书下载时间:2023年04月03日 - 2023年11月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 浏览量:9673
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8432
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9046
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:6843
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5582
- PFC电感计算
时间:2022-07-06 浏览量:3805
- 多相同步BUCK
时间:2010-10-03 浏览量:37795
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43081
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:59954
- 精讲双管正激电源
时间:2016-11-25 浏览量:127234
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107358
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:99850