第9章汽车通信网络1243359.1概述9.2多路复用通信协议9.3ISO9141-2协议9.4ISO14230-4协议9.5J1850协议下一页返回第9章汽车通信网络67389.6J2284/ISO15765-4协议9.7多路复用系统9.8小结上一页返回9.1概述在传统的电控系统中,如果要增加一个来自于传感器的信息进入汽车的控制系统中,则不得不增加附加的传感器或者该新的传感器不得不被拼接进入已存在的传感器电路中。这样,生产成本由于增加了新的元件和线路而提高了。例如,为了精确地控制发动机的燃油喷射,早期的汽车要设置多达三个发动机水温传感器,一个被动力系统控制模块(PCM)用于燃油和点火控制,另一个被冷却风扇模块用来控制散热器风扇转速,第三个被仪表板用于控制温度计,以至于结构复杂、元件多、线路增加、信息不得共享、成本增加了。下一页返回9.1概述为了解决这一弊端,当今的汽车制造厂采用多路复用(MUX)系统来使得不同的控制模块之间共享数据资源。如前章所述,“多路”是一种系统,该系统采用外设串行总线传输信号取代了传统多根导线的通信方式,并允许几个模块器件共用一根公共导线上的信号。“多路”系统采用连接每个模块的总线数据口,每个模块可以在总线数据口上发送和接收数字码,从而使模块得以共享信息。从一个传感器送出的信号能达到这些模块中的任一控制模块,还可被任何别的模块使用,这样便省去传感器输出和分别接至每个模块的导线,降低了成本。上一页下一页返回9.1概述“多路”复用(MUX)系统的工作原理是这样的:该系统提供了使用单个电路在几个遍及汽车的控制模块之间发布并共享数据的能力,由于数据是通过单个电路传输的,因此省略了庞大的接线束。MUX接线系统使用了连接每个模块并允许数据从一个模块传输到另一个模块的现场总线数据链路。每个模块能在现场总线数据链路之上传输并接收数字码,每台连接到数据总线的计算机叫做一个节点,来自某传感器的信号能到任何一个模块并能被其他的模块所使用。在多路复用之前,如果来自同一传感器的信息需要被几个控制器使用,则来自每个控制器的接线要被并联到那个传感器。如果传感器是模拟的,则控制器需安一个能“读”该传感器信息的模数(A/D)转换器。通过使用多路复用系统,便省略了使用从该传感器到每个模块的分开导线的必要,同时在控制器中的驱动器数目也减少了。上一页下一页返回9.1概述如前章所述的,二进制码被数字信号发送到节点,节点利用该码在内部和其他控制器来交流信息,一个芯片通过只允许每次发送一个编码每个数字信息的前面加上了建立其优先级的识别码。如果有两个模块试图在同一时间发送信息,则有更高优先级码的信息被最先传输。多路复用系统和非多路复用系统之间的主要差异是数据采集和处理的方法。在非多路复用系统中,来自某传感器的信号用模拟信号经一根专用的接线发送到计算机。在计算机处,信号从模拟变成了数字信号,由于每个传感器要求有自己的专用接线,因此馈送来自全部传感器的数据和把控制信号传输到全部输出装置所必需的接线是很大的。在一个多路复用系统(MUX)系统中,信号被发送到一台计算机,在那之前如有必要,则将它从模拟转换成了数字信号。上一页返回9.2多路复用通信协议协议是计算机用来在数据总线之上与另一台计算机进行通信的语言。协议可在波特率和传送方法上不同,例如有些制造厂使用了脉宽调制,而有些则使用可变的脉宽。此外,在等于一个1或0的电位上可能也存在差异。美国汽车工程师协会已根据其波特率(通信速度)定义了不同种类的协议:A类———通用异步收发(UART)低速协议,有高达10kb/s(10000比特每秒)的波特率。异步协议意味着在节点之间的通信只在需要时才做而不是连续的。下一页返回9.2多路复用通信协议B类———中速协议,有从10kb/s到125kb/s的波特率。C类———一种波特率在125kb/s和1000kb/s之间的协议。较新的汽车协议受到第二代车载诊断(OBDⅡ)需求的影响,SAE已把OBDⅡ协议作为B类标准协议而采用,如图9-1所示。上一页返回9.3ISO9141-2协议通常所说的ISO9141-2的国际标准组织协议是一种带10.4kb/s波特率的B类系统。ISO9141-2规定了一种在数据总线上的节点和一个OBDⅡ标准化的故障诊断仪(按照SAEJ1978标准)之间的用于诊断用途的协议,该系统是一个双线系统。如图9-2所示。下一页返回9.3ISO9141-2协议一根叫做K线的接线用于把数据从模块传输到故障诊断仪。故障诊断仪提供偏置电压到该电路上,并且该模块把电压拉低传输其数据。另一根叫L线的接线被模块用来从故障诊断仪接收数据,故障诊断仪提供偏置电压到该电路上,并且该模块把电压拉低以进行通信。一种采用了ISO9141-2协议的例子是允许在单根接线上进行双向通信ISOK总线。使用ISOK总线的汽车要求故障诊断仪提供偏压以给系统加电。故障诊断仪给电路提供了高达12V的电压,同时数据在电压被拉低以建立一个数字信号的时候传送,如图9-3所示。实际在电路上看到的电压基于在电路中的模块数量而能比12V稍低。上一页返回9.4ISO14230-4协议ISO14230-4协议使用了一根单线双向数据线在故障诊断仪和节点之间进行通信。这种系统被欧洲的很多制造厂商所使用。这种数据总线在故障诊断仪只被用来诊断和维护带10.4kb/s波特率的ISO9141协议,由于其通信要求一个主模块,因此其收发的工作原理与UART系统是相似的。主模块通过轮询全部的从模块然后等待响应而控制消息的传输。随着在接线上的电压拉低,通信在一个固定的脉宽时发生。当没有任何通信发生时,在线上的电压会是5V。返回9.5J1850协议J1850总线系统是OBDⅡ的B类标准。J1850标准允许基于波特率的两个不同的版本。第一版本支持41.6kb/s的波特率。福特使用该协议并叫它标准公司协议(SCP),该系统使用了一种双线传输的脉宽调制(PWM)信号。第二个协议支持平均10.4kb/b的波特率。通用汽车和戴姆勒克莱斯勒已经采纳了这种协议,通用汽车把其系统叫乙类。而戴姆勒克莱斯勒公司把其叫做可偏程的通信接口(PCI),这些系统使用一种带单根接线的可变的脉宽(VPW)数据总线。返回9.6J2284/ISO15765-4协议主要的C类协议是J2284,这种系统称为控制器区域网(CAN)。CAN网络能支持高达1Mb/s的波特率,并被设计用于专门系统的实时控制。罗伯特·博施在上世纪80年代早期开发了CAN,而且它已在欧洲成为一种非常流行的总线系统。直到最近,大部分装备CAN总线的汽车只把CAN总线用在模块间的通信,而不是在故障诊断仪用于诊断。故障诊断仪诊断通常在ISOK总线上进行。新的美国法规正要求CAN总线系统作为行业标准J2284使用。这会被用为在美国销售的汽车与故障诊断仪进行通信的新协议。下一页返回9.6J2284/ISO15765-4协议虽然CAN系统自从上世纪80年代就已开始使用了,但J2284使得它是独一无二的第一次会被用于诊断。制造厂商被要求在2008年车型的汽车上使用CAN。作为一种汽车的总线系统,CAN总线不是法定的系统,SAE已要求把ANC网络作为故障诊断仪与PCM通信的协议。因此,制造厂商能继续使用任何他们希望用于汽车通信的系统。上一页返回9.7多路复用系统接下来是一些说明数据总线信息是如何被传输的例子,虽然有就绪的协议,但制造厂商有一些自由来设计它们希望使用的系统,下面举例说明所使用的一些方法。9.7.1A类数据总线网络一种最容易的多路复用系统由克莱斯勒公司于1988年开发并被一直使用到2003年的车型上,这种系统被叫做克莱斯勒冲突检测(CCD)。术语冲突指并发生的数据冲突。这种总线的电路使用双线。CCD系统有如下优点:①接线的导线减少;②计算机中所必需的驱动器;③传感器间载荷减少;下一页返回9.7多路复用系统⑤增强了故障诊断能力。CCD系统利用双绞线以数字形式传输数据,其中一根接线叫做总线(+),另一根叫做总线(-),没有使用负的电压。(+)和(-)表示一根接线在总线正在发送占有位“0”的时候比另一根更加正,所以连接到CCD总线系统的模块安装有一块专门的CCD芯片,如图9-4所示。在大多数汽车中(但并非全部),车身控制模块(BCM)会提供偏压以给总线电路供电。由于BCM给系统供电,其内部的元件图解如图9-5所示。其他模块的工作原理与BCM发送信息相同。上一页下一页返回9.7多路复用系统在总线(+)和总线(-)电路上的偏压在系统怠速(没有任何数据传输发生)时大约是2.50V。这是通过一个稳定的5V电路和一系列电阻器来实现的。5V电压经一个13kΩ的电阻器把电流传送到总线(-)电路,如图9-6所示。电流然后经过两个并联的120Ω的电阻器而被送到总线(+)电路,最后,电流经第二个13kΩ的电阻器到接地。一种简化的偏置电路的原理图与由电阻器引起的正常的电压降一起显示在如图9-7中。上一页下一页返回9.7多路复用系统这两个120Ω的电阻器被称为端接电阻。端接电阻器被用来控制感应电压,由于电压在电阻器上会下降,因此感应的电压被终止。其中一个端接电阻在BCM内部,而另一个位于动力系统控制模块(PCM)中。在总线电路处于适当的电位时,能发生通信。在CCD芯片中的比较器充当一个电压表,如果表的正表笔连接到总线(+)电路,负表笔连接到总线(-)电路,则电压表会指示电路之间的电压差。在怠速时,电压差是0.02V,当一个模块需要发送一个信息时,CPU会利用与非门同时打开和关闭两个驱动器,如图9-8所示。上一页下一页返回9.7多路复用系统到总线(+)电路的驱动器给总线(-)电路提供替代的5V电压,比较器会测量该电压。同时到总线(-)电路的驱动器为最初的5V电压提供了一条替代的接地通路。由于第一个13kΩ电阻器现在是唯一在电路中的电阻器,因此全部电压降会降在它之上,此时比较器在总线(-)电路上看到一个低电压。由于驱动器以每秒7812.5次的速率被打开和关掉,因此电压在总线(+)上不会到满5V,也不会在总线(-)上到0V。然而,总线(+)的电压被拉高到接5V,总线(-)被拉低到接线近0V,如图9-9所示。一旦比较器测量到一个大于0.060V的电压差,则计算机会分辨出一个比较值的改变。当该总线电路怠速时(0.02V电压差),则比较值是一个1。一旦电压差增加,则比较值变成了0。上一页下一页返回9.7多路复用系统9.7.2B类数据总线网络J1850协议规定了B类数据网络。作为这种系统的例子,我们会看一种戴姆勒克莱斯勒使用的VPM10.5kb/s系统。这种系统与通用汽车的乙类总线类似。从1998年份的车型开始,戴姆勒克莱斯勒开始逐渐中止了CCD总线系统,由于该系统与其他厂家使用的相似,因此会被用来做讨论用。该PCI系统是一种单线、双向通信总线,在该总线系统上的每个模块提供其自己的偏压,并有其自己的端接电阻,如图9-10所示。上一页下一页返回9.7多路复用系统图中PCI系统的模块是并联的,随着消息的发送,一个在0到7.75V之间的可变的脉宽调剂(VPWM)电压被用来表示1和0比特位,如图9-11所示。发送的电压并非一个干净的数字信号,相反,该电压整体看起来像梯形的,原因是该电压被慢慢地向上和向下斜以防止受磁感应的影响。在这里说明一下,“慢慢地向上和向下斜”的说法相对的,在PCI总线中,每秒平均有10400个比特被传输。因此,相对而言,电压上升到7.75V和返回到0V是慢的。电压是高或低的长度决定了比特值是1还是0,如图9-12所示。典型的PCI总线信息会有如下元素,如图9-13所示。上一页下一页返回9.7多路复用系统(1)头:1到3个字节长,关于类型、长度、优先级、目标模块和发送模块的信息。(2)数据字节:正在被发送的信息,其长度最大到8个字节。(3)循环冗余码校验(CRC)字节:检测信息是否已损坏或是否有任何其他的错误。(4)帖内响应(IFR)字节:如果发