嵌入式系统概

更新时间:2024-01-26 作者:用户投稿原创标记本站原创 点赞:21931 浏览:103594

第1章嵌入式系统概论

本章要点:

嵌入式系统简介

常见嵌入式微处理器及其选型

嵌入式操作系统的特点

常见嵌入式操作系统及其特征比较

1.1概述

嵌入式技术是近年来风靡全球的热点技术,从手机到电子书,从音频视频到智能家电,从电子商务到工业控制,嵌入式系统已逐渐深入到人们日常生活的方方面面.那么,什么是嵌入式系统,什么是嵌入式操作系统,它们各有哪些特点,二者之间又有什么联系呢

本章首先在1.2节相似度检测绍嵌入式系统的概念,让读者对嵌入式系统有一个基本的印象,并讨论嵌入式系统的特点,从而了解嵌入式系统与一般的计算机系统的区别.

1.3节中主要介绍嵌入式微处理器,它是嵌入式系统的核心部件.通过对嵌入式微处理器特点的分析,来了解它与一般的计算机系统的处理器的差别.同时还介绍ARM,x86,MIPS,PowerPC等几种常见的嵌入式微处理器,并对它们的内核特征,应用领域进行总结和比较.由于嵌入式微处理器的体系结构复杂,种类繁多,为便于开发者选择适合于自己的处理器芯片,在该节中还从应用的角度提出了选择微处理器芯片时应该考虑的若干问题.

在1.4节中,介绍嵌入式操作系统,因为它是嵌入式系统的灵魂.嵌入式操作系统是运行在嵌入式系统硬件环境下的操作系统,为嵌入式应用程序的开发提供软件支持.通过对嵌入式操作系统特点的讨论,了解它与一般操作系统的区别,并从应用角度和实时性两个方面对嵌入式操作系统进行分类.此外,还介绍了几种常见的嵌入式操作系统,包括VxWork,嵌入式Linux,uCLinux,RT-Linux,WindowsCE,WindowsXPEmbedded和eCos,并对它们的特征进行了比较.最后对本章的内容进行了总结.

1.2嵌入式系统简介

嵌入式系统是以应用为中心,以电子技术,计算机技术,信息技术为基础,以产品,设备为目标的专用计算机系统.它具有可靠性强,成本低,体积小,功耗低,维护和扩展方便以及升级换代快速等特点.

嵌入式系统一般是指非PC系统,它是相对于通用计算机(微型,小型,大型计算机)系统而言的.嵌入式系统将自己隐身(嵌入)于各种设备或装置的内部,并根据设备,装置的要求发挥其独特的作用(如计算,处理,存储,控制等),该系统有着与通用计算系统完全不同的技术要求和发展方向.通用计算机采用标准化,模块化的设计理念,技术要求是高速,兼容性好,海量信息处理,技术发展方向是处理速度,总线宽度和存储容量的最大化.而嵌入式系统是针对性较强的设计,技术要求是满足具体功能需求和高可靠性,技术发展方向是在保证功能要求和可靠性的前提下,追求低成本,小体积和低功耗.

嵌入式系统是由嵌入式硬件和嵌入式软件紧密耦合在一起的系统.硬件包括微处理器,存储器,各种外设,I/O控制端口等(微处理器是嵌入式硬件的核心,通常有8位,16位,32位微控制器),软件包括嵌入式操作系统和应用程序.嵌入式系统的组成如图1-1所示.

图1-1嵌入式系统的组成

国际电气和电子工程师协会(IEEE)对嵌入式系统的定义是这样的:嵌入式系统是控制,监视或者辅助设备,机器和车间运行的装置,,成本价廉等要求嵌入式系统通常需要与某些特定的应用领域紧密结合.x86,MIPS和PowerPC.

1.3.1ARM嵌入式微处理器

ARM(AdvancedRISCMachines)既是一个公司的名称,又是一类微处理器的通称,也是一种技术的名称.ARM公司是微处理器行业的知名企业,设计了大量高性能,廉价,低功耗的RISC(ReducedInstructionSetComputing,精简指令集计算机)芯片,并开发了相关技术和软件.ARM处理器具有高性能,低成本和低功耗的特点,广泛应用于嵌入式系统.

ARM的设计实现了小体积,高性能的结构.由于使用精简指令,使得ARM处理器的内核非常小,功耗也非常低.ARM体系结构的主要特点如下:

统一和固定长度的指令域,简化了指令的译码.

简单的寻址模式(只有2~3种),所有加载/存储的地址只由寄存器的内容和指令域确定.

使用单周期指令,便于流水线操作.

数据的处理只对寄存器操作,而不直接对存储器操作,提高了指令执行的效率.

在一条数据处理指令中同时完成算术逻辑处理和移位器处理,实现对ALU和移位器的最大利用.

自动地址增减寻址模式实现了程序循环优化.

对寄存器加载和存储指令实现了最大数据吞吐量.

所有指令的条件执行实现了程序快速跳转.

目前ARM公司推出的ARM处理器主要有6个产品系列,即ARM7,ARM9,ARM9E,ARM10E,ARM11和SecurCore.其中前4个是通用处理器系列,每个系列提供了一套特定的性能来满足设计者对功耗,性能和体积的需要.SecurCore是专门为安全设备而设计的.ARM11为最新产品.此外,还有其他合作伙伴的基于ARM的嵌入式微处理器,如IntelXScale.ARM系列处理器内核特征比较如表1-1所示.

表1-1ARM系列处理器内核特征比较

比较项目ARM7ARM9ARM9EARM10EARM11SecurCoreXScale处理器结构冯·诺 依曼哈佛哈佛哈佛哈佛哈佛哈佛流水线3级5级5级6级8级5级7~8级时钟频率 /MHz133270250325350~1000110200~1000续表

时钟效率 /MHz0.9MIPS1.1MIPS1.1MIPS1.35MIPS2.1MIPS1.1MIPS1.35MIPS指令集ARM,

ThumbARM,

ThumbARM,

Thumb,

DSPARM,

Thumb

DSPARM,

Thumb,

Thumb-2ARM,

Thumb,

Thumb-2ARM,Thumb,DSPMMU无有有有有有有版本v4Tv4Tv5TEv5TEv6v5v5功耗/mW0.060.190.190.50.4乘法器8×328×328×3216×3216×32应用范围工业控制,个人音频设备,打印机,照相机,电子秘书工业控制,无线设备,仪器仪表,安全系统,数字消费,汽车,通信,信息系统工业控制,下一代无线设备,数字消费品,成像设备,存储设备,网络设备汽车,通信和信息系统工业控制,下一代无线设备,数字消费品,成像设备,汽车,通信和信息系统,网络设备下一代高端移动无线设备,数字消费品,网络和汽车电子产品安全产品及应用系统,如电子商务,电子银行,网络认证,移动媒体数字移动,个人数字助理,网络产品

1.3.2其他类型的嵌入式微处理器

尽管ARM内核的嵌入式微处理器占据了约80%的嵌入式系统的市场份额,但嵌入式系统的特点决定了需要多样化的处理器来满足不同用户的需求.除了ARM微处理器外,还有其他类型的嵌入式微处理器用于不同的领域.在嵌入式系统的发展进程中,它们与ARM处理器相互借鉴,取长补短,形成了鲜明的个性和特点.

(1)x86嵌入式微处理器

x86框架的嵌入式微处理器主要有Intel公司的386EX和AMD公司的GeodeNX,由于这些微处理器性价比高,软件兼容性强,开发工具完善,在嵌入式系统中得到了广泛的应用.

(2)PowerPC嵌入式微处理器

PowerPC(PerformanceOptimizationwithEnhancedRISCPerformanceComputing)是性能经过优化的增强型RISC结构处理器,其体系结构借鉴IBM公司的Power微处理器.具有代表性的嵌入式微处理器有IBM的PowerPC604s,PowerPC750和Motorola公司的MPC7400,MPC8260等.

(3)MIPS嵌入式微处理器

MIPS(MicroprocessorwithoutInterlockedPipedStages)是指无内部互锁流水级的微处理器,其机制是利用软件方法避免流水线中的数据处理问题.MIPS既是处理器架构的名称,也是开发该处理器公司的名称.例如,中国龙芯处理器采用的就是64位MIPS指令架构.

1.3.3嵌入式微处理器的选型

随着嵌入式系统的应用和发展,嵌入式微处理器的种类会越来越多,就ARM处理器芯片而言,就有多达十几种体系结构,以及变化多端的内部功能和在片外设的组合.所以,嵌入式系统的设计者在选择微处理器时常常会感到困难,甚至无所适从.从应用的角度来看,选择微处理器应从以下几个方面考虑.

(1)考虑微处理器的性能

芯片内置核:如果使用WindowsCE或嵌入式Linux作为操作系统,则应选择具有MMU(MemoryManagementUnit)的处理器芯片,因为这两个操作系统需要MMU的支持.ARM720T,ARM920T,ARM922T,ARM946T,StrongARM等芯片都具有MMU.如果使用uCLinux或RT-Linux作为操作系统,则应选择没有MMU的微处理器芯片,因为这两个操作系统是专门针对无MMU的处理器设计的.

系统时钟:系统时钟决定了芯片的处理速度,不仅要注意处理器的速度是否合适,而且要注意外部总线的速度和设备的速度.不同的芯片对时钟的处理不同,有的芯片只有一个主时钟,这种芯片不能同时兼顾处理器时钟和外设时钟.有的芯片提供几个时钟,如处理器时钟,外部总线时钟,低速外设时钟(如UART)和高速外设时钟(如USB)等.

存储器:在不需要大容量存储器时,可选择具有内置存储器的芯片.例如,ATMEL公司的AT91FR4081就具有2MB的Flash以及128KB的SRAM.

中断控制器:中断控制器是选择芯片的重要参考因素,合理的外部中断可以提升系统的实时特性.尽管ARM处理器架构只支持FIQ和IRQ中断,但生产厂商都扩展了自己的中断控制器.例如,CirrusLogic公司的EP9315就支持64个中断源,且有24个GPIO具有中断功能,并可以配置成上升沿触发,下降沿触发,高电平触发,低电平触发多种中断方式.

扩展总线:大部分微处理器芯片具有外部SDRAM,SRAM,Flash接口,不同芯片支持的总线接口数量也不同,总线接口的宽度有8位,16位和32位.例如,CirrusLogic公司的EP9315就有6个片选的静态存储器接口(可控制SRAM,ROM和Nor-FLASH存储器)和4个片选的动态存储器接口(可控制SDRAM,SyncRom和SyncFLASH存储器),每个存储器都支持8位,16位和32位总线操作.

协处理器:如果需要大量的数学运算,则应考虑使用具有协处理器的微处理器芯片.例如,CirrusLogic公司的EP9315就内置MerickCrunch协作处理器,支持IEEE-754单精度和双精度的浮点计算.

(2)考虑微处理器的内置外设及其接口

USB支持:如果需要USB支持,则可以选择具有USB控制器的芯片.许多微处理器都内置USB主控制器,有的甚至同时具有USB主口和从口.例如,CirrusLogic公司的EP9315有3个USB2.0主口,Samsung公司的S3C2410有两个USB主口和一个USB从口.

I/O端口:如果实际需要较多的I/O端口,则应选择GPIO多的芯片.但值得注意的是,不能光看芯片资料中I/O的总数,在很多芯片中,I/O引脚与其他内置外设复用,所以在设计中要仔细计算实际可用的I/O数量.

如果需要使用集成音频接口IIS(IntegrateInterfaceofSound),则应选择具有IIS接口的芯片.例如,CirrusLogic公司的EP9315就具有IIS和AC'97音频接口.

DMA控制器:许多微处理器集成有DMA(DirectMemoryAccess)控制器,用于和外设(如网络,IDE等)进行高速通信,以减少数据交换占用的CPU时间.例如,CirrusLogic公司的EP9315就有12个DMA通道,其中两个用于内存之间的DMA传输,10个用于外设到内存或内存到外设之间的DMA传输.如果打算使用DMA传输,就应该选择具有DMA控制器的芯片.

IDE接口:如果需要外接永久存储介质(如硬盘,CF卡等),则需要考虑选择支持IDE接口的微处理器芯片.例如,CirrusLogic公司的EP9315就具有符合ATA/ATAPI工业标准的IDE接口,同时支持IDE接口的DMA传输.

串行总线接口:许多微处理器具有多种串行总线接口(如SPI,I2C,I2S,UART,IrDA),这些接口引脚连线少,使用简单,操作方便,很受开发者的欢迎.如果嵌入式系统的外设具有串行总线设备,则应选择具有这些接口的芯片.例如,CirrusLogic公司的EP9315就具有SPI,I2S,UART和IrDA接口.

LCD控制器:有些嵌入式处理器内置有LCD控制器,有的甚至内置64KB的彩色TFTLCD控制器.在设计手持设备时,选用具有LCD控制器的芯片比较方便.例如,Samsung公司的S3C2410和CirrusLogic公司的EP9315都具有内置的LCD控制器.

网络控制器:很多嵌入式处理器内置有网络控制器,如果打算利用网络接口进行通信,则应该选择具有网络接口的芯片.例如,CirrusLogic公司的EP9315就内置了1/10/100Mbps的以太网控制器.

(3)考虑封装形式

目前嵌入式处理器的封装主要有QFP,TQFP,PQFP,LQFP,BGA,LBGA等形式,BGA封装芯片面积小,可以减少PCB板的面积,但是制作工艺要求严格,需要多层布线和专业的焊接设备.

1.4嵌入式操作系统

嵌入式操作系统是一种支持嵌入式系统的操作系统,它是一种稳定,兼容性好,安全可靠的软件模块的集合,是嵌入式系统的重要组成部分.嵌入式操作系统具有通用操作系统的基本特点,能够有效地进行存储器管理,设备管理,任务调度和管理,中断处理,多任务处理等操作系统任务.由于嵌入式操作系统是由专业的公司开发研制,对代码强度,运行效率,代码大小,兼容性,可靠性等,都经过严格测试,这大大提高了嵌入式系统硬件的工作效率,并为应用程序的开发提供了极大的便利,同时也加快了嵌入式产品的开发周期.

嵌入式操作系统通常由与硬件相关的底层驱动程序,系统内核,驱动程序接口,应用程序接口,通信协议,图形界面标准工具(如阅读器,计算器等)组成.与通用操作系统相比,嵌入式操作系统在系统实时性,硬件依赖性,软件固化以及应用专用性方面具有突出特点.

1.4.1嵌入式操作系统的特点

1.可写作性

由于嵌入式系统环境的要求,嵌入式操作系统需要提供可添加或剪裁的内核和其他功能,即能够让用户根据自己的需要对操作系统进行配置,以"需"定"求".

2.可移植性

由于嵌入式微处理器的种类繁多,每种处理器都有自己的应用领域,所以嵌入式操作系统要支持尽可能多的处理器,才能满足用户对硬件选择的灵活性.这对微处理器生产商,嵌入式操作系统开发商和用户来讲都是一件好事.为了使操作系统具有可移植性,嵌入式操作系统在硬件支持方面通常采用抽象硬件层(HAL)和板极支持包(BSP)的结构设计方法.

3.实时性

实时性是一些嵌入式系统的实现要求,嵌入式操作系统必须满足具体应用所需要的实时性要求.目前VxWorks被认为是实时性最好的,在军事,航空,航天,通信等实时性要求极高的领域有广泛的应用,其次是Linux和WindowsCE.

4.低资源占有性

低资源占有性也是嵌入式系统环境的要求.相对通用计算机而言,嵌入式系统一般配有少量的存储资源.这个特点决定了嵌入式操作系统必须尽可能的小.

1.4.2嵌入式操作系统分类

(1)从应用角度分类

从应用角度来看,嵌入式操作系统可分为通用嵌入式操作系统和专用嵌入式操作系统.当使用通用嵌入式操作系统时,一般要经过重新写作以适应具体的硬件环境要求.而专用型嵌入式操作系统是针对应用广泛,环境变化较小的嵌入式系统专门设计的,所以可以不经写作和裁减直接使用,或经少量配置即可应用.

常见的通用嵌入式操作系统有VxWorks,Linux,WindowsCE.NET等.常见专用嵌入式操作系统有Smartphone,PocketPC,Symbian等.

(2)从实时性分类

嵌入式操作系统按实时性可分为两类:

非实时性嵌入式操作系统.主要面向消费电子类产品,如个人数字助理(PSA),移动,电子书等.Smartphone就是微软公司开发的面向手机应用的嵌入式操作系统.

实时嵌入式操作系统.主要面向工业控制,通信等领域,如WindRiver公司的VxWorks.

实时嵌入式操作系统又可分为两类:

可抢占式实时操作系统.内核可以抢占正在执行任务的CPU的使用权,并将使用权交给优先级更高的任务.可抢占式实时操作系统的实时性好,优先级高的任务可以先于优先级低的任务执行.VxWorks,Linux和WindowsCE.NET都是可抢占式实时操作系统,其中VxWorks是公认实时性最好的嵌入式操作系统.

不可抢占式实时操作系统.CPU执行某个任务时不能被中断,直到CPU交出控制权才可执行下一个任务.显然这种系统的实时性与特定任务的执行时间有关.

1.4.3常见嵌入式操作系统简介

(1)VxWorks

VxWorks是美国WindRiver公司设计开发的一种具有微内核的高实时嵌入式操作系统(RTOS),具有高性能的内核,广泛的网络通信协议支持,良好的开发环境,高度的可裁减性和开放式结构.以其良好的可靠性和卓越的实时性,在嵌入式操作系统领域占有重要地位,广泛应用于通信,军事,航空,航天等高精尖技术以及实时性要求极高的领域.

(2)嵌入式Linux

另一个重要的嵌入式操作系统是嵌入式Linux,Linux是源代码开放软件的先锋,从诞生至今,短短几十年,其发展速度,规模以及影响,却是任何一种操作系统不能比拟的.Linux起源于x86框架PC机开发,随着Linux的发展和不断完善,它已经能很好地支持ARM,M68000,MIPS,PowerPC等主流处理器架构,已成为嵌入式系统的主流操作系统之一.Linux除了具有功能强大,高性能,稳定性好以及源代码开放的优势外,它的最大特点是Linux的内核具有非常良好的结构,此特点使得用户可根据系统需求,对内核进行配置和裁减,这正好满足嵌入式应用中的多样性要求.此外,嵌入式Linux是在标准Linux的基础上针对嵌入式系统优化而成的,这使得它体积更小,运行更稳定.同时,Linux是免费的,没有其他商业性嵌入式操作系统需要的许可费用.这也是它具有很强的市场竞争力,成为主流嵌入式操作系统的原因之一.

(3)uClinux

uClinux(micro-Control-Linux)是Lineo公司开发的源代码开放的操作系统,主要针对没有MMU(MemoryManagementUnit)的嵌入式微处理器而设计,是众多嵌入式Linux家族的重要成员.uClinux继承了Linux的稳定性,移植性,实时性,网络功能,完备文件系统支持等优良特性.编译后的目标文件大小小于1MB,已成功地应用于许多嵌入式系统.

(4)RT-Linux

RT-Linux(Real-TimeLinux)是美国墨西哥理工学院开发的实时嵌入式Linux操作系统,与uClinux一样,RT-Linux也是为没有MMU的嵌入式系统而设计.但RT-Linux的开发者并不是按实时嵌入式操作系统的特点重写Linux内核,而是增加了一个小巧的实时内核,并把标准Linux内核作为实时内核的一个进程,同其他进程一起调度.这样做的好处是既对Linux的改动最小,又充分继承了Linux下的丰富软件资源.

(5)WindowsCE

WindowsCE(WindowsCompactEdition)是软件巨头微软公司开发的嵌入式操作系统,它是Win32API的一个子集,是一个全新的操作系统,而不是标准Windows系统的精简版本.支持x86,ARM,MIPS等近200种具有MMU的嵌入式处理器.WindowsCE提供了数百个功能模块,开发人员可根据系统需求选择自己需要的支持模块,从而达到功能裁减的目的.WindowsCE是一个32位,多线程,多任务,可抢占式的实时操作系统,同时也是一个有限开放代码的嵌入式操作系统,其允许开发人员对这部分代码进行修改.


(6)WindowsXPEmbedded

WindowsXPEmbedded也是微软为嵌入式应用而设计的嵌入式操作系统,它不是一个新开发的操作系统,而是WindowsXPProfessional的组件化版本.所有通用Windows应用程序以及驱动程序可以直接在WindowsXPEmbedded上运行,但不能在WindowsCE上运行.

(7)eCos

eCos(EmbeddedConfigurableOperatingSystem)是Cygnus公司推出的嵌入式操作系统,可以利用系统提供的配置工具对操作系统进行源代码级的裁减和配置.eCos操作系统的源代码库是一个可重用的组件库,用户不仅可以利用配置工具方便地建立自定义系统,还可以利用配置工具对组件库进行管理.eCos的主要功能特性如下:

eCos的调度内核是一个嵌入式硬实时内核,设计时,在调度策略选择,防止优先级反转,中断与异常处理模式,中断处理的最短延迟以及内存分配方式等方面都作了精巧的设计,使系统在实时性方面有良好的表现.

eCos的硬件抽象层HAL(HardwareAbstractionLayer)通过向其他组件提供标准的API函数的机制,屏蔽了底层的CPU架构与平台的特定信息,提高了eCos的移植能力.

eCos支持完整的TCP/IP协议以及上层的各种常用标准协议,便于嵌入式设备的网络连接.

1.4.4常用嵌入式操作系统特征比较

每种操作系统都有其自身的特点,它们的体系结构和提供的怎么写作不尽相同.迄今,上述嵌入式操作系统都经历了发展和成熟阶段,并在不同的领域得到了广泛的应用.正确地选择操作系统,不仅可以更好地满足嵌入式系统的要求,而且可以降低开发难度,开发成本和缩短开发周期.常用嵌入式操作系统的主要特征比较如表1-2所示.

表1-2常用嵌入式操作系统的主要特征比较

VxWorksLinuxuClinuxWindowsCERT-LinuxXPEmbed支持CPU类型M68000,x86,ARM,MIPS,XScale, PowerPCM68000,x86,ARM,MIPS,PowerPC, XScale, SunParcM68000,x86,ARM,MIPS,XScale,PowerPCM68000,x86,ARM,MIPS,XScale,PowerPCx86,PowerPC,ARMx86内核大小<,1MB<,1MB≈512KB≈1.5MB---5MB任务调度 方式优先级抢占,时间片转轮优先级抢占,时间片转轮优先级抢占,时间片转轮优先级抢占,时间片转轮优先级抢占,时间片转轮第三方 扩展续表

任务优先级数2561002561000000256内存保护NYNYNY支持MMUYYNYNY进程通信 方法信号量,互斥量,时间标记管道消息队列,共享内存管道消息队列,共享内存信号量,互斥量,消息队列信号量,互斥量,消息队列,条件变量信号量,互斥量,消息队列支持网络 协议TCP/IPTCP/IPTCP/IPTCP/IP无TCP/IP文件系统FAT,NFS, RAM,TueFFSRAMDISK, NFATFAT,NFS,RAM无FAT,NFS编程语言C,C++C,C++C,C++C,C++C,C++C,C++

1.5本章小结

本章的目的是介绍嵌入式系统,嵌入式操作系统和嵌入式微处理器的基本概念,这些概念在嵌入式系统的开发,应用和学习中经常遇到,了解和掌握这些概念有益于对本书其他章节的阅读.

本章首先介绍了嵌入式系统的概念,并讨论了嵌入式系统的特点,其目的是帮助读者了解嵌入式系统与一般计算机系统的区别.其次介绍了嵌入式微处理器,并对几种常见的嵌入式微处理器(ARM,x86,MIPS,PowerPC)的内核特征,应用领域进行了总结.通过对嵌入式微处理器特点的分析,进而了解它与一般计算机系统的处理器的差异.同时还从应用的角度提出了选择微处理器芯片时应该考虑的若干问题.最后,介绍了嵌入式操作系统,并从应用角度和实时性两个方面对嵌入式操作系统进行了分类.同时还介绍了VxWorks,嵌入式Linux,uClinux,RT-Linux,WindowsCE,WindowsXPEmbedded,eCos等几种常见的嵌入式操作系统,并对它们的特征进行了总结.通过对嵌入式操作系统特点的讨论,可以了解它与一般操作系统的区别.

1.6复习与思考

1.什么是嵌入式系统它有哪些特点

2.什么是嵌入式操作系统它有哪些特点

3.选择微处理器芯片时应考虑哪些问题

4.嵌入式操作系统的作用是什么嵌入式系统中一定需要操作系统吗

5.您接触过嵌入式系统吗请列举几例.

基于ARM的嵌入式WindowsCE系统高级开发技术

第1章嵌入式系统概论

2

9