1 CAN总线简介
CAN即控制器局域网,是Bosch公司为解决现代汽车中众多的控制和数据交换问题开发出的一种现场总线通信结构,最高速率可达1 Mbps(40 m内),以多主方式工作。与一般的通信总线相比,CAN总线数据通信具有突出的可靠性、实时性和灵活性,是目前使用最广泛的一种汽车网络。CAN总线具有以下特点:
①硬件连接简单,具有良好的性能价格比。
②具有快速响应能力,非常适合对实时性要求较高的应用场合。
③可靠性高。CAN总线的纠错能力非常强,协议中每一帧数据都采用CRC及其他校验措施,数据出错率极低。若某一节点出现严重错误,可自动脱离总线,总线上其他节点的操作不受影响。
2 系统硬件设计
2.1 LPC2129介绍
LPC2129微控制器是NXP公司32位单片机中的一种,其内部基本结构包括:中央处理器单元(CPU)、2个16C550工业标准UART、高速I2C接口(400 kHz)、2个SPI接口、8通道输入捕捉/输出比较定时器,1个8通道脉宽调制模块以及46个独立数字I/O口,片内还有256KB的Flash ROM、16 KB的RAM,CAN功能块包括2个兼容CAN2.0B协议的CAN控制器。这些丰富的内部资源和外部接口可以满足ECU(电子控制单元)对各种数据的处理及CAN网络数据发送和接收的要求。芯片集成了2个CAN模块,能够实现高低速CAN网络的网关节点功能。
CAN模块遵循CAN2.0B协议,集成了验收滤波器的CAN总线控制器的所有功能。此外它还采用先进的缓冲器布置改善了实时性能,简化了应用软件的设计。
2.2 CAN模块设计
汽车的通信系统由EPS控制系统、ABS系统、发动机系统、电动车窗系统、车灯控制系统等组成。这些电控系统在整个控制系统中对响应实时性的要求有所不同,另外汽车在实际运行过程中众多节点之间需要进行大量的实时数据交换。若整个汽车的所有节点都挂在一个CAN网络上,众多节点通过一条CAN总线进行通信,一旦信息管理配置稍有不妥,就很容易出现总线负荷过大,导致系统实时响应速度下降的情况。这在实时系统中是不允许的,因此根据不同的要求,可将汽车网络分为高速CAN网络和低速CAN网络两个速率等级。ABS、EPS等节点电控单元个数少,实时性和稳定性要求高,组成传输速率为500 kbps的高速CAN网络。众多的车身电机和车灯节点电控单元数量多,传输的数据纷繁复杂,对准确性、稳定性的要求胜于实时性,组成传输速率为125 kbps的低速CAN网络。对于不同速率网络之间的通信,必须有相应的网关进行数据过滤和速率转换,以实现不同速率网络节点之间的数据通信。高低速CAN网关用LPC2129实现,其通信网络如图1所示。
2.3 CAN节点硬件设计
CAN节点硬件电路主要包括带有CAN控制器的微控制器和用于数据收发的CAN收发器。本设计使用的是NXP公司的32位微控制器LPC2129,它带有CAN控制器,主要负责CAN的初始化和数据处理。CAN收发器种类有很多,本设计使用Philips公司的CAN高速收发器TJAl050。CAN基本节点结构如图2所示。
2.4 高低速CAN网关的硬件电路设计
网关的主要作用是协调各网络之间数据的共享,负责各节点之间的通信。其硬件结构与CAN节点非常相似,由于它负责高速与低速网络之间的数据共享,所以必须同时跨接两个网络。CAN总线网关硬件结构如图3所示。