输入端使用7805。为了在掉电的时候也可以及时地保存里程数据,在电源地输入端加一个1000uF或两个470uF的电解电容。电源断开的时候在IRQ管脚会产生一个中断信号,大电容可以维持单片机电源足够长的时间,使得单片机可以完成外部中断的服务程序。
(2)调理电路
为了改善波形,在定时器管脚外添加了调理电路。
(3)整体设计
本设计面向的是市场上的中低档轿车,为了表现这个初衷,根据长安轿车的仪表外壳及内部尺寸设计了仪表的PCB,并重新布局。
图2 系统框图
3、 软件描述
(1) 初始化函数
内部总线倍频至4M;设置定时器模块的通道为捕捉功能;SCI波特率9600,开接收中断;SPI时钟频率1M;LCD模块26×4模式;使能Real Time Clock模块;MC33970与指针初始化;从用户Flash中读取先前记录的里程数据,并根据ODO/TRIP信号加以显示。
(2) 中断服务程序
• 外部中断:断电后短时间内利用大电容的放电使指针回零。
• SCI中断:遵循一定的上位机协议,接受命令,改变LCD显示内容;改变车速和转速数据。
• RTC中断:每秒记录一次里程数据;根据车速信号换算里程数据。
(3) 主函数
定时读取里程数据,并在LCD上显示;每一次主循环结束的时候重启WATCHDOG;当车速或转速信号改变之后通过指针位置的变化作出反应。
图3 主程序流程图
以下是SWITEC公司出品的步进电机驱动芯片x15.089与MC33970的简单比较,然后得出结论。
卓越的性能
下表是二者的性能比较,其中响应的实时性好是MC33970最大的优势:
表2 步进电机驱动芯片x15.089和MC33970性能的比较
紧凑的结构
x15.089的工作原理简单说来是由微控制器的两个管脚控制一个步进电机,其中一个管脚输出方向控制信号,另一个管脚输出脉冲。所以对应控制每一路电机需要两个单片机管脚,控制4路需要8个单片机的通用IO口。
MC33970则不同,由SPI输入命令字,即可控制两路步进电机;需要4路步进电机的时候,使用两片MC33970,但只需增加一根片选信号。这样总共只需要SPI模块和两个通用IO,从而节省了单片机的资源。
有竞争力的成本(数据由www.freescale.com获得)
单片机LJ12大于10000片价格为单片RMB20,且由于内嵌了LCD控制驱动器,无需外加SED1335一类的液晶驱动器。
MC33970大于10000片价格为单片$1.3,RMB13,性价比高。
相比之下,SWITEC步进电机312.017单价RMB18左右,驱动芯片x15.089单价RMB16左右。
下面是一个成本估计的简表:
表3 成本估计简表