S3C44BOX资源丰富、执行速度快,能扩展很多种功能;加之嵌入式实时操作系统简化了应用程序,可高效实时地调用系统任务,采用S3C44BOX与嵌入式实时操作系统μC/OS_II可设计一款高精度高、高灵敏度、工作稳定的嵌入式总线汽车数字仪表。 汽车仪表需要处理的信号主要有:车速、发动机转速、水温、油量、以及各种开关量或报警信号。其中,发动机转速信号和前后灯信号是从CAN总线获取,而车速信号、水温、油量和其他开关量信号从相应的传感器获取。本系统对车速、发动机转速、水温和油量信息采用步进表头显示,里程信息采用LCD显示,开关量或报警信号采用LED显示,串口EEPROM用于存储里程信息。采用Microchip公司的具有SPI接口的控制器MCP2510与收发器80C250构成CAN节点,用于实现与汽车其他CAN节点间的通信。 系统采用三星公司的ARM7TDMI器件S3C44BOX作为主控制器。S3C44BOX是16/32位RISC处理器,其工作主频可达75 MHz,内部资源丰富。由于S3C44BOX内部无存储器,因此必须采用总线扩展外部存储器,包括程序存储器和数据存储器,采用16 Mbit的:FlashSST39VF160及64 Mbit的SDRAM HY57V641620分别作为程序存储器和数据存储器。系统还采用一片AT24C04存储器件来存储里程信息。AT24C04是4 Kbit的串行存储器,采用I2C总线方式实现里程信息的存储。 由于汽车大多工作在恶劣环境下,将干扰车速传感器信号,因此在输入至中断端口EINT0前需要对车速脉冲信号进行处理,这里采用RC滤波、三极管放大以及斯密特整形方法调理车速脉冲信号。水温、油量信号是电阻信号,须转化为电压信号,再将其电压信号输入至S3C44BOX的AD端口。而其他开关量则经过滤波降压后输入至S3C44BOX的I/O端口。S3C44BOX无SPI接口,但有SIO接口,SIO模块的发送和接收既可在上升沿锁存数据位,也可在下降沿锁存数据位,因此可通过设置S3C44BOX的SIO模块所对应的寄存器实现上升沿发送数据,下降沿接收数据,从而与MCP2510的SPI总线时序相配合。其中步进电机选用Switec的汽车仪表专用步进电机X15.168,以及专用四通道步进电机驱动器件X12.017。S3C44BOX的I/O电平为3.3LVCMOS电平,而X12.017是5VCMOS电平,需采用74LVX4245电平转换。 μC/OS-II是Jean J-Labrosse开发的免费的、开源的嵌入式实时操作系统。μC/OS-II是一个基于优先级的可剥夺型内核,系统所有任务都有一个唯一的优先级别,适用于实时性要求较强的场合。μC/OS-II提供多种系统服务,如消息邮箱、消息队列、信号量管理以及时间延时等,实时内核使得CPU的利用更有效。μC/OS-II的可移植性强。由于S3C44BOX的SIO接口的引脚与标准I/O端口复用,因此首先必须设置S3C44BOX的引脚57~引脚59为SIO接口,然后再通过配置SIO模块对应的寄存器,使得SIO时序与MCP2510的SPI接口协议一致。
|