2.3 车速、水温、油量以及开关量的处理电路
由于汽车大多工作在恶劣环境下,将干扰车速传感器信号,因此在输入至中断端口EINT0前需要对车速脉冲信号进行处理,这里采用RC滤波、三极管放大以及斯密特整形方法调理车速脉冲信号。车速脉冲调理电路如图3所示。
水温、油量信号是电阻信号,须转化为电压信号,再将其电压信号输入至S3C44BOX的AD端口。而其他开关量则经过滤波降压后输入至S3C44BOX的I/O端口。
2.4 CAN总线通信电路
S3C44BOX无SPI接口,但有SIO接口,SIO模块的发送和接收既可在上升沿锁存数据位,也可在工字电感器下降沿锁存数据位,因此可通过设置S3C44BOX的SIO模块所对应的寄存器实现上升沿发送数据,下降沿接收数据,从而与MCP2510的SPI总线时序相配合。CAN总线通信电路如图4所示。
步进电机表头电路等。其中步进电机选用Switec的汽车仪表专用步进电机X15小型固定电感器.168,以及专用四通道步进电机驱动器件X12.017.S3C44BOX的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()、OSTask差模电感器DelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHo-ok()等6个函数;OS_CPU_A.S主要完成OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR(功率电感器)等4个汇编函数的移植。
3.3 系统任务及分析
对一个具体的嵌入式应用系统"任务划分"是实时操作系统应用软件的关键,任务划分是否合理将直接影响软件设计质量。本系统主要有8个任务,即车速脉冲测量任务、CAN总线任务、水温采样任务、油量塑封电感采样任务、开关量处理任务、里程记录及
LCD显示任务、步进电机驱动任务、WDT任务。任务间通过消息队列和信号量进行通信和共享数据。系统主控程序如下:
主程序在完成初始化(硬件初始化ARMtarge-tInit()、μC/OS-II初始化OSInit()、建立消息队列等)工作后依次创建各任务,然后调用OSStart()启动操作系统,启动时钟ARMTargetStart()。在μC/OS-II中,各任务都是并发的,但优先级不同,拥有各自的任务堆栈,不同任务间通过消息队列和信号量进行通信和共享数据。任务采用无限循环结构,各任务通过延时或者等待信号量和消息队列来放弃CPU的使用权,这样在时钟脉冲到来时产生中断切换任务,系统转而运行准备就绪的高优先级任务,当延时或信号量和消息队列到来时,任务再次运行。系统采用TimerO定时中断作为系统时钟脉冲控制器,并在需要的任务中建立信号量。系统任务如下:
数字印刷起源于特殊需求对数字印刷的起源有两种不同的看法。有人认为,数字印刷在传统印刷的基础上演变而成,但迄今为止不能找到数字印刷与传统印刷技术的关联性,至少从数字印刷的技术属性上考察,认为数
基于PWM电流型DC/DC变换器的研究1 引言电源是一切设备的核心,重要性犹如人体的心脏,但是电源却有许多形式。电源的参数一般有电压,功率,负载电流,噪声以及在负载动态情况下各个参数的变化等等,在同一个参数下面,又有重量、体积、效率、可靠
高能效比电容供电电路实现从设计角度看,超级电容和电池的根本区别在于电容器在充/放电周期发生的显著电压变化。充电时,理论上,电容器的电压从零上升到其最高额定电压,而电池的端电压在其工作周期中变化很小。超级电容是电子电容器的一个