1、基于 CAN 总线的汽车内部网络系统研究作者:黄涛 周德恒 来源:武汉理工大学 点击数: 9 更新时间:2007-2-9引 言随着车用电气设备越来越多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,从电源管理到为提高舒适性而作的各种努力,使汽车电气系统形成一个复杂的大系统,而且这一系统都集中在驾驶室控制。另外,随着近年来ITS 的发展,以 3G(GPS、GIS 和 GSM)为代表的新型电子通信产品的出现,对汽车的综合布线和信息的共享交互提出了更高的要求。从布线角度分析,传统的电气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然需要庞大的布线系统
2、。据统计,一辆采用传统布线方法的高档汽车中,其导线长度可达 2 000 m,电气节点达 1 500 个,而且根据统计,该数字大约每 10 年增长 1 倍,从而加剧了粗大的线束与汽车有限的可用空间之间的矛盾。无论从材料成本还是工作效率看,传统布线方法都将不能适应汽车的发展。 从信息共享角度分析,现代典型的控制单元有电控燃油喷射系统、电控传动系统、防抱死制动系统(ABS)、防滑控制系统( ASR)、废气再循环控制、巡航系统和空调系统。为了满足各子系统的实时性要求,有必要对汽车公共数据实行共享,如发动机转速、车轮转速、油门踏板位置等,但每个控制单元对实时性的要求是因数据的更新速率和控制周期不同而不同
3、的。这就要求其数据交换网是基于优先权竞争的模式,且本身具有较高的通信速率。CAN总线正是为满足这些要求而设计的。 1 CAN 简介德国 Bosch 公司为解决现代车辆中众多的控制和数据交换问题 ,开发出一种CAN(Controller Area Network)现场总线通信结构。CAN 总线硬件连接简单,有良好的可靠性、实时性和性能价格比。CAN 总线能够满足现代自动化通信的需要,已成为工业数据总线通信领域中最为活跃的一支。其主要特点是: CAN 总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活; CAN 总线采用独特的非破坏性总线仲裁技术,优先级高的节
4、点优先传送数据,能满足实时性要求; CAN 总线具有点对点、一点对多点及全局广播传送数据的功能; CAN 总线上每帧有效字节数最多为 8 个,并有 CRC 及其他校验措施,数据出错率极低,万一某一节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响; CAN 总线只有两根导线,系统扩充时,可直接将新节点挂在总线上即可,因此走线少,系统扩充容易,改型灵活; CAN 总线传输速度快,在传输距离小于 40 m 时,最大传输速率可达 1 Mb/s; CAN 总线上的节点数主要取决于总线驱动电路,在 CAN2.0B 标准中,其报文标识符几乎不受限制。总之,CAN 总线具有实时性强、可靠性高、通信速
5、率快、结构简单、互操作性好、总线协议具有完善的错误处理机制、灵活性高和价格低廉等特点。2 总体方案设计2.1 汽车内部 CAN 网络设计正是由于 CAN 总线具有这些其他通信方式无法比拟的优点,使之成为电动汽车控制系统的理想总线。 现代汽车典型的电控单元主要有主控制器、发动机控制系统、悬架控制系统、制动防抱死控制系统(ABS)、牵引力控制系统、 ASR 控制系统、仪表管理系统、故障诊断系统、中央门锁系统、座椅调节系统、车灯控制系统等。所有这些子控制系统连接起来构成一个实时控制系统指令发出去之后,必须保证在一定时间内得到响应,否则,就有可能发生重大事故。这就要求汽车上的 CAN 通信网络有较高的
6、波特率设置。另外,汽车在实际运行过程中,众多节点之间需要进行大量的实时数据交换。若整个汽车的所有节点都挂在一个 CAN 网络上,众多节点通过一条 CAN 总线进行通信,信息管理配置稍有不当,就很容易出现总线负荷过大,导致系统实时响应速度下降的情况。这在实时系统中是不允许的,因此在对汽车上各节点的实时性进行了分析之后,根据各节点对实时性的要求,设计了高、中、低速三个速率不同的 CAN 通信网络,将实时性要求严格的节点组成高速 CAN 通信网络,将其他实时性要求相对较低的节点组成中速 CAN 通信网络,将剩下实时性要求不是很严格的节点组成低速 CAN 通信网络。并架设网关将这三个速率不同的三个通信
7、网络连接起来,实现全部节点之间的数据共享。整个汽车的 CAN 通信网络拓扑结构如图 1 所示。图 1 汽车 CAN 总线网 0 络拓扑图发动机控制系统、悬架控制系统、制动防抱死控制系统(ABS)、牵引力控制系统、ASR控制系统这五个节点是汽车运行的核心部件,对时间响应要求严格,因此将这五个节点组成高速 CAN 通信网络,通信波特率设为 500 bps。仪表管理系统、故障诊断系统等相对来说对实时性的要求较低,因此这些节点构成中速 CAN 通信网络、通信波特率设为 128 bps。中央门锁系统、座椅调节系统、车灯控制系统对实时性要求不是很严格,它们构成低速通信网络,通信波特率设为 30 bps。两
8、个网关跨接高、中、低速三条总线,与各节点进行数据交换。网关通过对 CAN 总线间待传数据信息的智能化处理,可以确保只有某类特定的信息才能够在网络间传输。2.2 器件选择汽车内部 CAN 网络主要由两部分组成:面向底层 ECU 的 CAN 节点和实现高低速网络数据共享及网络管理的网关。为了减少开发周期,选择 Motorola 公司一款带 CAN 模块的中档微处理器 MC9S12DP256;CAN 收发器以及电源系统是用 MC33989 来实现的。微控制器 MC9S12DP256 是基于 16 位 HCS12 CPU 及 0.25 m 微电子技术的高速、高性能 5.0 V Flash 存储器产品中
9、的中档芯片。其较高的性能价格比使其非常适合用于一些中高档汽车电子控制系统;同时其较简单的背景开发模式 (BDM)也使开发成本进一步降低,使现场开发与系统升级变得更加方便。MC9S12DP256 的主频高达 25 MHz;片上集成了许多标准模块,包括个异步串行通信口 SCI、3 个同步串行通信口 SPI、8 通道输入捕捉输出比较定时器、2 个 10 位 8 通道A/D 转换模块、1 个 8 通道脉宽调制模块、49 个独立数字 I/O 口(其中 20 个具有外部中断及唤醒功能)、兼容 CAN2.0A/B 协议的 5 个 CAN 模块以及 1 个内部 IC 总线模块;片内拥有 256 KB 的 Fl
10、ash EEPROM12 KB 的 RAM、4 KB 的 EEPROM。这些丰富的内部资源和外部接口资源可以满足各种 ECU 数据的处理以及发送和接收。由于有多个 CAN 模块,所以非常适合做高低速网络之间的网关。Motorola 公司的系统级芯片 (SBC)MC33989 具有二个电源整流器,专为 MCU 和外围器件提供电源。这个智能化的半导体器件可以提供所有必需的系统电压,内部有一个低噪声的 200 mA 整流器用来给 MCU 子系统供电。另外,还有一个控制外部导通晶体管的装置用来给外围设备供电。这个外部导通晶体管允许调整二次电源,使之满足每种特殊应用所需的功耗极限要求。二次供电电源还能根
11、据要求切断所选外围设备的供电,并以此达到降低功耗的目的。除了提供系统电源外,SBC 内部还集成了一个 1 Mb 的 CAN 收发器。该收发器具有主控状态超时检测、内部热保护以及 CAN-H 和 CAN-L 输入端短路保护等功能。收发器内部还对 CAN-H 和 CAN-L 输入端进行了跳启、电池反接以及短接至电源或地的保护。4 个高压唤醒输入端使器件具备了强大的唤醒功能。这些唤醒输入端的最大耐压能达40 V。输入端的上拉源能在芯片上产生。由于只需用上拉源就能随时检测开关输入的变化,因此能较好地降低功耗。该器件还具有周期性唤醒功能。另外,SBC 还提供了针对 MCU 的复位调节与低压检测功能。 2
12、.3 CAN 节点的硬件电路设计为了便于调试和演示,节点模块都包括 CAN 接口、RS232 接口和液晶显示器。在调试过程中,液晶显示器用来将本地数据和通过 CAN 总线接收的数据直观地显示出来,RS232接口在需要的情况下可用来与 PC 机建立通信。节点的核心芯片是微处理器 MC9S12DP256,主要负责 CAN 的初始化,完成数据的处理及监控数据的传送。图 2 中 MC33989 是 CAN 控制器与物理层总线之间的接口。该器件可以提供对总线的差分发送能力和差分接收能力,具有抗汽车环境下的瞬间干扰、保护总线的功能。除此之外,它还为 MCU 和外围器件提供电源。CAN 节点原理框图如图 2
13、 所示。图 2 CAN 节点原理框图2.4 CAN 网关的硬件电路设计网关的主要作用是协调各个网络之间数据的共享,负责各节点之间的通信,其硬件结构与 CAN 节点非常相似。由于它负责高速与低速网络之间的数据共享,所以,必须同时跨接在两个网络之间。CAN 总线网关硬件框图如图 3 所示。图 3 CAN 总线网关硬件框图微处理器 MC9S12DP256 具有 5 个 CAN 模块,这里使用其中的两个:一个通过MC33989 与低速网相连,实现与低速网的通信;另一个通过 MC33989 与高速网相连,实现高、低速网之间的通信以及对网络的管理。2.5 CAN 网络通信系统软件设计本设计所需实现的功能是
14、各节点发送接收数据,网关能实现数据的转换,实现高、低速网络之间的通信。在实验过程中,假设速率不同的两个网络,数据刷新周期分别为 10 ms的低速网和 5 ms 的高速网。软件设计由 KEIL C 编写,主程序完成数据的处理和收发,中断程序负责数据的采集,主程序由 CAN 总线数据的收发、液晶显示控制、数据帧解析三部分构成。通过中断判断数据的接收或发送,根据高、低速的不同,每隔一段时间(5 ms 或10 ms)发送一组新数据。通信程序流程如图 4 所示。图 4 通信程序流程结语结语为了充分发挥 ECU 在汽车控制中的作用,CAN 通信网络为全局优化提供了条件。通过实验证明,CAN 总线具有以下优点: 组网自由,扩展性强; 自动错误界定,简化了电控单元对通信的操作; 可根据数据内容确定优先权,解决通信的实时性问题。此外,CAN 网络还被众多工业控制系统采用,尤其是传输速率较高而且对实时性及可靠性要求高的场合,所以 CAN 总线将有广阔的应用前景。