·上一文章:基于CAN总线及蓝牙技术的汽车电子产品的开发及测试
·下一文章:简单的免受超电压汽车视频驱动电路保护程序
输入信号检测
根据输入信号的性质及其检测方式,BCM输入信号包括开关信号和脉冲信号。在电气特性上,这些信号都表现为高低电平形式的单根物理连线,其中车速信号和碰撞信号为有周期特性的脉冲信号,开关信号则时间离散,由外部输入(一般是人的操作)决定。
输入检测在硬件设计上比较简单,进行简单的限流和滤波[2],分压后直接接在单片机的IO引脚上即可,如图3所示。
在以组合逻辑形式出现的输出控制逻辑中,在条件A满足的情况下,激励B会触发控制C。开关信号的状态及其变化经常作为某个控制逻辑的条件和激励,所以对于这种在物理上表示为单根连线的开关量信号,在逻辑上则对应三个变量,分别表示该开关信号的当前状态及变化。如左转向灯开关对应于外部连接端口D3这个物理信号,在程序内部逻辑上对应的三个变量为:
Bool LeTurnSwitch;
Bool LeTurnSw_close_event;
Bool LeTurnSw_open_event;
LeTurnSwitch表示左转向灯开关的“当前状态”,LeftTurnSw_close_event表示该开关“从开启到关闭”的变化,LeftTurnSw_open_event则表示该开关“从闭合到开启”的变化。
设计一10ms的周期定时器,周期性读取IO状态,如果三次取值相同,则认为该状态稳定。如果发生沿跳变,同样也是三次取值相同才认为是有效的沿跳变,否则认为是一次抖动。这样既实现了软件消抖,又确定了开关信号所对应的三个变量的值。