基于QNX硬加速的软控车载全虚拟仪表平台*
2012-06-03李英
李 英
(河南商丘师范学院 计算机与信息技术学院,河南 商丘576100)
随着整车控制单元电气化、集成化和信息化的快速发展,大量远程服务信息、车辆诊断信息、驾驶辅助信息、影音娱乐信息等都需要通过仪表平台与驾驶员进行人机交互。通过该平台,驾驶员不仅能轻易获取所关注的车况信息,而且能设置相关参数,控制车辆运行模式,是车辆必不可少的辅助驾驶单元。目前车载仪表平台主要有三种模式:(1)纯机械式,完全采用传统机械指针式组合仪表;(2)半机械式,传统机械指针式和车载电脑组合;(3)全数字虚拟式,完全采用虚拟数字图形(2D、3D)模拟传统机械模式[1]。
传统车载仪表通常以机械式为主,由于线路集成度太低、电磁干扰较大、显示精度不高及显示内容有限等因素,严重制约了仪表辅助驾驶系统的发展。半机械式仪表在传统仪表盘之间嵌入一块小型LCD,即车载电脑,虽增加了仪表平台显示的信息量,但整体没有摆脱机械模式的缺陷,而且对仪表平台整体布局也有一定影响[2]。随着近年来图形硬件技术的飞速发展和嵌入式实时系统的广泛应用,车辆研究者提出了各种虚拟仪表组合平台以解决上述问题。2011年,随着Android系统风靡全球手机市场,蔡黎等提出了基于OBD协议的Android虚拟仪表组合平台[3],炫丽的图形界面效果给消费者带来了巨大的视觉冲击感,但由于系统本身要接收第三方厂商提供的代码,一旦出现问题很容易导致系统崩溃,可谓在提升效率的同时牺牲了系统的可靠性。2012年王润民等提出了Linux+QT+ARM虚拟仪表组合平台[4],基本实现了仪表的图形界面显示,但由于内核构架上的问题,其实时性很难满足高性能虚拟仪表的要求。可见,上述方案的共同缺点是:稳定性、实时性、安全性受系统本身架构制约,很难满足苛刻的车规测试要求和客户对于高性能的需求。
针对传统机械组合式仪表的缺陷和当前虚拟仪表平台的问题,本文提出一种新型的高性能车载全数字虚拟仪表方案,采用ARM处理器imx53为核心硬件平台,嵌入式硬实时操作系统QNX为核心软件平台,并在此基础上引入Altia快速原型界面设计和仿真测试工具,提出软控分层显示的逻辑界面控制方法,采用GPU硬加速图形渲染技术,开发全虚拟仪表终端应用程序。
1 全虚拟仪表平台系统介绍
虚拟仪表作为辅助驾驶系统的核心组成部分,对系统的实时性、稳定性和安全性均提出了极高的要求。而QNX作为微内核硬实时多任务的嵌入式操作系统,已成功应用于军工领域和汽车领域,是嵌入式系统市场上第一款达到稳定和安全双重认证的实时操作系统。
系统实时性主要取决于中断处理和任务调度。中断处理中影响实时性的因素主要是中断延迟和调度延迟,QNX的这两种延迟指标如表1所示。
表1 QNX的延迟指标
任务调度过程中的上下文切换时间是衡量实时性的另一个关键指标,QNX默认采用高优先级抢占调度策略,保证任何时刻都是优先级最高的任务占用CPU。其上下文切换时间指标如表2所示。
表2 QNX的上下文切换时间指标
由表1和表2可见,QNX对于影响系统实时性的两个关键指标都在微秒级,是目前实时性最强的系统之一[5]。另外,系统的稳定性和安全性主要取决于内核架构,QNX采用模块化的微内核系统架构,应用程序、设备驱动程序、文件系统和网络协议栈都独立运行在受内存保护的空间中,采用的安全技术主要包括:
(1)内存保护的安全内核:内核不能被绕过,强制执行存取权限;
(2)安全协议:包括 IPSec、IKE、SSL、NAT 等;
(3)硬件加速:网络协议栈下加密和认证算法,包括DES、3DES、AES 等;
(4)自适应分区:防止恶意代码和拒绝服务攻击独占CPU。
QNX系统对每个任务进行全面地址保护,使每个任务(进程)独立运行于自己的虚拟地址空间,在任务中又可以创建无地址保护的任务(线程)。这样做的优点是当一个进程崩溃时不会影响到另一进程的存储空间[6]。
综上,QNX不仅以微秒级的延迟提高了系统的实时性,而且充分采用新型技术来保证其稳定性和安全性。因此,以QNX为系统平台开发全数字虚拟仪表,其性能足以满足仪表辅助驾驶平台对系统实时性和可靠性的苛刻要求。
2 全虚拟仪表HMI界面逻辑设计
为缩短全数字虚拟仪表图形用户界面开发周期,加快其产品化进程,引入快速HMI原型设计和逻辑仿真测试工具Altia。
2.1 Altia开发流程
Altia作为全数字虚拟仪表专业开发工具,主要包括3个模块:图形界面编辑器(Altia Design)、连接仿真接口(Altia Connection)和代码生成工具(DeepScreen)。整个开发流程见图1,其中包括以下关键步骤[7]:
(1)图形界面原型开发:将美工处理后的静态图片通过图层切换转变为可操作的控件原型,用于实现逼真的动态效果。图形界面的设计结果保存为计算机中的文件,可直接用于后续的仿真验证和代码实现、集成阶段。
(2)效果仿真验证:在控制逻辑开发环境中 (如C/C++、Simulink/Stateflow、Rhapsody)集成图形界面原型,在项目开发初期和中期就能由仿真测试来验证开发的图形界面的合理性。
(3)代码实现:通过自动代码生成工具将图形界面原型和控制逻辑直接转变为适合于嵌入式目标平台的程序,快速验证嵌入式HMI的图形效果及性能;判断现有硬件资源是否足以支撑HMI设计;在最短时间内找到图形界面显示效果与硬件资源的最佳平衡。
可见,Altia图形界面开发流程真正做到了所见即所得,可迅速将产品概念原型化,模拟真实工作场景,让用户能够通过仿真验证手段,在设计早期就充分论证设计方案的可行性,为快速开发高性能全数字虚拟仪表提供了先进的开发理念和有力的技术保障。
2.2 设计软控分层渲染模型
全数字虚拟仪表往往需要动态模拟显示大量的车况信息,并实时响应外界的触控指令。如何在有限区域内实时显示驾驶员所关注的信息,成为制约车载虚拟仪表发展的最大瓶颈。为此,在前人的工作基础上,设计了基于软控模式下的图形元素实时分层渲染模型,以缓解图形界面显示的压力。
软控图层组织结构的设计核心思想为:利用多线程模式对图形元素信息进行硬件图层分层控制显示,并根据驾驶员在不同时段的关注目标,动态绑定相关信息所在图层ID。其整体架构设计如图2所示。
(1)硬件支持显示的图层有限(≤3 layer),对虚拟仪表所有显示信息进行动态分类,根据信息的迫切度分为静态必显信息、可选显示信息及动态必显信息。
(2)对不同迫切度的信息进行相应图层和显示区域的绑定,原则上动态必显信息的优先级最高,静态必显信息的优先级最低,可选显示信息的优先级处于中间,属于驾驶员可控信息。信息所绑定的图层ID越大,则被显示的优先级也越高,高优先级的图层可以覆盖掉低优先级的图层。
(3)根据客户不同时间段的关注,动态调整软控区域相关信息绑定的图层ID,进行动态实时模拟显示。
以上设计思想的伪代码实现如下:
从软控架构模型可见,该设计理念对庞大车况信息进行动态分类、分层显示处理。静态必显信息处于虚拟仪表界面最底层,通常包括仪表盘背景、仪表logo及情景模式等静态图形元素;动态必显信息处于虚拟仪表界面的最高层,通常包括仪表盘虚拟指针;可选显示信息处于中间图层,主要包括各类报警图标、车辆状态模拟图标、远程服务信息状态及影音娱乐状态等。
综述,该设计模型在有限的显示区域对不同类型的信息进行动态分块显示,并对可选信息进行动态实时绑定硬件图层,有效解决了庞大信息动态实时显示的瓶颈。
3 引入GPU图形硬加速机制
随着硬件图形加速处理能力的不断发展,完全靠CPU进行图形处理的时代将逐渐消逝。车载全数字虚拟仪表作为一个图形界面高度集成、可实时显示庞大信息,且3D动画动态渲染的复杂系统,仅靠CPU完成其复杂图形处理过程显然很难满足实时性要求。因此,引入基于OpenGLES2.0的GPU硬加速机制。
另外,由于该设计方案硬件上采用imx53处理器,提供了对 OpenGLES2.0、OpenVG的 2D、3D图形硬加速功能的支持。同时,QNX也提供了针对imx5X系列处理器的GPU硬加速驱动模块,使得软硬件平台图形加速功能得到了很好的兼容。QNX加载GPU的模块驱动配置如下:
(1)开启QNX图形驱动
(2)将相关GLES和GPU的动态库文件拷贝到目标系统路径下,默认路径。
(3)设置环境变量,开启GPU驱动
GPU硬加速处理的主要流程如图3所示。在加入GPU图形硬加速处理机制后,不仅能增强图形界面的显示效果,有效降低CPU的使用率,而且能够更好地处理大量的车况信息。
4 实验结果及评价
全数字虚拟仪表硬件平台选用飞思卡尔提供的车规标准处理器imx536,其主要技术指标:1 GHz CPU主频 ,1 GB×32 DDR3(400 MHz),32 MB 16 bit并 行 NOR Flash,可扩充的NAND Flash接口,LVDS数字图形输出接口,并集成了基于OpenGL ES2.0和OpenVG1.1的 GPU图形硬加速处理单元。软件平台采用加拿大哈曼公司开发的硬实时操作系统QNX,并引入美国Altia公司HMI快速原型设计和仿真测试工具套件。
采用奇瑞某车型的CAN网络系统和全数字虚拟仪表系统搭建整车测试平台。将全数字虚拟仪表系统作为汽车CAN总线上的一个节点,通过CAN控制器和收发器采集车况信息,经imx536处理器过滤、解码和组包等处理后,送到软控分层渲染模型中进行动态实时模拟显示,以此完成基于整车系统的全数字虚拟仪表单元测试[8]。测试的车况信息主要包括:发动机转速、车速、车灯转向、车门状态、远程监控状态及车内温度等,其界面显示效果如图4所示。
表3 QNX的上下文切换时间指标
针对GPU对图形渲染的贡献度进行单元测试,其实验结果如表3所示。当图形界面复杂度相同,GPU模块开启时,整个图形界面的渲染帧率迅速提高约2倍,而CPU消耗率只有微小的提高。当其他测试环境相同,只改变图形界面的复杂度时,图形渲染的帧率会随着图形复杂度的增加呈比例提高。因此,GPU模块的开启与否、图形界面的复杂度高低是影响图形实时渲染帧率的两个关键因素。而本文方案不仅有效解决了锯齿和闪烁等影响图形界面稳定性的问题,而且增强了图像显示的平滑度和复杂度,并支持3D图形和特效动画的显示,为HMI动态实时模拟车况信息和人性化界面设计提供了强有力的平台支持。
以汽车辅助驾驶系统快速向数字化,集成化及智能化转型为背景,以探索虚拟仪表辅助驾驶系统的实时性、可靠性和人性化界面设计为研究目标,设计了一套高性能的全数字虚拟仪表系统。采用以实时性、稳定性和安全性著称的QNX为软件运行系统平台,引入的快速图形界面原型设计和仿真测试Altia技术开发HMI,提出一种基于软控模式分层显示的图形界面逻辑控制方法,最后引入了基于OpenGLES2.0的GPU硬加速技术。最终有效解决了在有限资源下实时处理和大量信息的瓶颈,研究成果已用于国内某型号概念车,成为国内车载全数字虚拟仪表前装领域的先行者。进一步的工作将提高界面创意设计,融入GPS、OnStar等信息模块。
[1]刘鹏.汽车虚拟仪表平台的设计和研究[D].大连:大连理工大学,2010.
[2]黄光亮,秦树人,王见,等.基于车载诊断系统的汽车虚拟仪表[J].中国测试,2009,35(5):81-84.
[3]蔡 黎,代妮娜,邓明.基于OBD协议的 Android平台汽车虚拟仪表设计[J].电子技术应用,2011,37(12):83-85.
[4]王润民,赵祥模,惠飞,等.基于嵌入式 Linux与 QT的汽车虚拟仪表设计[J].现代电子技术,2012,35(6):2-4.
[5]王斑.基于QNX实时系统的测试系统的开发[D].西安:西北工业大学,2006.
[6]赵伟庆,周群彪,游志胜,等.基于 QNX的实时嵌入式计算机系统设计与实现[J].中国民航飞行学院学报,2003,14(2):46-48.
[7]张建伟,王永康,南立军,等.基于 Altia软件的车辆电子信息系统显示界面的仿真[J].车辆与动力技术,2009(3):49-52.
[8]孟磊.基于CAN总线技术的汽车数字仪表的研究[D].西安:西安电子科技大学,2011.