【电动汽车资源网ev江湖 http://www.evpartner.com】随着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应用层协议如下:
接下来,我们看一下如何构建can-bus应用层协议
构建一个现场总线网络,需要解决的关键技术问题有:
总线传输信息的速度、容量、优先等级、节点容量等;
高电磁干扰环境下的可靠传输;
Zui大传输距离时延时大小的确定;
网络的容错技术;
网络的监控和故障诊断功能。
要解决以上问题,需要充分考虑现场总线网络所采用的总线类型,因为以上问题和总线的性能特点是密切相关的,那么我们就看一下can-bus总线的上述特性:
can-bus网络传输速度Zui高可达1mbps,并采用无损仲裁,通过报文标识符指示报文优先级;
can-bus采用差分信号传输,并采用可靠的校验和错误检测机制;
can-bus采用帧传输,每个报文允许传输Zui多8个字节,帧结构有严格规定,能够确定Zui大传输延时;
can-bus具有可靠的错误机制和检测机制,发送的信息遭到破坏后可以重新发送;节点在错误严重的情况下,具有自动退出总线的功能;
可以通过制定严禁的can-bus应用层协议解决网络监控和诊断。
can报文的分配
包含报文标识符的分配和报文的分配,报文格式的定义,实质是将can报文的分配规则进行详细的描述。
报文id的定义:
can2.0a帧:11位id
can2.0b帧,29位id
报文的定义:每帧报文Zui多包含8字节
can网络通信的实现
在can网络中,通过报文的标识符进行信息的区分,因此通过报文的各种标识符分配来达到建立信息链接的目的。
can应用层协议:面向节点和面向报文的协议
通信协议基本上可以划分为“面向节点的协议”和“面向报文的协议”两种类型,如下图:
制定一个can应用层协议
为了给读者演示can应用层协议的开发和使用方法,下面定义一个简单的can应用协议栈,该协议栈中只用到can标准帧中的帧,帧id中的11个位的分配和使用方法如下表所列,协议中另外还定义了功能参数长度变量fundatalen的功能参数数组fundata,该数组在需要时可以为某些特定功能函数提供足够的控制参数。
(来源:电动汽车资源网ev江湖www.evpartner.com/jh)
本文由电动汽车资源网【ev江湖】作者撰写,观点仅代表个人,不代表电动汽车资源网。
欢迎加入电动汽车资源网ev江湖,注册会员登录后即可在线投稿或发布微语,如有问题请发送邮件至 ysx@zhdyw.com或添加微信号arleen233。
电动汽车资源网自媒体平台——ev江湖致力于打造新能源汽车产业生态与消费生态结合的新模式自媒体平台。我们以严谨而开放的态度,诚邀各路豪杰,探讨新能源汽车发展之路,见证产业发展一路风云(点击进入ev江湖www.evpartner.com/jh)。
- 第十三张新能源汽车牌照已出,浙江众合又是何方神圣? 2017-04-27
- 比亚迪T8纯电动扫洗车 助力打造深圳“绿色环卫”新名片 2017-04-27
- 2017年6月电动汽车资源网重庆会议火热招商中 2017-04-26