引言 随着棉花采摘机械化程度的逐年提高,2012 年新疆兵团机采棉种植面积已到 33. 3 万 hm2,跨区作业使得采用自动测产系统进行棉花产量监测已具有可行性和必要性。通过自动测产系统获得棉花产量数据的空间分布情况以指导变量作业,是实现棉花精准作业中至关重要的一个环节。采棉机产量监测系统作为在线数据采集和处理系统,系统设计的可靠性和实时性至关重要,CAN 总线和 WinCE 作为高可靠性和实时性的现场通信技术和嵌入式系统是采棉机产量监测系统研发的较佳选择。
1 系统组成及通信架构
采棉机产量监测系统是基于 CAN 总线技术搭建的数字式模块化的综合信息采集与处理平台。整个系统由棉花流量传感器、GPS 接收机、采摘头高度传感器、风机转速传感器、地速传感器、智能终端及相应 CAN 通信控制单元组成,如图 1 所示。【图1】
在基于 CAN 总线技术、嵌入式技术、GPS 技术研发的采棉机产量监测系统中,智能终端( 即中央控制器) 作为主控节点通过 CAN 总线不仅可以接收底层各 CAN 节点发来的数据,而且还可以向各从节点发送命令。系统运行时,主控节点向传感器节点、GPS 节点和 4 个棉花流量节点发送控制命令,以确定各从节点的工作状态。当主控节点成功接收到某个从节点的返回信息时,开始接收该节点发送的数据信息; 否则,在终端上报错相应从节点的工作状态以通知用户及时排除故障。 2 CAN 应用层协议制定
根据采棉机产量监测系统通信设计的需要,在CAN 总线上传输的信息帧类型有数据帧和远程控制帧,再加上多节点间通信以及产量监测系统的高实时性要求,且数据传送量较大,因此必须合理定义 CAN总线应用层协议,以确保主控节点与各从节点之间可靠、实时通信。
在 CAN 应用层协议的定义中,标识符的分配至关重要。本协议基于 CAN2. 0,采用预定义分配方式对标准帧 11 位标识符 ID 进行定义,如表 1 所示。11 位标识符定义了各 CAN 报文的优先级: 数值越小,优先级越高; 数值越大,优先级越低。CAN 总线上信息类型均为专有信息,主控节点与各从节点的通信采用点对点的传输模式,各从节点间无数据通信。采棉机工作时,系统各模块上电工作,控制终端向各个从节点发送远程帧( 启动帧) ,各从节点接收到命令后开始向控制终端发送数据信息( 数据帧) ; 当系统需要停止工作时,控制终端再次向各从节点发送远程帧( 结束帧) ,以告知各从节点停止向控制终端发送数据。【表1】 11 位标识符按照 ID10 到 ID0 的顺序从高位到低位依次发送。ID10-ID8 定义为报文的优先级段; 000、001 两个优先级空缺,留作扩展用。启动发送帧和停止发送帧的优先级分别定义为 010、011 两个较高优先级,以便实现对整个 CAN 总线通信系统的控制。棉花流量节点、GPS 节点、传感器节点向终端发送数据信息的优先级分别设置为 100、101、110。ID7-ID6 两位定义为报文的帧类型段,00 定义为数据帧,01 定义为远程帧,10、11 留作扩展用。ID5-ID3 和 ID2-ID0分别定义为报文的目标节点段和源节点段。根据系统标识符 ID 分配及定义,可得到本系统 CAN 总线通信的信息明细表,如表 2 所示。【表2】 3 CAN 通信网络建模与仿真
OPNET Modeler 作为主流的网络仿真工具,其强大的系统建模和仿真分析功能为工程技术人员提供良好的网络技术和产品开发平台。笔者采用该工具对所研发的采棉机产量监测系统 CAN 通信网络进行了建模,并对通信网络的性能进行了仿真分析。
3. 1 通信建模
图 2 为根据 CAN 协议设计的三层网络节点模型,自上而下依次为应用层、数据链路层、物理层。应用层由 src 和 sink 两个处理机进程模块组成: src 模块负责产生数据报文并向总线发送; sink 模块负责处理从总线上其它节点接收到的报文。数据链路层通过队列进程模块实现优先级仲裁、侦错功能,并与物理层和应用层交换数据。物理层由一组收发信机组成,完成收发 CAN 报文的基本功能。【图2】
mac 进程模块采用载波监听多路访问 / 冲突检测( CSMA/CD) 协议访问 CAN 总线,以实现 CAN2. 0 的协议,其模型如图 3 所示( 图中数字代表转换条件) 。
mac 模块数据处理进程主要有两个通信过程组成,模型运行时,首先进入 init 状态读入模型参数和总线传输速率,而后进入空闲状态 idle。当应用层有发送数据请求时,则由 idle—tx_packet( 发送状态) —idle 构成一个发送环,完成数据发送功能; 当物理层有接收数据请求时,则由 idle—rx_packet( 接收状态) —arbi-tration( 仲裁状态) —resolution( 决策状态) —rcv( 接收完毕状态) —wait( 等待状态) —idle 构成一个接收环,完成数据接收功能。在通信进程中,仲裁状态( arbi-tration) 根据 CAN 报文 ID 标识符决定要接收的数据。
如果仲裁超时,则由决策状态进行错误检测和处理,并向错误帧状态( tx-error) 发送错误请求。接收完毕状态根据模型运行状态和消息请求决定进入仲裁状态、只听状态( suspend-trans) 、等待状态、接收状态或者发送状态。【图3】 3. 2 仿真结果分析
笔者分别在 250kb/s、500kb/s、1Mb/s 的传输速率下,仿真分析了采棉机产量监测系统 CAN 通信网络优先级、误码率与消息端对端( ETE) 平均延时、网络负载的关系,仿真结果如图 4、图 5 所示。【图4-5】 图 4 结果表明: 在同一传输速率下,网络中消息的 ETE 平均延时随着优先级的降低而增大,网络的实时性也随之变差; 在同一优先级下,总线传输速率越高,网络中消息的 ETE 平均延时越小,网络的实时性越好。
图 5 结果表明: 在 500kb/s 的传输速率下,当网络中的误码率低于 0. 001 时,网络负载会随仿真时间而增大; 当误码率达到 0. 01 时,负载率先快速增大而后又急剧减小,最后稳定在 10% 左右,远低于正常值15. 5% 左右,此时总线网络已无法正常传输数据。这是由于误码率在一定范围内增加会导致总线上错误数据帧增多,需重发的数据帧数量增大,当误码率大于一定值时,导致相应错误节点转换到关闭状态而退出总线网络,使总线上的网络负载急剧下降。因此,为保障采棉机产量监测系统 CAN 通信网络的可靠性,误码率应保持在 0. 001 以下。 4 试验测试 根据采棉机产量监测系统 CAN 总线通信设计和应用层协议定义,将图 1 所示的各 CAN 节点采用ARM5749 单片机分别设计成基于 CAN 总线的电路模块,并通过 CAN 总线实现 WinCE 智能控制终端与各电路模块的信息通信。
基于 VS2005 MFC WinCE 智能设备开发,终端监控系统将 CAN 报文发送、接收和处理分别放在不同的线程中完成,充分利用 WinCE 所支持的多线程技术,以实现 CAN 总线快速、可靠通信,保证系统通信的实时性和稳定性。试验结果表明: 基于该 CAN 应用层协议的采棉机产量监测系统可以在 500kb/s 速率下实现各模块与终端之间的实时无误通信。
将采棉机产量监测系统安装在 John Deer 9970 采棉机上( 如图 6 所示) ,于 2012 年 10 月 20 日 ~ 23 日在新疆农八师 122 团试验田内进行试验。【图6】 由于田间试验棉花流量较大,采棉机正常工作时行走速度为 3. 5km/h,风机转速为 3 800 ~ 4 120r/min。此次实验共计 6 组,收获面积约 1. 7hm2,实验结果如表 4 所示。田间测试结果表明: 该棉花产量监测系统通信可靠,运行稳定; 系统相对测量误差的绝对平均值为 5. 93% ,可以满足设计要求。【表4】
5 结论
采棉机产量监测系统 CAN 通信网络采用模块化设计,可靠性高,维护便利。其应用层协议定义清晰,采用标准帧实现了短帧 CAN 报文的快速响应与处理,符合 产 量 监 测 系 统 的 实 时 性 要 求。基 于 嵌 入 式WinCE 多线程处理机制的 CAN 总线通信为终端实现大量信息的实时监测与处理提供了支持,保障了整个通信系统的稳定性。试验测试结果表明: 该通信设计不仅能够满足采棉机产量监测系统的需要,而且具有一定的扩展性、移植性和通用性,可推广至其他智能测控通信领域。
参考文献:
[1] 戚亚平. 新疆兵团机采棉面积逐年增加 今年达到 500 万亩[EB/OL]. ( 2012-10-16) . [2] 张彦娥,张漫,张文革,等. 采棉机测产系统数据采集与处理的试验研究[J]. 农业机械学报,2005,36 ( 4) : 95-98. [3] 陈伟,马蓉,芦帅,等. 机采棉在线测产技术及其关键装备[J]. 农机化研究,2011,33( 10) : 216-219. [4] 林鑫洁,马蓉,安光辉,等. 基于 CAN 总线的棉花在线测产系统设计[J]. 农机化研究,2013,35( 4) : 179-182. [5] 苗中华,褚剑钢,刘成良,等. 采棉机智能监控系统 CAN 应用层协议设计[J]. 农业机械学报,2012,43( 1) : 180 -184. [6] 彭权威. 基于 OPNET 的列车通信网络仿真研究[D]. 成都: 西南交通大学,2010.