引言
随着我国大型农业机械装备现代化进程的不断推进,农业机械作业信息滞后、时效性差,机收的组织者和参与者对信息快捷、准确、详细的要求难以满足等问题日益突显,同时目前大型农业机械本身缺少有效的工作状态关键信息采集与故障诊断报警手段,致使无法及时掌握其工作状态与寿命状况,降低了农业机械工作效率和作业质量,影响了农业机械装备的发展。
CAN(controller area network)总线凭其可靠的数据通信和良好的错误检测能力,在控制和检测领域备受重视,被广泛应用在环境温度恶劣、电磁辐射强和振动大的工业环境。CAN为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
目前,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,但在大型农业机械装备领域鲜有成功应用报道。
本文以4MZ一6A型六行采棉机智能监控系统为例,通过解析报文标识符帧ID和数据帧含义,研究基于CAN总线应用层协议的制定原则和方法。
1 智能监控系统架构及通信
采棉机智能监控系统是基于CAN总线技术搭建的数字式模块化的综合信息管理与控制平台。监控系统整体架构(图1)由6个子系统构成,分别为监控器子系统、自动对行子系统、参数检测子系统、状态监测子系统、棉花测产子系统和巡航速度自调节子系统。在基于CAN总线的采棉机智能监控系统中,各子系统之间以及子系统内各模块间均通过总线进行信息交换,包括采棉机的启动、停止、速度给定以及参数测量、状态监测、棉花产量测定等。
监控器于系统置于采棉机驾驶室内部,是整个监控系统的核心,即中央控制器。监控器不仅可以接收底层各CAN节点发来的参数信息和工作状态信息,并且通过CAN总线向各控制节点发送命令和数据信息。由6组近红外棉花流量智能传感器组成的棉花测产子系统负责把棉花实时产量转换为数字量,并经模型校正,通过CAN总线发送给监控器和巡航速度自调节子系统。另外,采棉机智能监控系统还包含若干基于CAN总线的各类功能模块。例如:自动对行模块(CanModule.A)用来实现采棉机巡航作业时的自动对行功能;脉冲采集模块(CanModub-B)用来获取行走速度、发动机转速、风机转速、滚筒转速以及水压、油温等参数信息,并经过CAN总线发送给监控器用来显示和处理;监测报警模块(CanModule—C)负责监测各被测点的开关量信息和模拟电压量信息,比如各路吸人门状态、离合器状态、棉花输送带状态等。
采棉机智能监控系统通信信息分为命令和数据2类。命令信息,如速度设定、巡航切换、卸棉、自动对行启动等,其优先级比数据信息高。数据信息,如棉花实时产量、发动机转速、采棉头滚筒转速、水箱压力、开关量报警信息等,其优先级相应低一点。不同的子系统发送的数据信息也有优先级之分,如采棉机本身的参数信息和工作状态报警信息就比近红外棉花流量传感器发送的产量信息优先级高;监控器即中央控制器节点的优先级最高,而底层辅助节点优先级最低。
监控系统中有的信息要求周期性传送,如发动机转速、风机转速等机器参数信息。有的信息属于事件触发发送,如吸入门、离合器等报警信息以及启动、巡航切换等控制命令信息。监控系统中各子系统的通信任务各有轻重,相对而言,中央控制器节点的通信最繁忙,而自动对行子系统的通信很少,一旦自动对行任务启动,子系统自身就可完成自动对行任务。另外,各子系统发送指令和数据信息的字节数都很少,大部分为1至2个字节,很适合CAN总线短帧快速的传送方式。
2 通信协议的制定与实现
采棉机智能监控系统采用模块化、总线化设计,层次清晰,便于维护,具有良好的互换性。根据大型六行采棉机实际需要,智能监控系统共需1只CanModule—A模块、8只CanModule.B模块、4只CanModule—C模块、6对近红外棉花流量智能传感器和1套基于CAN总线接口的行走速度控制模块。因为监控平台涉及的控制模块较多,数据传送量大,因此必须清晰定义CAN总线应用层协议,以确保监控系统各模块之间正确、实时通信。
2.1 总体情况
本系统协议采用CAN 2.0B支持29位标识符的扩展帧。通信速率可根据实际调试情况设置成125、250、500 kb/s等多种总线波特率,暂定采用250 kb/s进行通信。各节点的信息交换只使用数据帧,远程帧不用于数据请求,仅限于节点的自行调试。29位扩展帧包括11位基本ID(即标准帧)和18位扩展ID。基本11位ID按照ID28到IDl8的顺序发送,它定义了扩展帧的基本优先权,其值越小代表优先级越高,其值越大代表优先级越低;18位扩展ID按照IDl7到ID0的顺序发送。
CAN总线协议将通信信息分为2种基本类型:专有信息和广播信息。专有信息是由某一节点发送且仅供某一指定节点接收的点对点信息;广播信息可由任意节点发出,其他所有节点都接收或只有局部多个节点选择性地接收。广播信息的优先级要高于专有信息,且根据其发送节点的不同具备不同的优先级(即优先级是基于节点的)。同样,节点的专有信息也根据信息内容的重要程度分为不同的优先级。
当采棉机开启,监控器上电启动,经时间继电器延时一定时间后,近红外棉花流量传感器、自动对行模块(CanModule—A)、脉冲信号采集模块(CanModule—B)、多路监测报警模块(CanModule—C)
等节点同时启动。监控器首先向棉花流量传感器发送命令和数据,同时接收来自传感器节点的数据信息,完成对近红外流量传感器的校准标定,然后不断地获取来自流量传感器的数据信息。监控器和传感器之间的通信是面向连接的,相当于客户机/服务器,传感器连续地产生产量数据,监控器不停地确认收到的数据信息,发送和接收之间建立点对点的通信,流量传感器不再与系统内其他CAN节点进行信息交换。
在监控器与流量传感器点对点通信时,其他检测和监测模块(如CanModule—A、CanModule.B、CanModule—C等)也与监控器进行实时通信。它们向监控器发送的都是广播帧,进行无确认模式的信息传输,其通信方式相当于生产者/消费者关系,各模块不停地广播数据信息,监控器或者系统各节点通过识别总线上信息的标识符来完成信息通信。
2.2 报文结构
CAN应用层协议制定有较大的灵活性。本协议以CAN 2.0B为基础,在此基础上对29位标识符进行定义。标识符的分配采用了预定义分配方式(表1)。
(1)优先级:由ID28一ID24组成。为便于扩展,将00000、00001两个优先级空缺,留作备用。监控器与行走速度控制模块之间的通信优先级定义为00010,为最高优先级,因一旦出现异常情况,手动驾驶切换和速度控制必须得到及时响应;监控器与CanModule—A类模块发送命令设置为0001 I,为次高优先级,当启动巡航采棉模式时,监控器必须对CanModule.A模块发出控制命令,同理,CanModule.A模块向监控器发送的数据信息也设置同样的优先级;CanModule-C类模块向监控器发送数据的优先级设置成00100,该类模块发送的是故障报警信息,也需要较高的优先级,以确保采棉机出现故障报警时及时响应;CanModule—B类模块向监控器发送信号的优先级为00101,该类模块发送的是采棉机工作参数信息,如发动机转速、风机转速、滚筒转速、润滑液注入量等参数;近红外棉花流量智能传感器的优先级设置为001 10,为最低优先级。
(2)目标节点与源节点:IDl5一ID8为目标节点地址,ID7一ID0定义为源节点地址。在本系统中,监控器的节点地址定义为F5,CanModule-A模块的节点地址为A0,CanModule—B的8只模块节点地址分别为BO—B7,CanModule—C的4只模块分别定义为CO、C1、C2、C3,6只棉花流量智能传感器的节点分别定义为DO—D5(以上均为十六进制地址)。[page]
2.3 举例
各类CAN模块节点与监控器的通信和棉花流量传感器与监控器的通信略有不同,举例说明如下:
(1)流量传感器与监控器的通信:为了均匀地测量棉花流量,每只传感器上置有5组近红外发送和接收检测单元,每组检测单元产生一束16位的流量数据,经监控器计算处理后得到通过该传感器的平均流量。以传感器DO节点为例,解释说明各位含义。表2所示的6个数据帧为传感器(节点地址为DO)正常工作时向监控器(节点地址为F5)发送的数据帧。此时源地址为DO,目标地址为F5,其优先级为00110,帧类型为01(点对点式),因此帧ID为Ox0601 F5DO。该表示方法采用右对齐模式,可以清晰地分辨是源节点DO向目标节点F5发送数据。数据帧l、2、3为一组,代表传送的实时数据流量;数据帧4、5、6帧为一组,代表传送的实时基准调定数值。数据帧1数据值固定,用于表示后续两帧为流量数据。数据帧2的第3位和第4位数据(表中下划线部分)分别表示一组检测单元的低和高位数值,通过CAN总线传送给监控器,然后转换为|J进制数字显示。同理,数据帧2的第5位和第6忙数据分别表示另一组检测单元的低和高位数值;以此类推,数据帧2的第7、8位,数据帧3的第2、3位,第4、5位分别为另外4个检测译元的流量数据。数据帧4、5、6同上类似,只是其代表传感器实时调定数值,不再赘述。
(2)其他CAN模块与监控器的通信:以监控器向自动对行模块A0发送命令为例,源节点地址为F5,目标节点地址为A0,优先级为00011,帧类型为00(广播式),故帧ID为Ox0300AOF5。为了使广播信息能被AO模块唯一接收,必须通过特殊功能寄存器设置屏蔽码。因为CAN控制器采用左对齐方式,所以设置CANIDTl为Oxl8,CANIDT2为0x05,CANIDT3为0x07,CANIDT4为0xA8。这样,A0模块就仅能接收ID为0x0300AOF5的广播数据帧。同理,当A0模块向监控器发送数据时.源地址为A0,目标地址为F5,优先级为00011,故帧ID为0x0300F5A0。监控器可以接收来自任何CAN节点的数据,鉴别出该帧ID,并对相应数据帧进行操作。
3 试验
将图l所示的各子系统采用Atmel公司的AT89C51系列单片机分别设计成基于CAN总线的电路模块,然后通过CAN总线实现中央控制器与各电路模块的信息通信。试验结果表明:基于该CAN应用层协议的采棉机监控系统可以在250kb/s速率下实现各模块之间以及各模块与中央控制器之间的实时无误通信。
监控器软件设计和数据管理基于美国NI公司的虚拟仪器技术。监控器基本上接收来自总线环上所有CAN节点的数据,因此必须进行有效的数据管理,否则将导致数据丢失。本系统采用生产者/消费者模式对数据实施有效管理。图2所示的生产者循环,通过调用库函数采集CAN节点数据,当接收函数返回值为1时,说明收到CAN数据,随即把该数据装进队列,然后由消费者循环进行处理。图3所示的消费者循环,将生产者循环采集到的数据簇取出,再将该数据簇按名称解除捆绑,提取29位帧ID和8字节的数据帧。
将上述经过试验验证的各CAN模块就近分布于采棉机上各数据采集端,信息显示触摸屏置于采棉机驾驶室内,组成一整套采棉机智能监控系统,并于2011年9月中旬在新疆农八师136兵团棉田内进行了工程实践。以5 km/h的速度,收获成熟棉花约6.67 hm2。结果表明:①自动对行子系统可以在无人驾驶的情况下,根据棉垄与传感器的位置关系,实现纠偏自调整。②棉花测产子系统、参数采集子系统和状态监测子系统可分别采集到棉花产量、发动机转速、风机转速以及各开关量状态等信息,并实时不失码地传输给中央控制器进行数据处理(棉花测产子系统的试验数据如表3所示,显示值为仪表显示得到,实测值为棉花称量值)。③巡航速度自调节子系统可以根据棉花在线产量以及模糊规则实时调整车辆行走速度至最佳作业速度,提高工作效率。因此,基于该CAN应用层协议设计的大型六行采棉机智能监控系统是行之有效的。
4 结束语
基于CAN总线的采棉机智能监控系统采用模块化设计理念,可靠性高,维护便利。其应用层协议制定灵活方便,简洁清晰,扩展帧和数据帧的定义符合智能采棉机数据通信的实际状况。通信协议已在4MZ一6A型六行采棉机试验样机中得到成功应刚,实践证明:按此规则定义的应用层协}义不仅能满足采棉机监控系统实际需要,而且具有极强的移植性、扩展性、通用性,可推广至其他大型农业机械或者工程机械的智能监控系统中。
上一篇:基于PCI总线的HDLC通信卡的设计与实现
下一篇:PCI总线数据采集系统的硬件研究
推荐阅读最新更新时间:2024-05-02 23:25