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