因为在现代汽车上装用这么多的总线和网络,所以必须用一种方法达到信息共享和不产生协议间的冲突。例如:当车门被打开时,发动机控制模块也许需要被唤醒。为了使采用不同协议及速度的数据总线之间实现无差错的数据传输,必须要用一种具有特殊功能的计算机,这种计算机就叫做网关。
网关实际上就是一种模块,它工作的好坏决定了不同的总线、模块和网络相互间通信质量的好坏。实际上,针对通用协议的OBD-II系统的故障扫描就是网关,只不过是针对它的屏幕而言。网关就像一个居民小区的门卫,在他让任何客人进入大门之前,他得询问客人是否是应邀前来,或者通知某位住户有人来访了。对不兼容但却需要互相通信的总线和网络来说,网关模拟所起的作用就同门卫一样。但当信息不能传递时,不要责怪信使(网关),可能是一个或两个模块的软件或许有错误。
2 网关的实质
网关是连接异型网络的接口装置,它综合了桥接器和路由器的功能,汽车网关主要是能在OSI参考模型的物理层、数据链路层和应用层上,对双方不同的协议进行翻译和解释。
对于Bosch公司为奔驰600SEL等汽车开发的控制器区域网CAN1.2与CAN2.0协议之间的网关,是指为处理多个ECU的核中核CPU之间的通信,而提供的一种综合接口装置,它实际上就是一个Intel-16位80C196单片微机。至于美国三大汽车公司采用的SAEJ1850网络与Bosch-CAN网络之间的网关,实际上就是一个Intel-16位87c196KR的单片微机。
一个网关必须具备有从一个网络协议到另一个协议转换信息的能力,对于CAN协议的网关,应能涉及CAN协议4种帧类型中的两种,即数据帧和远程帧。此外,两种错误帧和超限帧,由该网关的CAN芯片硬件控制。因此,可以说网关无附加的响应性。当然,网关必须具备有“状态位”,即在任何一个网络中发生的错误太多时,网关应有报警状态位或总线中断状态位。这样网关就像网络中的节点那样,可以调查总线的状态。
对于两个网络之间的网关,起码应具备以下的特性:
1 尽量少的传输等待时间;
2 信息丢失或超限差错最少;
3 能处理总线出现的差错。
3 网关的布局
如果两个CAN网络执行器是两片独立的芯片,如下面的图—30中所示。微控制器(单片微机)作为网关,那么CAN芯片就像灵巧的随机存储器被网关读写。一旦接收到信息,网关就执行接收CAN芯片的外部读操作,接着执行转换信息的逻辑指令,然后执行外部写操作,对第二个网络的CAN芯片作传输编程。
由上可知,网关主要是执行外部读、写操作和转换信息标识符,而执行读、写操作的重要技术条件是时间,读、写所要求的时间,又取决于网关和CAN芯片接口的定时特性。
4 Bosch CAN1.2与CAN2.0之间的网关
1991年9月,标准的1.2版本的CAN协议修订为新的2.0版本,新版本的技术关键是增加了信息标识符。也就是说,新的CAN2.0既支持标准的11位,也支持扩展后的29位信息标识。
CAN2.0实施新的信息位,标识扩展位使CAN操作装置能区分标准和扩展格式,但大多数现存的标准CAN1.2版本不能识别扩展后的信息格式,在实施过程中,会响应错误的信息。
为了能实施29位的信息标识,Intel公司开发了品种繁多的芯片,作为CAN的汽车用户,需采用网关使网络互连,详见下面的图—31中所示。在仅用CAN1.2的11位信息标识的条件下,能正确响应29位的标识。
5 网关处理的内容
网关主要“处理”有关下面三部分的
内容(详见下面图—32中所示):
1 从第1个网络读取所接收的信息;
2 翻译所接收的信息;
3 向第2个网络发送信息。
图中翻译信息标识符的含义如下:
CAN1.2和CAN2.0的网关可用于以
下两种情况,第1种是最简单的实施方式,
即在两个网络之间不需要对信息标识符翻
译,只是传送标准信息,也就是说,这时
的网关只起到互连CAN1.2和CAN2.0,
并让两个网络共享标准信息的任务;第二
种实施方式需要对信息标识符做翻译,也
就是说,两个网络各自的信息标识符。
例如:“发动机温度信息”在CAN1.2网络上具有专用的11位标准信息标识符,而在CAN2.0网络上,却具有扩展的29位信息标识符,此时的网关需要对这两种信息标识符通过计算或“查表”进行翻译。
6 SAE J1939与J1989网络协议之间的网关
SAE汽车选用CAN2.0协议作为“C级”串行控制和通信网络的推荐实施标准,又称为SAE J1939规范。CAN2.0每秒钟的数据传输速率可达1Mb/s,也就是说,CAN2.0执行相当于SAE-C级的高速数据速率。而对于载货车的挂车或被牵引的机具来说,并不需要如此高的数据速率。由于高速率的串行链路的电子元件和硬件的成本较昂贵,故就采用中速数据速率(B级)41.6kb/s的J1850网络来管理挂车的牵引和制动,而CAN2.0只有用于支持主车发动机的各个ECU。这样在载货车和大客车上,出现了连接异型网络的网关,详见下面的图—33中所示。
同样原理,原来实施SAE J1850 B级通信速率的小客车,则会感到发动机、自动变速器、ABS、SRS等系统的数据速率偏低,想提高通信速率以改善汽车的控制性能,但又不能让汽车的成本增加太多,故就将原实施J1850的汽车增加一个网关,如下面的图—34中所示,并将网关前方的总线修改为CAN总线.
|