面向汽车电子的嵌入式软件研究与开发

更新时间:2023-06-11 10:26:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

重庆邮电大学

硕士学位论文

面向汽车电子的嵌入式软件研究与开发

姓名:陈俊华

申请学位级别:硕士

专业:控制理论与控制工程

指导教师:王平;蒋工亮

20060420

捅姜

随着社会的进步和汽车工业的飞速发展,汽车在降低能耗、提高安全性和舒

适度以及环保等方面的要求越来越高,这些要求刺激了电子技术在汽车上的应用,而且比重不断增加。同时,随着汽车电子控制软件复杂度的不断提高,嵌入式系统被应用到了汽车电子领域。如何开发出安全、可靠、高效的面向汽车电子的嵌入式软件,是目前国内外汽车行业都比较关心的问题。本文针对汽车ABS系统的控制算法与嵌入式软件开发进行了探讨。

本文主要内容包括:

l、分析了汽车电子的发展背景、嵌入式软件应用在汽车领域的必然性、以

及面向汽车电子的嵌入式软件发展趋势。

2、在简要介绍ABS控制系统原理的基础上,建立了ABS系统控制模型,

提出了基于逻辑门限法的控制策略。

3、设计完成了ABS控制算法在OSEKTurbo嵌入式系统之上的实现,其中

工作的重点是算法模块流程,任务结构设计以及编码。

4、针对测试环境建立时遇到的难题—-ECU无法高速存储算法运行过程中

的关键数据,提出了带CAN接口的数据采集卡设计方案。重点就MCP2510硬件在linux下的驱动设计、多线程应用程序开发进行了研究与探讨;同时提出多级缓冲区设计方案,解决了在非实时操作系统uClinux中难于实现高速网络数据接收并低速记录的难题。

测试表明:ABS控制软件实时性强、运行稳定、控制效果较好;带CAN接

口的数据采集卡能高速、完整的将数据采集并存贮在Flash芯片中,满足测试需求。关键词:汽车电子,嵌入式软件,0sEKⅣDx,OsEKTurbo,uClinux

Abstract

、聃thprogressofsocietyandexpeditiousdevelopmentofautomobileindustry,

thedemandsoflowenergycosLcomfort,andenvkonmentalprotectioninautomobile

mores仃ong,whichstimulateelectronictechnologyapplicationon

automobile.Andtheapplicationproportionispersistentlyincreasing.Meanwhile,asaremoreandthecomplexityofautomobileelectroniccontrolsoftwareisincreasing,kindsofembeddedsystemsareusedinautomobilefield.HowtOexploitsafe,credibleandefficientembeddedsoRwareforautomobileelectronicnOWistheproblemwhichconcernsautomobilefieldbotllhereandabroad.ABScontrolalgorithmandembeddedsoftwareexploitingarediscussedinthepaper.

Thispaperincludesthefollowingcontent:

1.BackgroundofautOmobileelectronic,inevitabilityofembeddedsoRware

appliedinautomobile

arefield,andembeddedanalyzed.sottwaredevelopmenttrendforautomobileelectronic

2.OnthebasicofabriefintroductionofABScontrolsystemtheory,ABScontrol

modelissetupandcontrol

一policyforlogicgatemethodispresented.on

on3.TheimplementationofABScontrolalgorithmOSEKTurboembeddedsystemisdesignedandcompleted.Thispartofworkfocus

tasksstructuredesign

4.Analgorithmmoduleflow,andcoding.schemeofdatacapturecardwithCANinterfaceisbroughtoutimplement

foraproblemwhichwemeetduringbuildingtestingenvironment.TheproblemisthatECUCan’trapidlystorekeydatawhenalgorithmisrunning.ImainlystudyanddiscussMCP2510driverdesignunderlinuxandmultithreadapplicationexploitation.Meanwhile,amultilevelbufferareaschemeisputforward,whichresolvesthedifficultproblemthatnon-realtimeOSuClinux

receivingimplementhi曲speed

withnetworkdataandlowspeedwritingrecord.goodcontrolresultisItispresentedbytesting,thatABScontrolsoRware

robustandofstrongrealtimeability.TestingalsoshowsthatdatacapturecardwithCANinterfacemeetstestingrequirements,whichCanrapidlyandcompletelyreceivedata,andthenstoretheminthecard.

Keywords:AutomotiveElectronic,EmbeddedSoftware,OSEK/VDX,OSEKTurbo,uClinuxⅡ

独创性声明

本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得重废邮鱼盍堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。

学位论文作者签名:节扛雀华签字日期:≯卿#年s月)f日

学位论文版权使用授权书

本学位论文作者完全了解重鏖壑电盔堂有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权重废蛏电盍堂可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。

(保密的学位论文在解密后适用本授权书)

学位论文作者签名:予糸俊彳

,导师签名:Z夸签字目期:>坩#年§月工1日签字日期:y伊彭年f月乙/日

第一章绪论

1.1背景

汽车电子化是现代汽车发展的重要标志之一。目前每辆汽车采用电子装置的

情况已成为衡量汽车档次高低的主要标准。未来汽车市场的竞争是汽车电子化的竞争。八十年代以来,国外应用计算机技术和微电子技术推出了具有多种检测和控制功能的汽车电子系统,使汽车的性能和质量得到很大的提高,并且还解决了汽车环保生态问题。使用这些电子控制装置后,明显地改善了汽车的动力性、可靠性、安定性、舒适性、便利性和经济燃油性。

汽车电子化建立在电子学的发展基础之上,从真空管、晶体管、集成电路、

大规模集成电路到超大规模集成电路的技术进步,出现了计算机等各种各样的电子装置,汽车电子化也随之逐年深化与发展。20世纪50年代,人们开始在汽车上安装电子管收音机,这是电子技术在汽车上应用的雏形。1959年晶体管收音机问世后,很快在汽车上得到了应用。60年代,汽车上应用了硅整流交流发电机和晶体管调节器,到60年代中期,汽车上开始采用晶体管电压调节器和晶体管点火装置。但更多的应用电子技术则是在70年代以后,主要是为解决汽车安全、污染和节油3大问题。进入70年代后期,电子工业有了长足的进步,特别是集成电路、大规模集成电路和超大规模集成电路技术得到了巨大发展,微机在汽车上的应用,给汽车工业带来了划时代的变革。20世纪90年代,汽车电子技术进入了其发展的第三个阶段,这是对汽车工业的发展最有价值、最有贡献的阶段,超微型磁体、超高效电机及集成电路的微型化,为汽车上的集中控制提供了基础。目前汽车电子技术已发展到第四代,即包括电子技术(含微机技术)、优化控制技术、传感器技术、网络技术、机电一体化耦合交叉技术等综合技术的小系统,并且早已从科研阶段进入了商品生产的成熟阶段。

汽车电子工业是一个潜力巨大的产业。据美国通用汽车公司报道,至八十年

代末,美国平均每辆汽车装备的电子产品价值861美元,若按此水平对我国2010年轿车所装汽车电子装备进行计算,则年需280亿元人民币的电子产品装备。目前国外汽车电子系统在汽车价格中所占比例已达20%,而且这一比例还在不断扩大。为了加强市场竞争能力,国外在提高电子系统所占比例的同时,广泛采用16位、32位微处理器,以及广泛采用更先进的传感器,使汽车的功能从对汽车自身的控制管理扩大到“汽车一人一环境”这样一个大系统的信息获取、处理和控制。

伴随着全球汽车市场的飞速发展,汽车电子产业在中国也进入到一个跳跃式增长期。汽车工业将成为我国经济的支柱产业。近几年中国汽车电子产业的年增

长率超过50%,成为拉动汽车工业发展的重要因素,人们普遍看好汽车产业和电子信息产业的结合将为汽车制造业带来新的增值空间。

汽车电子产品可以分为两类:一类是车载汽车电子装置,例如汽车音响等,

它们和汽车本身的性能无直接关系,属于汽车的附加值部分:另一类是汽车电子控制系统,例如电子燃油喷射系统、制动防抱死控N(ABS)系统、电子控制悬架系统等,它们直接影响着汽车的性能。

就车载汽车电子装置而言,目前国内有较好的开发基础,今后关键是要进一

步形成经济规模来降低成本,以提高在全球市场的竞争力。而汽车电子控制系统具有投资较大、开发周期长、技术难度大等特点,虽然中国已有一些企业从事技术研发,但还没有形成产业化,因此这一行业还没有发展起来。特别是如今市场上面对的都是国外实力强大的跨国汽车电子公司,加上国内电子行业对汽车电子控制系统所知有限,先天不足加上后天“营养”不足,这些都会影响国内汽车电子产业化进程。所以,开发我们自己拥有知识产权的汽车电子控制系统,具有重要意义。

随着车载控制系统的日益先进和复杂化,软件开发工程师所面临的工作量和

压力也越来越大;随着汽车电子系统设计复杂度的提高,汽车因安全隐患被“招回”的现象越来越多。专家估计,每辆汽车投入的软件开发时间及人力在2010年将达到2005年的5.10倍。怎样降低汽车控制软件开发的复杂度、降低工作量而且要提高系统的安全性,是行业多年来寻求解决的难题。为解决这个难题,嵌入式系统被应用到了汽车电子行业中。应用于汽车电子的嵌入式软件的研究与开发正在汽车领域如火如荼的开展起来。

1.2面向汽车电子的嵌入式软件发展趋势

嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器

/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)和应用程序,有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序与硬件的交互作用。嵌入式CPU与通用型的CPU最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,-移动能力大大增强。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。2

图1.1汽车网络系统

图1.1展示了目前典型的汽车网络系统,几乎每一个网络节点都是一个嵌入

式MCU控制的子系统,整个网络又是一个完整的系统。要管理如此复杂的系统,嵌入式操作系统必不可少。对于一些没有关系到汽车安全的部件,如GPS定位仪、多媒体播放器,可以选用功能完善、实时性不强的嵌入式操作系统,如Linux、uClinux、W'mCE:而对于关系到汽车安全性能的部件,如ABS、AMT,必须选择实时嵌入式操作系统,如VxWorks、uCOS、RT-Linux、OSEKTurbo。

目前,车用控制软件缺乏重用性和兼容性。在开发和管理与应用不相关的控

制单元软件时,尤其是像车用嵌入式操作系统内核等软件,存在重复的巨额开销。如果能规范不同供应商之间汽车电子产品和元器件的互通性,实现汽车电控软件的接口标准化,那么汽车电子行业就可建立国际间广泛的合作关系,分享汽车电子领域的技术积累,向“水平分业型”开发方式转变,从而缩短产品开发时间、降低开发成本,从根本上提高产品的可靠性。不同的接口和协议,导致不同厂商生产的控制单元没有兼容性。国际业界早已着手解决这些问题。提出于1993年的OSEK/VDX体系,它的开放式体系结构提供了标准化接口。经过十多年的发展,OSEK,、∞X已经引起了全球的强烈关注。它的主旨是从已有软件的可移植性、可扩展性和可重用性角度出发,采用基于标准化接口和协议的构件化、模块化设计。同时,OSEK/VDX还允许不同供应商把不同的模块集成在汽车电控系统中。

随着汽车电子的不断发展,未来的面向汽车电子的嵌入式软件将是符合行业统一标准、移植性强、兼容性好的体系;同时嵌入式软件质量的好坏,将是未来

重庆邮电大学硕士论文第一章绪论汽车整体质量比拼的一个重要考查点。

1.3论文结构

本文共分五章,各章的内容安排如下:

第一章介绍了汽车电子的发展历程、广阔的市场前景,分析了目前汽车电子

开发过程中遇到的问题,引出对嵌入式系统介绍,并对基于汽车电子的嵌入式软件现状及发展前景进行了分析。

第二章具体分析了ABS控制系统原理以及数学模型,并在此基础上给出了

目前使用最广的逻辑门限算法控制策略。

第三章首先简单介绍了OSEK标准及OSEKTurbo操作系统,然后给出我们

的ABSECU硬件结构,分析了逻辑门限与PID控制算法处理流程,设计了算法模块及嵌入式系统任务结构,最后编码实现。

第四章针对测试环境建立时遇到的问题——无法高速存储算法运行过程的

中间数据,给出了带CAN口的数据采集卡方案。然后详细介绍数据采集卡的软件设计。最后,给出了对整个ABS控制系统进行测试的结果,并得出结论。

第五章总结了本文所做工作,并探讨进一步的研究方向。4

重庆邮电大学硕士论文第二章ABS控制系统

第二章ABS控制系统

防抱死制动系统(Anti-lockbrakesystem)——ABS,是常规制动装置基础

上的改进型技术。它的工作原理是,依靠装在各车轮上高灵敏度的车轮转速传感器,有些还有车身上的车速传感器,通过ECU计算然后控制。紧急制动时,一旦发现某个车轮抱死,ECU立即指令压力调节器使该轮的制动分泵泄(减)压,使车轮恢复转动。ABS的工作过程实际上是抱死——松开——抱死——松开的循环工作过程,使车辆始终处于临界抱死的间隙滚动状态,有效地克服紧急制动时的跑偏、侧滑、甩尾,防止车身失控等情况的发生。本文的重点不是ABS原理研究,这里只对相关理论知识进行简要介绍。

2.11/4车ABS测控系统

图2.11/4车ABs测控系统

如图2.1所示,1/4车ABS测控系统由制动部分、传感器部分、控制器部分

等组成。当司机踩下刹车时,制动过程开始:制动总阀不断的向制动器中充入高压气体或液体,制动器改变当前轮速;车轮速传感器、车速传感器(不是必需)将相关信息传入控制器,控制器计算之后采用PWM或其它方式控制电磁阀,电磁阀位于气体或液体传输通道上,所以实际充入制动器的压力由电磁阀控制——或充、或放、或保持。这样形成一个闭环控制系统,时刻防止车轮抱死发生。

2.21/4车ABS控制模型“1

2.2.1汽车动力学模型

基于单轮的1/4汽车模型可满足各位置车轮单独ABS控制参数理论设计的要

求,由如下车体、车轮力矩平衡式和滑移率九的定义式描述。

lmv=一‘一乞

{I。=_Tb+fbR+fRR(2 1)

l旯=0.caR)/o

式中:nrl/4汽车质量;

R——车轮半径;

u——车速;

瓦——制动力矩;

乞——-i气车风阻;I。——车轮转动惯量;五——滑移率;m——车轮转速;fb——弛面制动力;fR——汽车滚阻。

2.2.2轮胎力计算模型

08

O6

O4

轮胎路面纵向力附着系数O2

图2.2路面附着系数随滑移率的变化曲线

为了比较准确地模拟不同附着系数下轮胎路面之间的相互作用,采用Magie

Formula计算轮胎作用力,即

E=Dsin{Carctan[B(1一EX2+sh)+Earctan(B,Z+BSh)】}+s,(2.2)

式中Fx为轮胎纵向力,B、c、D、E、和Sv为特征系数,必须通过试验获得。

利用MagicFormula式计算得到不同路面附着系数随滑移率的变化曲线如图

2.2。ABS的功能就是把滑移率控制在附着系数的峰值点附近。

2.2.3制动系统模型

ABS制动系统分气压与液压。因为合作的卡福公司生产的是气压ABS制动

器,所以我们暂且只讨论气压类型。制动气室充、放气过程可以建立相应的物理方程来求解,这一过程可以用气体状态方程和气体连续性方程来描述。其思路是:先通过气体流量方程求出进入制动气室的气体质量,再利用气压状态方程解出相应的压力,这是充气过程;放气过程也是如此。充、放气过程由于时间短、速度高,可以将整个过程看成绝热过程。对于充气过程,根据气体连续性方程,气体通过制动气室入口小孔的瞬时流量可表达为:

Q。=器(剖西.V/盟K+I……………咖l<o.szs

(2.3)

0:垒鱼

一R。I……P2/p1>O.528

式中Q。——瞬态质量流量;A.——气室入口最小截面积;

Ro——气体常数,空气:R。=2sTO/k。K);K.一绝热指数;

I——气室中绝对温度;P。、P2——分别为气室入口上、下游的压力。

这里瞬态流量有两个表达式,在充气的初始阶段压差较大,气体流速以音速流动,当p2/pl>O.528时气体以压音速流动,根据上、下流的压力比Pz/P。的大小,确定采用不同的计算公式,因为(2.2)式的瞬态流量只涉及上、下游的压力差,所以(2.2)式也同样适合与压力释放过程,但Pl是变化的。

理想气体状态方程符合下述关系:

P={≠RoTl(2-4)V

式中P为压力,Q。为气体质量,V为气室容积。

这里假设气体容积V为常数,因为在气室充气过程中,气室在很短的时间

内(约占整个动态过程1/10时间)影响气室容积的气室膜片就变形与气室内腔一7

致,所以气体容积可视为不变,充、放气视为绝热过程,系统与外界无热量交换,其状态方程可表达为:pip‘=常数(2—5)

对(2.4)微积分并结厶(2_5)可耀fJddtp=芋Q。

国内外学术界通过对比试验数据,修正后得最终计算公式:(2.6)

鲁一cm字(剖2由辱…………………∥耶o.szs

(2.7)

i2‰_r

2.2.4dpr1KApl………………..P2/pI>0.528ABS控制策略

十At

olf增压f

+al

lr}阶梯式增压。保压f

-a@以/’固/至/弋I

S2I

一l减压Sl@爹=姿堡型堡孳管孽型塑龛,低(园第一次控制循环的控制指令附着路面的指令为低速增保。

图2.3ABS逻辑门限算法逻辑

在车辆制动过程中,ABS通过调节制动压力,使轮胎路面附着系数处于其

峰值附近而避免车轮抱死,保证车辆获得最大的制动力和较大的侧向力,以达到制动距离最短和保证车辆行驶稳定的目的。ABS的控制策略和控制器参数的设定直接决定其性能的好坏。实用的ABS几乎都采用基于加减速度和参考滑移率门限值的控制方式,而各门限值的选择主要依赖开发过程中大量实车试验数据调整。笔者工作的重点是ABS算法的实现,不是ABS控制算法本身的研究,这里只对我们的控制策略作简要的介绍。

我们主要参照Bosch公司开发的逻辑门限控制策略,设计控制逻辑如图2.3。

图中.a为车轮角减速度门限值,+a和+A分别为第一、第二角加速度门限值,sl和S2分别为第一、第二参考滑移率门限值,而且高附着路面和低附着路面各参8

重庆邮电大学硕士论文第二章ABS控制系统数的取值不同。参数的不同取值,将获得不同的控制效果。笔者在OSEKTurbo上主要实现了基于逻辑门限法的ABS控制算法,也对PID算法进行了尝试。PID算法还不成熟,原理在此就不再作阐述。在第四章的系统测试中,也主要是针对基于逻辑门限算法的控制软件的测试。9

重庆邮电大学硕士论文第三章基于OSEKTurbo的ABS控制软件开发

第三章基于OSEKTurbo的ABS控制软件开发

随着社会的进步和汽车工业的飞速发展,汽车在降低能耗、提高安全性和舒

适度以及环保等方面的要求越来越高,这些要求刺激了电子技术在汽车上的应用,而且比重不断增加,其结果是汽车在零部件控制技术、通信和网络方面的复杂性大大增加。在这个市场需求强烈、竞争激烈的环境下,汽车电子的软硬件产品不断发展并出现多元化格局。这时一些问题凸显出来,比如:处理器(CPLO不断升级导致不同的CPu问的软件移植滞后;不同实时操作系统的应用程序接口(An)不同导致应用程序的移植性差等。为了改变这种状况,1993年德国汽车工业界提出了OSEK/VDX体系,继而符合OSEK/VDX标准的嵌入式系统也相继问世。3.1OSEK标准介绍圆

OSEK是OpenSystemsandCorrespondingInterfacesforAutomotiveElectronics

的缩写,中文意思是汽车电子的开放系统及相应的接口。最早由宝马、博世、戴姆勒克莱斯勒、欧宝、西门子、大众和卡尔斯鲁厄大学的工业信息技术研究所于1993年提出。法国的汽车制造商标致和雷诺于1994年加入了0SEK体系,并将法国汽车工业使用的VDxfvehicleDistributedExecutive)系统也纳入这一体系,VDX的作用与OSEK相似,都是为汽车嵌入控制器开发的公共平台的应用编程接口。行业将OSEK/VDX统称为OSEK。

OSEK目的就是支持逻辑软件的可扩展性、可传输性及可再使用性。可扩展

性表示现有硬件平台集成新的功能;传输性可理解为将逻辑功能由一个硬件平台传输到另一个的接口定义。此外必须给独立于硬件与网络的用户接口登记,用此方式可最佳支持软件模型的再使用性。OSEK系统是可配置的,以便对于任何应用都可最佳匹配。

随着欧洲汽车行业向全世界扩张,OSEK实际成为了汽车行业的国际标准。

我们要开发应用于汽车电子的嵌入式软件,考虑到它特殊的工作环境,稳定性、安全性的需求特别突出,这就必须遵循汽车行业的相关标准,从更本上保证软件的可靠性。所以我们选择了目前最成熟、稳定的、Freescale公司开发的符合OSEK规范的车用实时嵌入式系统OsEKl、1rb0,并在它之上开发ABS控制算法程序。

3.1.1OSEK标准结构

OSElWDx是用于分布式实时结构的一组标准,它最核心的部分包含四个标

准:操作系统(os)、通信(COM)、网络管理(NM)和OSEK实现语言(OIL),其结构如图3.1。10

重庆邮电大学硕士论文第三章基于OSEKTurbo的ABS控制软件开发

图3.1OSEK核心标志结构

其中0S为操作系统的特性提供了一组公用的API函数,操作系统的配置也可

以通过OSEKOIL语言实现。COM为通讯网络中的数据交换提供了标准的接口和协议。NM为监视网络的流量提供了一组标准的功能函数,以保证网络的安全性和可靠性。01L为操作系统和通讯的实现提供系统的配置和对象描述。另外,OSEK标准还包括的部分有:ORTI(OSEKRunTimeInterface)提供对调试接口的定义;0SEKtime(OSEKtime)定义应用程序的时间性约束;FTCOM(FalultTolerant

Communication)定义有时间保证的通讯协议,被看作OSEKtime的一个部分。

0SEK/VDX具体包含的服务有任务管理(TaskManagement)、调度(Scheduler)、

ISR管亚Jl(ISRManagement)、资源管2t里(ResourceManagement)、计数器(Counter)、报警(Alarms)、事件(Events)、通讯(Communication)、错误处理(ErrorHanding)、钩子例程(HookRoutings)。

3.1.2OSEK/\『DX的符合级别

由于汽车嵌入式领域的应用范围很广,所以不同的应用程序软件可能对操作

系统的要求有所不同,而且系统实现的硬件环境也存在很大的差异(如在处理器类型、存储容量等方面的不同),这就要求操作系统具有灵活的配置能力。0SEK规范把这些配置上的不同特点组织成四个级别,即四个符合级别:BCCl,BCC2,ECCI和ECC2。各符合级别在其提供的系统服务、任务类型和对硬件适应能力方面均有所不同,但在它们之间存在着一定的兼容性。BCCl和BCC2只支持基础任务,不支持事件机制;ECCl和ECC2支持基础任务和扩展任务,并且支持事件机制;BCCl和ECCl支持每个优先级只有一个任务,BCC2和ECC2支持每个优先级可以有多个任务,每个任务可以有多个激活请求。开发人员可以根据需要选择合适的符合级别来实现一个完全符合0SEK规范的操作系统,也可以开发支持全部符合级别的系统并提供配置选项,供用户选择使用。

3.1.30SEK/VDX实现语言0IL

OSEK制定了标准的OIL,用户只需更改OIL配置文件中与硬件相关部分,便

可实现不同微处理器之间的应用程序移植。通过这些手段,减少了用于维护应用程序软件和提高它的可移植性的花费,降低了应用程序的开发成本。OIL文件包括两个部分:

(1)实现定义这部分是特定OSEKOs实现中的OIL标准对象类型(Objec=t

type)以及对象属性的定义,相当于c++语言中类的定义。

(2)应用定义这部分是针对不同的应用,用实现定义中定义的标准对象类

型来定义需要的系统对象(Ohjet0,相当于C++语言中用类来定义对象。OIL中的标准对象包括CPU、OS、APPMODE、RESOⅥ汇E、1.ASK、EVENT、ISR、ALARM、COU盯ER、COM、MESSAGE、IPDU、NM。实现定义部分可以只实现部分标准对象的定义,但对每一个包含的对象必须定义所有OIL规定的标准属性,另外可以添加一些具体应用需要的非标准属性。

3.1.40SEKOS特点

图3.20SE}:ⅣDX的OS层次模型

0SEK规范为实现其制定的初衷并满足汽车控制领域对系统安全性和节省有限资源的特殊要求,制定了系统而全面的操作系统规范,其层次模型见图3.2。OS的特点主要有以下几个方面:

(1)实时性

越来越多的微处理器被应用到汽车控制领域,如刹车的防抱死系统、动力设备的安全控制等。这些系统直接关系着入的生命安全,即使出现丝毫的差错也会

导致危及生命安全的严重后果,因此要求操作系统具有严格的实时性。0SEK操作系统通过静态的系统配置、占先式调度策略、警报机制和优化系统运行机制以及提高中断响应速度等手段来满足用户的实时需求。

(2)可移植性

0SEK规范详细规定了操作系统运行的各种机制,并在这些机制基础上制定

了标准的应用程序编程接口,使那些独立编写的代码能够很容易地整合起来,增强了应用程序的可移植性。OSEK还制定了标准的0IL,用户只需更改OIL配置文件中与硬件相关部分,便可实现不同微处理器之间的应用程序移植。通过这些手段,减少了用于维护应用程序软件和提高它的可移植性的花费,降低了应用程序的开发成本。

(3)可扩展性

为了适用于广泛的目标处理器,支持运行在广泛硬件基础上的实时程序,

OSEK操作系统具备高度模块化和可灵活配置的特性。它定义了不同的符合级别(ConformanceClasses),并采用对不同应用程序有可靠接收能力的体系结构,从而增强了系统的可扩展性。OSEK操作系统可以在很少的硬件资源(RAM,ROM,CPU时间)环境下运行,即便在8位微处理器上也是如此。

3.20SEKTurbo操作系统的运行机制分析嘲

3.2.1任务(TASK)管理和调度

在OSEKn】rbo操作系统中,任务管理能力相对有限,这是因为系统的任务

设置在系统生成时已经定义好了,并且系统中任务的数量保持不变,不允许动态

图3.3基础任务状态模型

创建和删除。OSEKTllibo把任务分为基础任务和扩展任务。基础任务状态包括:就绪态、运行态和挂起态。任务切换只发生在这三种状态之问:扩展任务除了具有基础任务的三种状态外,还有等待态,并支持事件机制。

重庆邮电大学硕士论文第三章基于OSEKTurbo的ABS控制软件开发

图3.4扩展任务状态模型

基础任务通常在开始运行后,只有当它被高优先级任务占先或者是被中断

时,它才会停止,否则一直运行到任务结束。而扩展任务除了能被高优先级的任务占先和被中断外,还会因等待事件而停止运行,进入等待态。处于等待态的扩展任务只有当它所等待的事件中至少有一个发生时才会被激活继续运行。

处于就绪态的任务由调度程序调度运行,OSEKTurbo采用静态优先级调度策

略。任务的优先级在系统生成的时候进行静态分配,高优先级的任务先处理,低优先级的任务后处理。OSEK标准中的BCC2和ECC2要求OS能够支持多任务同优先级,相同优先级的任务进入一个先来先服务的队列,OSEKTurbo目前还不支持这一点,所以在OSEKTurbo中一个优先级只能对应一个任务。此外,任务可分为可被占先任务和不可被占先任务。对不可被占先的任务而言,一旦任务开始运行,就不会被占先,只有到达其调度点时才发生调度,程序设计员可以预知调度点;而对可被占先的任务而言,由于中断可能激活更高优先级的任务,所以任何时候都有可能进行调度。使用这两种任务可使程序设计具有更高的灵活性。

OSEKTurbo系统不允许同一任务的多个并行调用,因为这需要动态改变任务

的数量。当请求调用一个已经激活的任务时,该请求进入一个请求队列,直到前一个激活任务运行终止(转换为挂起态),第二个激活请求才执行。

3.2.2同步机制

OSEKTurbo提供了两种同步机制,即对共享资源的互斥访问机制和事件机

制。资源可以是一段临界区代码、调度程序、共享内存或数据结构,也可以是共享硬件设备。系统在处理多个任务对共享资源的互斥访问时,采用信号量对临界区数据或资源加锁。在某一时刻只能有一个任务访问资源,但是用信号量机制可能会导致优先级反转,即当一个高优先级的任务试图访问一个已经被较低优先级14

重庆邮电大学硕士论文第三章基于OSEKTurbo的ABS控制软件开发的任务占用的资源时,该高优先级的任务必须等待,直到低优先级的任务释放该资源。这时如果有大量的介于这两个任务优先级之间的任务被激活,而且它们根本不使用该资源,那么,占据资源的低优先级任务就会被占先,等待资源的高优先级任务也不能执行,而中间优先级的任务要先于高优先级的任务运行,这就是优先级反转。为了避免这种情况发生,OSEKTurbo采用了优先级最高限度协议(PriorityceilingProtoc01),即当一个任务占用了一个资源后,该任务的优先级会临时升高为该资源优先级。其优先级为可使用需要该资源的所有任务的优先级的最高值,这样,该任务只会被不使用该资源并且比该资源的优先级高的任务占先,直到它释放该资源为止。因此,当一个任务试图占用一个资源的时候,不可能有任何其他任务正占用着该资源,也就不会有因试图占用资源而进入等待态的任务。使用该协议同时解决了死锁的问题,当两个任务都己占用了一个资源,而且又试图访问对方所占有的资源时,它们无限期地相互等待下去就会发生死锁。该协议中不存在等待任务,自然也就避免了死锁。

此外,OSEKTl曲。还提供了另一种同步机制,即事件机制。该机制的含义是,一个处于等待状态的扩展任务,只有当它所等待的事件至少有一个发生。才能进入就绪态,并且事件的发生会以信号的方式传给该任务。事件机制既可用于多个任务的同步,同时也是任务内部通信的方法之一。虽然只有扩展任务才可以等待事件,但设置这些事件的却可以是任何任务或中断服务程序。有一点必须注意,为了遵循占用了资源就不被阻断的原则,必须避免一个占用了资源的任务因等待事件而进入等待状态。

3.2.3警报

前面提到汽车电子控制最典型的特性就是实时性,因此系统必须有基于时间或其他计数器的处理机制,来处理定时和循环任务。为此,0SEKT叫bo提供了警报机制,警报要么基于系统时钟,要么基于其他的某种计数器。当计数器到达警报设定值时被触发。警报触发后可以激活任务也可以为某一任务设置事件,或者干脆执行一个警报回调程序,具体怎样由用户在系统生成时静态定义,但警报值是动态设置的,可以是相对值或者是绝对值,也可以设为循环警报来激活周期性任务。

3.2.4中断

汽车控制系统要求对实时输入做出快速反应。在OSEKTurbo操作系统中,

由应用程序开发者编写的中断服务程序(IsR)与系统封装在~起,这样有利于保护任务和系统状态。OSEKTurbo操作系统把中断处理程序分为两类:(1)中断服务程序不会调用系统服务;(2)t9断服务程序可以调用部分系统功能,如激活任

务、设置事件、设置警报等,因此,它可以激活更高优先任务。0SEKTurbo的中断管理提供了开、关全部中断和开、关全部第二类中断的系统调用。操作系统内核是一个可重入内核,因此,那些正在执行内核代码的任务(如正在执行系统调用)可能被中断,交出CPU的使用权。必要时都不允许等到内核代码运行完,这有利于缩短由中断启动的更高优先级任务的平均延时。0SEKTurbo系统还支持中断的嵌套。

3.2.50SEKTurbo编译过程

在编译之前,应用程序设计者要根据硬件的需求对操作系统的属性和所有的

系统对象进行配置,如对操作系统属性的配置:选择哪一个符合级别、是否允许

图3.5OSEKTLlrbo编译过程

运行吊钩(Hook)程序等。对任务属性的配置有任务名、类型、优先级、用到的资源、事件、堆栈的大小等;对警报的配置有名称、类型、行为等。用户可以使用OIL提供的标准语法对系统和应用程序的属性进行配置,这些标准描述经OIL专用工具进行处理生成C代码文件,再与应用程序代码文件和部分系统文件一起编译,最后与内核库、用户库程序连接,生成可执行文件。该文件便可以下载到嵌入式目标处理器上运行了。整个过程如图3.5示,最上面的文件是由用户编写的配置文件和代码,中间的虚框是所用到的各种工具。系统配置工具解释0IL16

文件,生成C文件,这些文件执行系统的初始化并提供从符号到系统属性值映射的头文件,从而简化了应用程序设计者的工作,增强了应用软件的可移植性。3.3ABS控制算法在OSEKTurbo上的实现

ABS控制ECU硬件结构3.3.1

图3.6ABS控制系ECU硬件结构示意图

我们根据ABS生产厂家建议,选用了摩托罗拉生产的专用于汽车电子的16

位单片机MC9S12DP256t41作为主MCU。其特点如下:

(1)MCU及其外围存储器

☆MCU采用的是Freescale16Bit单片机MC9S12DP256,内核包含16bit的

S1:ARl2CPU、MEBI、MMC、INT、BKP、BDM:

☆存储器包含:12K的RAM,256K的FlashEEPROM,4K的EEPROM,

12K的RAM。

☆最大总线时钟频率:25MHz,指令执行周期40ns。

(2)MCU接口及集成器件

☆多重外围总线:

☆两路8通道的摸.数(A-D)转换器;

☆软件兼容模块;

☆通道增强型定时器;17‘

本文来源:https://www.bwwdw.com/article/62o1.html

Top