汽车电子OSEK配置器的设计与实现

发布者:三青最新更新时间:2020-05-18 关键字:汽车电子  OIL配置语言  OSEK  软件平台 手机看文章 扫描二维码
随时随地手机看文章

随着汽车工业的快速发展,汽车对控制、通信、网络管理等方面的要求越来越高,基于32位微控制器的硬件平台、基于嵌入式实时操作系统的软件平台和基于CAN总线的网络通信平台逐渐成为当今汽车电子业的主流。


1 OSEK/VDX规范简介


在嵌入式实时操作系统方面,为了满足日益庞大、复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商控制模块间的可兼容性,1993年德国汽车工业界联合推出了汽车电子的开放式系统及接口——OSEK/VDX规范(以下简称“OSEK规范”),旨在为汽车上的分布控制单元提供一个开放结构的工业标准。OSEK规范从实时操作系统(RTOS)、软件接口、通信和网络管理等方面对汽车电子控制软件开发平台作了较为全面的定义与规定。尽管该规范还处在不断完善中,但它所提出的一整套解决方案将是未来汽车电子软件开发的发展方向。
 

为了达到OSEK软件可移植的目标,OSEK规范中定义了配置使用OSEK应用程序的方法——通用实现语言OIL。OSEK配置器就是使用图形化的用户接口,根据用户需求配置OIL文件,并最终生成OSEK实时操作系统初始化代码的工具。它是开发符合OSEK规范的实时操作系统的重要组成部分。


2 OSEK配置器的主要功能


OSEK应用程序的开发流程如图1所示。用户通过OSEK配置器根据软硬件的需求,对操作系统的属性和所有系统对象进行静态配置。配置完成后,OSEK配置器生成符合OSEK规范的OIL配置文件,并进一步生成与操作系统相关的C代码和头文件,以提供OSEK实时操作系统初始化时必备的系统参数。为保证软件的兼容性,OSEK配置器还能够从外部直接读取符合OSEK规范的OIL文件,完成生成OS静态系统文件的过程。

 

用户完成应用程序代码编写和OIL文件配置后,OSEK配置器所产生的代码、操作系统的部分内核和应用程序一起交叉编译,而其他操作系统内核代码作为一个库,被链接器整合在一起。本文主要研究通过OSEK配置器生成符合OSEK规范的OIL配置文件及静态系统文件的过程(如图1中虚线部分所示)。


3 OSEK配置器的实现


3.1 图形用户接口GUI的实现
 

OSEK应用程序的OIL语言描述包含一组OIL对象描述,分别是CPU、OS(操作系统)、APPMODE(应用程序模式)、ISR(中断服务)、RESOURCE(资源)、TASK(任务)、COUNTER(计数器)、EVENT(事件)、ALarm(警报)、COM(通信子系统)、MESSAGE(消息)、IPDU(外部通信)和NM(网络管理)。其中,CPU是其余OIL对象的容器。OIL为它的对象定义了标准类型,每一个对象都可以用一些属性和参数来描述。
 

对于不同的OSEK实现,生成OIL配置文件的方法是不同的。由于用户自己编写OIL文件具有一定的复杂性,因此,在集成开发环境中带有一个上下文相关帮助的、可视的图形用户接口GUI是非常必要的。在集成开发环境中,一个包含GUI的OSEK配置器需要包含以下组件:
 

◇一张遵循Windows Explorer格式的OSEK对象清单,用户可以根据需要添加和删除DIL对象;
 

◇一个图表,用于显示每个对象的属性(包括标准属性和与实现有关的属性),用户可更改对象的属性并且实时更新OIL文件;
 

◇一个用于记录和显示的窗口。
 

集成开发环境的OSEK配置器工作界面如图2所示,其数据的管理和显示采用XML技术来实现。

 

XML以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关系。它相当于一个容器,可用来存储OSEK规范中OIL定义的各个对象。对每个OIL对象来说,其属性和子属性都包含不同的数据结构,可以通过XML树型结构方便地表示出来;而对于同一类对象又包含相同的属性和子属性,可用相同的XML模板来表示。

 

由于XML技术可以很方便地存储、描述和管理结构化的数据,并且有效地将数据和数据的显示相分离,因此,在OSEK配置器中采用XML技术来实现OIL文件图形用户接口的配置,是非常方便和高效的。


3.2 利用XML技术配置OIL对象
 

基于XML的OSEK配置器,将OIL文件定义的属性存放在初始化的XML模板文件中,并指定其默认值。当用户添加、删除OIL对象或者修改对象的属性和参数时,可通过KML解析器实现用户配置界面与XML文件的同步。其过程如图3中虚线部分所示。

 

例如,用户在配置一个OIL对象ALarm时,需要指定其3个属性,分别是警报依附计时器COUNTER、警报动作ACTION以及是否自动启动AU-TOSTART。其中,ACTION和AU-TOSTART又包含各自的子属性,使用XML技术可以很方便地管理和修改这些数据。
 

通过GUI配置一个报警器的属性如下:警报依附计时器counterA,采用自动启动方式,且其初次响应时间和周期响应时间分别为30ms和20 ms。OS-EK配置器通过XML解析器将这些属性值读取出来,并保存在XML源文件alarm.xml中。以下是此XML文件的源代码;


3.3 利用XSLT技术生成OIL文件
 

用户配置的OIL信息通过GUI保存为XML文件后,利用XSLT技术生成符合OSEK规范的OIL配置文件。XSLT文档本身是一个良掏的XML文档,它被链接到需要转换的XML文档上,通过XSLT处理器实现对XML文档的解析和转换过程。XSLT转换的过程如图4中虚线部分所示。

例如3.2节中保存ALARM配置信息的文件alarm.xml,通过定义XSL样式表文件xml20il.xsl将其转换为标准的OIL文件。为了保证XSL文件的通用性,对输入XML文档每个层次的节点都设计一个框架模板tem-plate,即为OIL对象的每个属性和部分子属性定义框架模板。这样,当OIL对象增加和删除时,XSL文件都可以快速地完成转换而不需要做任何修改。使用Microsoftmsxml 4.o作为:XSLT处理器,定义转换的输出方式为文本格式。
 

转换3.2节中。KML文件的部分关键源代码如下:

 

3.4 读取OIL配置文件和生成代码
 

为了实现OIL文件的可移植性和可重用性,OSEK配置器还需要实现从外部直接读取OIL文件(可由用户手动编写或其他OSEK实现生成),并通过GUI显示和修改属性配置的功能。这个过程需要一个OIL语言解析器,通过解析器将OIL文件转换成XML文件提供给GUI,并且生成与操作系统相关的C代码和头文件。本组件通过LEX和YACC语言开发OIL语言解析器。


3.4.1 利用ALEX和AYAGO构造解析器
 

Parser Generator是Windows环境下使用LEX和YACC语言开发编译器的集成开发工具,包含了编译程序构造工具ALEX和AYACC。ALEX和AYACC不仅可将LEX和YACC源程序转换成C语言词法和语法分析程序,还可以根据用户需要产生C++和Java代码的词法和语法分析程序。
 

OIL语言解析器的解析过程包括词法分析、语法分析、错误处理和目标代码的生成。首先根据OIL文件规范中的对象和属性值、语法规则编写LEX和YACC源文件,通过ALEX和AYACC自动生成以C++语言为代码的词法分析类OilLexer和语法分析类OilParser,并且重载和添加一砦类成员函数;然后将这两个类加入到VC工程中,实现程序的错误处理和自动代码生成部分,从而开发出OIL语言解析器。整个解析器设计原理如图5所示。

 

3.4.2 词法分析类和语法分析类的设计
 

在词法分析阶段,扫描程序将OIL文件中的字符序列分解,去掉空格、换行等自字符,并把识别出来的各个单词符号收集到记号(token)单元中。若在分析过程中发现词法错误,则转入错误处理程序。ALEX的输入规则文档Lexer.l包括以下3部分:

 

声明部分。包含所需的头文件及词法分析类的定义。
◆规则部分。定义正则表达式和OIL对象的关键字,然后添加对相应模式处理的C++语言源代码,最后将token送给语法分析类OiiParser。例如:
 



◆程序部分。设计OIL扫描器时无需其他额外功能,因此为空。
 

在语法分析阶段,语法分析程序从词法分析类中获取记号形式的源代码,并完成定义OIL语言结构的语法分析。AYACC输入规格文档Parser.y也包括3部分:声明部分、规则部分和程序部分。在声明部分,包含OilParser类所需的头文件以及声明从词法分析器返回的token记号。规则部分分析OIL文件的语法规则。OIL文件的语法遵循Backus-Naur范式(BNF),对于每个OIL对象属性的定义,其OIL实现类似于一个C结构定义。一个OIL文件由3个模块组成:版本、执行定义和应用程序定义。用BNF范式可表示为:


 

执行定义包含了一个OSEK实现的所有属性,这些属性的数据类型和取值范围可能是受限制的。因此在语义规则部分设置错误处理语句,对OIL对象属性的数据类型和取值范围进行检查。ALEX和AYACC的特性,可使错误检测简单、直观地实现,并且很容易和错误处理类集成,这对于从外部读取OIL文件时进行语义判断,保证OSEK配置器的兼容性有着重要的意义。
 

应用程序定义包含了一系列对象以及这些对象属性的赋值,除了OS、COM和NM对象外,应用程序可以定义多个同一类型的对象。根据应用程序定义规则,完成形式文法规则以及对每条规则进行语义处理的C++语句。在处理语句中,根据GUI部分定义的XMI.模板格式(如图4中的MPC.xml),将得到的对象及其属性值一一对应到XML的树型结构中,从而完成OIL文件转换为XML文件的过程。同样,在处理语句中,根据操作系统中定义的接口将OIL对象及其属性值提取出来,生成符合OSEK实时操作系统的API函数和数据结构,放在C代码和头文件中,从而完成整个代码生成的过程。


4 结论
 

OSEK配置器的开发是OSEK实时操作系统中的重要组成部分。在开发过程中,利用XML技术方便管理和存储数据的功能,实现了从可视化的GUI生成OIL文件的过程;利用OIL语言解析器的高教性和强大的出错处理功能,实现了GUI从外部读取OIL文件及代码生成的过程,从而保证了OIL文件的可移植性、可扩展性和可重用性。此组件在集成开发环境中运行稳定,这在开发具有自主知识产权的OSEK实时操作系统中具有重要的意义。


关键字:汽车电子  OIL配置语言  OSEK  软件平台 引用地址:汽车电子OSEK配置器的设计与实现

上一篇:掀起车联网行业新变局,《2020年车联网白皮书》推出
下一篇:华为自动驾驶操作系统内核获得ASIL-D认证

推荐阅读最新更新时间:2024-10-14 02:27

NXP下一代汽车芯片选用台积电5nm工艺
NXP于近日宣布下一代汽车芯片选用台积电5nm工艺。此次合作将结合NXP在汽车质量和功能安全上的优势,以及台积电业界领先的5nm技术,从而实现更强大的汽车计算系统, NXP创新型的汽车SoC平台,旨在简化和加速汽车架构上的快速革新,同时专注驾驶安全、连接安全和数据完整性。而台积电的5nm工艺将提供世界一流的芯片性能。 台积电与NXP早已在16nm设计上展开了多次合作,本次合作将把5nm工艺达到下一代汽车处理器上。使用台积电的5nm工艺后,NXP将解决更多功能和负载上的问题,比如相连驾驶舱、域控制器、 自动驾驶 、高级网络、混合推进控制和整合式底盘管理等。 台积电的5nm技术目前是量产中最为先进的技术,NXP将采用台积电5nm技术的
[汽车电子]
详解泰克汽车电子解决方案和汽车电子TPMS测试方案
中国已经成为了汽车的使用大国,而汽车的安全也越来得到更多关注,根本原因是交通事故的发生 。TPMS汽车轮胎智能监测系统作为汽车三大安全系统之一,与汽车安全气囊、防抱死制动系统(ABS)一起被大众认可并受到应有的重视。TPMS (轮胎压力监测系统)的作用是在汽车行驶过程中对轮胎气压进行实时自动监测,并对轮胎漏气和低气压进行报警,以确保行车安全。 TPMS作为汽车安全的重要系统之一,2007年美国就制定了FMVSS 138法规,随后欧盟、日本及ISO都制定出相应的TPMS标准,中国也在2015年3月,由全国汽车标准化技术委员会汽车电子与电磁兼容分技术委员会组织起草的强制性国家标准《乘用车轮胎气压监测系统的性能要求和试验方法》已完
[嵌入式]
车用传感器2010年中国市场销售额将超13.2亿美元
一、车用传感器需求量稳步上升   车用传感器是汽车计算机系统的输入装置,它把汽车运行中各种工况信息,如车速、各种介质的温度、发动机运转工况等,转化成电讯号输给计算机,以便发动机处于最佳工作状态。   现代汽车技术发展特征之一就是越来越多的部件采用电子控制。根据传感器的作用,可以分类为测量温度、压力、流量、位置、气体浓度、速度、光亮度、干湿度、距离等功能的汽车传感器传感器,它们各司其职,一旦某个传感器失灵,对应的装置工作就会不正常甚至不工作。因此,传感器在汽车车身上起着至关重要的作用。   随着汽车行业的快速发展,传感器在汽车上的应用也随之不断扩大,它们在汽车电子稳定性控制系统(包括轮速传感器、陀螺仪以及刹车处理器)、车
[汽车电子]
身旁电子眼 车辆侧向盲区提示系统简介
    在行车过程中,由于汽车车身结构的遮挡,即便是大尺寸的双曲率后视镜也无法避免驾驶者侧后方的盲区,这在并线等行车环节中就成为了安全隐患,而一些可以提示侧向盲区的电子安全辅助系统此时就派上了用场,国内消费者现在也能在一些车型上用到这些侧向盲区提示系统。     沃尔沃品牌一向以高安全性著称,因此一套缩写为BLIS(盲点信息系统)的盲区提示系统从2005年起率先在XC70、V70和S60等车型上得到了应用,此后沃尔沃的全系车型都相继采用了这套系统。位于外后视镜根部的摄像头会对距离3米宽,9.5米长的一个扇形盲区进行25帧/秒的图像监控,如果有速度大于10公里/小时,且与车辆本身速度差在20-70公里/小时之间的移动物体(车辆
[嵌入式]
我国汽车电子产业市场现状分析
2012年全球汽车产量8414万辆,中国生产1927万辆,占比27%,分别同比增长5%;当年全球汽车电子产值1530亿美元,中国本土产值2672亿元,占比28%,分别同比增长8%、11%。受益于汽车普及后舒适、安全需求提升,汽车电子在整车成本中占比持续提升,现在已达25%左右,未来将继续提高,意法半导体预计到2020年提升至50%。另一方面,当前新能源汽车中 汽车电子成本占比已经达到47%,随新能源汽车产量逐渐增加,汽车电子单车产值仍将持续提升。 图表1:中国汽车年产量及汽车电子市场规模(单位:万辆,亿元) 随着单台汽车电子产品产值提升,我国汽车电子市场规模快速增长,从2007年的1216亿元增长到2012年的2672
[嵌入式]
MPC555微控制器与汽车电子
摘要:介绍32位微控制器MPC555及其应用开发系统的技术特点,并分析比较国内外软硬件集成开发平台的应用现状。同时,对MPC555嵌入式系统在汽车电子领域的应用进行了总结和预测。 关键词:MPC555 集成开发环境(IDE) 实时操作系统(RTOS) 汽车电子 引言 随着汽车工业的飞速发展,汽车在控制、通信和网络方面的要求越来越复杂。以32位微控制器及嵌入式实时操作系统为基本技术特征的新一代电控单元ECU(Electronic Control Unit)成为汽车电子应用的主流。32位微控制器MPC555以其强大的性能在汽车电子等领域得到了广泛的应用。 1 MPC555微控制器简介 MPC555微控制器是Motorola
[嵌入式]
聊聊汽车电子重点技术新风向有哪些
在汽车产业转型升级过程中,汽车与能源、交通、信息通信、芯片等领域相关技术正加速融合。以电驱系统、电子电气架构、线控制动及转向、车载储能和智能座舱等为代表的整车及智能底盘关键核心技术日新月异、产品不断迭代,并加速在智能电动汽车上搭载应用,相关领域技术正面临前所未有的发展机会和挑战。今天,让我们聊一聊车圈都有哪些重点技术新风向? 一、滑板底盘:“电动汽车新玩法” 2022年,电动汽车产业技术创新战略联盟正式发布了《电动汽车智能底盘技术路线图》,受到全行业广泛关注和支持。路线图对智能底盘进行了清晰定义:智能底盘是为自动驾驶系统、座舱系统、动力系统提供承载平台,具备认知、预判和控制车轮与地面间相互作用、管理自身运行状态的能力,具体实现
[嵌入式]
Win8之父辛诺夫斯基:无人驾驶颠覆汽车行业
微软Windows业务前主管、风险投资公司Andreessen Horowitz合伙人史蒂芬·辛诺夫斯基(Steven Sinofsky)周二撰文,阐述了无人驾驶汽车的崛起将对汽车行业产生怎样的颠覆作用。 在二十世纪的很长一段时间里,汽车工业都是“美国梦”的代表。仅“三巨头”直接聘用的员工就多达百万,这些人的生活水平都得以提升。汽车公司的领导者们也相继成为现代管理学的奠基人。在美利坚的土地上,汽车和文化已然交织在一起。正是因为有了汽车,郊区化的生活方式才成为可能。 尽管石油危机兴起、进口产品质量提升、劳动力成本面临挑战、城市不断蔓延、企业破产增加,但汽车工业依然庞大,而且仍是美国经济的重要组成部分,迄今依旧是经济增长的重要动力
[嵌入式]
小广播
最新汽车电子文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved