导言
跟着轿车电子的开展,传统的点对点的通讯现已不能满意现代轿车通讯的要求。轿车电子网络技能正成为完结轿车操控体系的首选,它使轿车电子技能进入一个全新的年代。
20世纪90年代,美国轿车工程师协会SAE(Society of Automotive Engineers)将轿车数据传输网分成了A、B、C三类:A类网络首要面向传感器/履行器的低速网络,数据传输位速率一般小于10 kb/s,现在A类网的首选标准为LIN(LocalInterconnect Network)协议;B类网络首要面向独立模块间数据同享的中速网络,数据传输位速率在10~125 kb/s,现在B类网络首要选用低速容错CAN标准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所示, AT91SAM7A3为网关的主操控芯片,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布线数量,有利于进步体系的抗搅扰功用。
2. 2 CAN节点规划
常用的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 网关软件规划
网关的软件体系首要包含主监控程序、数据的发送、数据的接纳、数据的处理(包含协议转化弛缓冲区内数据的读写处理)等几部分。
3.1 主监控程序
如图4所示,在主操控器AT91SAM7A3中划出4块缓冲区BUF1~BUF4,每一块缓冲区中的数据都有清晰并且仅有的来历和意图地。主监控程序首要经过循环顺次查询BUF1~BUF4中的存储状况,来决议是否发送数据以及将数据发送给谁。
当高速CAN网络上有数据需求接纳的时分,经过高速CAN模块接纳数据,对接纳到的数据进行处理后,将其存到缓冲区BUF1中,再由低速CAN模块将其发送到低速CAN网络上;当LIN网络上有数据需求接纳时,经过LIN总线模块接纳数据,对接纳到的数据进行数据格局转化(LIN格局的报文帧转化为CAN 格局的报文帧),再将其存入到缓冲区BUF4中,并由低速CAN模块将其发送到低速CAN网络上;当低速CAN网络上有数据需求接纳时,先接纳数据,然后判别数据是发送到高速CAN总线,仍是发送到LIN总线,依据判别成果对数据进行处理,存入相应的缓冲区(如数据是发往高速CAN总线,则存入BUF2,不然存入BUF3)。
3.2 数据的发送
数据的发送由发送子程序完结,网关中首要有3个发送子程序,别离对应两路CAN操控器以及一路 LIN发送器。高速CAN的发送子程序担任发送BUF1中的数据,LIN的发送子程序担任发送BUF3中的数据,低速CAN的发送子程序担任发送BUF2 和BUF4中的数据。数据的发送选用查询总线状况的发送办法:查询总线的忙闲状况,假如总线忙,则退出发送子程序,进行其他的作业;假如总线闲暇,则发送数据。发送完1帧数据后,再查看与之相应的缓冲区的状况。假如为空,则退出发送子程序;假如非空,则再查看总线的忙闲状况。假如忙,则退出发送子程序;假如闲暇,则发送数据。然后再开端新一轮的数据查询发送进程。图5为高速CAN向低速CAN发送的流程,其他的发送子程序进程与此相似。
3.3 数据的接纳
数据接纳是从总线上接纳数据,进行必要的协议转化,再将转化后的数据存人相应的缓冲区。网关中有3个接纳子程序,别离对应两路CAN操控器及一路LIN发送器。数据接纳选用中止办法,因为不同网络有不同的实时性要求,因而为3个接纳程序设定了不同的中止等级。高速CAN的实时性要求最高,中止等级也设为最高;而LIN总线的实时性在三者中最低,故中止等级也最低。当一个接纳中止发生后,进入接纳中止子程序,判别相应的缓冲区是否已满(低速CAN的接纳程序在接纳到数据后需求依据数据的意图网络确认缓存区为BUF2仍是BUF3)。假如缓冲区已满,则发生一个溢出过错标志;假如没有满,则将数据进行相应的协议转化,并将转化后的数据存入相应的缓存区,退出中止并完结接纳。图6所示为低速CAN数据接纳进程的扼要流程。
3.4 数据的处理
网关的数据处理是指协议的转化和数据在缓冲区的存储与转发。每逢接纳到一组数据时,首要进行协议转化,然后再将其存入到相应的缓存区。凹凸速CAN的协议相同,并不需求转化,因而首要是进行CAN协议和LIN协议之间的转化。
CAN协议和LIN协议都是以帧(frame)为数据单位进行通讯的。在进行LIN协议到CAN协议的转化时,首要是将LIN帧分化,从标识符场 (identfield)提取出其间的ID标识符,从数据场(data field)提取出有用数据,然后依据这些信息封装成符合要求的CAN帧格局。CAN协议到LIN协议的转化进程亦是如此。先将CAN帧分化,从裁定域 (arbitration field)和数据域(data field)中提取出有用信息,然后封装成符合要求的LIN帧格局。
数据的4个缓冲区BUF1~BUF4为FIFO(First InFirst Out)缓冲区,本文选用循环行列(circular queue)来完结数据的先进先出。两个指针Read和Write别离指示队头元素和队尾元素在缓冲区空间中的方位,它们的初值在行列初始化时均应置为 0,每读取或写入一次数据,都要对缓冲区的参数进行调整。写数据时,将新元素刺进Write所指的方位,然后将Write加1;读数据时,删去Read所指的元素,然后将Read加1并回来被删元素。
4 网关通讯测验
将网关的高速CAN接口和低速CAN接口别离与独自的CAN节点电路相连,LIN接口与独自的LIN从节点相连,组成测验网络。测验的首要内容为高速 CAN和低速CAN之间的通讯,低速CAN和LIN网络之间的通讯。高速CAN网络选用速率为500 kb/s,低速CAN网络选用的速率为100kb/s,LIN网络选用的速率为10 kb/s。运用PC机的串口发送测验数据,一起在另一个串口终端进步行数据的监测。测验成果表明,发送数据内容与监测到的数据内容共同。
5 总结
以AT91SAM7A3为中心规划的一款CAN/LIN混合网关,完结了轿车网络中高速CAN总线、容错CAN总线及LIN总线三类网络之间的通讯,使轿车中的各类网络的信息可以有用同享,完结了不同性质网络的互联。
参考文献
1. 罗峰.苏剑.袁大宏 轿车网络与总线标准 [期刊论文] -轿车工程2003(4)
2. 饶运涛.邹继军.郑勇芸 现场总线CAN原理与使用 2003
3. 崔俊锋.袁涛 车身混合网络中CAN/LIN网关的规划与完结 [期刊论文] -微计算机信息2006(8)
4. Bosch CAN Specification 1991
5. LIN协议标准(V1.2)
6. LIN Specification Package 2006