基于CAN/LIN息线的汽车混合网关设计
2.1 主控制器的选择
实现数据的高效率、高质量的存储转发是网关的重要目标,而主控制器是网关的核心器件,它的性能好坏直接决定了网关的效率高低。主控器对接收到的数据进行缓存,因此主控制器需要有较高的存储容量。主控器还要对它所接收与转发的数据进行协议转换等数据处理,因此还要有较强的运算能力。
本设计选用了Atml公司的AT91SAM7A3作为网关的核心控制器。这是一颗基于ARM7TDMI内核的32位RISC处理器,具有执行速度快、效率高的特点,能够满足网关的数据处理要求。该芯片内置32 KB的SRAM和256 KB的高速Flash存储器,存储能力强,能够满足网关对数据存储的要求。另外,该芯片内部集成有2个功能强大的CAN2.OB的控制器,可以处理所有类型的帧结构(数据帧、远程帧、错误帧及过载帧),每个控制器有16个独立的缓存区(mailbox),十分有利于实现网关高速、大容量的数据处理。集成的 CAN控制器还能够减少器件数目和PCB布线数量,有利于提高系统的抗干扰性能。
常用的CAN节点电路如图3所示,它主要由MCU、CAN控制器及CAN收发器组成。为了增强电路的抗干扰性,还需要在控制器与收发器之间增加一个隔离电路。
本网关中的CAN节点共有2个:高速CAN节点和低速CAN节点。由于在汽车中电磁干扰现象非常严重,仅靠单个的CAN收发器难以满足通信品质的要求,需要加上适当的隔离电路以提高电路的抗干扰性。
2个节点的MCU的功能由主控制芯片AT91SAM7A3实现,且AT91SAM7A3中集成了两个高性能的CAN控制器,可以分别作为高低速CAN节点的控制器。
常用的隔离电路采用高速光耦6N137实现CAN节点之间的信号隔离,并且采用电源隔离模块实现高速光耦的两个电源的隔离。但是这种设计无疑增加了PCB的走线,使电路的没计变得复杂,同时隔离电路的隔离效果也受到影响。
本设计采用广州致远电子有限公司生产的CTM系列的CTM1050和CTM1054,分别作为高低速CAN收发器。CTM系列的CAN收发器集成了CAN 收发器以及必需的隔离,即在一块芯片上实现了隔离电路和CAN收发器的功能。这样就不必单独设计隔离电路,提高了集成度,使得抗干扰性得到增强。
高速CAN收发器CTM1050,最高速率可达1 Mb/s,完全符合ISO11898-2标准的高速CAN通信,用它作为高速CAN网络接口的收发器(电路连接方法见图2)。容错CAN收发器 CTM1054,最高通信速率可达125 kb/s,完全符合ISO11898-3标准,用它作为低速CAN网络接口的收发器(电路连接方法见图2)。需要注意的是,在CTM1054的连接中,有 2个电阻R1和R2的阻值要根据低速CAN网络中节点的个数来确定。具体值的算法见CTM1054使用手册。
2.3 LIN接口设计
LIN总线是一主多从的总线连接方式,节点有主从之分。在本设计中,将LIN节点设计为主节点。LIN是一个基于单线串行的通信协议,对于硬件的要求比较简单。通常一个有SCI/UART接口的单片机和一个LIN收发器就可组成LIN节点。本设计利用AT91SAM7A3的UART口和LIN收发器 TJA1020组成一个LIN主节点。
TJA1020使用的波特率可从2.4~20 kb/s,有较好的保护功能:总线终端和电池引脚可防止汽车环境下的瞬变、总线终端对电池和地的短路保护以及过热保护等,可以作为汽车通信中的LIN通信接口(具体电路连接见图2)。
3 网关软件设计
网关的软件系统主要包括主监控程序、数据的发送、数据的接收、数据的处理(包括协议转换和缓冲区内数据的读写处理)等几部分。
评论