嵌入式汽车数字仪表设计方案


嵌入式汽车数字仪表设计方案
一、引言
随着汽车电子技术的飞速发展,汽车数字仪表作为汽车信息的重要显示装置,其功能性和可靠性要求日益提高。本文提出了一种基于ARM架构的嵌入式汽车数字仪表设计方案,详细阐述了系统结构、主控芯片选型及其在设计中的作用,并介绍了各个模块的工作原理和通信方式。
二、系统概述
汽车数字仪表系统需要处理的信号主要包括车速、发动机转速、水温、油量以及各种开关量或报警信号。其中,发动机转速信号和前后灯信号从CAN总线(发动机电控模块和前后灯电控模块)获取,而车速信号、水温、油量和其他开关量信号则从相应的传感器获取。
本系统对车速、发动机转速、水温和油量信息采用步进表头显示,里程信息采用LCD显示,开关量或报警信号采用LED显示。串口EEPROM用于存储里程信息。系统采用Microchip公司的具有SPI接口的控制器MCP2510与收发器80C250构成CAN节点,用于实现与汽车其他CAN节点间的通信。
三、主控芯片选型及其作用
1. 主控芯片型号:三星S3C44BOX
型号说明:
三星S3C44BOX是一款基于ARM7TDMI内核的16/32位RISC处理器,其工作主频可达75 MHz,内部资源丰富。
S3C44BOX内部无存储器(内部SRAM用于缓存),因此必须采用总线扩展外部存储器,包括程序存储器和数据存储器。
在设计中的作用:
数据处理核心:S3C44BOX作为主控制器,负责接收并处理来自各个传感器的信号,包括车速、发动机转速、水温、油量等模拟信号,以及开关量和报警信号。
通信接口控制:通过内置的SIO接口(与MCP2510的SPI接口时序配合),实现与CAN总线的通信,从而获取发动机转速信号和前后灯信号。
显示控制:通过I/O端口控制步进电机表头、LCD显示器和LED指示灯,实时显示车速、发动机转速、水温、油量、里程等信息以及报警信号。
存储管理:通过I2C总线方式,利用AT24C04存储器件存储里程信息,确保数据在掉电时能够及时保存。
2. 其他关键芯片
CAN节点控制器:Microchip公司的MCP2510,具有SPI接口,用于实现与汽车其他CAN节点间的通信。
存储器:16 Mbit的FlashSST39VF160作为程序存储器,64 Mbit的SDRAM HY57V641620作为数据存储器。
步进电机驱动器件:Switec的汽车仪表专用步进电机X15.168及专用四通道步进电机驱动器件X12.017。
电压转换器:7805稳压器作为5V电压转换器,AS2515AU2.5和AS2515AU3.3分别作为2.5V和3.3V电压转换器。
四、系统结构与设计
1. 电源电路
该汽车数字仪表系统采用汽车蓄电池供电,蓄电池电压约为12V,而系统需采用5V、2.5V和3.3V工作电压。S3C44BOX内核工作电压是2.5V,I/O端口的工作电压是3.3V,调理电路以及一些驱动器件需用5V的工作电压。因此,系统选用7805稳压器作为5V电压转换器,选用AS2515AU2.5和AS2515AU3.3分别作为2.5V和3.3V电压转换器。掉电时能够及时存储里程信息,电源地需接一只1000μF的电容,确保S3C44BOX在掉电时仍能工作一段时间,完成里程信息的存储。
2. 信号调理电路
车速脉冲信号调理:由于汽车大多工作在恶劣环境下,车速传感器信号易受到干扰,因此在输入至中断端口EINT0前需要对车速脉冲信号进行处理。采用RC滤波、三极管放大以及斯密特整形方法调理车速脉冲信号。
水温、油量信号调理:水温、油量信号是电阻信号,需转化为电压信号,再将其电压信号输入至S3C44BOX的AD端口。
开关量信号调理:其他开关量则经过滤波降压后输入至S3C44BOX的I/O端口。
3. 显示模块
步进电机表头:选用Switec的汽车仪表专用步进电机X15.168及专用四通道步进电机驱动器件X12.017。S3C44BOX的I/O电平为3.3LVCMOS电平,而X12.017是5VCMOS电平,需采用74LVX4245电平转换。
LCD显示:用于显示里程信息。
LED显示:用于显示开关量或报警信号。
4. 存储模块
采用AT24C04存储器件来存储里程信息。AT24C04是4Kbit的串行存储器,采用I2C总线方式实现里程信息的存储。
5. 通信模块
CAN总线通信:采用Microchip公司的具有SPI接口的控制器MCP2510与收发器80C250构成CAN节点,用于实现与汽车其他CAN节点间的通信。S3C44BOX无SPI接口,但有SIO接口,可通过设置S3C44BOX的SIO模块所对应的寄存器实现上升沿发送数据,下降沿接收数据,从而与MCP2510的SPI总线时序相配合。
串口EEPROM:用于存储里程信息。
6. 操作系统与任务划分
系统采用Jean J-Labrosse开发的免费的、开源的嵌入式实时操作系统μC/OS-II。μC/OS-II是一个基于优先级的可剥夺型内核,系统所有任务都有一个唯一的优先级别,适用于实时性要求较强的场合。μC/OS-II提供多种系统服务,如消息邮箱、消息队列、信号量管理以及时间延时等,实时内核使得CPU的利用更有效。
本系统主要有8个任务,即车速脉冲测量任务、CAN总线任务、水温采样任务、油量采样任务、开关量处理任务、里程记录及LCD显示任务、步进电机驱动任务、WDT任务。任务间通过消息队列和信号量进行通信和共享数据。
车速脉冲测量任务:脉冲信号接EINT0,使用定时器1定时,测量t时间内脉冲数,并将数据发送到消息队列。
CAN总线任务:等待中断服务程序发送,接收CAN总线数据的信号量,获得CPU使用权后,处理CAN总线数据并将其发送到消息队列,并再次等待接收信号量。
水温和油量采样任务:定时采样模拟量,并将采样到的模拟量数值发送到消息队列。
开关量处理任务:根据开关量的状态控制LED点亮或熄灭,延时。
里程记录及LCD显示任务:当车速脉冲值累加至0.1km计数值,向本任务发出信号量,任务获得信号量后进入准备就绪状态,在任务调度时获得CPU的使用权,显示并记录里程信息,运行后继续等待接收信号量。
步进电机驱动任务:首先等待消息队列,再根据送出消息的任务识别出信息内容,根据队列中的数据驱动步进电机旋转相应的步数,运行后再次等待队列中的消息。本任务赋予第2高优先级。
WDT任务:用于监控,提高系统的可靠性,任务优先级最高,延时。
五、系统实现与测试
1. 初始化与任务创建
主程序在完成初始化(硬件初始化ARMtargetInit()、μC/OS-II初始化OSInit()、建立消息队列等)工作后依次创建各任务,然后调用OSStart()启动操作系统,启动时钟ARMTargetStart()。
2. 系统测试
功能测试:验证系统能否正确显示车速、发动机转速、水温、油量等信息,以及能否正确响应开关量和报警信号。
性能测试:测试系统的响应时间和数据处理能力,确保系统能够满足实时性要求。
可靠性测试:在恶劣环境下进行长时间运行测试,验证系统的稳定性和可靠性。
六、结论
本文提出了一种基于ARM架构的嵌入式汽车数字仪表设计方案,详细阐述了系统结构、主控芯片选型及其在设计中的作用,并介绍了各个模块的工作原理和通信方式。该系统采用三星S3C44BOX作为主控制器,通过CAN总线与汽车其他模块进行通信,实现了车速、发动机转速、水温、油量等信息的实时显示和报警信号的提示。同时,系统采用μC/OS-II实时操作系统进行任务管理和资源调度,提高了系统的实时性和可靠性。经过测试验证,该系统功能完善、性能稳定、可靠性高,具有广泛的应用前景。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。