新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种嵌入式汽车数字仪表设计方案

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

作者: 时间:2013-02-25 来源:网络 收藏

  2.4 CAN总线通信电路

  无SPI接口,但有SIO接口,SIO模块的发送和接收既可在上升沿锁存数据位,也可在下降沿锁存数据位,因此可通过设置的SIO模块所对应的寄存器实现上升沿发送数据,下降沿接收数据,从而与的SPI总线时序相配合。CAN总线通信电路如图4所示。

CAN总线通信硬件连接图

  步进电机表头电路等。其中步进电机选用Switec的汽车仪表专用步进电机X15.168,以及专用四通道步进电机驱动器件X12.017。的I/O电平为3.3LVCMOS电平,而X12.017是5VCMOS电平,需采用74LVX4245电平转换。

  3 软件设计

  3.1 操作系统

  μC/OS-II是Jean J-Labrosse开发的免费的、开源的嵌入式实时操作系统。μC/OS-II是一个基于优先级的可剥夺型内核,系统所有任务都有一个唯一的优先级别,适用于实时性要求较强的场合。μC/OS-II提供多种系统服务,如消息邮箱、消息队列、信号量管理以及时间延时等,实时内核使得CPU的利用更有效。

  3.2 μC/OS-II在ARM上的移植及配置

  μC/OS-II的源代码除了那些与硬件关系紧密的软件模块需用汇编语言编写外,绝大部分代码都采用C语言编写,所以μC/OS-II的可移植性强。在ARM上移植μC/OS-II主要编写3个源文件,即OS_CPU.H、OS_CPU.C、OS_CPU_A.S。在OS_CPU.H中完成所需的基本配置和定义(定义数据类型、定义使能和禁止中断宏等);OS_CPU.C主要移植OS-TaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHo-ok()等6个函数;OS_CPU_A.S主要完成OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()等4个汇编函数的移植。

  3.3 系统任务及分析

  对一个具体的嵌入式应用系统“任务划分”是实时操作系统应用软件的关键,任务划分是否合理将直接影响软件设计质量。本系统主要有8个任务,即车速脉冲测量任务、CAN总线任务、水温采样任务、油量采样任务、开关量处理任务、里程记录及LCD显示任务、步进电机驱动任务、WDT任务。任务间通过消息队列和信号量进行通信和共享数据。系统主控程序如下:



评论


相关推荐

技术专区

关闭