郭波;管菊花;李杰
【摘 要】针对汽车安全气囊控制系统实时性要求高、运算量大的特点,提出了基于ARM Cortex-M3内核微控制器的设计方案;方案选用基于ARM Cortex-M3内核的工业级32位高性能微控制器LM3S1138,嵌入μC/OS-Ⅱ操作系统,运用移动积分窗爆破算法,构建了汽车安全气囊控制系统;系统软件设计部分使用TI公司官方提供的驱动库进行模块化设计,大大缩短了开发周期.由于LM3S1138微控制器是片上系统(SoC),集成了众多外设并具有丰富的I/O口,故该系统具有集成度高、体积小及可扩展性强的特点;台车试验和实车试验表明,系统可较为准确地控制气囊的最佳点火时刻,从而验证了方案的可行性.
【期刊名称】《计算机测量与控制》
【年(卷),期】2010(018)009
【总页数】4页(P2091-2094)
【关键词】ARM Cortex-M3内核;微控制器;安全气囊;控制系统
【作 者】郭波;管菊花;李杰
【作者单位】南昌大学科学技术学院,江西,南昌,330029;南昌大学科学技术学院,江西,南昌,330029;西北工业大学动力与能源学院,陕西,西安,710072
【正文语种】中 文
【中图分类】TP273
0 引言
汽车加装安全气囊随着汽车的普及和行驶速度的加快,交通事故及伤亡人数也在逐年上升。在发生汽车碰撞事故时,如何有效地保护司机和乘员生命的安全是迫切需要解决的问题。安全气囊作为与安全带配合使用的被动保护装置已经普及,成为汽车构件中保护乘员的主要装备之一。
气囊控制系统可分为机械式、模拟电子式和嵌入式3种类型。对于机械式和模拟电子式控制系统,由于硬件的局限,灵活性受到很大限制,应用日益减少[1]。新一代的气囊控制系统均为带微控制器的嵌入式控制系统。嵌入式控制系统的控制算法由软件实现,极大地提高了系统的灵活性,并具有记录事故数据和与上位机进行通讯的功能。
汽车的安全气囊要求能在一个极短的时间内检测到汽车碰撞事故的发生并控制气囊启爆。为了实现上述目标,要求安全气囊控制系统的微控制器运算能力强、I/O口充足。基于此,选择高性能的32位微控制器,研究并开发出较为实用的汽车安全气囊控制系统,具有一定的应用和参考价值。本文在对国内外先进控制系统研究的基础上,提出了基于ARM Cortex-M 3内核32位微控制器的汽车安全气囊控制系统的设计方案,并分别进行了台车和实车试验。
1 ARM Cortex-M 3内核与微控制器LM 3S1138[2]
ARM公司面向低成本应用领域研发出32位Cortex-M 3内核处理器。该处理器有效地利用芯片空间,高度集成了外设,与内核组成了一个片上系统 (SoC)。ARM Cortex-M 3处理器结合了Thumb-2指令32位哈佛微体系结构。Thumb-2技术提高了代码密度,比32位编码减少了26%内存使用率,较16位编码提高了25%性能。通过降低时钟频率,提供更低的功耗,降低了研发成本,提高了企业效率。芯片上实现了Tail-Chaining中断技术,该技术把中断之间的延迟缩短到6个机器周期,在实际应用中可减少70%中断。
本系统微处理器选用TI公司基于ARM Cortex-M 3内核的LM 3S1138工业级微控制器。其工
作温度范围是-40~85℃,并具有良好的电磁兼容特性,可应用于汽车电子领域[3]。
2 系统工作原理与设计
2.1 系统的工作原理
安全气囊控制系统主要由传感器、自检电路、触发电路、通讯电路和报警电路组成,如图1所示。
其工作原理为:上电后,系统进行自检,确定触发电路是否可以正常工作。若触发电路存在故障,报警电路进行声光报警,表明系统无法正常工作,通知驾驶员及时修理。当自检正常时,通过32位微处理器 LM 3S1138不断对加速度传感器MMA 7260测得的信号进行采样。当汽车受到一定角度内的高速碰撞时,系统在经过算法分析确认之后,立即触发气囊包内的点火器,气囊迅速充满气体,阻挡驾驶员与汽车构件之间可能发生的碰撞,通过气囊上排气孔的节流阻尼作用来缓冲吸收驾驶员动能,从而达到保护驾驶员安全的目的。
图1 安全气囊控制系统结构图
2.2 系统的硬件设计
2.2.1 加速度测量电路
本文选择飞思卡尔公司的硅电容加速度传感器MMA 7260。它具有信号放大调理、低通滤波和补偿功能。该器件的零加速度偏置、满量程范围和滤波特性均由制造厂家调定,不需要外接无源元件。由于该传感器制作工艺上的高集成度和可靠性 ,最大程度地降低了外界的干扰。M MA7260直接采用IC集成封装,可直接焊在PCB板上,调试方便。
LM 3S1138处理器内置8通道10位 ADC,采样速率可达1M/s,精度足够用于安全气囊。传感器测得加速度后,从相应的输出管脚输出电压值。通过 LM 3S1138处理器内置的ADC对电压值进行模数转换,再存入到软件设定的数组中。加速度测量电路的硬件原理图如图2所示。
本系统只使用MMA 7260三轴加速度传感的X和Z两轴来进行水平方向的碰撞判断。X轴方向测量汽车正面碰撞的加速度,Z轴方向测量汽车垂直方向的加速度。当汽车高速驶过沟、坎路面时,会导致传感器即使在没有发生碰撞的情况下,也产生较大信号。此信号叠加在低速碰撞的碰撞波形上,导致微控制器误认为高速碰撞,进而发生误启爆[4]。鉴于此,当汽车Z轴(垂直方向)产生较大的加速度时,无论X轴方向加速度如何,安全气囊均设计为不
启爆。避免了因为汽车高速驶过地面路障时,安全气囊引爆所造成的不必要的损失,增强了路面抗干扰性。
2.2.2 点火触发电路
图2 数据采集电路原理图
由于气囊气体发生器的点爆时需20m A电流脉冲。若直接用LM 3S1138的I/O口输出高电平进行引爆,驱动过小,无法满足要求。系统选用电磁式继电器,在LM 3S1138输出口的控制下可驱动大功率的负载。由于继电器会产生较明显的干扰,故在继电器周围加抗干扰电路的同时与光电耦合器配合使用,使得处理器与触发电路光电隔离。当碰撞发生时,安全气囊对身材过于矮小的成年人或儿童不但没有保护作用,引爆的巨大冲击力甚至会将其弹死。为了更好地实现安全点火和智能化点火,系统在触发回路上设置一个座位压力感应装置。如果有成年人入座,则装置闭合,点火电路可正常工作。相反,如果装置断开,则表明无人入座或只有矮小成年人或儿童入座,触发电路不能形成回路。此时,即使汽车发生碰撞且算法发出点火信号,安全气囊也不爆破。这样,既防止在无人入座的状态下引爆气囊而造成的经济损失,又避免了气囊对矮小成年人和儿童造成的伤害。点火触发电路的原
理图如图3所示。
图3 点火触发电路原理图
2.3 系统的软件设计
系统采用 Cortex-M 3内核处理器简化了软件开发环境。针对LM 3S1138等一系列的微控制器,TI官方免费提供了基于C语言(符合ANSIC标准)的驱动库,它包含了众多固件函数库 ,对每一个外设都有相应例程 ,可以很方便地根据应用需要进行修改和移植。因此在软件编程时,无需汇编程序的软件管理,完全可以用驱动库C语言函数进行编程开发。开发应用程序时,利用驱动库的例程进行模块化设计,不仅程序编写方便,而且代码简洁且可读性强。对编写大型程序而言,采用驱动库能增强可靠性和安全性,同时降低维护成本。故本系统软件程序利用TI公司提供的驱动库例程进行模块化程序设计,把整个系统程序分为若干个小程序或模块 ,分别进行独立设计、编程和测试。最后将各模块构建一个完整的工程,完成应用程序设计。将整个工程分成了主程序、启动任务、定时采样任务和串行通信任务等4大模块。流程图如图4所示。
图4 程序流程图
2.3.1 主程序模块
为增加系统的执行效率,实现多任务程序运行,系统通过移植,嵌入了μC/OS—Ⅱ操作系统。程序流程图中启动任务模块为嵌入μC/OS-Ⅱ操作系统时程序常用模式。
2.3.2 启动任务模块
在程序运行时,先执行启动任务,然后根据按键情况,执行通讯任务或定时采样任务。
2.3.3 定时采样模块
软件中实现每1μs采样一次加速度并做A/D转换,存储在Flash中。若发生了撞车事故并符合算法的点火条件,记录当前数据存放地址,适时发出点火指令,启爆气囊,同时,再采样90个数据点。在分析现场时,碰撞前的90个数据和撞车后的90个数据可记录在LM 3S1138内置的Flash中,作为黑匣子信息分析事故原因。
本系统选用加入垂直量的移动窗积分算法。由于篇幅所限,将在后续文章中论述。
2.3.4 串行通讯模块
事故发生后,PC机通过串行口读出气囊控制系统黑匣子中的数据,作为分析事故之用。开发人员可自行设置读取黑匣子水平方向加速度和垂直方向加速度数据的密码。
发布评论