车载导航终端属于一个典型的嵌入式系统。对于嵌入式系统,目前比较合理的一个定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(1) 嵌入式微处理器的选择
正因为嵌入式系统在系统特性、开发周期、设计要求等方面与通用计算机系统有巨大的差异,嵌入式处理器的选择受到很多独特因素的影响。本终端选用了基于ARM核的32位RISC处理器。ARM公司自1990年成立以来,在32位RISC CPU开发领域不断取得突破,其体系架构已从V3发展到V6。它一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而不介入芯片的生产销售。其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在嵌入式应用领域获得了巨大的成功。到2004年已经占有79%的嵌入式处理器市场,并且其ARM9系列内核已成为产品应用的主流。
① 性能。处理器必须有足够的性能执行任务和支持产品生命周期。考虑到智能导航终端应用的复杂性(电子地图、彩色液晶、触摸输入、gpsOne导航、语音交互等),选择处理器需要从内存管理单元(MMU)、时钟主频、内部存储器容量、通用可编程I/O(GPIO)数量、终端控制器、LCD控制器、ADC/DAC、UART接口、DMA控制器等各项性能指标综合考虑。
② 是否便于实现。
③ 工具支持。支持软件创建调试系统集成代码调整和优化工具对整体项目成功与否非常关键。
④ 操作系统支持。嵌入式系统应用需要使用有帮助的抽象来减少其复杂性。针对处理器系列产品作过优化的商用操作系统(OS)能够缩短设备开发周期和上市时间。ARM获得了许多著名的嵌入式(实时)操作系统,如VxWorks、Windows Mobile(WinCE)、Linux等的支持。
(2) 嵌入式操作系统的选择
8位单片机只需要直接编写单一的控制程序即可工作,但随着应用的复杂化,一个嵌入式控制器可能要同时控制、监视很多外设;有很多处理任务,各个任务之间有多种信息传递,原来的程序设计方法已根本无法满足系统需求,因此后PC时代的嵌入式系统都需要一个运行在嵌入式处理器之上的操作系统。在智能终端领域有四大主流操作系统,即Symbian、Windows Mobile、Palm OS和Linux;但是由于Linux的性能、可靠性、开放源代码、低成本和技术支持,越来越多的商用产品将会采用嵌入式Linux作为开发平台。图4说明了Linux在嵌入式OS中的发展趋势。
在嵌入式OS中发展趋势我们选择的方案是:下载GNU/Linux的标准源代码并进行适当裁减和修改,定制成符合导航终端需求的操作系统。据Linux Devices统计,这种所谓的“Home grown”已成为目前最流行的嵌入式Linux版本,其份额远远超出了商业嵌入式Linux的版本。这其实也是嵌入式系统多样性的必然反应。
(3) 基于ARM和嵌入式Linux平台的系统开发
将Linux移植到ARM处理器上并在此平台上进行应用开发大致涉及四个层次:引导装载程序、Linux OS移植(包括设置工具链、内核、驱动程序、文件系统等)、图形用户界面(或称GUI)和应用程序。
① 引导装载程序通常是在任何硬件上执行的第一段代码。基于ARM设备上一些流行的并可免费使用的Linux引导装载程序有Blob、Redboot和Bootldr。
② 设置工具链的目的是要在主机机器(X86架构的PC机)上创建一个用于编译将在目标(ARM架构的嵌入式系统)上运行内核和应用程序的构建环境。它由一套用于编译、汇编和链接内核及应用程序的组件组成。
③ 虽然Ext2fs是Linux事实上的标准文件系统,但在嵌入式环境中使用JFFS2是更好的选择。它是专为微型嵌入式设备设计的日志型闪存芯片文件系统。
④ 从用户的观点来看,图形用户界面(GUI)是系统的一个至关重要的方面:用户通过GUI与系统进行交互。Qt/Embedded是Trolltech新开发的用于嵌入式Linux的图形用户界面系统。
结语
综合ARM处理器、嵌入式Linux和gpsOne定位技术,依托CDMA网络传输平台而设计开发成的智能车载定位服务系统具有广泛的适用性。2008年的北京奥运会将会为智能车载导航调度系统的应用带来更广阔的前景。