APP下载

基于LIN总线的倒车雷达系统的设计与实现

2010-09-29王锦坚洪添胜

网络安全与数据管理 2010年5期
关键词:中断报文总线

王锦坚,洪添胜

(华南农业大学 工程学院,广东 广州 510642)

随着汽车工业的发展和人们生活水平的提高,城市里汽车的数量迅速增加,出现了交通拥挤、停车难等问题,为了解决汽车后视镜存在的后视盲区问题,免除驾驶员的视野死角和视线模糊的缺陷,减少汽车倒车时的碰撞事故,各种汽车倒车雷达应运而生[1]。自从20世纪80年代中期德国博世公司开发现场总线CAN以来,发展迅速并引起广泛关注,目前CAN总线已经成为汽车总线推广、应用的主流。

然而,由于CAN总线复杂的仲裁机制使其在低端市场的生产成本受到了挑战;另外,在汽车使用中,其稳定性相比另一种专门应用于低端市场的LIN总线也存在一些不足[2]。

本设计正是基于以上的应用背景设计,与传统的单独倒车系统相比,在兼容性和汽车布线方面具有强大的优势;同时与主流的CAN总线相比在成本和稳定性方面具有相当的优势。所以LIN总线做为CAN总线的补充和辅助总线,在倒车雷达、车灯控制等低端的应用必将受到更加广泛的关注。

1 系统的整体设计思路

本设计主要由超声波测距和LIN总线通信两部分组成。

(1)超声波测距。由探头、发射电路、接收电路、选频电路和单片机处理组成。主要过程是:单片机产生20个0.5 ms脉冲信号,频率为 40 kHz,自动避过大约为 2 ms的盲区时间,然后开始计时,脉冲原始信号为5 V,该信号经过运放放大后,可驱动超声波发射探头发出15 V、40 kHz的脉冲超声波。由于接收头与发射头配对,因此,接收后可将超声波调制脉冲变为交变电压信号,经运算放大后加至高通有源滤波电路滤除低频杂波,最后产生一个TTL电平的回波信号。该信号输入到单片机产生外部中断,停止单片机的定时器,然后读出计时器的时间差,得到超声波发射出去碰到阻碍物回射的时间差,再根据公式d=v*t/2得出距离障碍物的距离。原理框图如图1所示。

图1 超声波测距原理图

(2)LIN总线通信。将超声波测距得到的数据通过LIN总线的方式发送出去,并产生不同频率的报警提示,电路由LIN收发器、单片机和报警电路3部分组成。单片机接收超声波测距电路传回的数据,并对数据进行处理。当判断到有障碍物的时候,通过报警电路产生报警提示。当距离障碍物较远时,报警声音的间断比较缓慢;当距离障碍物较近时,报警声音比较急促。数据部分则主要通过LIN总线收发器产生符合LIN总线协议标准的信号进行通信。其主要框图如图2所示。

图2 LIN总线通信原理图

2 超声波测距模块的设计

2.1 超声波测距模块的硬件设计

2.1.1 发射电路

发射模块的主要作用是对超声波发射探头进行功率驱动,由单片机引脚输出40 kHz的脉冲信号,经CD4049转变成24 V电压信号激励超声波探头,从而产生频率为40 kHz的超声波并发射出去。

2.1.2 接收电路

前端放大电路:前置放大电路单元的作用是对有用的信号进行放大,并抑制其他的噪声和干扰,从而达到最大信噪比,以利于后续电路的设计[3]。

带通滤波电路:在传感器接收的信号中,除了障碍物反射的回波外,总混有杂波和干扰脉冲等环境噪声。而前端放大电路在放大有用信号的同时,也会将一部分的噪声信号同时放大,并没有提高输入信号的信噪比[4]。由于集成运放的开环电压增益和输入阻抗均很高,输出阻抗又低,构成有源滤波电路后仍具有一定的电压放大和缓冲作用,所以采用有源滤波电路抑制无用频率干扰信号[5]。

由于在本系统中,总噪声包括在低频段的室内环境噪声和50 Hz工频干扰,以及在高频率段的接收机内部噪声。故选用由TL082运算放大器以及外围电阻电容构成的带通滤波电路。经过此滤波电路后,40 kHz左右的有用回波信号被保留,而无用信号被削弱,为下一级的检波电路提供较高信噪比的输入信号。

2.1.3 检测电路

接收传感器输出信号经过上述放大滤波电路后,就可以进行信号检测。其目的是确定接收信号的到达时间,这是整个电路中的关键,因为它不仅决定系统的测量精度,还关系到整个系统是否能正常工作[6]。

通过调整 R9、R10,阻值产生比较所需要的参考电压,即

由于LM393具有集电极开路输出的结构,所以在电源与输出之间,加1个上拉电阻、电容C5起到简单滤波作用。具体设计时考虑到前级放大滤波电路输出峰值为5 V左右连续正弦波信号的叠加,所以分别取R9=20 kΩ、=1 kΩ,则参考电压,上拉电阻 R11=1 kΩ,电容 C5=1 000 pF。当进入比较器的输入信号高于238 mV时,比较器输出电压为5 V;输入信号低于238 mV时,比较器输出电压为0 V,利用此边沿跳变来控制单片机外部中断,停止计时。

2.2 超声波倒车雷达的软件设计

本系统采用了AT89S52单片机,用单片机汇编语言实现软件编程。整个系统软件功能的实现可以分为主程序、子程序、中断服务子程序3个主要部分。

中断服务程序响应单片机的外部中断,在系统主程序中,发射的40 kHz脉冲信号遇到障碍物反射后,经接收检测电路产生外中断信号至单片机。在中断服务程序中,首先进行必要的现场保护,再把进入中断服务程序处的计数值读出并对该数据进行处理,计算得到相应的距离值,同时转换为十进制,最后送到输出显示。

定时器中断子程序主要完成计时工作,由于51 μ单片机是 16位定时器,最大计时时间为65 536 μs,当测量的距离很远的时候,定时器就会发生溢出,所以必须对溢出中断进行相应地设置才能使得单片机正常工作。同时由于电路的测量距离有限(最远为5 m),当测量距离超出5 m时,接收探头就不能检测回波,即不能产出外部中断,更不可能关闭定时器。

3 LIN总线模块设计

3.1 硬件设计原理

整个节点的主控部分是由控制器AT89S52、LIN收发器TJA1020组成。本设计需要5 V、12 V电源,为了节省外接电源、简化电路的外接线,采用了单电源设计,即系统的电源输入为12 V,用于TJA1020的供电。另外,通过LM7805稳压管12 V变为5 V,用于提供单片机和LCD液晶显示屏的电源。单片机的P3.0(RXD)和P3.1(TXD)分别连接TJA1020的RXD、TXD管脚,用于发送接收数据,并把数据显示在LCD上,TJA1020的LIN管脚接DB9针接口的7脚,而DB9针接口则可以直接与Kvaser LIN总线分析仪连接,便于与上位机进行直接通信。

基于单片机构成的LIN节点实现方案有查询、中断2种方式,其区别在于报文头接收判断方法不同。(1)查询方式硬件电路简单,对时钟要求比较高,系统中断的种类和次数少,程序运行比较稳定。但不足的是系统大部分时间都花费在对帧报文头的等待查询上,系统资源利用率低;(2)中断方式对查询方式的不足之处加以改进和提高,间隔场、同步字节场的接收完全采用中断方式进行。中断方式的优点是对主程序运行的影响较小,系统的资源利用率高。不足的是增加了单片机的外围电路,硬件较复杂。综合以上特点,本设计采用中断方式接收。

3.2 软件设计原理

LIN总线通信系统由主节点和从节点组成,主节点包括主任务、同时也可以包括从任务;从节点则只能包括从任务,整个通信是由主任务发起的。首先主节点查询本身的超声波倒车雷达是否需要数据传输,如果有,则将数据装进LIN数据信箱,然后按照LIN通信的过程发送同步间隔场、同步场、标识符场、数据场和校验和场;如果没有,则按照顺序发送报文头,每个ID对应一个报文头,然后总线等待从节点响应。程序框图如图3所示。

图3 主节点程序框图

从节点包括2类:(1)带有倒车雷达的从节点,它有1个ID信箱,将自己在总线获得的ID放在里面,每当识别到有报文帧来的时候,提取报文头里的ID与本身信箱里的ID进行对比。如果相同则将采集到的超声波数据装进数据信箱,然后把数据做为数据响应发送出去;否则保持沉默,不发送任何数据。(2)不带倒车雷达系统的从节点,其主要功能是对接收总线的数据进行显示,并在必要的时候充当网关的作用,将收集到的LIN信号转换成其他总线信号进行下一步的传输,其本身并不发送数据,所以该ID定义全局的标识符,对总线上所有的信号进行接收,并且根据校验和场的数据,分析数据传输过程是否出现错误,如果没有,则将数据显示出来;如果有,则产生提醒信号并将数据丢弃掉。

4 倒车雷达系统实验及数据分析

4.1 超声波测距误差及分析

超声波测距在室温下进行测试,其数据如表1所示。经过多次测量发现,在同一温度下测量结果有如下规律:

(1)对于同一距离进行多次测量取平均值的方法,测试范围在0.4~1.2之间精度较好。

(2)测量误差随着所测距离的增大而增大。

其中的误差有2种:(1)固定误差,测量的起始位置与探头的压电晶片所在位置之间的距离,这种误差不随测量环境和距离的变化而变化;(2)可变误差,随着距离的增大而增大,主要是由接收超声波越过阈值的时间与超声波实际到达探头的时间不同引起的。

表1 测量数据及误差

4.2 结合LIN总线分析仪进行通信测试

使用瑞典Kvaser公司生产的LIN总线分析仪,能够检测出符合LIN协议标准的信号,并在电脑显示中,可以对LIN报文的每一部分进行分析。测试系统将实验板与LIN总线分析仪KvaserLeafProfessional相连接、Kvaser Leaf Professional与电脑相连接,在电脑端采用NI公司的LabVIEW软件进行编程,并将数据显示在显示屏上面。图4所示为采用NI公司LabVIEW软件自行编写的LIN数据接收界面,能够接收LIN总线的数据并显示在界面上,可以清晰地看到报文帧的内容,其中Data为数据场,显示最长8个字节的数据,DLC为数据场长度,范围为 0~8,MsgID是接收到的帧的标识符,用十进制标识。图4中的ID为50,即0X32,BR表示接收到帧的波特率,由于采用从节点接收信号,根据LIN总线协议,从节点应该具备测试通过同步场测试通信波特率的能力。所以在途中不管选择多大的波特率,测试出来的都是总线上的波特率。本设计的波特率是4 800 b/s,测试结果为4 801 b/s,可见误差为1。Time为收到报文的时间,PA为标识符,CS为校验和场数据,由此可以计算出通信过程数据传输是否出错。

图4 Kvaser Leaf Professional所测数据

本系统实现了与瑞典Kvaser公司的LIN总线分析仪相互进行通信,实验表明该系统数据的传输符合LIN协会规定的LIN协议标准,能够很好地与其他符合LIN标准的汽车电子设备进行通信,具有较好的实际应用价值。由于目前国内汽车总线正处于发展阶段,相比欧美国家来说存在一定的差距,本设计虽然基本上实现了LIN总线通信的功能,但与标准的LIN协议通信还有一定的距离。

[1]马建辉,王知学,李研强,等.基于LIN总线的车灯控制系统[J].EDN电子设计技术,2007(8):173-175.

[2]田亮,乔弘.LIN总线协议分析[J].中 国 仪 器 仪 表 ,2004(3):5-6.

[3]朱利娜.基于单片机的超声波测距倒车雷达的研究[J].微计算机信息,2007,23(8-2):69-71.

[4]吕科,罗永革,石振东,等.基于总线的超声波倒车雷达设计[J].湖北汽车工业学院学报,2006,20(2):4-6.

[5]李双科,吴记群.基于AT89S51单片机控制的汽车倒车雷达系统设计与实现[J].兰州石化职业技术学院学报,2005,5(4):29-30.

[6]朱华.发展中的汽车倒车雷达[J].城市车链,2006(1):57-59.

猜你喜欢

中断报文总线
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
机载飞控1553B总线转以太网总线设计
基于FPGA的中断控制器设计*
一种基于CAN总线的误码测试方法
跟踪导练(二)(5)
千里移防,卫勤保障不中断
ATS与列车通信报文分析
CAN总线并发通信时下位机应用软件设计