为了满足上述功能需求,限速器的核心本设计选用具有强大功能的MSP430F169单片机,其内置有高速的12位ADC和DAC,能单片实现限速器的功能,无须再扩展外部模块,即可提高系统运行的可靠性,降低系统成本,非常符合限速器的功能需求。
实现限速器功能的主要模块分析如下:
(1)信号处理单元
油门踏板传感器实际上是一个角度传感器,可提取瞬间油门踏板的位置信号,并将其转化为电压信号传递给发动机控制器。以磁阻式油门踏板传感器为例,为了将角度变化转化为电压信号,磁阻元件往往做在同一块基片上接成三端式结构,且在片上一定高度处放一半圆形的磁钢,其结构如图5所示。当主轴带动磁钢旋转时,磁阻元件MR1、MR2的电阻值随通过它们的磁通量Φ的变化而变化,从而有电压信号从两个磁阻元件中点输出,经过后面信号处理电路对此输出的电压信号进行放大。通过调节后级放大电路的放大倍数,可以得到所需要的、大小合适的电压信号,其等效电路如图6所示[1]。
根据油门踏板传感器的工作原理,限速器信号处理原理图如图7所示[2]。踏板传感器输出的电压信号经过运算放大器降低输出阻抗,然后输入到MSP430F169的ADC输入脚A3,利用MSP430F169内部的12位ADC完成模数转换,实现模拟信号的采集。限速器将踏板传感器的电信号采集后,用IIR滤波算法对其进行滤波,进行自学习算法计算、处理后,得到汽车行驶速度Vx,并与设定的限速值Vm比较,以比较的结果决定输出模拟信号输出的大小。输出信号通过MSP430F169的D/A输出引脚DAC0输出,利用MSP430F169内部的12位DAC实现数模转换,并通过运算放大器提升输出模拟信号的驱动能力。
(2)语音报警单元
语音报警原理图如图8所示。为了保证行驶的安全性和平稳性,必须在汽车停止状态下才能启动限速器或关闭限速器,因此配有语音报警器,以起到有效的提醒作用。该限速器使用带功放的ML22865语音芯片,其芯片的SCL、SDA、(CBUSYB)脚分别接至MSP430F169的I/O口P5.2~P5.4,报警器的SPM、SPP脚接扬声器。
(3)数据存储单元
限速器的数据存储原理图如图9所示。限速器要能设定速度上限值,以及提供给自学习算法所需的大量的存储空间,因此必须具备数据存储功能,本设计使用24LC512存储器。
(4)键盘和显示单元
利用MSP430F169的P3.4~P3.7实现4个独立按键,功能分别为限速器开关键、数值增加键、数值减少键以及确认键。显示单元使用4个8段数码管显示,显示4位的限速值。显示数据通过MSP430F169的P1口提供。MSP430F169的P2.0~P2.3口作为数码管的控制口,为了节省能耗,数码管只有在按下键盘时才点亮,当30 s内不再操作键盘时数码管熄灭。
3 限速器的软件设计
限速器的软件设计流程图如图10所示。为了保证行驶的安全性和平稳性,必须在汽车停止状态下才能启动或关闭限速器。限速器工作过程如下:通过按键中断程序判断是否有启动或关闭限速器的按键,如果有按键信号,限速器根据主程序采集的踏板传感器电信号,判断是否有油门踏板动作,如果有踩下油门踏板,语音报警,此操作无效;如果无踏板动作,再次提醒是否处于行驶状态,并且设置5 s延时,并再次按下该按键,才能将限速器开启或关闭。如果判断是关闭限速器按键,则关闭限速器,并设置关闭状态,且将该状态信息传递给主程序;如果是启动限速器,则开启限速器工作,并设置开机状态,且将该状态信息传递给主程序。在主程序循环中,首先采集踏板传感器信号并通过IIR滤波判断是否有踏板动作并将该信息反馈给键盘中断程序,然后判断是否有设置速度上限值按键。如果有,则设置相应的速度值Vm,并存储在存储器中;如果没有,则读入踏板传感器的电信号A/D值Ux,Ux通过自学习算法得出行驶速度值Vx。Vx与Vm比较,如果Vx<Vm,则Vy=Vx,通过D/A输出Ux作为ECU的输入信号;如果Vx≥Vm,则Vy=Vm,将设定的限速值Vm换算成对应的传感器电信号Um,通过D/A输出Um作为ECU的输入信号。