《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 基于ISO11783的ECU通信节点设计

基于ISO11783的ECU通信节点设计

2008-07-09
作者:席志强1 , 周志立1 , 张明

    摘  要: 介绍了ISO11783通信协议的基本特点,并给出了一种基于TMS320F2812 DSP实现的ISO11783总线ECU通信节点的软硬件设计方案。
    关键词: 通信技术  ISO11783  TMS320F2812  ECU  农业机械

 

    随着拖拉机与自走式农业机械" title="农业机械">农业机械向电子化方向发展,目前农林车辆上的电子装置也越来越多,而给农业机械添加电子设备的必然结果是:要求这些电子设备之间能够实现相互通信。例如,拖拉机上的牵引力控制器可以和传动机构以及发动机的控制器之间进行通信,从而达到优化性能的目的。电子通信用来协调车辆上的各个部件,允许信息在各部件之间共享,从而实现分布式控制。增加通信的费用只占整个电子化开发成本的一小部分,但却可以给车辆带来功能、生产效率和性能方面的重大改进[1]
    农林车辆传统的电气系统大多采用点对点的单通信方式,相互之间少有联系,其结果是造成庞大的布线系统[2]。有鉴于此,国际标准化组织根据现代农业机械发展的需要,特别是精密农业领域未来的发展趋势,制定了农林机械、拖拉机串行控制和数据通信的网络总线协议标准,即ISO11783标准(通常称为ISOBUS)。这个标准为在拖拉机为农具之间统一交换数据和控制指令提供了技术可能,满足了车辆各种电气设备信息共享的要求,并对关于农业机械的各种变量参数的定义和表示进行了规范,从而使不同原始设备制造商所开发的设备能够做到互通互联。本文主要对实现ISO11783总线通信的最小系统以及采用TI公司的TMS320F2812 DSP作为微处理器的ECU通信节点的软硬件设计方案进行探讨。
1 ISO11783总线特点
  ISO11783参照SAE J1939、DIN 9684标准,以控制器局域网总线协议(即CAN 2.0B)作为网络协议支持,规定了在拖拉机或农具上悬挂或安装的各种不同设备(如:任务管理器、虚拟终端、设备控制器、传感器和执行器)之间进行信息传输交换的方法和格式。
  ISO11783的物理层标准用来实现电子控制单元(ECU)和网络总线部分的电气连接,与ISO11898规范兼容并采用符合该规范的CAN控制器及收发器。总线段最大长度为40米,数据传输率为250Kbps。ECU连接总数受限于总线的电气负载能力,按照ISO11783物理层电气参数规定,每段最多连接30个ECU。传输介质为四芯双绞线,其中两条导线分别为CAN_H和CAN_L,由通信信号驱动;另外两条导线为TBC_PWR和TBC_RTN,为总线段上的终端偏置电路(TBC)供电线。整个11783总线至少被分成两个部分:应用于拖拉机上自身各个功能器件之间通信的拖拉机总线及用于拖拉机所安装的各个附加功能设备(如虚拟终端、任务控制器和GPS等)以及各个农具ECU之间实现通信的设备总线[3]。其网络结构如图1所示。

                       
    ISO11783协议在CAN 2.0B协议的基础上具体实现了应用层" title="应用层">应用层, 将CAN 扩展帧封装成一个单一的协议数据单元(PDU)。ISO11783PDU数据格式由七个部分构成:优先权、保留位、数据页、PDU格式、特定PDU(目标地址、组扩展或专用)、源地址和数据域,如表1所示。这些域的信息由应用层提供。在传输过程中,先将PDU分隔成一个或多个CAN 数据帧,然后通过物理介质传输到其他网络挂接设备上。

                        
  优先权用于总线传输中优化数据延迟,保留位留待将来扩展使用,数据页为选择参数组扩展的辅助页位,PDU格式(PF)有PDU1和PDU2两种,用来确定数据域对应参数组编号。特定PDU(PS)的定义取决于PDU格式,若PF域的值小于240,则PS域是目标地址;若PF域的值在240~255之间。则PS为组扩展(GE)值。当PF=239时,为专用PDU1格式;PF=255时,为专用PDU2格式。使用两种PDU 格式,不但能实现定向到特定目标地址的通信,还能提供尽可能多的参数组编号组合。已定义的专用PDU格式因制造商而异。源地址为消息发送设备在总线网络中的地址[4]
2 总体设计
    典型的基于DSP的ISO11783通信系统结构框图如图2所示。每个节点均由物理层接口CAN总线收发器模块、DSP控制器模块、应用层模块组成。总线的每个终端需接抑制信号反射的终端电阻,其阻值应与总线介质的特性阻抗相匹配,使用双绞线时一般取Rr=100~200Ω。

                 
2.1 硬件设计
  主控芯片CPU采用TI公司的TMS320F2812 DSP作为微处理器,它内部集成了完全支持CAN2.0B协议的增强型控制器局域网(eCAN)模块,有32个邮箱,每个邮箱具有独立可编程的接收过滤屏蔽,且都可用标准的或扩展的标识符配置为发送或接收邮箱,支持数据帧和远程帧,对发送和接收的超时现象可采用一种可编程的中断操作。所有进行数据传输和接收滤波的协议功能都由eCAN控制器执行,通过DSP内的特殊功能寄存器可配置CAN控制器访问接收到的数据以及传输数据[5]。因此,TMS320F2812可以完成ISO11783总线协议的数据链路层和应用层的所有功能。
  CAN收发器采用SN65HVN230作为CAN协议控制器和物理总线之间的接口,与ISO11898标准完全兼容,可提供对总线的差动发送能力和对控制器的差动接收能力,可编程输出转换时间,有助于减小电磁干扰,从而提高系统可靠性;同时,还具有可编程斜率控制和休眠功能,可进一步降低系统功耗;SN65HVN230的工作电压为3.3V,因此无需电平转换即可实现与TMS320F2812的有效连接。具体连接电路如图3所示。

                   
2.2 软件设计
  通信节点的主要功能是通过ISO11783实现各ECU之间的相互通信,发送接收命令、信息、对象池等,实现总线数据的共享,从而提高各自的控制性能和运行效率,并对来自总线的干扰进行隔离,保证ECU的可靠工作。ISO11783总线的每个节点(ECU)都有自己的网络地址和名称相对应。地址是ECU在网络上发送或接收数据时用来识别自身的信息标识符,同时也可通过其网络管理协议中的地址管理程序将单个的源地址和特殊的ECU功能联系起来。而名称则标识了ECU的基本功能。各个节点连续监视总线上发出的各种数据,当所收到的数据地址值与自身地址相吻合时,就接收并处理数据,然后根据相关数据类型做出回应。这样可以有效避免多个ECU节点同时传输数据时所引起的混乱。
  基于DSP的ECU节点通信程序是在TI公司的CCS2000集成化开发环境下编写的,其C编译器支持标准的ANSI C语言,因此,可以利用高级语言的特性降低编程的难度,提高程序的可维护性和缩短开发时间。程序主要包括eCAN模块的初始化、中断接收处理以及信息发送等程序。
2.2.1 eCAN模块初始化
  eCAN模块使用前必须初始化,按照ISO11783物理层标准要求设置适当的网络位定时参数,其流程图如图4所示。首先要设置主控制寄存器" title="控制寄存器">控制寄存器(CANMC)的改变配置请求位(CCR),当其为1时,eCAN才处于配置模式;然后等待错误状态寄存器(CANES)的改变配置使能位(CCE)置位" title="置位">置位,当其为1时,初始化操作才能被执行;最后就可以对位定时器配置寄存器(CANBTC)的相应位进行设置,以达到所要求的总线传输速率。

                                          

2.2.2 信息发送
    信息的发送程序由邮箱配置和发送信息两部分组成。CPU把要发送的数据存储在被配置为发送邮箱的某个邮箱中。假设这个邮箱通过设置对应的ME.n位已被使能,那么在将数据和标识符写到RAM以后,且对应的TRS.n位已被置位,则邮箱中的信息将被发送出去;如果同时有多个邮箱被设置为发送邮箱和多个相应的TRS.n位被置位,则会按照邮箱优先级的高低,依次发送对应的消息。如果由于缺少仲裁或错误使发送失败,则要重新尝试发送。在此之前,CAN模块要检验是否有其他的发送请示,然后以最高的优先级发送原来的消息。其信息发送流程如图5所示。

                                            
2.2.3 中断接收程序
    通过使用合适的屏蔽,将每一个接收消息的标识符和接收邮箱中的标识符进行比较,如果相等,则将接收到的标识符、控制位和数据字节写入到相应的RAM区域,同时,将相应的接收消息未决位RMP.n置位,并且将产生一个接收中断(如果已被使能)。然后调用相应的CAN邮箱中断服务程序,读取数据并复位RMP.n;反之,若标识符不相符,则消息不被存储。如果需要保护邮箱里的数据不被新的数据覆盖,则要置位覆盖保护控制寄存器(CANOPC)的相应位,并要有其他邮箱用来存储“溢出”的消息,否则可能会丢失消息而无任何提示。其信息接收流程如图6所示。

                                                                                  
3 软件设计注意问题
    eCAN的控制和状态寄存器要求以32位方式访问。在采用高级语言编写程序时,如果直接对寄存器的位进行操作,编译器会把访问变为16位的访问方式" title="访问方式">访问方式,但对高16位进行写操作时,可能会破坏控制寄存器中的内容。解决的办法是:使用1个32位的临时寄存器,先把欲操作的整个寄存器的内容读入到临时寄存器中,此操作是32位的访问方式。在临时寄存器中对其中的某些位进行操作,然后再把值以32位写的方式赋给eCAN控制寄存器,以此来强制实现32位访问方式[6]。实例如下:
    struct ECAN_REGS ECanaShadow;
    ECanaShadow.CANMC.all= ECanaRegs.CANMC.all;
    ECanaShadow.CANMC.bit.CCR=1;          //Set CCR=1
    ECanaRegs.CANMC.all= ECanaShadow.CANMC.all;
  此外,在中断处理过程当中,为了让CPU内核识别并处理CAN中断,在任何CAN中断服务程序(ISR)中必须进行如下操作:
    (1)必须首先清除寄存器CANGIF0/CANGIF1中引起中断的标志位。根据标志类型可通过写入1或对相关寄存器的相应位进行写操作来清除。
    (2)CAN模块对应的PIEACK位必须写入1。其C语言实现为:
         PieCtrlRegs.PIEACK.bit.ACK9 =1;  //使能PIE
    (3)必须使能CAN模块对应的中断线。
          IER |= 0x0100;                 //使能INT9
    (4)必须通过清除INTM位来使CPU中断处于全局使能。其汇编语言实现为:asm('clrc INTM')。
    从国内外发展来看,ISO11783通信协议已成为当前农林机械信息化建设的一个最为重要的标准和依据,而基于此协议的ECU通信节点的设计在整个车辆网络的构建当中是必不可少的。通过对拖拉机虚拟终端和变速器控制器之间的通信实验结果分析表明,本文所提出的设计方案能够正常实现符合ISO11783协议要求的通信功能,并保证了系统运行的稳定性和可靠性。
参考文献
[1] STONE M L, MCKEE K D, FORMWALT C W, et al. ISO11783: An electronic communications protocol for agricultural equipment[A]. Agricultural Equipment Technology Conference (Louisville, Kentucky, USA). ASAE Publication Number 913C1798, 1999.
[2] 程军,苟凯英.车辆控制系统总线通信和控制协议SAEJ 1939[J].世界汽车,2000,(2):19-21.
[3] FELLMETH P. CAN-based tractor-agricultural implement communication ISO11783 [EB/OL]. 2003-09.
    http://www.can-cia.org/j1939based/iso11783/isobus.pdf.
[4] ISO11783: Tractors and machinery for agriculture and forestry-serial control and communications data network[S].2004.
[5] 张卫宁.TMS320C28x系列DSP的CPU与外设[M].北京:清华大学出版社,2005:561-613.
[6] TI.Programming examples for the TMS320F281x eCAN[M],2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。