APP下载

基于CAN总线的通信设计与应用

2017-04-23张传明

电子技术与软件工程 2017年5期
关键词:CAN总线设计思路

张传明

摘 要 随着科学技术的发展,当前社会已经逐渐向智能化、信息化、自动化的方向发展,无论是在人们的日常生活中,还是在企业生产过程中,都逐渐开始加大对先进科学技术的应用。本文主要是对CAN总线的通信设计从总体设计思路和设计与应用分析两个方面进行了详细的分析和介绍,这对促进CAN总线技术更好的应用,提高其可靠性和稳定性具有重要的意义和作用。

【关键词】CAN总线 通信设计 设计思路

CAN总线是现场总线中的一种形式,也被称之为控制器局域网,能够实现实时控制或分布式控制的串行通信网络,其具有价格低廉、可靠性高、性能卓越等方面的优势,在各个领域和行业中得到广泛应用。

1 总体设计思路

通过对波形重现装置系统和电力故障录波中的DSP单元与PC单元,可以得出CAN总线共分为下位节点(处理单元)、PC-CAN适配卡以及上位PC单元三个部分。对于CAN总线的通信方式来说,具有一定的多样性和灵活性,工作方式具有一定的多主性,任何一个网络节点都能够当作是主节点来使用,接收其他节点或向其他节点发送数据信息,在PC单元中,开发环境优越、软件资源丰富,因此有利于对数据进行高级管理和处理。在CAN总线上将PC单元作为其中的一个节点,就必须有具有总线控制功能的数据卡。

2 通信软件设计与应用

2.1 CAN总线通信协议

在CAN总线通信协议中,编码的对象由原先的站地址转变为通信数据块。数据块标识码由29位二进制数或者是11位二进制数组成,这样就能够将数据块定义为219个或者是211个。其中8字节是最多的数据段长度,占用总线的时间不会很长,因此通信的实时性能够得到有效保证。在CAN协议中具备纠错功能 和CRC校验功能。因此通信的可靠性也能够得到有效保证。随着在更多的领域广泛的应用CAN技术,这就需要根据领域性质的不同,制定出相应的通信报文标准。

2.2 CAN数据帧结构

发送器与接收器之间完成信息传递的依据主要是数据帧,是CAN中的一种帧格式,其他几种帧格式分别为超载帧、出错帧以及远程帧。其中数据帧是由帧结束、ACK场、CRC场、数据场、控制场、仲裁场以及帧起始七个部分。

2.2.1 帧结束

是由七个标志序列共同组成,这些标志序列都是隐性位。

2.2.2 ACK场

是由应答界定符和应答间隙两个部分构成。

2.2.3 CRC场

其中包括1位CRC界定符和15位CRC共同组成,其中CRC界定符的作用主要是用于进行帧校验,组成部分是1位隐性位。

2.2.4 数据场

主要是由用于发送的数据信息构成,控制场中央的数据长度码,也就是字节数一般为0-8个字节。

2.2.5 控制场

是由4位数据长度码和2位保留位共同组成,其变化长度需要控制在0-8个字节的范围内。

2.2.6 仲裁场

由RTR位和11位标识符共同组成,其中当显性位RTR位的时候代表数据帧,为隐性位RTR位的时候表示数据帧,按照从高到低的顺序依次发送标识符,而且前7位按照规定不能全部设置为隐性位,标识符在总线访问和报文传送过程中具有一定的优先权,优先权与数值大小成反比,即数值越大,优先权越小,数值越小,优先权越大.

2.2.7 帧起始

表示数据帧的开始,是由显性位组成,其中显性位的个数为单数,节点开始发送的基础和前提是总线处于空闲状态,这样能够保证节点与总线的同步进行。

2.3 实现通信

在通信协议设计的过程中,其标准为CAN技术规范2.0A以及实际情况。在整个设计环节中最关键的主要是设计SJA1000内部寄存器的方法,这样就能够快速的设置好传输速率和传输优先级,并按照相应的协议实现数据传输。因此,可以将通信工作分为节点初始化和数据发送与接收两个部分。

2.3.1 节点初始化

第一步是对寄存器进行设置,保证其进入复位状态;第二步是设置好时钟分频寄存器;第三步是设置验收屏蔽寄存器和验收码寄存器;第四步是设置总线定时寄存器;第五步是设置输出控制寄存器;第六步是将控制寄存器进行正常状态,并中断开放;第七步是结束。

在节点初始化的过程中,首先需要设置好其中的复位请求位,只有将其设置为“高”时,才能够初始化设置CAN控制器,然后再设置其他的CAN寄存器。滤波设置的验收工作是由验收屏蔽寄存器和验收码寄存器共同完成的,当系统设置好这两个寄存器之后,就能够优先设置其他节点,并同步判断接收数据的正确性。如果接收缓存器中存在空置现象的话,并满足以下两个条件的话,才能够完成报文信息的完整接收,其条件为:

(1)验收寄存器与报文中标识符的高8位之间是相互对应,且相同的;

(2)在验收屏蔽寄存器中的8位设置成不相关,这也就表示AM.7-AM.0=11111111B。如果接收緩存器不能满足上述条件的话,则不能正确的接受报文数据信息。

总线中的定时寄存器分别为BTR1和BTR0,通过合理的设置这两个定时寄存器,同步跳转宽度和波特率就能够唯一确定下来。

2.3.2 数据的发送与接收

根据技术规范要求,CAN控制器SJA1000能够独立完成数据发送和接收。在发送程序中,需要保证数据能够准确的发送至缓存器当中,并将命令寄存器的发送请求位置位。在数据接收的时候,数据通过CAN控制器和总线,能够传至接收缓存器当中,如果其中的数据有效,在本地储存器中就会将数据储存下来,并将接收缓存器释放,进而处理接收到的数据。

3 结语

目前在医疗器械、智能大楼、工业现场控制、汽车制造等多个领域都已经逐渐开始应用CAN总线技术,能够快速的对数据进行传输、处理和分析,其抗干扰性、可靠性以及实时性都得到有效保障。

参考文献

[1]黄湘俊,许同乐,杜华程,侯蒙蒙,宋洪宇.基于CAN总线的尾矿库在线监测预警系统[J].金属矿山,2014(01):129-132.

[2]昌路,郭永红,关永峰,范骜驰.一种开放式CAN总线网络仿真开发平台的实现[J].系统仿真学报,2014(06):1236-1243.

[3]陈海燕,刘思远,袁春柱,李志刚.支持多主通信的星载CAN总线应用协议设计[J].航天器工程,2014(04):72-76.

[4]陈腾鹏,吴萌岭,缪许敏,沈国金.基于ARM的CAN总线通信节点设计及其在轨道交通制动系统中的应用[J].仪表技术与传感器,2012(06):101-102+105.

[5]林智伟,蒋东方,牛鹏宇.基于FPGA与ARM单片机的CAN总线分析仪设计[J].计算机测量与控制,2011(09):2308-2311.

猜你喜欢

CAN总线设计思路
基于嵌入式的汽车辅助制动系统研究
基于人本管理的企业薪酬体系设计思路探索
文言文的阅读教学改革的一点尝试