基于MSP430行驶车辆检测器方案设计
单片机为16位RISC指令结构;内置4kBFlash和256BRAM;一个l6位定时器Timer-A和看门狗定时器;一个具有3种内部参考电平和输出带RC滤波的比较器等。[3-4]
本文应用MSP430F1121A的P2.5口的外部管脚中断以及Timer-A定时中断相配合,定时采集数据得出当前频率,并根据当前设定的灵敏度与工作方式要求,再与基准频率比较,从而判断是否有车辆到来,最后根据设定的输出方式向外输出信号。
电源模块由AS1117芯片完成5V转3.3V。为单片机、LC振荡电路、信号输出模块、JTAG等模块供电。
电压监测模块用来监测5V电源电压。其原理是将5V电压分压后与MSP430 单片机的P2.2口比较器Comparator-A 输入脚相连。当电源电压低于设定电压时,将启动电源电压不足报警功能。
工作方式设置模块是通过拨码盘设置单片机代表灵敏度、工作方式、输出方式等相应管脚的输入电平,再由单片机进行键值查询,从而完成相应处理程序。
3 系统软件设计
3.1 软件程序设计
系统软件采用模块化结构程序设计方法设计,充分发挥了MSP430单片机丰富的片内外围模块的特点,使仪器的硬件电路大大简化。全部程序采用C 语言编写,易于调试和维护,且具有运行速度快、执行效率高、便于移植。
系统软件由主程序,3个初始化子程序,10个功能子程序组成。3个初始化子程序分别是:单片机时钟初始化子程序、单片机I/O端口初始化子程序、定时器A 初始化子程序。10 个功能子程序分别是:初次测基频子程序、车辆检测子程序、电压不足报警子程序、判键子程序、查键子程序、延时子程序、动态刷新基频子程序、P2.5口中断子程序、定时中断处理子程序和信号输出子程序。主程序流程图如图3 所示。
主程序中设置了一个定时器,在无车通过的情况下,开机后定时时间到触发定时中断服务程序,多次读取当前P2.5端口中断计数值后取平均值,从而获取当前频率值。并将此频率值设置为基准频率,并将第一次测频标志置位,此标志只有在系统复位时才能被清零。此后,通过判键子程序、查键子程序确定此时系统工作的灵敏度值、工作方式和输出方式。
由于车型、车体、车速的不同,会对检测的准确性带来一定的影响。同时耦合电路的振荡频率随温度、湿度等外界素变化比较大,如果设置一个固定的基准值可能会造成误判而影响设计的可靠性和准确性。因此,本文在不影响检测速度的前提下,在判断车辆是否进入时,采用限幅滤波与均值滤波进行当前频率的采集,其程序流程图如图4所示。
限幅滤波可以克服输入中窜入尖脉冲干扰,其基本思想是将获得的多个当前频率值与当前基准频率值分别进行比较,根据经验设定允许的最大偏差,如果当前频率值和当前基准频率值的差值超过了允许的最大偏差,则认为本次采样值中窜入了干扰,则抛弃干扰值,再将余下的多个当前频率值取平均值。
将采集到的频率值与当前基准频率进行比较,其差值如果大于当前基准频率与灵敏度值的乘积,则认为有车辆进入,再进行相关信号的输出。如果判断无车辆进入,则将当前采集到的频率值与当前基准频率加权平均后作为下一次测量的基准频率,从而实现基准频率的刷新。
4 结束语
本车辆检测器具有电路简单、精度高、体积小、响应时间短、性能稳定等特点,已在浙江某公路卡口使用,效果良好。该检测器具有通用性,通过一定的功能扩展可用来测量诸如车流量,车队长度,占有率等一系列的智能交通控制系统中交通参数,具有很高的实用价值。
本文作者创新点:运用新型的高速低功耗MSP430单片机大大提高了对行驶车辆检测的速度,一次检测最快可在1.5ms内完成,应用软件动态刷新基准以及限幅滤波与均值滤波等抗干扰方法提高了检测的可靠性和准确性。
- 基于DSP Builder的行车道检测的实现(11-11)
- 基于DSP的车轮踏面擦伤检测系统的设计 (03-12)
- 基于MSP430的颅内出血检测设备设计方案(07-20)
- 基于DSP 的电压闪变监测系统设计与实现(01-05)
- 基于DSP的木材弹性模量无损检测系统的设计与实现(01-11)
- 基于DSP+FPGA的红外图像小目标检测系统设计(02-15)