ARM嵌入式汽车节能控制系统的设计
时间:2013-11-07 阅读:677
系统工作原理
本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感器、储气罐压力传感器等信号的检测。执行机构主要包括双向可控电磁阀和电磁离合器。控制部分主要由ARM微处理器组成的控制系统及一些外围电路构成。本文主要介绍该系统的控制部分。该装置的作用就是将刹车时本应由摩擦来消耗掉的汽车动能,改为由气体的势能来消耗,在启动时,利用刹车时储气罐内储存的高压气体势能来驱动汽车行走,当车速到达一定值如20km/h时,再切换到由汽车发动机驱动的模式。
系统硬件设计
由于该节能装置需检测的模拟量较多,如储气罐内的压力、制动踏板的位置、车速、活塞运行位置和油门踏板位置等数据,而且有些是需实时监控的,如储气罐内的压力等,需要使用多任务执行方可实现,而普通单片机无法满足这一要求。因此需根据实际情况,选用合适的处理器芯片,加上各种数据和程序存储芯片构成zui小系统。同时,增加数据采集、显示、通信接口、控制执行单元和电源管理模块等,来组成一个完整的控制系统。由于目前汽车应用CAN现场总线比较广泛,因此,为了与汽车的控制系统连接的方便,还增加了CAN总线接口,由此构成了整个硬件系统。系统的总体框图如图1所示。
图1 系统框图
S3C44BOX
由于设计要求系统能随车采集信号,并进行实时监控,对主控模块的要求较高,因此主控制模块应当是以高性能的微处理器为核心而组成的一个zui小系统。根据具体应用的要求,实际应用的反映情况,选用了Samsung公司的ARM芯片S3C44BOX,其主要性能如下:
Samsung公司推出的16/32位RISC处理器S3C44BOX为一般类型的应用提供了高性价比和高性能的微控制器解决方案。为了降低成本,S3C44BOX提供了丰富的内置部件,包括:8KB的Cache,内部SRAM, LCD控制器,带自动握手的2通道DART, 4通道DMA,系统管理器(片选逻辑,FP/EDO/SDRAM控制器),带有PWM功能的5通道定时器,I/O端口,RTC, 8通道10位ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍频器。
S3C44BOX的突出特性是它的CPU核,是由ARM公司设计的16/32位ARM7TDMI RISC处理器(66MHz)。ARM7TDMI体系结构的特点是它集成了Thumb代码压缩器,ICE (In Circuit Emulator)断点调试支持,和一个32位的硬件乘法器。
数据采集单元
数据采集单元的作用就是对需要的模拟信号进行采集、处理后送到处理器进行处理。在该单元中,核心是对模拟信号的调理。由于系统要采集到汽车的储气罐内的压力数据、制动踏板的位置数据、车速、离合器切合位置和油门踏板位置等数据,因此需要多路数据采集通道。各通道的数据必须完成信号的调理后,才能送到处理器进行处理。该采集单元的信号采集通道框图如图2所示。
图2 信号采集通道
控制执行单元
控制执行单元的功能主要是接收处理器发出的数字量,经过隔离及驱动后,送到执行机构如电磁阀、继电器、离合器等来使行相应的动作。功能框图如图3所示。
图3 控制执行单元
这一级相对来说较为简单,但为了防止外界对系统的干扰,须采用隔离。隔离器件采用普通的光电祸器即可,系统中采用TLP521-1。
数据显示模块
在系统的设计中,为了对采集的数据进行监控,使得调试更为方便、直观,因此增加了数据显示模块。S3C44BOX集成了LCD (Liquid Cristal Display)控制器,该控制器支持在LCD上的单色、4级、16级灰度、256色的显示,具有很强的通用性,S3C44BOX的LCD控制器的作用是将缓存中的数据传送到外部的LCD驱动器,并产生必须的LCD控制信号。LCD控制器可以编程支持不同水平和垂直点数(640×480,320×240,160×160等)、不同数据线宽度、不同接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描模式,并支持水平/垂直滚动,以用来支持更大的屏幕显示(如1280× 1280)。
由于不同尺寸的LCD具有不同数量的垂直和水平象素、数据接口、数据宽度、接口时间和刷新率,S3C44BOX中的LCD控制器可以对相应的寄存器值进行编程,以适应不同的LCD显示板。LCD控制器逻辑框图如下图4所示。
图4 LCD控制器逻辑框
电源模块
在本系统设计中,由外部供给系统单一的9V电源,通过三端稳压AS1117-5.0, AS1117-3.3和AS1117-2.5,分别得到5.0V, 3.3V以及2.5V。AS1117系列稳压器zui大能提供800mA电流,由于本系统功耗较低,zui大需求电流不超过300mA,因此用AS1117足以满足系统的供电需求。另外的两套±15V电源由DC/DC变换器供给。考虑到系统中有数字电路和模拟电路,由于数字电路的电流变化较快,容易产生脉冲干扰,从而影响模拟信号的采样精度,因此应把数字地和模拟地分开。
调试接口
S3C44BOX内嵌JTAG测试电路,使得调试起来非常方便。JTAG是一种标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP (Test Access Port,测试访问口),通过的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In System Programmable)功能,如对Flash器件进行编程等。
目前JTAG接口的连接有两种标准,即14针接口和20针接口,在本设计中,采用的是14针的接口。该接口主要通过下载电路与计算机的并行口相连,在集成开发环境之下,使用相应的JTAG下载代理软件就可以用来进行系统调试,而不需专门的仿真器,这样可以降低开发的成本。
通信单元
在系统设计中,考虑到数据传送、下载以及调试的方便,增加了串行通信RS-232C接口。另外,考虑到系统升级的方便,以及为了与现在流行的汽车总线接口的方便,增加了CAN现场总线的接口。
本系统中选用MAX232。MAX232可以实现TTL电平和RS-232电平之间的转换。由于在实际应用中,器件对电源噪声很敏感,因此MAX232的VCC引脚必须要对地加0.lmF去耦电容,另外,为提高抗*力,添加了四个l0mF电容,在连接在内部电源引脚输出端。MAX232芯片第7, 8引脚接入分别到串行口的第3, 2引脚;9, 10引脚接处理器的RXD, TXD引脚,实现与处理器的连接。
需要注意的是,MAX232是5V器件,而处理器芯片是用的是3V供电,因此需要考虑电平转换,否则将无法正常收发数据。由于Maxim公司已经注意到这点并推出了3V供电的器件MAX3232C,利用它就可以无需考率3V到5V的电平转换问题。MAX3232C与处理器的接口电路如图5所示。
图5 RS-232C与处理器的通信接口电路
系统软件设计
在本系统中,主程序是整个程序的核心,担负着系统的运行、控制的主要任务,需要对其控制流程进行仔细考虑,以完成所需的控制要求。
在程序开始时,首先对系统进行初步的初始化。之后,采集各种数据并判断数据是否正常,如果正常,则显示数据并等待中断,根据中断转向相应的中断服务子程序。如果数据不正常,则通过报警来提示用户检查数据,直到数据正常才执行其他程序。如果一切正常,且没有刹车和启动等控制,则可以与其他设备进行通信等操作。具体的流程见图6所示。
图6 系统总程序流程图
系统的抗干扰设计
要达到良好的系统控制效果需要在系统设计中非常注意它的抗干扰性和可靠性。本系统由于采用高速ARM作为核心处理器,它的高频信号不仅容易受到干扰,而且也会成为系统的干扰源,因此有必要对整个系统,特别是ARM部分的抗干扰及保护做更多的处理。
硬件部分,控制系统的电源及功率驱动部分抗干扰措施主要就是从防和抗两方面入手。其总原则是:抑制或消除干扰源;切断干扰对系统的耦合通道;降低系统对干扰信号的敏感性。抗干扰设计的具体措施包括:隔离、接地、屏蔽、滤波等常用方法。
软件部分,本系统的软件主要采用了以下几种软件抗干扰设计:
软件陷阱法
测试系统在遇到外界干扰时,往往会导致运行程序进入程序存储器的空白区(即无指令区),这种现象叫做程序"跑飞"。于是在各子程序之间、各功能模块之间和所有空白处,都写上连续3个空操作指令(nop),后接一无条件转移指令,一旦程序跑飞到这些区域,就会自动返回执行正常程序。
程序的冗余设计
在程序存储器的空白区域,写入一些重要的数据表和程序作为备份,以便系统程序被破坏时仍有备份参数和程序维持系统正常工作。由于TMS320LF2407A的数据存储以数据页为基准,如果对不同数据页的数据进行操作而不相应的数据页,会导致程序跑飞。因此需要对程序未使用满的数据页进行填充,防止数据页混乱导致的系统误操作。