浅析车用CAN系统中网关的特性
引言
网关(Gateway)实际上就是一种模块,它工作的好坏决定了不同的总线、模块和网络相互间通信的好坏。网关就像一个居民小区的门卫,在他让任何客人进大门之前,他得问问客人是否是应邀前来,或者通知某位住户有人来访了。对不兼容但却需要互相通信的总线和网络来说,网关所起的作用就和门卫一样。
1 网关的实质
网关是连接异型网络的接口装置,它综合了桥接器和路由器的功能,汽车网关主要能在OSI参考模型的物理层、数据链路层和应用层上对双方不同的协议进行翻泽和解释。
对于Bosch公司为奔驰600SEL等汽车开发的控制器局域网CANl.2与CAN2.0协议之间的网关,是指为处理多个ECU的核中核CPU之间的通信而提供的一种综合接口装置,实际上就是一个Intel-16位80C196单片微机,而美国三大汽车公司采用的SAE1850网络与Bosch-CAN网络之间的网关,实际上就是一个Intel-16位87C196KR单片微机。
一个网关必须具备有从一个网络协议到另一个协议转换信息的能力,对于CAN协议的网关,应能涉及CAN协议4种帧类型中的两种,即数据帧和远程帧。另外两种错误帧和超限帧,由该网关的CAN芯片硬件控制,因此,可以说网关无附加的响应性。当然,网关必须具备有“状态位”,即在任何一个网络中发生的错误太多时,网关有报警状态位或总线中断状态位,这样,网关就像网络中的节点那样,可以调查总线状态。
对于两个网络之间的网关,其具备尽量少的传输等待时间,信息丢失或超限差错最少,能处理总线出现的差错等特性。
2 网关的布置
如果两个CAN网络执行器是两片独立的芯片(图1),微控制器(单片微机)作为网关,那么,CAN芯片就像灵巧的随机存储器被网关读写。一旦接收到信息,网关就执行接收CAN芯片的外部读操作,接着执行转换信息的逻辑指令,然后执行外部写操作,对第二个网络的CAN芯片作传输编程。
所以说,网关主要是执行外部读、写操作和转换信息标识符,而执行读、写操作的重要技术条件是时间,读、写所要求的时间又取决于网关在CAN芯片接口的定时特性。

图1 网关硬件的布置
3BoschCANl.2-CAN2.0之间的网关结构1991年9月,标准的1.2版本的CAN协议修订为新的2.0版本,新版本的技术关键是增加了信息标识符,也就是说,新的CAN2.0既支持标准的11位,也支持扩展后的29位信息标识。
CAN2.0实施新的信息位,标识扩展位(IDE位)使CAN操作装置能区分标准和扩展格式,但大多数现存的标准CAN-1.2版本不能识别扩展后的信息格式,在实施过程中会响应错误信息。
为了能实施29位的信息标识,Intel公司开发了品种繁多的芯片,作为CAN的汽车用户,需采用网关使网络互连(图2),在仅用CAN-1.2-11位信息标识的条件下,能正确响应29位标识。

图2 BoschCANl.2与CAN2.0之间的网关连接图

图3 网关处理的内容
4 网关处理的内容
网关主要“处理”有关下面三部分的内容(如图3所示):从第一个网络读取所接收的信息,翻译信息,向第二个网络发送信息。图中翻译信息标识符的含义如下:CAN1.2和CAN2.0的网关可用于以下两种情况;第一种是最简单的实施方式,即在两个网络之间不需要对信息标识符翻译,只是传送标准信息,也就是说,这时的网关只起到互连CANl.2与CAN2.0,并让这两个网络共享标准信息的任务:第二种实施方式需要对信息标识符作翻译,也就是说,两个网络有各自的信息标识符,例如,“发动机温度信息”在CANl.2网络上具有专用的11位标准信息标识符,而在CAN2.0网络上却具有扩展的29位信息标识符,此时的网关需对这两种信息标识符通过计算或“查表”翻译。
5 SAEJ1939-J1980网络仂议之间的网关
SAE选用CAN2.0协议作为“C级”串行控制和通信网络的推荐实施标准,由称为SAE1939规范。CAN2.0每秒钟的数据速率可达IMbit/s,也就是说,CAN2.0执行相当于SAE-C级的高速数据速率。可对于货车的挂车或被牵引的机具来说,并不需要如此高CAN网络均数据速率。由于高速率串行链路的电子元件和硬件的成本较昂贵,因此,就采用中速数据速率(B级)41.6Kbitls的J1850网络来管理挂车的牵引和制动,而CAN2.0只用于支持主车发动机的各个ECU,这样,在货车和大客车上出现了连接异型网络的网关(如图4所示)。

图4 CAN与J1850之间的关系
同样原理,原实施SAE-J1850B级通信速率的小客车,感到发动机、自动变速器、ABS等系统的数据速率偏低,想提高通信速率以改善汽车的控制性能,又不能让汽车成本增加太多,就将原实施J1850的汽车增加一个网关(如图5所示),并将网关前方的总线修改为CAN总线。

图5 轿车CAN网与J1850网络
车用CAN系统网关功能分 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
