Toradex Shanghai office(201100) 王立
摘要: 本文介绍了计算机模块在工业嵌入式系统中的应用,结合Toradex™公司的Colibri®产品线,给出了计算机模块的仿真开发平台,并讨论了在工业领域应用中的几个关键问题。该计算机模块应用范围涵盖航空航天、仪器仪表、医疗设备、工业控制以及商业物流终端等各个领域。
关键词:计算机模块 系统核心模块 嵌入式系统
Computer module in embedded application
Toradex shanghai office, Shanghai (201100) Wang Li
[Abstract] In this paper, we introduce the computer module in industrial embedded application , and give the description of Toradex™ company’s Colibri® product evaluation system,discuss the key issue of the application. Toradex® products are widely used in the following areas: navigation systems, test instrument, medical devices, automotive, machine control, POS terminator
[Keywords] computer on module (COM) system on module(SOM) embedded system
计算机模块( COM, Computer On Module)是指一个包含微处理器、存储器、内存、设备控制器、特定模块接口、以及操作系统的计算机最小化系统, 也称为系统核心模块(SOM, System On Module)。 一般由厂家定制完成,应用中需要进行二次开发,如根据应用来定制载板,操作系统的定制,应用软件的编写。计算机模块越来越普遍地出现在嵌入式应用领域,相比较采用完整的工业计算机主板或者单独研发,采用计算机模块的好处在于: 高可靠性、较短的研发周期、定制化的功能、简化的物流,以及较长的生命周期等。高可靠性表现在,模块的设计需要考虑各种应用,通过实际使用,经过多次的改版, 例如Toradex™公司的Colibri®系列计算机模块,经过了8次以上的改版和6年以上的市场应用检验;一个常用的基于ARM处理器的嵌入式系统,研发周期通常是6至18个月,达到产品质量稳定往往需要更长的时间,如果采用一个稳定的计算机模块,通过对于提供的评估系统硬件的裁剪,采用已有的硬件驱动,用户只要将精力集中在软件开发设计中,这样将大大缩短产品开发周期;通常嵌入式产品是一个定制化的产品,很难在市场上找到合时的现有产品,要么选用的产品功能太多造成浪费,要么尺寸不符合产品要求,采用一个计算机模块可以根据产品的尺寸和外围接口来定制自己的载板,满足了个性化的需求,如果一个计算机模块的接口是通用的,用户还可以采用不同厂家的产品或者很方便的升级硬件资源。如colibri产品线中基于Marvell™ XScale®处理器从208Mhz 主频到 806Mhz, 均使用同样的模块接口;计算机模块包含了计算机最小化系统的主要元器件,因此,采用模块对于简化用户的生产采购非常有利;一个工业设备通常有很多年的生产周期,对于元器件的生命周期也提出要求,计算机模块在设计之初就要考虑产品的生命周期,选用合适的元器件,如选择特定的处理器系列,Intel™的Atom® Z510/530产品就提供了超过7年的生命周期。从以下的表格中也可以看出,对于工业应用领域,采用计算机模块是一个比较经济的做法。
图 1. 嵌入式产品数量与总费用比较表
传统的计算机模块是基于X86 构架下的386/486或者Pentium®处理器的 PC104模块, PC104是一个基于ISA的接口, 后来发展到PC104 plus,这个接口是对应于PCI接口。随着计算机的发展,计算机模块为了支持一些新的接口,如PCI-Express™, IDE, SATA,多路视频输出等,PCI 工业计算机制造商组织(PICMG)定义了COM Express™ 模块标准:
图 2. COM Express™ 接口定义
目前,为了能够使计算机模块尽可能的小,Kontron™和Toradex™共同参与制定了和名片大小相仿的Nano ComExpress™模块标准。
图 3. Toradex Robin 计算机模块

图 4. COM Express™ 和 Nano COM express™ 计算机模块尺寸对比
这些模块一般都使用了基于X86的高性能处理器,可以提供丰富的外围接口,操作系统也可以灵活选用。 为了优化功耗和计算能力, 有一些厂家提供了基于ARM处理器的计算机模块,例如Toradex™自2003年推出的Colibri®产品线系列,产品使用Marvell ®XScale® 系列处理器,整个模块的功耗只有350mW~1700mW, 特别适合应用于功耗受限工业嵌入式应用。下面就结合具体应用来介绍Colibri®计算机模块。
Colibri®计算机模块是瑞士Toradex™公司基于Marvell™ XScale® (PXA270, PXA300, PXA310, PXA320)处理器的管脚兼容的系列产品,模块是一个含有CPU、内部存储空间(FLASH, DDR RAM)、以太网控制器、音频触摸屏控制器和大量GPIO接口的标准SODIMM200高度集成计算机模块,可根据需要选定208M至806MHZ主频的CPU,32MB Nor Flash和64MB SDRAM 到 1GB NAND Flash和128M DDR RAM的灵活组合。受益于Intel Wireless Speedstep®技术的优化,模块的功耗介于350mW~1700mW。模块预装WINCE5.0/6.0操作系统,同时免费提供板级支持包(BSP)以供客户订制自己的系统。
图 5. Colirbi®计算机模块接口

图 6. Colirbi®计算机模块
2 Colibri仿真开发平台介绍以及开发流程
Toradex™公司提供了Colibri®产品的评估开发系统,该平台可用于对全部Colibri®计算机模块进行开发和评估。通过该评估板, 可以将计算机模块的外围接口、CPU总线和GPIO口引出,结合计算机PC的开发软件,如微软的Platfrom builder5.0和EVC,或者linux软件平台 ,实现对Colibri模块的评估和软件开发。
图 7. Colirbi®计算机模块评估开发板

图 8. Colirbi®计算机评估开发板系统构架
自WINCE6.0,微软已经将的开发环境集成到了Microsoft Visual Studio 2005中,操作系统的定制作为其一个工程项目。 一般来说,用户会直接使用Colibri计算机模块内预装的WINCE5.0/6.0操作系统,根据Toradex公司提供的SDK来编译自己的应用程序, Toradex还提供了大量的库函数和应用事例,如开机界面定制程序,CAN总线驱动,GPIO库函数、显示屏驱动定制程序等。如果用户需要定制自己的操作系统内核(OS Image), 就需要利用Toradex提供的BSP,通过Visual Studio 裁剪定制自己的内核。当完成内核编译以后,可以通过网络接口,将内核下载到计算机模块中运行,开发应用程序的过程也类似。
3 应用举例和几个关键问题
LX navigation 公司的(斯洛文尼亚)LX 7007飞行导航控制仪。
LX7007飞行导航控制系统采用了两个显示器,一个是80毫米高,另一个是57毫米高最新设计的80毫米显示器采用了“colibri嵌入式微处理核心模块”、带后备电池的额外的512K RAM和1M Flash备份空间,这些硬件的设计,充分保障了强大的功能和高可靠性的特点。 
所有系统的关键数据均存储于一个非易失的FLASH存储空间里,即使后备电池出现故障也不会丢失数据。这个飞行记录仪已得到IGC的认证。
得益于Colibri丰富的外围接口,LX7007可以为用户提供以下接口:
1. SD卡接口,主要用于飞行计划下载、TP/TSK数据更新、机场和领空数据更新、配置更新等。
2. 3个独立的RS-232通信接口,可以为飞行数据记录仪、PDA等提供3个标准RS-232 COM口。
3. 直接为PDA供电和数据更新,LX7007利用高效的DC/DC转换器输出5V电压,NMEA数据输出也兼容于常用的飞行用PDA, PDA软件如onnectMe, ConnectLx

4. 即插即用的“Colibri”和“LX20”模块,这两种设备可以采用标准电缆连接,此类设备是IGC所要求的独立运行设备,储存TP/TSK和飞行日志数据。
5. PC 连接, 可以采用标准的PC COM口或者USB接口。
6. 飞行防撞单元, 这个单元作为一个选件可以和LX 7007系统直接相连,另外只需要在飞机的尾部安装一个射频天线。LX7007为此提供一个图形显示介面,也可以显示当前临近滑翔机的状态和净空状态。 ,这个模块由LX7007产生告警和其它提示音。
8. 副显示器可以显示临近飞机和空中流量等信息。
以上的设计硬件基于Colibri PXA270 520M 模块, 软件为WINCE 操作系统,开发和通过IGC认证历时9个月。

与此类似的应用还有,瑞士牛郎星-滑翔机导航控制仪
在实际设计中,针对不同的应用领域,需要考虑以下几个关键问题
3.1内核的裁剪和定制
预装在计算机模块内的WINCE5.0/6.0内核是一个比较完整的内核, 非常方便基于C/C++, ATL MFC应用程序的开发。但是,对于一些实时性要求高的应用领域,为了提高系统的可靠性,必须对内核进行裁剪,去掉一些不用的组件,尽可能减小内核的尺寸。例如去掉内核中的游戏程序、去掉一些不必要的驱动、去掉一些媒体文件的支持、去掉一些不需要的字库等等,这样定制下来的英文内核要小于 10M Byte, 冷启动在5.5S以内。在另外的一些应用环境,可能需要增添一些组件,例如中文环境的支持。
3.2 模块的加固
Colibri 模块是通过SODIMM200插槽和载板进行连接,这个插槽和DDR-I 内存插槽是同样的物理尺寸和结构,经过实践证明,通过这种插槽连接是稳定可靠的。但是,如果在一些震动环境应用中,建议对模块进行加固。Colibri模块有四个定位孔,可以使用螺栓和载板进行加固连接,这样的结构能够经受了飞行以及船舶航行等高震动领域的考验。
3.3 温度范围的选择
工业控制领域通常会有一些恶劣环境的应用,例如环境温度变化很大,这就需要挑选特殊规格的模块,特别是指定工业温度范围应用的产品,例如Colibri PXA320IT,这样的产品在设计过程中,就充分考虑到了每一个器件的温度特性。特别是电源,处理器,甚至接插件都是特殊的。使用这样的计算机模块比在普通模块里做温度筛选来的可靠的多。
结语
至2009年1月份,Toradex公司的Colibri系列计算机模块至今已经被不同国家的1800个客户中采用,应用领域涉及航空设备、船舶导航、医疗设备、仪器仪表嵌入式领域,计算机模块由于其可靠性、灵活性被证明是工业领域的嵌入式应用的主要组成部分。