基于CAN/LIN息线的汽车混合网关设计

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

  引 言

  随着汽车电子的发展,传统的点对点的通信已经不能满足现代汽车通信的要求。汽车电子网络技术正成为实现汽车控制系统的首选,它使汽车电子技术进入一个全新的时代。

  20世纪 90年代,美国汽车工程师协会SAE(Society of Automotive Engineers)将汽车数据传输网分成了A、B、C三类:A类网络主要面向传感器/执行器的低速网络,数据传输位速率一般小于10 kb/s,目前A类网的首选标准为LIN(LocalInterconnect Network)协议;B类网络主要面向独立模块间数据共享的中速网络,数据传输位速率在10~125 kb/s,目前B类网络主要采用低速容错标准ISO11898-3;C类网络则主要面向高速、实时闭环控制的多路传输网,数据传输位速率在 125~1 Mb/s之间,欧洲的汽车制造商主要采用高速CAN标准ISO11898-2来实现该类网络。下面简要介绍一下CAN协议和LIN协议。

  1986 年2月,德国的Bosch公司在SAE大会上提出了CAN串行总线。时至今日,CAN已经形成国际标准,凭借自身的优点,不仅在汽车领域,而且在机械、数控机床及传感器等领域都得到广泛应用。CAN总线的主要特点有:多主机的工作方式;最大传输速率可达1 Mb/s(通信距离最长40 m),直接通信距离可达10 km(速率小于5 kb/s);采用短帧结构,传输时间短;良好的检错能力;非破坏总线仲裁技术;较高的性价比。

  LIN 是1998年由BMW等五家汽车制造商、一家软件工具制造商以及一家半导体厂商联合提出的一个协议。LIN通信是基于SCI(UART)数据格式,采用单主/多从模式以及低成本的单线连接方式,最高传输速率可达20kb/s。LIN的从节点不用晶振或陶瓷振荡器就能实现自同步。出于以上技术特点, LIN总线实现成本较低,且完全能够满足A类网络的通信需求。

  在实际的汽车电子网络中,A、B、C三类网络并不是完全独立的。为了完成车辆的控制及信息共享,不同网络间必须进行相应的数据交换。由于是三种不同的网络,它们之间的通信是不能直接进行的,而必须作相应的协议转换及数据处理后才能实现,这些工作是由网关来实现的。本文提出了一种网关的设计方案,用以实现高速CAN、低速CAN及LIN三种总线网络之间的通信。

  1 网关总体结构

  本文所讨论的网关其主要任务是解决车载网络中A、B、C三类网络的相互通信的问题,实现数据的存储转发及高、低速CAN协议之间或低速CAN与LIN协议之间的协议转换,以便在不同网络之间实现数据通信。网关主要分为4个部分:实现数据存储转发和协议转换的主控制器,用于与高速CAN网络连接的高速CAN 节点模块,与低速CAN网络连接的低速CAN节点模块以及与LIN网络连接的LIN节点模块。网关系统的电路框图如图1所示。

网关系统的电路框图

  网关中三个节点电路分别与各自的网络相连,且实现各自对应的网络与主控制器之间的数据交换。这个数据交换过程是双向的,既包括从网络上接收数据并将数据存到主控制器中,又包括从主控制器相应的缓存器中读取数据并将其发送到自己对应的网络中。主控制器主要负责数据的存储及协议的转换,即将各个节点接收来的数据根据其目的网络的不同,分别存入不同的缓冲区,并且根据目的网络的不同,将数据转化为能够在目的网络上传送的数据格式。

  2 网关电路设计

  如上所述,网关的硬件电路主要由主控制器、高速CAN节点模块、低速CAN节点模块、LIN节点模块4部分组成。为了满足网关的正常通信要求,必须考虑主控制器的数据处理能力。另外,由于网关的工作环境为电磁干扰非常严重的汽车内部,故还须考虑网关的抗噪声干扰性能。网关的硬件设计简图如图2所示, 为网关的主控制芯片,TJA1020为LIN总线收发器,CTM1054为低速CAN收发器,CTM1050为高速CAN收发器。

网关的硬件设计简图

  2.1 主控制器的选择

  实现数据的高效率、高质量的存储转发是网关的重要目标,而主控制器是网关的核心器件,它的性能好坏直接决定了网关的效率高低。主控器对接收到的数据进行缓存,因此主控制器需要有较高的存储容量。主控器还要对它所接收与转发的数据进行协议转换等数据处理,因此还要有较强的运算能力。

  本设计选用了Atml公司的AT91SAM7A3作为网关的核心控制器。这是一颗基于ARM7TDMI内核的32位RISC处理器,具有执行速度快、效率高的特点,能够满足网关的数据处理要求。该芯片内置32 KB的SRAM和256 KB的高速Flash存储器,存储能力强,能够满足网关对数据存储的要求。另外,该芯片内部集成有2个功能强大的CAN2.OB的控制器,可以处理所有类型的帧结构(数据帧、远程帧、错误帧及过载帧),每个控制器有16个独立的缓存区(mailbox),十分有利于实现网关高速、大容量的数据处理。集成的 CAN控制器还能够减少器件数目和PCB布线数量,有利于提高系统的抗干扰性能。

 

收藏
赞一下
0