解读MSP430F2274单片机设计的倒车雷达系统电路
扫描二维码
随时随地手机看文章
随着人们对汽车辅助驾驶系统智能化要求的提高和汽车电子系统的网络化发展,新型的倒车雷达应能够连续测距并显示障碍物距离,并具有通信功能,能够把数据发送到汽车总线上去。以往的倒车雷达设计使用的元器件较多,功能也较简单。本文介绍的基于新型高性能超低功耗单片机MSP430F2274的倒车雷达可以弥补以往产品的不足。
系统采用超声波测距原理。超声波测距仪器一般由发射器、接收器和信号处理器三部分组成。工作时,超声波发射器发出超声波脉冲,超声波接收器接收遇到障碍物反射回来的反射波,准确测量超声波从发射到遇到障碍物反射返回的时间,根据超声波的传播速度,可以计算出障碍物距离。作为一种非接触式的检测方式,超声波具有空气传播衰减小、反射能力和穿透性强的特点。超声波测距具有在近距离范围内有不受光线和雨雪雾的影响、结构简单、制作方便和成本低等优点。高性能的单片机结合超声波测距,可以实现功能强大、使用方便的倒车雷达。TI 公司的16位单片机MSP430F2274功耗极低,片上资源丰富,同时利用JTAG 接口技术,可以对片上闪存方便的编程,便于软件的升级,非常适合作为倒车雷达系统的微控制器。
系统的主控电路图如图2所示。本系统中选用的MSP430F2274片内有32Kb 闪存和1Kb RAM,因此无须外扩存储器。外接的32.768kHz 晶振作为CPU 关闭状态Basic-Timer 的时钟源,同时也作为系统的车载时钟使用。超声波发送模块电路如图3所示,由超声波产生和发射两部分组成。超声波的产生方法有两种:硬件发生法和软件发生法。常用的硬件发生法常采用如下方案:超声波由CD4011构成的振荡器振荡产生,经升压变换推动超声波换能器而发射出去,振荡器的起振和停振由单片机来控制。本设计采用软件发生法,因为通过软件发生法既可以减少硬件的复杂程度,降低系统的成本,又具有灵活性强、容易实现、稳定性好的优点。本系统利用MSP430F2274单片机的定时器功能来产生稳定的PWM(40Hz)脉冲波,并通过I/O 端口P2.3输出到超声波发射部分。在超声波发射电路中CD4049一共包括了6个非门,图3中线路仅使用了3个,为了防止干扰或被静电击穿导致整个CD4049损坏,把没有使用的那一侧的3个非门串起来做接地处理。当控制端输出一系列固定频率脉冲时,在压电陶瓷型超声波发射换能器UCM-40-T 上就固定频率的加正电压和反电压,发出大功率的超声波,所得到的波形比其他方式效果更理想。
超声波接收电路如图4所示。这是本系统设计和调试的一个难点。压电陶瓷型超声波接收器UCM-40-R 接收反射的超声波转换为40kHz 毫伏级的电压信号,需要经过放大、处理、才能用于触发单片机中断。一方面传感器输出信号微弱,由于反射条件不同,需要放大倍数的范围大约是100~5000,另一方面传感器输出阻抗较大,需要高输入阻抗的多级放大电路,而高输入阻抗容易接收干扰信号。通常采用两种方案:一是采用运算放大器组成多级选频放大电路;二是采用专用的集成前置放大器。第一种方案容易产生自激振荡,要使接收电路达到很好灵敏度和抗干扰效果,电路的调试是较困难的。本系统采用专用的集成电路前置放大器CX20106,它由前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大器不会过载。调节芯片引脚5的外接电阻R3,将它的滤波器的中心频率设置在40kHz,达到了很好的效果。当接收到与滤波器中心频率相符的信号时,其输出引脚7输出一个低电平,而输出引脚7直接接到MSP430F2274的P2.2上,以触发中断。
报警模块采用简单的声光报警电路,如图5所示。先设定一个临界值,当车尾与障碍物的距离小于设定的最小距离时,红色指示灯闪亮,绿色指示灯熄灭。单片机向其端口发出PWM 脉冲,随着距离的减小,通过控制PWM 脉冲的占空比使闪光和蜂鸣的频率加剧,以此来提示驾驶员。
通信接口电路如图6所示。采用美信的MAX3232芯片,外围电路非常简单,只需要5个0.1μF 。该电路把单片机串口输出信号隔离变换成RS-232信号发送到汽车总线上,同时还可以实现该系统计算机的通信。
键盘和显示电路如图7所示,由键盘和液晶显示两部分组成。其中键盘采用独立式按键,有3个按键,一个设置键、一个上翻键、一个下翻键。可以进行报警值、工作方式、时钟等各个参数的设置。液晶显示电路采用ZJM12864BSBD 这款低功耗的点阵图形式LCD,显示格式为128点(列)×64点(行),具有多功能指令,容易使用,可实时的显示时钟、距离和报警提示信息,方便直观。
采用模块化设计,程序由主程序、测距子程序和键盘显示子程序、时钟显示子程序等多个模块组成,调试过程中对其中每个功能模块和子程序逐一调试,在每个子程序都完成指定的功能后,再进行综合调试。