上一课:
【小黑嵌入式系统第一课】嵌入式系统的概述(一)——概念、特点、发展、应用
下一课:
【小黑嵌入式系统第三课】嵌入式系统硬件平台(一)——概述、总线、存储设备(RAM&ROM&FLASH)
文章目录
- 一、嵌入式系统的组成
- 二、嵌入式处理器
- 三、嵌入式外围设备
- 1. 存储设备
- 2. 通信设备
- 3. 显示设备
- 四、硬件抽象层HAL
- 五、嵌入式操作系统
- 六、应用程序
- 七、嵌入式处理器
- 1、MCU
- 2、MPU
- 3、DSP
- 4、SOC
- 5、SOPC
- 八、ARM处理器简介
- ARM处理器的特点
- ARM处理器的发展历程
- ARM体系结构版本及特点
- ARM处理器核——ARM Cortex系列
- ARM处理器核——Cortex-M
- 九、嵌入式操作系统
- 典型的嵌入式操作系统
- (1). VxWorks
- (2). Nucleus
- (3). QNX
- (4). Windows CE
- (5). Linux
- (6). IOS/安卓/鸿蒙
- (7). Android
一、嵌入式系统的组成
一般而言,嵌入式系统的组成架构可以分成三层,四个部分:嵌入式处理器、嵌入式外围设备、嵌入式操作系统和应用程序。
四层结构也常见:嵌入式硬件平台、硬件抽象层(HAL)、嵌入式操作系统、应用程序。
增加硬件抽象层HAL(Hardware Abstraction Layer):
- 也称为板级支持包BSP(Board Support Package),是一套软件,主要目的是屏蔽下层硬件,使操作系统不再直接面对具体的硬件环境。
- HAL通过特定的上层接口与操作系统进行交互,向操作系统提供底层硬件信息,并根据操作系统的要求完成对硬件的直接操作。
- HAL的引入大大推动了嵌入式系统的通用化,为嵌入式系统的广泛应用提供了可能。
典型嵌入式系统组成:
二、嵌入式处理器
嵌入式系统的核心部件,大多工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式处理器包括:
- 低端的嵌入式微控制器(MicroController Unit, MCU)
- 中高端的嵌入式微处理器(Embedded Micro Processor Unit,EMPU)
- 用于计算机通信等领域的嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)
- 高度集成的嵌入式片上系统(System On Chip,SOC)
嵌入式处理器的体系结构经历了从CISC(复杂指令集)到RISC(精简指令集)和Compact RISC的转变,位数则由4位、8位、16位、32位逐步发展到64位。
目前,几乎每个大的半导体制造商都生产嵌入式处理器,全世界嵌入式微处理器已经超过1000多种,流行的体系结构也有30多个系列,其中以ARM、x86、MIPS 、PowePC等使用得最为广泛。
三、嵌入式外围设备
在嵌入式系统的硬件中,除了中央控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存储、通信、显示等配套功能的其它硬件部件,都可以算作嵌入式外围设备。
常用的嵌入式外围设备按功能可分为:存储设备、通信设备和显示设备三大类。
1. 存储设备
存储设备主要用于各类数据的存储,常用的有静态随机存储器(SRAM)、动态存储器(DRAM)和非易失存储器(ROM、UV EPROM、EEPROM、FLASH)三种。
2. 通信设备
目前存在的绝大多数通信接口都可以直接应用于嵌入式系统中,包括UART接口(通用异步串行通信接口)、 IrDA(红外线接口)、 SPI(串行外围设备接口)、I2C(INTER IC 总线接口)、USB(通用串行总线接口)、Ethernet(以太网接口)、CAN(现场总线)等。
3. 显示设备
对于嵌入式系统中的显示设备,根据应用场合的特点,通常使用的是数码管(LED)、液晶显示器(LCD)和触摸显示屏(Touch Panel)等显示设备。
四、硬件抽象层HAL
硬件抽象层通过HAL接口向操作系统和应用程序提供对抽象后的硬件的服务。它是一套软件。
板级支持包(BSP) 是商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。BSP是介于硬件和操作系统中驱动层程序之间的一层,有时也可认为属于操作系统一部分。BSP实现了对操作系统的支持,为上层的驱动程序提供访问硬件设备的函数包。
BSP隔离了所支持的嵌入式操作系统与硬件平台之间的相关性,使操作系统通用于BSP所支持的硬件平台,实现了嵌入式操作系统的可移植性、跨平台性、通用性和复用性。
不同的操作系统要求不同定义形式的BSP
- 例如,对同一个CPU来说,要实现同样的功能,VxWorks的BSP和Linux的BSP的写法和接口定义完全不同。BSP一定要按照具体操作系统BSP的定义形式来写(或在某个成型的BSP模板上修改),保障与上层操作系统的正确接口,良好地支持上层操作系统。
BSP直接操作硬件,因此不同的板卡、不同的硬件配置将不同程度地影响BSP。
BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体包括:
- 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持
- 为操作系统提供设备驱动程序和系统中断服务程序
- 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境
- 初始化操作系统,为操作系统的正常运行做好准备
五、嵌入式操作系统
为了使嵌入式系统的开发更加方便和快捷,需要有专门负责管理存储器分配、任务调度、中断处理等功能的软件模块,这就构成了嵌入式操作系统。
嵌入式操作系统是用来支持嵌入式应用的系统软件,是嵌入式系统极为重要的组成部分,通常包括系统内核、硬件相关的底层驱动程序、设备驱动接口、通信协议、文件系统、图形用户界面等。
嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理复杂的系统资源,能够对硬件进行抽象,能够提供库函数,驱动程序、开发工具等。
但与通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依赖性、软件固化性以及应用专业性等方面具有着鲜明的特点。
嵌入式操作系统根据应用场合可分为两大类:
-
一类是面向消费电子产品的非实时操作系统,这类设备包括个人数字助理(PDA)、移动电话、机顶盒(STB)等;
-
另一类则是面向控制、通信、医疗等领域的实时操作系统,如WindRiver公司的VxWorks、QNX系统软件公司的QNX等。
实时系统是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。
六、应用程序
应用程序(APP) 是针对特定应用领域,基于某一固定的硬件和操作系统平台,用来达到用户预期目标的计算机上层软件。
由于用户任务可能有时间和精度上的要求,因此,有些嵌入式应用程序需要特定嵌入式操作系统的支持。
嵌入式应用程序和普通应用程序有一定的区别,不仅要求它在准确性、安全性和稳定性等方面满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。
七、嵌入式处理器
目前,世界上具有嵌入式功能特点的处理器已经超过1000种,流行的体系结构包括MCU、MPU等类型的30多个系列。从单片机、DSP到FPGA,品种越来越多,速度越来越快,性能越来越强,价格也越来越低。
嵌入式处理器一般具有以下四个特点:
- 对实时多任务操作系统具有很强的支持能力。能够实现多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减小到最低程度;
- 具有功能很强的存储区保护功能。由于嵌入式系统的软件结构一般为模块化,为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件故障诊断;
- 处理器结构可扩展。能够快速开发出满足各种应用和高性能的嵌入式处理器;
- 低功耗。尤其是在便携式的无线及移动计算和通信设备的嵌入式系统中,其功耗可以达到mW级,甚至uW级。
近年来,嵌入式处理器的主要发展方向是小体积、高性能、低功耗。专业分工也越来越明显,出现了专业的IP(Intellentual Property Core,知识产权核)供应商,如ARM、MIPS等,他们提供优质、高性能的嵌入式微处理器内核,而由各个半导体厂商生产面向各个应用领域的芯片。
嵌入式处理器通常分为四类:
1、MCU
嵌入式微控制器的典型代表是8位单片机,目前在嵌入式设备中仍然有着极其广泛的应用。
单片机芯片内部集成ROM/EPROM、RAM、总线逻辑、 I/O口、定时/计数器、串行通信口、A/D、D/A、看门狗等各种常用功能和外设。
例如:51单片机,MSP430,PSOC 5LC等。
MCU处理能力有限:
MCU微控制器,数据总线宽度一般为8位或16位,处理速度有限,一般在几个~几十个MIPS,进行一些复杂的应用比较困难,运行操作系统就更难。
2、MPU
MPU嵌入式微处理器是由通用计算机中的CPU演变而来的,80386-80387
与通用计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
3、DSP
DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令体系方面进行了针对常用信号处理算法所需的特殊设计,在数字滤波、FFT、频谱分析等方面DSP获得了大规模的应用。
DSP是运算密集处理器,一般用在快速执行算法,做控制比较困难。为了追求高执行效率,不适合运行操作系统,核心代码有时使用汇编。
4、SOC
片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。
SOC(片上系统)是IC设计的发展趋势。采用SOC设计技术,可以大幅度地提高系统的可靠性,减少系统的面积和功耗,降低系统成本,极大地提高系统的性能价格比。
SOC芯片已经成为提高移动通信、网络、信息家电、高速计算、多媒体应用及军用电子系统性能的核心器件。
5、SOPC
用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:
首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;
其次,它是硬件可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级。用可编程逻辑技术可实现一个内嵌的小型CPU,并具备软硬件在系统可编程的功能。
八、ARM处理器简介
ARM(Advanced RISC Machines)处理器是当今最流行的一类微处理器(之一)。
ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,它是一家微处理器行业的知名企业,其主要业务是设计16位和32位的嵌入式处理器。该公司设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。
ARM公司只做设计,本身并不生产和销售芯片,而是采用技术授权的方式,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM处理器芯片进入市场。
ARM处理器的特点
- 体积小、低功耗、低成本、高性能
- 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件
- 大量使用寄存器,指令执行速度快
- 大多数数据操作都在寄存器中完成
- 寻址方式灵活简单,执行效率高
- 采用固定长度的指令格式
ARM处理器的发展历程
-
第一片ARM处理器是1983年10月到1985年4月间在位于英国剑桥的Acorn Computer公司开发。
-
1990年,为广泛推广ARM技术而成立了独立的公司。
-
20世纪90年代,ARM快速进入世界市场。
ARM体系结构版本及特点
ARM处理器核——ARM Cortex系列
ARM Cortex发布于2005年,为各种不同性能需求的应用提供了一整套完整的优化解决方案,该系列的技术划分完全针对不同的市场应用和性能需求。
目前ARM Cortex定义了三个系列:
① “A”系列面向尖端的基于虚拟内存的操作系统和用户应用;
② “R”系列针对实时系统;
③ “M”系列对微控制器和低成本应用提供优化。
ARM处理器核——Cortex-M
针对价格敏感应用领域的嵌入式处理器,只支持Thumb-2指令集,强调操作的确定性,以及性能、功耗和价格的平衡。
是为对开发费用非常敏感同时对性能要求不断增加的嵌入式应用(如微控制器、汽车车身控制系统和各种大型家电)所设计的,主要面向单片机领域,可以说是51单片机的完美替代品。
注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。
九、嵌入式操作系统
嵌入式操作系统EOS (Embedded OS):指运行在嵌入式系统中,对整个嵌入式系统所操作、控制的各种资源进行协调、调度和控制的系统软件。
EOS负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动。
EOS是嵌入式应用软件的基础和开发平台,是嵌入式系统极为重要的组成部分,通常包括系统内核、与硬件相关的底层驱动软件、设备驱动接口、通信协议、文件系统、图形界面等。
与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点
嵌入式操作系统的出现大大提高了嵌入式系统开发的效率,改变了以往嵌入式软件设计只能针对具体的应用从头做起的方式。
典型的嵌入式操作系统
(1). VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统。是目前嵌入式系统领域中使用最广泛、市场占有率最高的实时操作系统。它支持多种处理器,如x86, i960, Sun Sparc, Motorola MC68k, MIPS RX000, PowerPC, ARM等。由于其良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据重要的一席之地。
VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。在我国的交换通信设备上,VxWorks几乎成了嵌入式实时操作系统的标准。
(2). Nucleus
Nucleus Plus是美国源代码操作系统商ATI(Accelerated Technology Inc.)公司推出的新一代嵌入式操作系统,属于抢占式实时多任务操作系统内核,其95%的代码使用ANSI C编写,非常便于移植于各种处理器家族。从实现的角度来讲,不同于传统嵌入式开发,Nucleus Plus是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目标板上或烧到ROM/FLASH ROM 中去执行。
Nucleus Plus内核在典型的CISC体系结构上占据大约20k空间,而在典型的RISC体系结构上占据空间为40k左右,其内核数据结构占据1.5k字节的空间。Nucleus Plus以其实时响应、抢占、多任务以及源代码开放特性获得在通讯、国防、工业控制、航空/航天、铁路、网络、POS、自动化控制、智能家电等领域的广泛应用。
(3). QNX
QNX 实时操作系统是由位于加拿大渥太华的QNX软件系统公司开发的一个针对嵌入式应用的,可以使用在严实时应用中的高可靠性微内核实时操作系统。能够运行在x86, PowerPC, ARM, XScale, MIPS, SH-4等一系列硬件平台上。
它由微内核和一组共操作的进程组成,具有高度的伸缩性,可灵活地剪裁,最小配置只占用几十KB内存。因此,可以广泛地嵌入到智能机器、智能仪器仪表、机顶盒、通讯设备、PDA等应用中去。2005年7月,QNX被应用到NASA重返太空飞行任务中的Neptec激光摄像机系统中。
(4). Windows CE
Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。
Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion),E代表电子产品(Electronics)。
Windows CE是所有源代码全部由微软自行开发的嵌入式操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用如 Visual Basic、Visual C++等工具,使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
(5). Linux
Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短时间内已发展成为一个功能强大、设计完善的操作系统,其性能在很多方面甚至超过了很多商用的Unix系统。伴随网络技术进步而发展起来的Linux OS已成为Windows 系统的强劲对手。
Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,各种嵌入式Linux OS迅速发展。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。
(6). IOS/安卓/鸿蒙
(7). Android
Android一词的本义指“机器人”,Android是Google在2007年11月5日公布的基于Linux平台的开源智能手机操作系统名称。该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。
- 良好的平台开放性:
Android手机系统最震撼人心之处在于它的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统至今免费向开发人员提供。 - 实现个性化应用设定:
Android系统对所有应用程序一视同仁,不会区分手机的核心应用程序和第三方应用程序。它们可以平等的享有手机性能,向用户提供广泛的应用和服务。用户可以随心所欲的设定、替换手机屏幕上的各种应用程序、小插件等,打造出完全符合自己使用需求的个性化手机。 - 与Google应用的无缝结合:
由于Android系统是由Google主导研发,因此Android操作系统手机可以无缝结合优秀的Google互联网服务,如大家熟知的Google Map、Google Search、Gmail等,在手机上同样可以方便的使用。