根据IEEE 2009年2月的报告,豪华级别的汽车的软件代码长度将超过1亿行,GENIVI联盟预测其中70%的代码是来自汽车的IVI系统,也就是我们常说的车载信息和娱乐系统(Infotainment and Telematics),其余的30%代码来自仪表盘、车身电子、发动机和引擎控制以及汽车安全相关部件[1]。即使是30%的代码,这3千万行代码长度也已经超过了1千万级代码行数的波音787飞机,与2千5百万行代码行数的Windwos2000接近。如此巨大的代码量不使用嵌入式操作系统(以下简称嵌入式OS)和软件平台架构是不可想象的,以此联动产生的软件研发、测试和维护成本也是巨大的,带给汽车的安全性和可靠性隐患更是无法预估的。
OSEK和AUTOSAR
90年代的中期,一些欧洲的汽车工业厂商联合发起了一个联盟--OSEK/VDX,目的是为了形成一个针对汽车中各分布式单元的开放式架构的工业标准。该标准对RTOS、软件接口、通信和网络管理任务都有专门的说明。
“OSEK”的意思是“开放系统和汽车电子的对应通信接口”。这个标准最初是在1993年由德国的BMW、Bosch、Daimler-Benz、Opel、Siemens、VW和Karlsruhe大学共同发起制定的。“VDX”的意思是“车辆分布式执行”(Vehicle Distributed eXecutive),这个标准的发起人是法国的PSA和Renault。1994年2个联盟合并,由于OSEK操作系统的功能能够和VDX协调运行,所以为了简化,一般使用术语“OSEK”来取代OSEK/VDK。
开发 OSEK规范之前,汽车电子开发者要支付高额的、周期性开发费用,面对控制单元(ECU)软件非应用相关方面的管理也不正规,不同的软件接口和协议所造成的各生产厂商制造的控制单元部件的不兼容性的问题更是严重,这些问题的存在便促使了OSEK出现[2]。
OSEK 联盟只是定义OSEK规范,符合该规范的开源和商业的RTOS产品现在已经很多了,比如开源的FreeOSEK、OpenOSEK、Toppers-OSEK(日本京都大学发起的开源项目,我在“开源的嵌入式OS”一文中已经作了介绍)。商业OSEK OS有德国Vector公司的OS/Can、EB(Elektrobit)公司的 tresosAutoCore和OsekCore ,美国Mentor Graphic的Nucleus,还有GPL和商业双授权的Arctic Core,它同时支持AUTOSAR和OSEK规范[3] 。
OSEK是基于ECU开发,标准包括三部分:操作系统(0S)、通信(COM交互层)、网络管理(NM)。AUTOSAR(汽车开发系统架构)是基于整体汽车电子开发,包括汽车电子功能的划分、ECU统一软件架构、ECU软件开发过程等整套的方法和理论。AUTOSAR规范中定义的操作系统就是OSEK OS,而通信和网络管理虽然和OSEK有区别,但思路是一样的。
汽车电子领导者-QNX
说到汽车电子和嵌入式OS,那一定要提到QNX。1980年Gordon Bell和Dan Dodge在加拿大成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,后来因为AT&T干预,才把名字改成QNX。QNX遵从POSIX规范,类似Unix实时操作系统,目标市场主要是面向嵌入式系统。80年初,笔者在研究所工作的时候曾经使用过这个系统,当时我们使用了一张软盘在PC上成功的引导出QNX。唯一遗憾的是,因为我们不熟悉Unix命令行,操作人机接口的时候还真是难为我们一番。2010年在被美国哈曼国际 Harman 在买走6年后,QNX又重返加拿大。2010年黑莓手机制造商RIM收购哈曼国际旗下的QNX软件公司,以获取其车载无线连接技术。QNX的应用范围极广,包括保时捷跑车的音乐和多媒体系统、核电站和美国陆军无人驾驶Crusher坦克的控制系统,还有RIM公司的黑莓PlayBook平板电脑等。据有关资料显示,QNX在汽车电子市场占有率达到75%,目前全球有超过180种车型使用QNX系统。QNX应用在汽车电子的多个方面,比如远程通讯(车联网的功能)、信息娱乐系统、汽车导航、汽车无线技术(蓝牙接入)和汽车收音机等。
QNX是建立在微内核上的(在嵌入式OS上使用微内核技术的还有VRTXsa和VxWorks等,但是它们之间有很大的不同),这个架构的特点是即可以支持小型的缺乏运行资源的嵌入式系统,也同样适合大型分布式的实时系统。该系统的大多数系统服务是基于多(线)进程的形式来表示,这些进程被封装在自己的地址空间里面,与用户空间有隔离。微内核本身提供OS基本管理,扩展模块提供设备、网络、文件和图像用户接口,这些模块都是可以裁剪的。这样的特点让QNX可以适合非常广泛的嵌入式应用场景,支持更多的嵌入式处理器,提供可靠性很强的OS环境和接近硬实时的运行环境[4],QNX应该是基于微内核的嵌入式OS中最成功的其中一个。
2012年QNX推出了QNX CAR 2汽车软件应用平台,这是一套全新的解决方案,汽车开发人员将能够将丰富的HTML5用户体验建立在已有多年汽车经验的QNX软件基础之上。QNX CAR2致力于帮助用户快速开发车载信息娱乐系统。该平台包括一个全新的以汽车为中心的HTML5架构,集成了包括QNX Neutrino嵌入式OS,强大的多媒体架构,免提系统的音响处理库,以及软件技术服务和工具等。2013年初QNX公司宣布德尔福汽车将在其新一代信息娱乐系统中部署QNX CAR 2应用平台。
开放和封闭之争
在汽车电子领域QNX的竞争对手有微软、Linux和GENIVI联盟。微软WES(Windows Embedded Standard)7为福特信息娱乐系统SYNC提供了底层构架,正在积极扩大其在汽车操作系统领域的渗透力。另外,Azure云平台也是微软的核心优势之一,它通过云技术为整车厂提供在线导航、实时诊断、道路救援等服务,在汽车信息终端中争取到一席之地。Linux是一个开源的操作系统。2013款凯迪拉克(Cadillac)XTS搭载了由Linux支撑的CUE信息娱乐系统,因其科技感十足的中控台屏幕及多变的人机交互方式而倍受推崇[5],如图1所示。但由于Linux版本变动很快,每天都有上千次改动,OEM和供应商为了得到一个比较固定和可靠的Linux版本,必须自建一支操作系统开发团队。大多数开发者选用Linux的硬件供应商,或多或少需要积累很多操作系统上的开发经验。基于以上原因,非营利性 GENIVI 联盟在四年前成立。GENIVI 联盟的成员现在包括170多家汽车生产商和供应商,其宗旨是共享一个标准的车载信息娱乐系统开发的开源平台。
图1:卡迪拉克 XTS CUE IVI system
GENIVI 通过提出一个基于开源的操作系统环境 (Linux) ,并利用全球开源软件开发人员的专业技术,改变车载信息娱乐软件的开发和使用的方法。联盟希望最终能够从根本上改变汽车生产商和供应商开发现代车载信息娱乐系统的方式。GENIVI真正的好处将体现在汽车生产商在他们的未来系统中具备可以修改和重新使用软件的能力。
GENIVI 的主要任务是确立和界定联盟成员车载信息娱乐系统的核心功能。在应用层,汽车生产商们可在 GENIVI 平台的基础上自由定制,打造独特的驾驶员和乘客体验,甚至设计专用的人机界面。重要的是,这些应用要使用到GENIVI 车载信息娱乐平台和中间件提供的功能,这些功能可以重新使用或重新整合进不同汽车生产商或者一个厂商的不同系列的车载信息娱乐产品中,GENIVI 大约每六个月更新一次其 Linux 车载信息娱乐系统规范,最近发布的规范是 GENIVI Compliance 3.0。
3.0规范中包含69个单独的开源组件,其中大部分包含多个子组件。联盟成员依据这个规范来建立软件平台。这些平台将受到 GENIVI 的审核,如果符合规范就会被注册为 GENIVI 合规产品。有些成员提供的是一个完整的 GENIVI 平台,有些成员则集中精力只研究一个合规平台的单个或多个部件。过去两年里合规平台的数量稳定增长。目前已经有50多个软件平台被注册为 GENIVI 合规产品[6]。比如Mentor公司,风河公司都已经发布了GENIVI兼容的软件平台。Mentor的产品是通过收购Montavista 汽车电子部门整合而来,后者的汽车技术平台(ATP)在卡迪拉克项目中有成功应用。 风河的GENIVI平台是通过与意大利厂商Magneti Marelli的合作而来,后者隶属于意大利飞亚特(Fiat)集团,主要负责设计并生产先进的汽车系统及零件,供应的产品遍布全球汽车市场。
图2 特斯拉Model S IVI 系统
结语
无论汽车电子系统的的电子控制单元(ECU),还是车载信息娱乐系统(IVI),嵌入式OS正在大行其道,越来越多的嵌入式软件公司甚至IT公司跻身汽车电子的开发行列。今天我们可以看到的拥有巨大液晶显示中控屏的特斯拉Model S,它将汽车变成一个移动的大电脑。特斯拉这家创立于硅谷的电动汽车品牌,在汽车与互联网IT结合上给了我们许多启迪,如图2 所示。还有谷歌的自动驾驶汽车,也是指日可待。汽车电子的嵌入式OS大有可为,走开放、开源的道路是大势所趋。
参考资料:
[1]Automotive Infotainment Based on Open Source Software,Blackdark公司
[2]Colin Wall著 何小庆等译 嵌入式软件精解,机械工业出版社
[3] https://en.wikipedia.org/wiki/OSEK
[4] Peter Liggesmeyer 著 张聚等译 嵌入式系统软件工程,电子工业出版社
[5]https://carschina.com/yejie/changjiaxinwen/20130812630486.html
[6] UNDERSTANDING THE IMPORTANCE OF GENIVI AND OPEN SOURCE IVI DEVELOPMENT,Mentor公司
与非网原创内容,未经许可,不得转载
摘要:对嵌入式操作系统的定义,国内外专家学者和企业界人士的理解都不尽相同,具有代表性的意见有两种;一种是说嵌入式系统就是嵌入式的计算机系统,另外一种认为嵌入式系统是一种机电结合、软硬结合执行某种特殊功能的系统……
摘要:摩托罗拉自1974年发布第一款MC6800 --8位微处理器到1979发布的MC68000(简称68K)-16/32位CPU之后,其芯片因为即可以使用在计算机系统中,也可以使用在嵌入式系统,很快成为当时行业的标准。最早开发嵌入式OS的公司,许多都是借助摩托罗拉的市场起家的……
摘要:除了上一篇提到的OS-9以外,最早出现的嵌入式操作系统(简称为嵌入式OS)当属VRTX,因其在技术上创新性,得到用户和嵌入式系统公司的广泛支持,VRTX可称为商业嵌入式OS的开拓和领导者……
摘要:在讨论开源的嵌入式操作系统(简称嵌入式OS)之前,我们先把开源软件搞清楚。“开源软件”目前并没有明确定义,也没有标准许可证。许多公司采用开放源代码一词,大概有这样两种情况……
摘要:风河公司(Wind River System)是一家专业从事嵌入式OS、软件开发工具、解决方案平台和服务的软件公司,由Jerry Fiddle和David Wilner在1981年美国加州创立。VxWorks是风河公司推出的实时多任务操作系统(RTOS)……
摘要:手机属于嵌入式设备,手机软件平台使用的操作系统属于嵌入式OS的范畴。传统的功能手机(Feature Phone)使用了实时多任务操作系统(RTOS)为基础的手机软件平台。入门级的智能手机采用了半开放的嵌入式OS(比如Symbian),而今天高端的智能手机多采用Android和IOS这样的通用型的OS……
摘要:为你介绍那些开源的操作系统,Android以及它的竞争对手们的整个OS产业生态……