基于CAN bus 的汽车网络设计概述
2013-09-13李洪雷韩金丰
高 越,李洪雷,韩金丰
(1.华晨汽车工程研究院 电气部,辽宁 沈阳 110141;2.上海通用(沈阳)北盛汽车有限公司,辽宁 沈阳 110000)
0 引言
随着汽车电子技术的飞速发展及人们对汽车安全性、舒适性及动力性要求的不断提升,越来越多的电子控制单元(ECU)被引入到汽车中。为了使这些ECU 能够在一个共同的环境下协调工作,也为了进一步降低成本,人们设计了针对汽车通信网络的总线协议。目前被广泛使用的总线协议是CAN(controller area network)bus总线。
1 CANbus 网络设计要素
1.1 网络拓扑结构设计
CAN总线按照通讯速率的不同一般分为两种:一种是低速CAN网络,通讯速率一般在10~125kbit/s,具有容错功能,面向独立模块间数据共享,主要应用于车身控制、仪表显示等舒适系统。 另一种是高速CAN网络,通讯速率在125kb/s~1Mkb/s,面向对汽车安全性,实时性要求比较高的模块,如动力传动、底盘、安全等控制系统。高速网络与低速网络之间的信息交互可以通过网关实现,网关的主要任务就是对信号进行提取、重组,转发等操作,在源网络中提取信号,重新定义属性并打包,最后转发到目标网络中。网关可以是独立的电子模块,也可以集成到其它电子模块中,图1为网络拓扑示意图,其中网关集成在仪表中。
图1 汽车网络拓扑图Fig.1 Vehicle network topology
1.2 物理层设计
带有CAN接口的ECU 设计是总线开发的核心与关键,其中ECU的CAN总线模块有两个功能单元构成:CAN控制器和CAN收发器。CAN控制器执行完整的CAN协议,完成通讯功能,包括信息缓冲和接收滤波。CAN控制器与物理总线之间需要一个接口:CAN收发器,它实现CAN控制器与总线之间逻辑电平信号的转换。图2为高速CAN网络的收发器的接口电路,以TJA1040 收发器为例说明。
图2 TJA1040 收发器接口电路Fig.2 TJA1040 transceiver circuit
图中标注LCM的为共模电感 (common mode Chokes),主要是防止EMI的,并对信号的稳定性、完整性有很大的帮助。标注RT/2是平衡负载形式的终端电阻,比单个负载形式的终端电阻有更低的静态负载,主要用于防止波形反射。标注CH和CL 是EMC 电容,用于过滤高频噪声,同时又可以抑制本身不向外发出电磁干扰。箝位稳压二极管,用于ESD 防护,TJA1040 可以承受人体模型6KV的高压脉冲。
高速CAN的两个终端电阻应该放置在物理线束的终端,所以为适用不同的网络拓扑结构,电阻RT/2应该可以被替换。另外用于ESD 和EMC的部件LCM,二极管和电容在PCB 设计之初可以不焊接,但必须预留相应的布置位置,在进行EMC 和ESD 测试之后,再确定各零部件是否需要焊接。
此外,为了满足EMC 要求,在设计PCB时,应遵循以下规则:①CANH 和CANL 信号线应该保持相同的长度且尽量短;②CANH 和CANL 信号线应保证平行及最短的距离;③CANH 和CANL 信号线不能交叉;④在收发器和接插件之间不能有其它IC 芯片,IC 芯片尽量放置在电路板的中间位置;⑤在收发器和CAN控制器之间的RxD 和TxD 布线应该尽量短;⑥RxD 和TxD 布线不能交叉;⑦LCM 和终端电阻的位置尽量靠近收发器;⑧电容和稳压二极管的位置尽量靠近接插件。
1.3 数据链路层设计
(1)帧类型。数据链路层规定了在介质上传输数据位的排列和组织,如:数据校验和帧结构。CAN总线的帧类型包括:数据帧、遥控帧、错误帧和过载帧,而数据帧又包括标准数据帧和扩展数据帧。如果网络定义使用标准的数据帧,ECU 接收到的任何的扩展数据帧和遥控帧都应该被忽略。
(2)数据长度。CAN数据帧的最长数据长度是8个字节,为了方便系统扩展,数据长度的设计可以遵循如下定义:如果接收节点接收到的数据长度短于设定的DLC 长度时,节点应忽略此帧数据,但如果接收节点接收到的数据长度长于设定的DLC 长度,且帧数据没有任何错误(frame,bit,CRC……)时,节点可以仅使用可用的数据。
(3)位时间参数。一个位可分为四个阶段:同步段,传播时间段,相位缓冲段1 和相位缓冲段2。通常采样点定义为一个,位于相位缓冲段1 和相位缓冲段2 之间,一个位时间的65%~85%位置。再同步宽度(SJW)为时钟频率误差和传播延迟的同步误差,通常为2~3位时间份额。
1.4 交互层定义
交互层可以根据数据的发送模式、超时监控和缺省值来实现数据的发送和接收。图3 描述了周期性报文的发送机制,总线上的报文按照周期时间GenMsgCycle-Time 周期发送。图4 描述了事件性的报文发送机制。对于重要的信号在信号触发后需要重复n次发送,n 用图4 中的参数GenMsgNrOfRepetitions 表示, 而重复发送报文的时间间隔为GenMsgCycleTimefast。
1.5 网络管理定义
图3 周期报文的发送机制Fig.3 Timing diagram for cyclic message
图4 事件性的报文发送机制Fig.4 Timing diagram for event message
网络管理通过监控网络及网络上各个节点的状态,并执行相应的错误处理,来保证ECU 通信的安全性和可靠性,使得当网络上的某个节点失效时,不影响其它节点的正常通讯,即使是使用该节点数据的应用程序也能在保证功能安全的情况下继续执行跛行模式。以下为网络管理主要工作:
睡眠唤醒机制:目前的整车睡眠唤醒机制普遍采用OSEK NM的直接网络管理机制,来降低车辆闲置状态下的整车静电流消耗,同时还可进行节点监控。
节点数据超时监控:主要是通过接收节点监控发送节点的周期报文来实现,如果连续几个时间周期没有收到此报文,视为该节点丢失。对于接收节点接收来自同一节点多帧周期报文的情况,只监控周期时间最短的那帧报文即可。系统启动和关闭:主要是定义在系统启动时,所有控制器何时发送初始化信号,何时发送有效信号,何时进行数据监控,在系统关闭时,所有控制器多久可以关闭等。
总线关闭处理:主要是需要定义ECU 在总线关闭的情况下如何处理,通常要求ECU 在200ms的时间内可以恢复正常,如果连续两次执行重启工作,系统也无法恢复正常,就需要ECU 记录故障码。
1.6 通讯矩阵的建立
网络通讯矩阵定义了网络上所有发送和接收的报文及信号的属性,包括报文ID,发送类型,数据长度,信号初始化值,默认值等等。
(1)报文定义。报文的定义主要是优先级ID的定义,ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级,两个以上的单元同时开始发送消息时,根据标识符ID 决定优先级,优先级高的报文享有占用总线的优先权。报文定义必须根据各控制单元(ECU)的控制逻辑和相互之间的关系,确定系统中涉及的报文优先级,发送类型,数据长度和报文内容等。
(2)信号定义。信号大致分为状态信号和物理信号,状态信号需要定义每一状态的具体值,物理信号需要定义与真实物理值之间的转换方式。另外,对于关键的与安全相关的信号,比如请求发动机增扭的信号,碰撞信号等,为保证信号收发的实时性和一致性,在其所在的报文中需要增加Message Counter 和Checksum 两个信号,message counter 用于检查信号是否超时,checksum 用于检查信号是否在传送过程中有位的变化。
2 结论
以上从CAN bus的各个方面详细定义了整车网络,如再配合标准化的开发流程,便可以设计一个先进的整车网络平台,从而可大大提高整车电气系统的稳定性,降低整车开发成本,缩短开发周期,提升品牌的市场竞争力。目前,国外许多的汽车生产厂商都有自己的汽车电子电气网络平台以及设计和优化流程,而国内对此项技术的研发还处于起步阶段,所以我们必须在汽车网络平台设计和开发方面加大资金投入及研发力度,从而大大提升国产轿车的技术含量,打造属于中国人民自己的国民精品车!
[1]ISO.Road Vehicle-Controller area network(CAN),ISO11898.[2006].
[2]OSEK/VDX Committee.Network management specification,version2.5.3[EB/OL].http://portal.osek -vdx.org/files/pdf/specs/oseknm253.pdf.2006-05.
[3]Data Sheet TJA1040,High Speed CANtransceiver,Rev.02,2006.
[4]史久根,张培仁,陈真勇.CAN现场总线系统设计技术[M].北京:国防工业出版社,2004.