1系统硬件设计
1.1CAN节点设计将SJA1000的AD0~AD7连接到单片机的P0口(需接上拉电阻),片选CS接到P2.7上;当引脚P2.7为0时,单片机片外存储器地址的最高位为0,同时选中SJA1000,这样单片机根据相应的地址信息就可对CAN控制器进行读/写操作了。另外,SJA1000的ALE,WR,RD分别与单片机的读/写选通引脚、锁存控制引脚相连。为了使STC系列单片机选择Inter模式,需将MODE引脚配置为高电平,复位端RST与单片机的P2.2引脚相连,这样CAN控制器的复位过程完全可由单片机控制。SJA1000的INT1接单片机的INT0,微控制器通过中断方式访问SJA1000[4]。由于车载测产系统有较强的振动和电磁干扰,CAN控制器并不是直接与总线驱动器相连,而是在它们两者之间利用高速光电耦合器进行电气隔离,从而更好地抑制了总线误码率和出错重发的情况。CAN总线的驱动电路如图2所示。TMS320LF2407A是美国TI公司的DSP控制器,内部集成了支持CAN2.0B协议的CAN控制器模块,CAN节点的发送和接收采用邮箱方式,并可通过自测试判断单节点通信状态是否正常。另外,CAN控制器具有自动重发功能,当发送过程中出现仲裁丢失或错误时,可重新发送数据。由于TMS320LF2407A构成的CAN节点硬件电路简单,只需要一个CAN驱动芯片即可将DSP轻松地接入CAN总线网络。图3为总线驱动器(PCA82C250)和微控制器(TMS320LF2407A)的接口电路。其中,PCA82C250的作用是完成对总线的差动发送和接收;R4是CAN终端匹配电阻,大小为120Ω,起到抑制回波反射的作用;电阻R1,R2,R3和二级管D1构成电平转换电路,将转换得到的3.3V供给TMS320LF2407A,而5V供PCA82C250使用[5]。1.2CAN总线网络设计CAN总线网络即CAN总线局域网,是由多个CAN节点连在一起构成的通讯网络,通讯介质可为双绞线、同轴电缆或光纤。本系统中的CAN节点主要包括:①测产系统主控机:农业机械作业时完成对速度、粮食动态质量、经度、纬度、时间等的动态监测,同时将数据分类、分析、处理及存储。②GPS模块:实时监测农业机械的位置、速度和时间等信息。③动态电子秤模块:粮食动态质量的测量。④滚筒转速测量模块:当转速超过设定限制时报警。联合收割机测产网络系统的CAN总线网络结构如图4所示。
2系统软件设计
2.1单片机的CAN通信程序由单片机和CAN控制器构成节点的程序设计主要包括3部分:初始化CAN控制器、报文发送和报文接收。SJA1000初始化流程图如图5所示。初始化完成后,如果有数据需要发送时,先将待发送数据组成特定的帧格式,并写入发送缓冲区,就可以启动CAN控制器发送数据了;而当有节点需要接受数据时,则有以下两种接收方法:查询接收和中断接收。如果系统对实时性要求不高,通常采用查询接收。由于本系统要实时监测粮食动态质量和滚筒转速等,因此采用中断接收的方法。2.2TMS320LF2407A的CAN通信程序由TMS320LF2407A构成的CAN节点通信程序主要包括初始化CAN模块、报文发送和报文接收。TMS320LF2407A内嵌CAN控制器的初始化流程如图6所示。在CAN通信过程中,TMS320LF2407A采用邮箱方式进行发送。CAN控制器的发送邮箱有邮箱4和邮箱5以及配置为发送方式的邮箱2和邮箱3。当写数据到发送邮箱后,相应地发送请求位使能,则发送邮箱中的信息帧被发送到CAN总线上。CAN控制器的接收邮箱有邮箱0和邮箱1,以及配置为接收方式的邮箱2和邮箱3。如果要接收数据,则先要将发送数据方的标识符和接收邮箱进行比较:如果相同,即可接收数据;但如果只是被屏的蔽寄存器设置为屏蔽的那几位标识符不相符,则仍能接收此信息[6]。2.3应用层协议应用层是直接为用户提供各种应用服务的,包含各种应用程序。有些由于使用非常普遍而实行了标准化,这些标准形成了应用层上的各种应用协议[7]。通常CAN总线网络协议主要有两种情况:一是协议由自己制定的,国内大多CAN网络系统都采用这种方案,优点是协议简单易用,缺点是互操作性和互换性差;二是当需要与国际标准设备进行接口时,选择使用国际标准协议,如DIN9684和IS011783等[8]。由本系统通信节点个数不是很多,并且系统处于测试阶段,因此采用自制定协议。
3系统测试结果与性能指标分析
3.1测试结果基于CAN总线的车载测产系田间实验数据结果如表1所示。表1中的数据为处理后的系统主机每秒钟通过CAN总线收到的各从机数据。其中,滚筒转速是通过电容式接近开关采集后模拟上传的数据,GPS相关数据由美国Trimble(天宝)的卫星信号接收机接收。3.2性能指标分析CAN总线是一种实时性好且高效的控制网络,数据传输速率可达1Mbps;但由于受到网络负载、传输延时、数据包响应时间等因素的影响,系统通信的实时性往往不能满足要求。为了分析本系统CAN总线网络的实时性能,将针对本系统的实验数据,从CAN数据包响应时间和波特率的关系、网络负载和波特率的关系等方面进行分析,从而判断本系统设置波特率的合理性。3.2.1网络负载率与波特率的关系在由CAN构成的总线系统中,网络负载是指在单位时间内传送数据的位数。网络负载较大时,通信系统的实时性就较差,甚至导致通信瘫痪。因此,网络负载是CAN总线网络通信的重要指标之一。其中,S1和S2分别为总线系统实际传送位数与可传送位数;N1和N2分别为单位时间周期型和事件型数据传送的个数;S3为数据帧一帧的位数。当公式中的单位时间为1s时,则总线系统的波特率就是S2。波特率的设置与网络负载率密切相关。当总线系统上实际传送位数不变时,波特率在l0~1000kbps间变化,网络负载率随之变化,如图7所示。由图7可知:系统的网络负载率随着波特率增加而降低,当波特率在10~600kbps之间变化时,网络负载率随着波特率的增加而减小,且变化很快;而在通信系统中,网络负载率越小,则表示通信的性能越好,但同时也对节点硬件要求较高。所以,除了满足通信性能的前提外,还要避免浪费,充分利用网络节点,波特率设置在250~600kbps较好。本系统中的波特率设置为500kbps,总线负载率约为7.2%左右,符合系统对实时性的要求。3.2.2波特率对CAN数据包的响应时间的影响可以利用两路CAN控制器和节点控制器内部的定时器计算CAN数据包的响应时间,并通过对CAN数据包响应时间和波特率之间的关系,来分析波特率对CAN数据包的响应时间的影响。测试的具体步骤:t1设定为定时器的初始值,当节点间要发送数据时,启动定时器;当接受数据完毕后,关闭定时器,此时记录的定时器值为t2。将波特率从1Mbps逐渐降低,利用式(2)可以得到CAN数据包响应时间和波特率之间的关系,如表2所示。从表2中发现:波特率在5~100kbps变化的过程中,波特率增加,而CAN数据包响应时间减小;但如果波特率从100kbps继续增加时,响应时间基本不变。因此,通过对波特率和CAN数据包响应时间关系的分析,本系统的通信波特率设置为500kbps也是合理的。
4结语
本文研究的基于CAN总线的联合收割机测产网络系统在哈尔滨香坊农场进行了田间试验。试验表明:测产系统可完成对联合收割机收获谷物重量的动态称重、滚筒转速测量和采集有地块的经纬度GPS定位信息,并可实现实时显示和存储现场的数据;将信息同产量信息组合形成地理信息系统可以应用的数据格式,最后导入到软件(如MapGIS)中进行后期处理,提供给有权限的政府机关和科研部门参考。在对系统试验数据的后期处理中发现,试验中通信的正确率、误码率和丢失率均为零,且具有较好的率容错机制、通信实时性和总线利用率工程项目管理。
作者:白龙 王才东 刘洁 单位:牡丹江师范学院 郑州轻工学院 牡丹江医学院附属红旗医院