SAE J1939协议在客车控制系统中的应用研究
2013-09-10宁涛
宁 涛
(合肥工业大学 机械与汽车工程学院,合肥 230009)
随着汽车电子技术的发展以及人们对汽车舒适性、安全性、功能性等要求的不断提高,汽车上的电子控制单元也越来越多。若仍采用传统的通信方式,会使汽车上的线束越来越多,这不仅增加了整车的重量,增加了生产的成本,同时也加大了布线的难度。现在越来越多的汽车上采用CAN总线,CAN总线又称作汽车总线,其全称为“控制器局域网(CAN-Controller Area Network)”。 CAN 总线是一种现场总线,是德国Bosch公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。CAN总线可以将汽车上的电子控制单元连接成一个网络,可以实现各个控制节点的数据共享,增强控制功能,提高汽车的安全性,降低燃油的消耗以及生产成本。SAE J1939协议是基于CAN总线通信协议制定的车辆应用层通讯协议。它是由美国汽车工程学会(SAE)发布的,是一类专门用于卡车、大客车、农业机械等的CAN 总线通信协议[1]。
1 CAN总线简介
1.1 CAN总线的发展
早在20世纪80年代,Bosch的工程人员开始研究用于汽车的串行总线系统,因为当时还没有一个网络协议能完全满足汽车工程的要求。1983年,UweKiencke开始设计新的串行总线,参加研究的还有Mercedes-Benz公司、Intel公司,还有德国两所大学的教授。1986年,Bosch在SAE(汽车工程人员协会)大会上第一次提出了CAN。1987年,INTEL就推出了第一片CAN控制芯片—82526;随后Philips半导体推出了82C200。1991年9月Bosch公司制定并发布了CAN技术规范(version 2.0),该规范包括A和B两个部分。1993年,CAN的国际标准ISO11898公布,从此CAN协议被广泛的用于各类自动化控制领域。1994年美国汽车工程师协会以CAN为基础制定了SAEJ1939标准,用于卡车和巴士控制以及通信网络。发展到今天,几乎每一辆欧洲生产的轿车上都有CAN。
1.2 CAN 总线的特点[2]
CAN总线与一般的总线相比具有突出的可靠性、灵活性和实时性。其特点如下:
(1)CAN总线是目前为止唯一有国际标准的总线。
(2)CAN总线采用非破坏的仲裁技术。多个节点同时向总线发送信息时,就会导致冲突,此时优先级较低的节点主动退出发送,优先级较高的节点可以不受影响继续传送数据,这就节省了总线冲突仲裁的时间。
(3)CAN为多主的方式工作,网络上的节点可以在任何时刻向总线发送信息。
(4)CAN的节点只需对报文的标识符滤波就可以实现点对点、一点对多点及全局广播等几种方式传送接收数据。
(5)CAN总线直接通信在速率5 kbps的最远距离可达10 km,通信速率最高可达1 Mbps,此时的通信最长距离为40 m。
(6)CAN总线上的节点数目主要取决于总线驱动电路,目前可达110个;在标准帧报文标识符有11位,而在扩展帧的标识符(29位)的个数几乎不受限制。
(7)报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低;CAN的每帧信息都有CRC校验以及其他的检验措施,具有极好的检错效果。
(8)CAN节点在错误严重的情况下具有自动关闭输出的功能,以使总线上其他节点的操作不受影响。
2 J1939协议在客车上的应用
2.1 J1939协议与CAN的关系
CAN总线协议只定义了物理层和数据链路层的标准,要将CAN总线应用于工程项目和产品中必须制定上层的应用层协议。SAE J1939协议是目前在大型汽车中应用最广泛的应用层协议,速率可达到 250 Kbps[3]。SAE J1939 协议是以 CAN 2.0B 为基础的,它不仅定义了物理层和数据链路层,还定义了网络层和应用层的协议。它的数据链路层定义了信息帧的数据结构、编码规则,包括通信优先权、传输的方式、通信要求、总线的仲裁、错误的检测以及处理,对CAN扩展帧的29位标识符重新分组定义,使得报文的标识符能够描述报文的全部特征。CAN扩展帧的29位标识符与J1939协议定义的29位标识符定义关系如图1所示。
2.2 J1939协议报文格式定义
SAE J1939应用层协议定义了协议数据单元(PDU),它用来定义CAN数据帧的消息的意义。SAE J1939协议数据单元有七个部分组成,分别是报文的优先级、保留位、数据页、PDU格式、特殊PDU、源地址和数据场等,如图2所示。每一个CAN数据只能有一个PDU。其中优先级P有3位,决定报文的优先级,其值越小优先级越高;R为保留位,以备以后开发使用;数据页DP是选择参数群描述的辅助页;PDU格式PF的8位是确定数据场对应的参数群编号的场;特定PDU(PS)的定义取决于PF的定义,当PF的值在0~239之间时,PS的值表示目标地址,报文为点对点发送到目的地址;当PF的值在 240~255 之间时,报文向全局地址发送[4],PS 表示的是群扩展值;源地址(SA)定义发送该报文的设备地址,一个源地址只能匹配一个设备;数据场为该条报文所携带的数据,最多有8个字节长度。
2.3 客车网络控制系统结构
客车上电子控制系统主要包括发动机电子控制单元、变速器电子控制单元、车身控制单元、仪表控制单元、行车记录仪控制单元、ABS控制单元等[6]。各控制节点通过CAN总线连接起来。由于发动机节点、变速器节点以及ABS节点等对数据传输、共享的实时性要求比较高,速率达到500 kb/s,这些节点通过高速CAN总线连接起来;而车身等节点对实时性要求不高,使用的是低速CAN连接各节点,速率是100 kb/s。由于低速CAN与高速CAN之间的传输速率不同,需要经过整车控制器(网关)作为接收两边报文的中转站,然后再将数据发送到对方,实现数据的共享。客车控制系统的网络拓扑结构如图3所示。
2.4 J1939协议在客车控制系统中的具体应用
SAE J1939协议的应用层规定了车辆控制与通信用到的各种参数,包括信号的描述可疑参数编号(SPN)和参数群编号(PGN)。SPN 为信号参数,PGN为报文参数[6]。其中PGN包括29位标识符中的保留位、数据页、PDU格式PF和群扩展场。图3列出了客车控制系统当中主要的控制节点,本文就以发动机控制节点的主要报文内容说明SAE J1939应用层协议的应用。发动机控制节点主要采集发动机的转速、燃油温度、冷却液温度、冷却液压力以及机油压力信息。由于发动机节点是比较重要的节点,将其地址设置为0[7],发送的数据也有较高的优先级。发动机控制节点将采集的数据发送到整车控制器进行相应的处理计算,整车控制器再将数据发送到其他的节点,如仪表节点进行显示。发动机节点发送报文的数据长度为8字节,发送周期20 ms,数据页为0,PDU格式PF值240,为群扩展格式;特定PDU(PS)为 3,优先级为 3,参数群编号为 61 443(0xF003)。具体报文数据内容定义如表1所示。
表1 发动机控制单元报文数据域定义
3 结束语
CAN总线是目前在汽车上应用最广泛,也是最有前途的总线,其不仅通信速率高,通信可靠性也高。SAE J1939协议是基于CAN总线的在汽车上应用最广泛的应用层协议,对汽车应用到的各类参数都进行了定义。将来J1939协议在汽车上会有很广阔的应用前景[6]。
本文通过J1939协议,对客车各控制节点报文具体参数进行了详细的定义,各节点之间能够实时发送与接收数据,实现数据共享,不仅提高了客车控制效率和整体性能,而且还提高了安全性、燃油经济性和操作的稳定性。
[1]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010,1.
[2]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.
[3]李然,武俊峰,王海英,赵旭.电动公交客车CAN总线网络通信结构的设计[J].哈尔滨理工大学学报,2012,17(1):68-73.
[4]周跃钢.基于LabVIEW和J1939协议的CAN总线通讯平台构建[J].汽车科技,2011,(6):18-22.
[5]李诚,孟广仕,刘波.CAN总线在客车上的网络控制[J].科技纵横,2009,134-138.
[6]保翔.基于J1939协议的发动机电控信号的提取方法[J].机电信息,2009,30:16-17.
[7]赵佳.基于SAE J1939协议的混合动力客车通讯技术[J].客车技术与研究,2011,(2):55-57.
[8]高燕,高松,赵明.SAE J1939协议在客车上的应用现状及展望[J].工业控制计算机,2006,19(4):68-69.