基于MCS-51的CAN/LIN网关设计

2014-02-28 07:50:36吕晋超叶玖林李世超
遵义师范学院学报 2014年4期
关键词:波特率缓冲器网关

吕晋超,叶玖林,李世超

(电子科技大学,微电子与固体电子学院,四川成都610054)

基于MCS-51的CAN/LIN网关设计

吕晋超,叶玖林,李世超

(电子科技大学,微电子与固体电子学院,四川成都610054)

CAN总线和LIN总线在汽车工业中大规模应用后,如何有效地解决CAN总线和LIN总线相互转换已然成为一个问题。论文基于MCS-51提供了一个有效的解决方案,运用MCS-51定时器的定时功能,定时向各节点发起通讯来达到实现数据传输的目的。

MCS-51;CAN总线;LIN总线;网关

1 引言

在汽车电子工业的发展过程中,CAN总线协议和 LIN总线协议在其中扮演着重要的角色。CAN适用于要求高速长距离传输的场合,而对于低速廉价的要求,LIN更加适用,但因为一个系统内出现了两个不同的总线协议,并且两个协议之间要进行数据交换,所以我们就需要CAN/LIN网关对速率、其数据等进行转换,下面我们对CAN和LIN协议进行简单介绍。

1.1 CAN协议

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。CAN总线具有如下特点:可在各节点之间实现自由通信。CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点;通信速率快,通信速率最高可达1Mbps;结构简单,只有2根线与外部相连,并且内部集成了错误探测和管理模块。CAN总线的数据传输采用短帧的格式,可分为标准格式帧和扩展格式帧,帧则可分为:数据帧、远程帧、错误帧、过载帧。

1.2 LIN协议

LIN总线是由1999年成立的LIN联盟所推出的专门用于汽车控制的串行通信协议。在对通讯速率要求不高的应用中(在门窗、空调、照明灯等),LIN总线是CAN总线的低成本的有效补充。LIN总线具有如下特点:低成本:基于通用UART接口几乎所有微控制器都具备LIN必需的硬件;单主控器/多从设备模式无需仲裁机制;传输速率最高可达20Kbit/s。LIN总线的传输(报文传输)由报文帧的格式形成和控制,一个报文帧是由主机节点发送的报头和由主机或一个从机节点发送的响应组成。报文帧的报头包括同步间隔场、同步场和标识符场。报文帧的响应则由字节场组成:数据场和校验和场。

2 CAN/LIN网关的硬件实现

CAN总线和LIN总线是一个系统中两个不同的总线,并且要进行数据交换,CAN/LIN网关就是充当一个桥梁的角色,在网关内部实现协议的转换,除此之外网关还要匹配两种总线的传输速率。就硬件逻辑实现的角度,可采用“CAN接口驱动—中央控制器—LIN接口驱动”的结构。

2.1 CAN接口驱动

一个CAN接口驱动由一个CAN控制器、CAN收发器。CAN控制器完成CAN协议的所要求的报文格式的发送和接收,CAN收发器为CAN控制器和CAN总线提供物理接口。本文的CAN控制器采用 Philips公司的 SJA1000,SJA1000具有支持CAN2.0,包括标准的和扩展的数据和远程帧、具有扩展的64字节FIFO接收缓冲器、具有仲裁丢失捕获寄存器的特点;CAN的收发器采用的是Philips公司的 TJA1050,TJA1050具有高速率(最高达1Mbps)、电磁抗干扰EMI性极高、驱动能力强等的特点。

2.2 LIN接口驱动

由于LIN协议相较于CAN协议较为简单并且对速度要求不高,所以LIN的接口驱动中没有LIN控制器,LIN总线的协议只需具有UART串口的微处理器软件编写,所以LIN接口驱动只有单独的LIN收发器组成。LIN 收发器采用 Philips公司的TJA1020,TJA1020具有波特率高达20Kbps、高抗电磁干扰性、控制输入电平和3.3V以及5V的器件兼容等的特点。

2.3 中央控制器

中央控制器是CAN/LIN网关的核心,它起着控制系统的数据发送和接收、报文格式的转换等功能。中央控制器采用MCS-51单片机,它具有操作简单、成本低、稳定性高等的特点,下图为CAN/LIN网关的硬件电路图。

3 CAN/LIN网关的软件实现

有了硬件的基础,就需要软件的实现来完成网关的功能。网关的功能主要功能是实现 CAN/LIN协议的转换,但同时网关是CAN总线上的一个节点,它能实现CAN总线的相互通信,网关也是LIN总线上的主机,由它来控制LIN总线上节点之间的通信。无论是CAN协议向LIN协议的转换还是LIN协议向CAN协议转换都需要向网关发送数据,网关处理发送过来的数据,传输到另一条总线上。如下图所示,CAN(或LIN)节点分别将数据发送到总线上,中间的网关接收总线上的数据,经数据处理,发到LIN(或CAN)总线上,最终LIN(或CAN)节点接收总线的数据,需要注意的是网关中的4个缓冲器并不是硬件缓冲器,而是软件缓冲器,是程序模块,起对数据进行处理的作用。

本文利用的是分时向各节点发起通讯,具体的软件实现可利用MCS-51单片机的定时功能,采用依次向各节点发起通信的方式来进行数据交换。将MSC-51的定时器0设置一定的时间T,每隔时间T就去检测各节点的状态,如下图所示,最初是初始化MCS-51单片机和CAN控制器,而后检查定时器0是否有置位,如果说置位了则检测LIN节点是否有数据发出,有的话将LIN节点的发送缓冲器数据发送到网关的LIN接收缓冲器,然后依次将数据一层层地发送到CAN节点上,之后再检测网关的CAN接收缓冲器,如果有数据则发送到网关的LIN发送缓冲器,网管的LIN发送缓冲器有数据,此时将这个数据发到LIN节点上。具体的逻辑结构如下图所示。

4 实验测试

为了验证算法的可行性和程序的正确性以及网关性能,完成了一个测试系统在测试系统中,由控制台、CAN节点1、LIN节点1和LIN节点2组成,其中控制台连接到CAN总线,它既是CAN总线上的节点同时也是测试系统的控制台。由控制台可对其它三个节点进行通信,而其它三个节点又可通过故障开关对控制台进行通讯,可通过各节点上的指示灯来获知数据的发送也接收。上图为测试系统,下图为测试网关。

在CAN/LIN网关中,实时性是评估系统的重要性能数据,可以通过数据发送也接收的时间差异来判断系统实现的好坏。为了评估此系统的实时性,在不同LIN波特率(Kbps)和CAN波特率(Kbps)测试延时时间。

延时时间(m s)L I N波特率( 2 . 4 4 . 8 9 . 6 1 4 . 4 1 9 . 2 1 0 0 5 6 4 8 4 0 3 1 2 1 2 5 0 5 6 4 7 3 9 3 0 2 1 1 0 2 4 5 3 4 5 3 8 2 7 1 9

从上表数据可以看出,高速总线CAN的波特率提升对于延时时间的减小影响较小,而通过对低速总线LIN波特率的提升对于延时时间的减小效果较为明显。所以说 LIN波特率是延时时间的主要因素,CAN波特率是延时时间的次要因素。在对实时性要求不高的场合,可通过提高LIN波特率来达到较小延时时间的目的,而对实时性要求较高的场合,可通过同时提高LIN波特率和CAN波特率来减小延时时间。

5 总结

基于MCS-51单片机的CAN/LIN网关设计有效地解决了CAN总线与LIN总线的相互数据传输问题,并且采用分时向各节点发起通讯的方法具有程序结构清晰、程序移植性好、通用性好、成本低廉等优势。利用MCS-51单片机实现的CAN/LIN网关设计也存在一定的局限性,在硬件电路的集成度方面还存在不足,有待今后进一步改善。

[1]崔俊锋,袁涛.车身混合网络中CAN/LIN网关的设计与实现[J].微计算机信息,2006,22(3).

[2]王丰华.汽车上CAN/LIN混合网络组网技术的应用研究[D].镇江:江苏大学,2006.

[3]甘永梅,李庆丰等.现场总线技术及其应用[M].北京:机械工业出版社,2005.

[4]饶运涛,邹继军等.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2004.

[5]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2007.

(责任编辑:王 林)

CAN/LIN Gateway Based on the MCS-51

LV Jin-chao,YE Jiu-lin,LI Shi-chao
(Schoolof Micro-Electronics andSolid-StateElectronics,University of Electronic Science andTechnology ofChina,Chengdu 610054,China)

The CANbus and LINbus have been large-scalely applied in automobile industry.Howto effectively solve the transformation between the CAN bus and LIN bus has become a problem,and this article,based on MCS-51,provides an effective solution,using MCS-51 timer timing function,timing on each node communication,to achieve the purpose of realization of data transmission.

MCS-51;CAN bus;LIN bus;gateway

TN915

A

1009-3583(2014)-0079-03

2014-05-06

吕晋超,男,贵州贵阳人,大学本科生,主要从事CAN总线技术的应用和系统设计的研究。

猜你喜欢
波特率缓冲器网关
更正
轻兵器(2022年3期)2022-03-21 08:37:28
重载货车用缓冲器选型的研究及分析
铁道车辆(2021年4期)2021-08-30 02:07:14
基于改进RPS技术的IPSEC VPN网关设计
CAN 总线波特率自适应程序设计
智能制造(2020年5期)2020-07-03 06:24:00
基于FPGA的异步串行通信波特率容错设计
电子测试(2018年7期)2018-05-16 06:27:18
LTE Small Cell网关及虚拟网关技术研究
移动通信(2015年18期)2015-08-24 07:45:08
应对气候变化需要打通“网关”
太阳能(2015年7期)2015-04-12 06:49:50
一种实时高效的伺服控制网关设计
面向TIA和缓冲器应用的毫微微安偏置电流运放可实现500MHz增益带宽
C*Core芯片SCI串口波特率容限优化