电子设备在汽车中的广泛应用被认为是汽车技术发展进程中的一次革命。随着汽车电子技术的发展和汽车控制单元的增加,汽车电子技术正朝着集中化、智能化、网络化和模块化方向发展。
车内CAN/LIN总线网络的使用使得车内各个控制单元的数据可以共享,从而使在汽车嵌入式计算平台上采用多变量多目标的综合协调控制成为可能。另一方面,网络化拓展了汽车的服务领域,为汽车的移动通信、移动办公、娱乐、导航定位和远程诊断与维修提供了技术基础,逐步形成了汽车、家庭、社会一体化的互动体系。汽车嵌入式计算平台在该一体化体系中担当重要角色。
本文介绍了车载嵌入式计算平台,它为完成汽车辅助驾驶和安全监控、远程诊断和维修、在线/离线导航定位、娱乐、与家庭互动等各项功能提供了很好的软硬件平台。下面将从汽车/家庭/社会一体化体系结构、计算平台的硬件体系、软件体系三个方面进行说明。
1 汽车/家庭/社会一体化体系结构
汽车嵌入式计算平台为实现各种功能服务提供了良好的软硬件平台。车外网络和车内网络结合构成了汽车/家庭/社会一体化的互动体系结构。该体系结构示意图见图1,车内计算网络示意图见图2。
在图1中,交通管理中心、汽车服务中心、互联网服务中心和娱乐服务中心等共同组成汽车远程服务平台,家庭/办公室和汽车组成汽车/家庭互动平台体系。其主要提供三类服务:
(1)汽车集成服务。主要指汽车远程诊断服务和汽车最优控制方案服务。汽车计算平台通过CAN/LIN总线读取电子控制模块(ECM)诊断产生的故障代码,然后通过汽车网关利用无线通信技术发送至最近的汽车服务中心。汽车服务中心分析故障代码形成诊断方案并以服务的形式发送到汽车嵌入式网关,经过协议解析后再发送到汽车嵌入式计算平台,最后通过人机接口显示给驾驶员。汽车制造商同时向汽车提供下载最佳汽车控制方案的服务,以适合汽车在不同的行驶条件下运行。这些服务主要由汽车远程服务平台或汽车制造商提供。
(2)导航定位服务。运行在车载嵌入式平台上的应用层软件接收GPS接收仪发送的数据,借助车载的地理信息系统(电子地图)实现导航。此外应用层软件还可以把GPS接收的数据发送到远程汽车服务平台或第三方服务提供商,再由他们把导航信息以服务的形式发送给汽车嵌入式平台。这些服务对准确性和及时性要求比较高。如何准确高效地传递这些信息成为决定这类服务质量的关键。
(3) 个人/娱乐信息服务。汽车/家庭互动平台体系使人们可以在驾驶汽车的过程中了解家中的情况,将汽车-家庭连为一体。车载信息处理(Telematics) 系统的地位日益突出。它通过无线通信技术将安全保密信息或娱乐信息以服务(Service)的方式传递至汽车。
2 汽车嵌入式计算平台的硬件体系结构
硬件平台的设计必须根据其要完成的功能来确定。本项目是将汽车嵌入式网关集成到计算平台中,因此,计算平台要完成的功能主要为:与远程服务中心的无线通信功能;导航功能;音视频播放的功能;通过CAN/LIN总线访问车内电子控制模块的功能等。基于32位ARM内核的EP9315处理器具有良好的计算能力和丰富的外围接口,在对其做了适当的外围扩展后设计出如图3所示的汽车嵌入式计算平台。
EP9315是高度集成的片上系统处理器。它拥有200MHz ARM920T处理器及支持Linux、Windows CE和其他许多嵌入式操作系统的存储器管理单元(MMU)。EP9315内置一个高性能1/10/100 Mbps以太网媒体存取控制器(MAC)及外部接口,可连接SPI、I2S音频、Raster/LCD、IDE存储外设、小键盘和触摸屏等。该器件还集成了运行速度为12Mbps的三端口USB 2.0全速主机和3个UART。
PCMCIA接口的无线网卡提供远程网络的访问功能,可以实现对远程服务中心网络服务器的访问。IDE接口的电子硬盘用来存放地理信息系统,为导航软件提供电子地图。GPS接收仪通过串口与EP9315处理器相连,提供实时的车辆地理位置信息。触摸屏是人机输入界面,用来完成各种用户信息的设置。LCD显示屏和扬声器是人机输出界面,可以播放MPEG4视频或提示语音报警信息。CAN/LIN总线接口可以挂接汽车内的 CAN/LIN总线,提供对车内CAN/LIN总线的访问。基于上述硬件平台所设计的软件能很好地完成计算平台所要完成的各项功能。
3 汽车嵌入式计算平台的软件体系结构
软件平台采用嵌入式Linux设计。上文已对软件部分要实现的功能进行了一定的描述。其中导航任务是一个实时任务,而Linux不具有实时功能,因此需要改进Linux,使其支持实时任务。基于实时Linux的软件体系结构如图4所示。
系统上电后,首先启动LINux操作系统,然后启动QT引擎,再启动 QT主程序。在LCD显示屏上显示各个应用程序的选择按钮,通过触摸屏按下相应的按钮,即会启动相应的应用程序。下面介绍主要应用程序的执行流程。
(1)导航应用程序。导航程序启动后,用户通过触摸屏输入旅程的起始地点和目的地点。导航软件把该起始地点和目的地点发送到导航服务中心(本项目中为无线局域网中一台计算机),并且每隔一定时间调用导航API从串口1接收GPS接收仪发送的当前车辆的实时地理位置数据,再调用通信API,通过无线网卡把该地理位置数据发送到导航服务中心。导航服务中心根据接收到的旅程起始地点和目的地点计算出最优行使路径,并且每接收到车辆位置信息时,都计算出当前车辆所在的位置,把包含当前车辆位置和应该行使路径的小范围的位置图像发送到车辆。车上的导航软件把接收到的图像在LCD上显示出来,通过该图像司机就可以了解车辆当前的位置和下一步要行使的路线。
(2)诊断应用软件。诊断服务软件启动后,该软件调用诊断API读取连接在CAN/LIN总线上的各个ECU的故障代码,然后再调用通信API把这些代码发送到汽车服务中心(本项目中是与导航服务中心相同的计算机)。汽车服务中心分析故障代码,确定出汽车的具体故障情况,把最终结果通过无线网发送到汽车嵌入式平台。汽车嵌入式平台通过无线网卡接收这些数据,诊断服务软件读取该数据,并在LCD上显示。
(3)汽车/家庭互动应用软件。当在汽车嵌入式平台上运行家庭/汽车互动系统软件时,该软件在LCD上显示家庭中的各个电器及其状态。当用户通过触摸屏发出改变某个电器状态的命令时,汽车/家庭互动软件调用家庭API函数把该命令发送到家庭网关(由社会第三方服务公司提供)。在家庭网关上运行着实现 OSGI协议的软件,该软件可以完成所接收到的命令,并把执行的结果发送到汽车嵌入式平台。
(4)安全监控软件。CCD摄像头把汽车行驶车道的图像输入到DSP处理系统,DSP处理系统对图像数据进行分析,并把分析结果送到在汽车嵌入式平台上运行的安全监控软件,监控软件分析该数据。如果汽车偏离行驶车道,监控软件则调用多媒体API通过扬声器或者在LCD上显示信息提醒驾驶员,从而实现安全监控和报警功能。