如何构建专属自己的CAN-bus应用层协议

2017-05-08来源: ZLG致远电子关键字: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.png

图1

接下来,我们看一下如何构建CAN-bus应用层协议

构建一个现场总线网络,需要解决的关键技术问题有:
总线传输信息的速度、容量、优先等级、节点容量等;
高电磁干扰环境下的可靠数据传输;
最大传输距离时延时大小的确定;
网络的容错技术;
网络的监控和故障诊断功能。

要解决以上问题,需要充分考虑现场总线网络所采用的总线类型,因为以上问题和总线的性能特点是密切相关的,那么我们就看一下CAN-bus总线的上述特性:

CAN-bus网络传输速度最高可达1Mbps,并采用无损仲裁,通过报文标识符指示报文优先级;
CAN-bus采用差分信号传输,并采用可靠的数据校验和错误检测机制;
CAN-bus采用帧传输,每个报文允许传输最多8个字节,帧结构有严格规定,能够确定最大传输延时;
CAN-bus具有可靠的错误机制和检测机制,发送的信息遭到破坏后可以重新发送;节点在错误严重的情况下,具有自动退出总线的功能;
可以通过制定严禁的CAN-bus应用层协议解决网络监控和诊断。

CAN报文的分配

包含报文标识符的分配和报文数据的分配,报文格式的定义,实质是将CAN报文的分配规则进行详细的描述。

报文ID的定义:
CAN2.0A帧:11位ID
CAN2.0B帧,29位ID
报文数据的定义:每帧报文最多包含8字节数据
CAN网络数据通信的实现
在CAN网络中,通过报文的标识符进行信息的区分,因此通过报文的各种标识符分配来达到建立信息链接的目的。

图片2.png

图2 命令/响应模式通信

CAN应用层协议:面向节点和面向报文的协议
数据通信协议基本上可以划分为“面向节点的协议”和“面向报文的协议”两种类型,如下图:

图片3.png

图3:面向节点和面向报文的数据通信

制定一个CAN应用层协议

为了给读者演示CAN应用层协议的开发和使用方法,下面定义一个简单的CAN应用协议栈,该协议栈中只用到CAN标准帧中的数据帧,帧ID中的11个位的分配和使用方法如下表所列,协议中另外还定义了功能参数长度变量FunDataLen的功能参数数组FunData,该数组在需要时可以为某些特定功能函数提供足够的控制参数。

图片4.png

图4

关键字:CAN-bus  应用层协议

编辑:杜红卫 引用地址:http://news.eeworld.com.cn/wltx/article_2017050814929.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:TVU Networks 端到端IP视频生态系统惊艳2017全美广播电视展
下一篇:增加CAN总线节点数量的几个方法

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

一文读懂CAN总线/LIN总线/FlexRay/以太网

、用于汽车多媒体和导航的MOST以及与计算机网络兼容的蓝牙、无线局域网等无线网络技术。 在这里,与非网编辑主要讲解一下传统三大总线CAN、LIN、FlexRay和汽车总线“新贵”以太网,看一下每一个汽车总线的特点、优势和未来发展趋势。 CAN总线CAN-BUS即CAN总线技术,全称为“控制器局域网总线技术(Controller Area Network-BUS)”。Can-Bus总线技术最早被用于飞机、坦克等武器电子系统的通讯联络上。将这种技术用于民用汽车最早起源于欧洲,在汽车上这种总线网络用于车上各种传感器数据的传递。 图|CAN总线 汽车上面布满了各种控制单元,越是高级的汽车,其控制单元越多,控制系统越复杂。每个控制单元都可
发表于 2018-01-24

一文读懂CAN总线/LIN总线/FlexRay/以太网,汽车总线的未来是它?

、用于汽车多媒体和导航的MOST以及与计算机网络兼容的蓝牙、无线局域网等无线网络技术。 在这里,与非网编辑主要讲解一下传统三大总线CAN、LIN、FlexRay和汽车总线“新贵”以太网,看一下每一个汽车总线的特点、优势和未来发展趋势。 CAN总线CAN-BUS即CAN总线技术,全称为“控制器局域网总线技术(Controller Area Network-BUS)”。Can-Bus总线技术最早被用于飞机、坦克等武器电子系统的通讯联络上。将这种技术用于民用汽车最早起源于欧洲,在汽车上这种总线网络用于车上各种传感器数据的传递。 图|CAN总线 汽车上面布满了各种控制单元,越是高级的汽车,其控制单元越多,控制系统越复杂。每个控制单元都可
发表于 2018-01-20

汽车总线CAN BUS的保护设计

近年来人们对车身舒适性,安全性及信息娱乐性的智能化高度要求,汽车电子也持续的高速发展着,目前车用电子所占比汽车成本约为40%~60%,各种的车身电子控制系统和车载电子控制装置持续的引入汽车设计架构中,包含各式的传感器模块单元,如温度,轮速,转角和加速度等传感器,搭载着电动辅助转向和电子式驻煞车系统,不断满足我们驾驶员和乘客的舒适乘坐和安全需求。 而在这些为数众多的车用电子系统之间,车用控制器局域网络接口(CAN Bus)由于采用双线串接拓朴架构,可串接或并接任意节点装置,不仅使布线及维护的复杂度大幅降低,并可一并降低线材及布线成本,因此成为首选的车用系统传输接口。  CAN Bus传输接口所采用的双线差动(Two wire
发表于 2017-09-04

STM32F10xx CAN BUS相关库文件的库函数解析

;       * 内部定时器在接收和发送的帧起始位的采样点位置被采样,并生成时间戳。            */           FunctionalState CAN_TTCM;               // ABOM(Automatic Bus-off managerment)           /* 0:软件
发表于 2016-12-26

快速读懂CAN-bus节点的错误处理规则

CAN-bus的可靠性很高,但是在某些情况下还是发生错误,为了使数据能够在总线上可靠传输,CAN-bus规范对各类帧的格式、用途及发送时机都进行了详细的规定。并实现在CAN控制器中自动完成帧格式处理及校验等工作,一旦错误被检测,正在传送的数据帧将会立即停止而待总线空闲时再次重发直至发送成功,该过程并不需要CPU的干涉除非错误累计该发送器退隐(Bus off)。 CAN-bus的可靠性很高,但是在某些情况下还是发生错误,为了使数据能够在总线上可靠传输,CAN-bus规范对各类帧的格式、用途及发送时机都进行了详细的规定。下面我们来总结下在CAN通讯中会出现哪些错误。 图一  位错误:发送节点在发送数据的同时也会对发出
发表于 2016-10-26
快速读懂CAN-bus节点的错误处理规则

CAN应用层协议详解之DeviceNet协议

DeviceNet是建立在CAN协议基础之上,沿用了CAN协议所规定的物理层和数据链路层,并补充了不同的报文格式、总线访问仲裁规则及故障检测和隔离方法。DeviceNet的功能和特点如表1所示。表1 DeviceNet特点CAN应用层协议详解之DeviceNet协议DeviceNet的应用层协议则采用的是通用工业协议(CIP)。CIP是一个在高层面上严格面向对象的协议。每个CIP对象具有属性(数据),服务(命令),连接和行为(属性值与服务间的关系),其主要功能有两个:一是面向连接的通信;二是定义了标准的工业应用对象。下文详细介绍通信部分。CIP通信最重要的特点是它用不同的方式传输不同类型的报文,根据报文质量要求将需要发送的报文分为:显式报文
发表于 2017-04-13

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved