第二章 车辆总线系统协议和标准
第一节 车辆总线系统协议和标准
当讨论到车辆总线系统时,一般是指CAN、LIN、FlexRay等。过去人们只是把这些名词视为带插口、电缆线的通信接口中可视的物理部分和用于通信的主要电子电路。在有关的出版物中,主要是对传输比特层如信号电平、数据访问方法和在总线传输线中每一比特位的顺序和含义,以及它们之间的内在关系作了详细的描述。由于软件研发者必须编写传输软件,因此他首先应熟悉指定的总线控制器的程序接口。他关注的重点是数据格式、缓冲存储器以及传输错误的处理。而对于用户来说,主要关心的是传输真正的有效数据及其格式。对于这些在典型的总线(如CAN、LIN或FlexRay)规程中没有作详细的说明,而本书对这些内容将作详细的介绍。
为了在数据通信时,把不同的任务相互分开,采用ISO标准充当开放-系统-内部连接-(OSI)-分层模型(表2-1)。它表明了通信的分层结构,其中表示层6、会话层5和网络层3在车辆应用中是不需要采用的。
表2-1针对总线系统和协议的OSI-分层模型
提示:层0没有官方的OSI-模型层
与实际总线标准相比,ISO模型只能作为纯理论来研究。虽然它有助于人们对网络的理解,但实际的车辆总线标准只采用了理论模型的部分层面。多层面任务可以被组合成一层,或一个层面的任务可以分解成多个任务,因此,对于同一任务,经常有相互不同的标准或反之,同一个技术解决方案按不同的标准描述。还有混乱的情况是不同的标准,本身来自于同一个标准领域,不同的概念或不同的设备却采用相同的命名。
人们所熟悉的车辆总线如CAN、LIN或FlexRay,一般只确定了0~2层,大多数甚至只对很小部分作了精确的说明。由BOSCH公司颁布的基本规程CAN20A/B,批准通过了对总线机械方面的要求(如插座、电缆),这些都属于外部元件。有关总线的连接电路和产生信号电平电路只有例子而没有精确的说明。后来ISO 11898承担了对上述Bosch规程的层2作了进一步的确定,并对层1补交了附录规程说明。而诊断接口基本标准ISO 9141先对0~1层作了说明并允许一系列制约性的兼容变量,只是后来补充说明了层2部分。
对于较高层,只有存在较短时间的标准如层7,它是针对车辆诊断废气排放的,由法规制定者用ISO 15031进行定义。为此首先应保持开放性,而对较低层或采用经典的ISO 9141接口或CAN总线,用ISO 14230和ISO 15765对标准作补充并补交规程。尽管它是有关层7的规程,但去掉了K线或CAN规程。因为较低层总是依赖于较高层,而较高层是完全独立的,各层在以后的章节分成下列几部分说明:
·第3章说明车辆总线的(0~2层)
·第4章说明传输协议(3~4层)
·第5和第6章说明应用协议(5~7层)
总线系统的标准化
表2-2~表2-5给出了重要的车辆标准概况。有些总线系统将逐步被淘汰,制造商们公开宣称有些总线将不再被进一步研发或干脆取消(如ABUS和Byteflight)。对于一些特殊总线系统如气囊控制器网将不再使用。
表2-2 Kfz-总线(层0~1)
表2-3传输协议(层4)