客车网络控制中CAN/CAN网桥设计

发布时间:2010-08-04
分享到

  1引言

  控制器局部网[1][2](ControllerAreaNetwork)是德国RobertBosch公司在20世纪80年代初为汽车业开发的一种车载专用串行数据通信总线,经过多年的发展,现在越来越多的被众多汽车厂商所认可,并在包括BMW、Benz、VOLVO等汽车上使用。CAN由于其独特的特性,不仅在汽车领域,而且在工业控制领域也得到了广泛的运用,如工业现场控制、小区安防、环境监控等。由于在具体工程运用中,往往需要连接两路CAN子网,因此CAN/CAN是必不可少的,是组网的关键设备之一。本文在将控制系统划分为底盘和车身的两个网络控制子系统的基础上,利用Philips公司的微控制器,从硬件和软件上设计了一个CAN/CAN网桥。

  2客车网络控制中的CAN/CAN网桥

  由于目前汽车电子应用的日益广泛,CAN在轿车上应用日益广泛,但是在国内的应用还不是很多,只有在某些高档豪华的车型上才会采用,CAN在国内客车上的应用也仅限于由国外公司帮助实施单总线局部联网。汽车电子技术的网络化是我国汽车电子研究与应用的必然趋势,CAN作为标准车载网络技术,其在汽车网络化应用的进程中将起着桥梁和纽带的作用。由于客车中底盘部分涉及到整车行使的安全性,实时性要求和通信的信息量都明显高于车身部分,因此本文在将客车网络控制系统划分为两个子系统(底盘CAN和车身CAN)的基础上,设计了连接两路CAN的网桥。整个系统框架如图1所示。

整个系统框架

  该网桥具有实现不同速率的CAN网段连接、不同网段的CAN报文过滤和转发的功能。

  使用CAN/CAN网桥的优点[1]主要表现在以下几方面:

(1)过滤通信量。网桥接收一个子网的报文,只有当报文是发送给网桥所连的另一个子网时才转发,否则不转发;
(2)扩大了通信距离;
(3)提高了通信的最大节点数;
(4)各网段可使用不同的通信速率;
(5)提高了系统可靠性。当网络出现故障时,一般只影响个别网段;
(6)整个网络性能得到改善。

  当然,使用网桥也有一定的缺点,如:

(1)由于网桥对接收的帧要先存储后转发,增加了延时;
(2)CAN总线的MAC子层并没有流量控制功能。当网络上的负荷很重时,可能因网桥中缓冲区的存储空间不够而发生溢出,产生帧丢失的现象;
(3)网桥若出现故障,对相邻两个子网的工作都将产生影响。

  3CAN/CAN网桥的硬件设计

  3.1LPC2119

  CAN/CAN网桥是以ARM微控制器LPC2119[3][5]为核心的软硬件系统。LPC2119是Philips公司生产的一款基于支持实时仿真和跟踪的16/32位ARM7TDMI-SMCU,带有128KB嵌入的高速Flash存储器。独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。LPC2119内部集成2个CAN控制器,为设计CAN/CAN网桥提供了可能。它的主要特性有:单个总线上的数据传输速率高达1Mb/s;32位寄存器和RAM访问;兼容CAN2.0B;全局验收滤波器可以识别所有的11位和29位Rx标识符;验收滤波器为选择的标准标识符提供FullCANstyle自动接收。

  LPC2119内部集成的CAN控制器与Philips公司的SJA1000CAN控制器相比较大致相同,只是在验收滤波这一环略有不同,这为习惯SJA1000的开发人员采用LPC2119提供了方便。在传统的SJA1000中,接收过滤只能满足一些规律性较高的ID筛选过滤,或个数较少的ID(一般小于10~15个)进行任意筛选过滤,难以实现更复杂的任意ID进行筛选过滤,这无疑增加了系统软件设计及运行时负担。LPC2000系列32位ARM微控制器中为所有CAN控制器提供了全局的接收标识符查询功能。它包含一个512×32(2k字节)的RAM,通过软件处理,可在RAM中存放1~5个标识符表格。整个AFRAM可容纳1024个标准标识符或512个扩展标识符,或两种类型混合的标识符。由于允许的表格范围有2k字节,所以能容易地满足设计复杂的ID接收过滤要求。

  全局接收过滤的工作流程:当CAN控制器的接收端已接收到一个完整的标识符,它将通知接收过滤器。接收过滤器响应这个信号,并读出控制器编号、标识符尺寸(11bit或29bit),然后,接收过滤器搜索AFRAM中的表格进行匹配,以决定接收或放弃这一帧信息。

收藏
赞一下
0