ARM嵌入式技术的发展与应用WDB(北京信息科技大学仪器科学与光电工程学院)摘要:在信息化时代的今天,嵌入式系统的应用无处不在。从科研行业、军事领域,到商业发展、娱乐行业,甚至是人们的日常生活中,嵌入式系统——特别是ARM嵌入式系统的身影随处可见。本文将从嵌入式的概念入手,讨论ARM嵌入式系统的发展历史、发展现状,及其应用,最后对ARM技术的发展前景进行预测。关键词:嵌入式系统;ARM;微处理器引言嵌入式系统是指为特定应用而设计的专用计算机系统。它以应用为中心,以计算机技术为基础,软件硬件可以根据需要裁剪,满足对功能、可靠性、成本、体积、功耗等要求而专门设计的计算机系统,被广泛用于手持设备、电信交换机、汽车电子、医疗设备、多媒体电器、军事装备、航空等领域。[1]本文以ARM微处理器为主,介绍ARM嵌入式系统的种类、特点、结构以及操作系统等。1ARM嵌入式系统的发展1.1嵌入式系统的概念与特点根据IEEE9(国际电气和电子工师协会)的定义,嵌入式系统定义为控制监视或者辅助设备机器和车间运行的装置。由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装置。[2]而按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。嵌入式系统作为一类特殊的计算机系统,自底向上包含以下三个部分:硬件平台、嵌入式操作系统、嵌入式应用程序。嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。[3]1.2ARM嵌入式的发展历史ARM是AdvancedRISCMachines的缩写,是微处理器行业的一家知名企业,该企业设计了大量廉价、高性能、低功耗的RISC处理器、相关技术及软件。可以这么说,ARM代表的不仅是一个企业,更代表了一种技术、一种微处理器,甚至一种产业的发展模式。[4]CISC体系由于指令集庞大,指令长度不固定,指令执行周期有长有短,使指令译码和流水线的实现在硬件上非常复杂,给芯片的设计开发和成本的降低带来了极大困难。ARM是典型的RISC体系,根据RISC的设计思想,其指令集的设计应该尽可能地简单,和CISC体系相比,它可以通过一系列简单的指令来实现复杂指令的功能。[5]首个ARM芯片是在1985年由Acorn计算机公司设计的,采用的是典型32位RISC体系结构。经过这么多年的发展,ARM已经形成了如下系列(表一)的大家族。表一CoreArchitectureARM1v1ARM2v2ARM2aS,ARM3v2aARM6,ARM600,ARM610V3ARM7,ARM700,ARM710V3ARM7TDMI,ARM710T,ARM720T,ARM740TV4TStrongARM,ARM8,ARM810V4ARM9TDMI,ARM920T,ARM940TV4TARM9E—SV5TEARM10TDMI,ARM1020EV5TE目前,有关ARM微处理器应用较多的有决ARM7、ARM9、ARM9E、ARM10及StrongARM等系列。ARM7系列:包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备以及移动电话、PDA等无线设备。ARM9系列:包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。该系列主要应用于引擎管理、仪器仪表、安全系统、机顶盒、高端打印机、PDA、网络电脑以及带有MP3音频和MPEG4视频多媒体格式的智能电话中。ARM9E系列:为综合处理器,包括ARM926EJ-S、带有高速缓存处理宏单元的ARM966E-S/ARM946E-S。该系列强化了数字信号处理功能,可应用于需要DSP与微控制器结合使用的情况,将Thumb技术和DSP都扩展到ARM指令集中,并具有EmbeddedICE-RT逻辑,更好地适应了实时系统的开发需要。ARM10系列:包括ARM1020E和ARM1020E微处理器核。其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大地提高了处理器的整型和浮点运算性能,为用户界面的2D和3D图形引擎应用夯实基础,如视频游戏机和高性能打印机等。SecurCore系列:包括SC100、SC110、SC200和SC210处理器核。该系列主要针对新兴的安全市场,以一种全新的安全处理器设计为智能卡和其他安全IC开发提供独特的32位系统设计,并具有特定的反伪造方法,从而有助于防止对硬件和软件的盗版。StrongARM系列:StrongARM处理器将Intel处理器技术和ARM体系结构融为一体,致力于为手提式通信和消费电子类设备提供理想的解决方案。Xscale系列:提供全性能、高性价比和低功耗的解决方案,支持16位Thumb指令和DSP指令。[6]1.3ARM的指令体系及工作模式ARM微处理器在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。[7]首个被设计的ARM处理器芯片采用的加载/存储体系结构是典型的RISC结构。ARM体系结构继承了RISC结构中的加载/存储体系结构、固定长32位指令和三地址指令格式。大量使用寄存器,指令执行速度更快,大多数数据操作都在寄存器完成。ARM体系结构v4T及以上版本定义了称为Thumb的16位指令集,能很好的兼容8位/16位器件。Thumb体系的扩充使得在8位/16位系统价格下可得到32位系统性能,能获得比通常的8位/16位CISC/RISC控制器有更好的代码密度,是传统的32位体系结构代码大小的一部分。例如ARM9系列,代码密度提高了35%。这意味着程序存储器可以更小,因而降低了成本。[8]ARM体系支持如下7种处理器模式(ProcessorMode):(1)用户模式(User:usr):CPSR中的M[4:0]=0b10000,这是用户程序运行的正常模式,在这种模式下,程序不能访问一些受保护的资源,以利于操作系统控制系统资源的使用。其它的6种模式则称为特权模式(PrivilegedMode)。(2)系统模式(System:sys):CPSR中的M[4:0]=0b11111,这种模式只有ARMv4及其之上的版本才能支持,主要用于对操作系统的支持和对系统资源的管理。(3)快速中断模式(FIQ:fiq):CPSR中的M[4:0]=0b10001,快速响应用户中断,支持高速数据传输,以满足少数需要极高实时性的请求。(4)中断模式(IRQ:irq):CPSR中的M[4:0]=0b10010,用于一般的中断处理。可以对应一般的多个中断源。(5)监督模式(Supervisor:svc):CPSR中的M[4:0]=0b10011,用于操作系统的保护模式。(6)中止模式(Abort:abt):CPSR中的M[4:0]=0b10111,用于对虚拟内存的实施和保护。(7)未定义模式(Undefined:und):CPSR中的M[4:0]=0b11011,支持用软件仿真硬件的协处理器。第(3)~(7)的五种模式则称为异常模式,这些模式的进入需要特定的异常发生。2ARM嵌入式技术的应用2.1嵌入式操作系统的应用现状VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛、市场占有率比较高的嵌入式操作系统。VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至可以微缩到8KB。μC/OS-II是在μC/OS的基础上发展起来的,是美国嵌入式系统专家JeanJ.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。μClinux是一种优秀的嵌入式Linux版本,其全称为micro-controlLinux即微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。eCos(embeddedConfigurableoperatingsystem),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由不同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。[9]2.2基于ARM嵌入式的开发应用近年来,我国嵌入式系统应用产品的市场需求日益增长,嵌入式系统的产值呈现着不断增长趋势,在医疗仪器设备、家电、电子、汽车、通信、网络、交通、金融、监控、工业自动化等领域尤其明显。随着嵌入式系统开发技术的飞速发展,使得构建以嵌入式技术为核心的图像采集系统开发能够成为现实。嵌入式图像采集处理系统的实现将克服传统的图像采集处理系统结构复杂,成本高,体积大,功耗大等缺点。嵌入式图像采集处理系统将实现实时图像采集、图像处理一体化,其结构紧凑,甚至根本就不需要PC机的介入,可提高处理速度,并能有效降低成本,使得该系统具安装携带方便、配置灵活等突出优点,并且保密性大大得到了提高,具有广阔的市场应用前景。[10]在无线通信领域,基于ARM架构的通信终端的研究具有重要意义。如基于三星公司的S3C2440ARM处理器和Linux嵌入式操作系统,对Marvell88w8686WiFi无线网络控制器的应用进行研究,可以实现一个在WiFi热点区域接入互联网、功耗小的无线通信终端。在软件方面,使用基于ADS集成开发平台的Bootloader,采用嵌入式Linux系统作为操作系统,使用Qtopia桌面环境,并采用基于Qt的Konqueror作为嵌入式浏览器。该无线通信终端可以在WiFi信号覆盖区域接入因特网,能通过鼠标、键盘和触摸屏进行操作。在电源管理功能上,系统能在正常状态、低功耗状态和休眠状态之间进行正常切换,能正确进行休眠和唤醒。[11]基于嵌入式Linux操作系统ARMLinux,研究在微处理器PXA255上实现内存管理、进程调度、中断处理和系统调用的机制,讨论了USB的总线结构和通信模型。在研究Intel公司XsealepXA255芯片的基础上,在xhyper255B评估板上进行了ARMLinux系统的移植研究工作,包括Linux内核移植,文件系统修改以及引导程序Bootloader的编程开发。在hxyper255B评估板上外扩了USB驱动芯片CY7C67300,实现Linux操作系统下USB驱动程序的编程设计。[12]温度是一种最基本的环境参数而且与我们的生活密切相