一个l6位定时器TimerA和看门狗定时器一个具有3种内部参考电平和输出带RC滤波的比较器等。本文应用MSP430F1121A的P25口的外部管脚中断以及TimerA定时中断相配合定时采集数据得出当前频率并根据当前设定的灵敏度与工作方式要求再与基准频率比较从而判断是否有车辆到来最后根据设定的输出方式向外输出信号。电源模块由AS1117芯片完成5V转33V。为单片机、LC振荡电路、信号输出模块、JTAG等模块供电。电压监测模块用来监测5V电源电压。其原理是将5V电压分压后与MSP430单片机的P22口比较器ComparatorA输入脚相连。当电源电压低于设定电压时将启动电源电压不足报警功能。工作方式设置模块是通过拨码盘设置单片机代表灵敏度、工作方式、输出方式等相应管脚的输入电平再由单片机进行键值查询从而完成相应处理程序。
4系统软件设计
41软件程序设计
系统软件采用模块化结构程序设计方法设计充分发挥了MSP430单片机丰富的片内外围模块的特点使仪器的硬件电路大大简化。全部程序采用C语言编写易于调试和维护且具有运行速度快、执行效率高、便于移植。
系统软件由主程序3个初始化子程序10个功能子程序组成。3个初始化子程序分别是单片机时钟初始化子程序、单片机IO端口初始化子程序、定时器A初始化子程序。10个功能子程序分别是初次测基频子程序、车辆检测子程序、电压不足报警子程序、判键子程序、查键子程序、延时子程序、动态刷新基频子程序、P25口中断子程序、定时中断处理子程序和信号输出子程序。主程序流程图如图3所示。
f主程序中设置了一个定时器在无车通过的情况下开机后定时时间到触发定时中断服务程序多次读取当前P25端口中断计数值后取平均值从而获取当前频率值。并将此频率值设置为基准频率并将第一次测频标志置位此标志只有在系统复位时才能被清零。此后通过判键子程序、查键子程序确定此时系统工作的灵敏度值、工作方式和输出方式。
由于车型、车体、车速的不同会对检测的准确性带来一定的影响。同时耦合电路的振荡频率随温度、湿度等外界素变化比较大如果设置一个固定的基准值可能会造成误判而影响设计的可靠性和准确性。因此本文在不影响检测速度的前提下在判断车辆是否进入时采用限幅滤波与均值滤波进行当前频率的采集其程序流程图如图4所示。
限幅滤波可以克服输入中窜入尖脉冲干扰其基本思想是将获得的多个当前频率值与当前基准频率值分别进行比较根据经验设定允许的最大偏差如果当前频率值和当前基准频率值的差值超过了允许的最大偏差则认为本次r