基于CAN总线的通信协议设计

上传人:冷*** 文档编号:22326578 上传时间:2021-05-24 格式:DOCX 页数:3 大小:15.33KB
收藏 版权申诉 举报 下载
基于CAN总线的通信协议设计_第1页
第1页 / 共3页
基于CAN总线的通信协议设计_第2页
第2页 / 共3页
基于CAN总线的通信协议设计_第3页
第3页 / 共3页
资源描述:

《基于CAN总线的通信协议设计》由会员分享,可在线阅读,更多相关《基于CAN总线的通信协议设计(3页珍藏版)》请在装配图网上搜索。

1、基于CAN总线的通信协议设计摘要:结合工业测控通信系统的需求,设计了CAN的高层协议CHP协议。通过初始化帧实现了地址的动态分配与帧格式的约定,采用节点分类和定期查询的方法实现了节点状态的监控。针对大块报文重传效率较低的问题,提出了集中应答和选择性重传错误帧的解决办法;针对大块报文可能导致较大延时的问题,设计了实时报文的抢占机制。关键词:CAN;通信协议;地址分配;状态监控;大块报文1、引言 CAN即控制器局域网(Controller Area Network),属于多主工作方式的串行通信协议【1】。CAN以其卓越的性能和突出的优点,广泛应用于汽车通信控制【2】、工业测控系统、楼宇自动化、医疗

2、设备等各个领域,被认为是最有前途的现场总线之一【3】。 但CAN只定义了物理层和数据链路层,故CAN本身不是一个完整的协议,在面向特定应用时,必须设计相应的高层协议。目前,基于CAN的高层协议有CANopen、J1939、DeviceNet等,这些协议较为庞大复杂【4】,开发应用的难度较大,而且使用成本较高【5】。因此针对工业测控通信系统,很有必要设计简单高效的通信协议。 2、CAN的特点及运行机制 CAN具有如下特点:多主工作方式;传输速度快;抗干扰性强;高可靠性和低错误率【3】;高效的短帧结构,如图1所示。其中SOF表示帧起始,为一显性位。根据仲裁域标识符的长度不同,可以将CAN帧分为标准

3、帧(11位标识符)和扩展帧(29位标识符)两种格式【6】,帧的数据域最多只能传输8字节的有效数据。 图1CAN的帧结构 CAN的非破坏性仲裁规则:总线值用显性位“0”或隐性位“1”表示【4】。报文的优先级由标识符确定,优先级的比较通过标识符的逐位仲裁实现【6】,标识符越小的报文具有越高的优先级【7】。 CAN通信系统通常由上位机和下位机两部分组成。上位机通过人机交互界面,实现参数配置与资源管理等功能。下位机为现场节点设备,接收上位机的数据,并执行相关的操作,完成数据的采集和简单的信息处理。 3、CHP协议的设计 为了保证协议的兼容性,CHP以CAN2.0B扩展数据帧为基础。扩展数据帧的格式如图

4、2所示: 图2CAN2.0B扩展数据帧 根据图2所示的扩展帧格式,定义了CHP协议的报文格式,如表1所示: 表1CHP协议的报文格式 序号7654321 0 B0报文类型 MessType 2bit优先权 Priority 6bit B1目标地址DestID7bitRTR B2源地址SourceID7bitFF B3数据类型 DataType3bitSF数据长度码 DLC4bit Data0 帧序号FrameSeq4bit保留Data1 DATA . .Data7 DATAa) 字段编码 i. 主要功能段 MessType表示报文的类级别,用于定义和区分不同实时程度的帧。即根据实时程度将报文分

5、成不同级别的类。报文的实时性越强,报文的类级别越高。以MessType取2bit为例,可以用00表示最高级别的报文类,01表示次高级别的类,10表示最低级别的类。 Priority表示报文的优先权。MessType将报文分成不同级别的类之后,每个类就对应了一个子队列,然后在子队列中(即类内部)进行优先权排队,这样,所有的报文就形成了一个虚拟的全局有序队列。 DestID和SourceID分别表示报文的目标地址和源地址。此处使用7位地址标识符,可表示128个不同的节点地址,能够满足大多数的工业应用需求。 RTR为远程请求位,远程帧的RTR位为1,数据帧的RTR位为0。 DataType表示数据类

6、型:常规数据、命令、参数或者它们的组合。以3bit表示数据类型为例,可以设该字段的第一位为常规数据标志,第二位为命令标志,第三位为参数标志。即其编码含义为:100表示常规数据,010表示命令,001表示参数,101表示同时传输数据与参数,011表示命令与参数,111表示数据、命令与参数的组合。 DLC表示报文携带数据的长度,取值为08字节。FF表示帧格式。 ii. 特殊功能段 FrameSeq表示大块报文的帧序号。大块报文通常为非实时性报文,时间要求相对宽松,而其传输的概率也较小。故为了有效利用空间,使用数据域首字节Data0的高4位作为帧序号FrameSeq的存储空间,能够表示16帧。帧序号

7、FrameSeq只在传输大块报文时使用,临时借用数据域的Data0的空间,大块报文传输完后必须归还。在此过程中,只能传输7字节的数据。当这部分空间归还之后,仍能装载8个字节的数据。 b) 帧的类型 对CHP报文的各个字段进行不同的编码,即可实现各种功能的帧。 i. 广播帧 广播帧,用于实现消息的群发功能,网络中的所有节点都能收到此帧。只需将CHP报文的目标地址设置为全0,即DestID=0000 000表示该帧为广播帧。 ii. 初始化帧 初始化帧,专门用于请求上位机分配地址和约定帧格式,是一种特殊的广播帧,仅在系统初始化或新节点加入时使用。初始化帧以广播帧为基础,即目标地址DestID=00

8、00000,其源地址为SourceID=1111111。 iii. 数据帧 数据帧,可用于传送常规数据、命令、参数及其组合,将RTR设为0,并设置分段标志SF。若为大块报文,则设置相应的帧序号FrameSeq。 另外,远程帧用于向远端节点请求数据,只需将RTR位设为1,同时填入相应的目标地址DestID和源地址SourceID即可。出错帧、超载帧的格式与CAN2.0规范定义的帧格式相同,此处不作介绍。 4、CHP协议的关键技术 a) 地址的动态分配与帧格式约定 传统的CAN在系统运行前分配静态地址,而CHP协议借鉴了DHCP的思想,采取动态分配地址的方法。在此过程中,上位机充当了一个类似于DH

9、CP服务器的角色,当新节点加入时,自动为新节点分配地址,具体过程如下: 新加入节点Si请求地址和帧格式。节点Si通过发送初始化帧的方式提交申请。 上位机分配地址及约定帧格式。上位机收到Si的申请之后,查询地址池并选择一个未使用的地址,将其分配给Si,同时约定帧格式FF。 地址和帧格式确认。节点Si收到上位机的回信后,立刻使用新地址和帧格式发送确认应答。上位机收到确认应答信息后,地址的分配和帧格式约定便已经完成。 b) 节点状态查询 为了有效地监控CAN通信系统的运行状态,设计了节点的状态查询功能。该功能通过上位机周期性地发送状态查询报文实现。具体的算法如下: 节点分类。上位机将下位机节点分成两

10、个集合:集合Uyes表示状态已知的节点,即在时间T内与上位机有过通信的节点。集合Vno表示状态未知的节点,即在时间T内与上位机没有联络过的节点。 发送状态查询报文。上位机每隔一定的时间T就执行一次查询。状态查询报文只发送给那些在时间T内与上位机没有通信过的节点Vno。在时间T内与上位机有过通信的节点Uyes一律视为状态正常节点。 反馈状态信息。Vno节点收到查询报文后,必须及时反馈状态信息。上位机在发送状态查询报文的同时,启动计时器。如果在规定时间内,没有收到Vno节点的反馈信息,那么上位机将此节点标记为已失效节点,并回收其地址。 c) 大块报文的多帧传输 当数据的长度大于8个字节时,必须把报

11、文分解成多帧进行传输。报文标识符中的分段标志SF和帧序号FrameSeq用于多帧的传输。 i. 分段标志与帧序号 SF为分段标志(Segment Flag),SF=0表示短帧报文,无需分成多帧。SF=1表示大块报文,必须分成多帧传输,相应地设置帧序号FrameSeq,对各个帧进行编号。 ii. 大块报文的应答与重传机制 对于大块报文的多帧传输,如果不进行帧编号,当其中的某帧或几帧发生传输错误时,将会导致频繁的应答和重传,这样的传输效率必然很低。 引入帧序号FrameSeq之后,就可以采用集中应答的方式有效地解决这一问题。当大块报文传输结束之后,接收端将应答信号和错误帧的序号一起发送给源节点。这

12、样就可以避免接收端频繁地发送应答信号,并实现了选择性地重传错误帧,提高了大块报文的传输效率和带宽利用率。 iii. 预约抢占机制 CAN总线本身属于非抢占式协议,如果当前时刻总线上有报文在传输,那么必须等待该报文传输完毕。对于大块报文的多帧传输,传统的CAN协议使用统一的优先级进行传输,而且不允许中断。这会导致一个很严重的问题:实时性报文不能及时发送。报文的延时将随着帧数的增多而大幅增加【7】,从而可能导致实时性报文失效。因此,设计了实时报文的抢占机制,具体过程如下: 准备发送大块报文的节点发送预约广播。预约广播有两方面的含义:一方面,如果其它节点没有更紧急的报文要发送,那么将开始发送大块报文

13、。另一方面,如果在大块报文的传送期间,有强实时性报文要发送,那么允许抢占总线。 在大块报文传输期间,发送强实时性报文的节点可以通过发送抢占标志(连续n个显性位,如n取10)的方式抢占总线,然后发送实时性报文。 强实时性报文发送完之后,发送大块报文的节点将再次申请总线,将剩余的帧传输完。 5、结语 本文研究了CAN通信协议的设计方法。定义了CHP报文的格式和各功能段的编码。通过初始化帧实现了节点地址的动态分配与帧格式的约定。采用节点分类和定期查询的方法实现了节点的状态监控。针对大块报文的多帧传输,引入了分段标志和帧序号,提出了集中应答和选择性重传错误帧的办法,提高了帧的传输效率。预约抢占机制保证

14、了实时性报文的实时性。 参考文献: 【1】 阳宪惠. 现场总线技术及其应用(第2版), 北京:清华大学出版社,2008.10. 【2】 ISO-IS11898, Road vehicles-Interchange of digital information- Controller Area Network (CAN) for high speed communication, 1993. 【3】 夏继强,邢春香等.现场总线工业控制网络技术, 北京:北京航空航天大学出版设,2005,10. 【4】 王苏敬,王立德,申萍等. 列车用CAN总线应用层协议研究与实现, 北京交通大学学报,2008,10, 32-34 【5】 辉亚男,冷文浩,刘培林. CAN总线应用层通信协议的设计与实现, 计算机工程与设计,2008,2, 669-671. 【6】 李晓静,张侃谕. 基于CAN总线的温室群控系统设计与实现, 计算机工程, 2010, 1, 245-246. 【7】 薛雷. CAN总线的动态优先权分配机制与非实时数据的传输.计算机工程与应用,1999,12, 34-35 肖存龙,卜乐平,王黎明等. CAN总线实时性分析, 微计算机信息,2009(25)64-65. 史久根.CAN现场总线系统设计技术, 北京:国防工业出版社,2004,10.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!