嵌入式系统一般都由软件和硬件两个部分组成,其中嵌入式处理器 、 存储器和外部设备构成整个系统的硬件基础。
嵌入式系统的软件部分可以分为3个层次:系统软件 、 应用支撑软件和应用软件。其中,系统软件和支撑软件是基础,应用软件则是最能体现整个嵌入式系统的特点和功能的部分。
1 硬件架构
图 1 是一个嵌入式系统的基本硬件架构。微处理器是整个嵌入式系统的核心,负责控制系统的执行。外部设备是嵌入式系统同外界交互的通道,常见的外部设备有 Flash 存储器 、 键盘 、 输入笔 、 触摸屏 、 液晶显示器等输入 / 输出设备,在很多嵌入式系统中还有与系统用途紧密相关的各种专用外设。
嵌入式系统中经常使用的存储器有3种类型:RAM 、 ROM( Read-Only Memory ,只读内存)和混合存储器。系统的存储器用于存放系统的程序代码 、 数据和系统运行的结果。
1.1 嵌入式处理器
嵌入式系统的核心部件是各种类型的嵌入式处理器。据不完全统计,目前世界上嵌入式处理器的种类已经超过了 1000 种,比较流行的也有 30 几个系列。根据目前的使用情况,嵌入式处理器可以分为如下几类:
(1)嵌入式微处理器
嵌入式微处理器( Embedded Micro Processing Unit , EMPU )是由通用计算机中的 CPU 演变而来。嵌入式微处理器在功能上跟普通的微处理器基本一致,但是它具有体积小 、 功耗低 、 质量轻 、 成本低及可靠性高的优点。通常,嵌入式微处理器和ROM 、 RAM 、 总线接口及外设接口等部件安装在一块电路板上,称为单板计算机。目前,主要的嵌入式微处理器有AM186/88 、 386EX 、 SC-400 、 POWERPC 、 MIPS及 ARM 等系列。
(2)嵌入式微控制器
嵌入式微控制器( Embedded Micro Controlling Unit , EMCU )又称为单片机,就是整个计算机系统都集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成有 ROM / EPROM / E2PROM 、 RAM 、 总线 、 总线逻辑 、 定时器 / 计数器 、 WatchDog(监督定时器) 、 并口 / 串口 、 数模 / 模数转换器 、 闪存等必要外设。
与嵌入式微处理器相比,嵌入式微控制器的最大特点是单片化,因而体积更小,功耗和成本更低,可靠性更高。
目前,嵌入式微控制器的品种和数量最多,约占嵌入式系统市场份额的 70%。 比较有代表性的通用系列有: 8051 系列 、 MCS-96 / 196 / 296 、 C166 / 167 、 MC68HC05 / 11 / 12 / 16等。还有许多半通用系列,如支持 UBS 接口的MCU8XC930 / 931 、 C540 、 C541以及用于支持I2C 、
(3)嵌入式数字信号处理器
嵌入式数字信号处理器( Embedded Digital Signal Processor , E DSP )是一种专门用于信号处理的处理器, DSP 芯片内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的 DSP 指令,可以用来快速实现各种数字信号的处理算法。目前,数字信号处理器在嵌入式系统中使用非常广泛,如数字滤波 、 快速傅立叶变换及频谱分析等。同时,嵌入式系统的智能化也是推动嵌入式 DSP 发展的一个动力,如各种带有智能逻辑的消费类产品 、 生物信息识别终端 、 带有加密 / 解密算法的设备 、 实时语音压缩和解压系统以及虚拟现实显示装置等,这类系统上的智能化算法一般运算量都比较大,这恰好可以充分发挥数字信号处理器的长处。
(4)嵌入式片上系统
嵌入式片上系统( Embedded System On Chip )是一种在一块芯片上集成很多功能模块的复杂系统,如微处理器内核 、RAM、USB、IEEE1394、Bluetooth 等。以往这些单元按照各自的功能做成一个个独立的芯片,并通过电路板与其他单元组成一个系统。现在将这些本来在电路板上的单元都集成到一个芯片中,构成一个嵌入式片上系统,从而大幅度缩小了系统的体积,降低了系统的复杂度,增强了系统的可靠性。在大量生产时,生产成本也远远低于单元部件组成的电路板系统。
嵌入式片上系统可以分为通用片上系统和专用片上系统两类。
- 通用类的主要产品有 Siemens 的 Trocore、Motorola 的 M- C ore、 某些 ARM 系列的器件等。
- 专用类的嵌入式片上系统一般是针对某一个或某些系统而设计的。具有代表性的产品有 Philips 的 Smart XA ,它将 XA 单片机的内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一个芯片上,形成一个可加载 Java 或 C 的专用嵌入式片上系统,可用于网络安全等方面。
1.2 总线
总线是连接计算机系统内部各个部件的共享高速通路,自 20 世纪 70 年代以来,工业界相继出现了多种总线标准,很多总线技术在嵌入式系统领域得到了广泛的应用。
嵌入式系统的总线一般分为片内总线和片外总线。片内总线是指嵌入式微处理器内的 CPU 与片内其他部件连接的总线;片外总线是指总线控制器集成在微处理器内部或外部芯片上的用于连接外部设备的总线。
(1)AMBA 总线
AMBA ( Advanced Micro controller Bus Archiecture ,先进微控制器总线架构)是 ARM 公司研发的一种总线规范,该总线规范独立于处理器和制造工艺技术,增强了各种应用中外设和系统单元的可重用性,它提供将 RISC 处理器与 IP 核集成的机制。该规范定义了三种总线:
- 先进性能总线( Advanced High-performance Bus , AHB )。 AHB 由主模块 、 从模块和基础结构三部分组成,整个 AHB 总线上的传输都由主模块发起,从模块响应。基础结构包括:仲裁器 、 主从模块多路选择器 、 译码器 、 名义主模块 、 名义从模块等。 AHB 系统具有时钟边沿触发 、 无三态 、 分帧传输等特性。 AHB 也支持复杂的事务处理,如突发传送 、 主单元重试 、 流水线操作以及分批事务处理等。
- 先进系统总线( Advanced System Bus , ASB )。 ASB 用于高性能模块的互连,支持突发数据传输模式,较老的总线格式,逐步由 AHB 总线所替代。
- 先进外设总线( Advanced Peripheral Bus , APB )。 APB 主要用于连接低带宽外围设备,其总线结构只有唯一的主模块,即 APB 桥,它不需要仲裁器以及响应 / 确认信号,以最低功耗为原则进行设计,具有总是两周期传输 、 无等待周期和响应信号的特点。
(2)PCI 总线
外围构件互连总线( Peripheral Component Interconnect , PCI )规范先后经历了 1.0 版本 、 2.0 版本和 2.1 版本等一系列规范。 PCI 总线是地址 、 数据复用的高性能 32 位与 64 位总线,是微处理器与外围设备互连的机构,它规定了互连协议 、 电气 、 机械以及配置空间的标准。 PCI 是不依赖于具体处理器的局部总线,从结构上看, PCI 是在微处理器和原来的系统总线之间加入的一级总线,由一个桥接电路负责管理,实现上下接口和协调数据传送,管理器提供了信号缓冲,使多种外设能够在高时钟频率下保持高性能。
PCI 总线支持主控技术,允许智能设备在需要时获得总线控制权,以加速数据传输。为了将 PCI 总线规范应用到工业控制计算机中, 1995 年,推出了Compact PCI 规范,并相继推出了 PCI - PCI Bridge规范 、 Computer Telephony TDM规范和用户定义 I/O 引脚分配规范等。CPCI 总线规范有机地结合了 PCI 总线电气规范的高性能和欧洲卡结构的高可靠。目前,CPCI 总线已经在嵌入式系统 、 工业控制计算机等高端系统中得到了广泛的应用,并逐步替代了 VME 和 MultiBUS 总线。
(3)Avalon 总线
Avalon 总线是 Altera 公司设计的用于可编程片上系统( Systemon Programmable Chip , SOPC )中,连接片上处理器和其他 IP 模块的一种简单总线协议,规定了主部件和从部件之间进行连接的端口和通信时序。
作为总结,下表对比了几种嵌入式总线技术的主要特点。
总线类型 | 特点 |
---|---|
AMBA 总线 | 带宽高;采用地址与数据分离的流水线操作;支持定长或不定长突发传送;兼容性好;支持多个总线主设备 |
PCI 总线 | 速度快;支持线性突发传送;支持即插即用;兼容性好;可靠性高;可扩展性好 |
Avalon 总线 | 支持字节 、 半字和字传输;同步接口;独立的地址线 、 数据线和控制线;设备内嵌译码部件;支持多个总线主设备;自动生成仲裁机制;多个主设可同时操作使用一条总线;可自动调整总线宽度,以适应尺寸不匹配的数据 |
1.3 存储器
嵌入式系统的存储器主要包括主存和外存,图 2 所示为嵌入式系统的存储结构。
1.3.1 存储介质
(1)存储介质基本分类
RAM :随机访问存储器 (Random Access Memory) ,易失性。是与 CPU 直接交换数据的内部存储器,它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时 RAM 不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘) 。
ROM :只读存储器 (Read Only Memory) ,非易失性。一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地 、 方便地加以改写 。 ROM 所存数据稳定,断电后所存数据也不会改变。计算机中的 ROM 主要是用来存储一些系统信息,或者启动程序 BIOS 程序,这些都是非常重要的,只可以读一般不能修改,断电也不会消失。
RAM 和 ROM 相比,两者的最大区别是 RAM 在断电以后保存在上面的数据会自动消失,而 ROM 不会自动消失,可以长时间断电保存。
(2)随机访问存储器:RAM
随机访问存储器分为两类:静态的和动态的。静态的RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在芯片下。DRAM用来作为图形系统的帧缓冲区。
-
SRAM:SRAM存储器单元具有双稳态特性,只要有电,它就会永远的保持它的值(有点类似ROM易失性)。即使有干扰来扰乱电压,当干扰消除时,电路就会恢复到稳定值。
-
DRAM:动态RAM。
-
SDRAM:同步DRAM。
-
DDR SDRAM:双倍数据速率同步 DRAM(Double Data-Rate Synchronous DRAM)
(3)只读存储器:ROM
计算机存储器在其上数据已被预先记录。一旦将数据写入ROM 芯片,就无法将其删除,只能读取。与主存储器(RAM)不同,即使计算机关闭,ROM也会保留其内容。ROM被称为非易失性,现在有很多非易失性存储器。由于历史原因,虽然ROM中有的类型可以读也可以写,但是整体上都被称为只读存储器(Read Only Memory)。ROM是以它们能够被重新编程(写)的次数和对它们进行重编程所用的机制来区分的。
-
PROM(Programmable ROM):可编程ROM,只能被编程一次。
-
EPROM(Erasable Programmable ROM,EPROM):可擦写可编程ROM,擦写可达1000次。
-
EEPROM(Electrically Erasable Programmable ROM,电子可擦除EPROM)
-
闪存(flash memory):基于EEPROM,它已经成为一种重要的存储技术。固态硬盘(SSD)U盘等就是一种基于闪存的存储器
-
nor flash :NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
-
nand falsh:NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flash以外,还作上了一块小的NOR Flash来运行启动代码。
1.3.2 存储器类型
嵌入式系统的存储器主要分为三种:高速缓存( Cache ) 、 片内主存和片外主存以及外存。
(1)高速缓存
高速缓存是存放当前使用最多的程序代码和数据的,即主存中部分内容的副本,在嵌入式系统系统中, Cache 全部集成在嵌入式微处理器内部,可以分为:数据 Cache 、指令 Cache 和混合 Cache 。
(2)主存
主存是处理器能够直接访问的存储器,用来存放系统和用户的程序和数据,系统上电后,主存中的代码直接运行,主存的主要特点是速度快,一般采用 ROM、EPROM、NOR flash、SRAM 和 DRAM 等存储器件。
(3)外存
外部存储器是不与运算器直接联系的后备存储器,用来存放不常用的或暂不使用的信息,外存一般以非易失性存储器构成,数据能够持久保存,即使掉电,也不消失 。Flash 存储器是在 EPROM 和E EPROM 的基础上发展起来的非易失性存储器,具有结构简单 、 可靠性高 、 体积小 、 质量轻 、 功耗低 、 成本低等优点,是最常用的一种外存类型。
1.4 I/O 设备与接口
因其应用领域的不同,嵌入式系统的输入设备多种多样,比较常见的有键盘 、 鼠标 、 触摸屏 、 手柄 、 声控开关等。
通常,根据输入设备实现机理的不同,嵌入式系统的设备可以分为:机械式 、 触控式以及声光式三类。
嵌入式系统的输出设备除了通用计算机常用的显示器 、 打印机 、 绘图仪等外,还包括 LED 指示灯 、 LCD屏幕 、 扬声器等媒体。
嵌入式系统与外部设备或其他的计算机系统进行通信时,需经接口适配电路,进行工作速度 、 数据格式 、 电平等匹配与转换,嵌入式系统应用的接口形式是多种多样的。
嵌入式系统中接口电路的设计需要首先考虑的是电平匹配问题,嵌入式系统微处理器所提供与接收信号的电平,必须与所连接的设备的电平相匹配,否则将导致电路损坏或逻辑判定错误。其次,还要考虑驱动能力和干扰问题等因素。
当前,在嵌入式系统中广泛应用的接口主要有: RS232- 串行接口 、 并行接口 、 USB接口 、 IEEE-1394接口以及 RJ-45 接口等,此外,以蓝牙为代表的无线接口在嵌入式系统中的应用也日趋广泛。
(1)RS-232 接口
RS-232 接口是美国电子工业协会推广的一种串行通信总线标准,是数据通信设备和数据终端设备间传输数据的接口总线, RS-232 -C标准规定其最高速率为 20kbps ,在低码元畸变的情况下,最大传输距离是 15 米,通过使用增强器,其传输距离已经延长到 1000 米左右。
(2)USB 接口
USB ( Universal Serial Bus ,通用串行总线)是 1995 年由康柏等几大厂商共同制定的一种支持即插即用的外设接口标准,它支持 USB 外部设备到主机外部总线的连接。在 USB 系统中,必须有一个 USB 主控制器, USB 设备通过四根电缆与 USB 主控制器直接或间接相连, USB 的规范由最初的 1.0 版本发展到了 1.1 版本,以至当前主流的高速 2.0 版本,最高速率可到 480Mbps。
(3)1394 接口
IEEE 1394 即火线( FireWire )最初是由 Apple 公司研制的, 1995 年 IEEE 协会以 FireWire 为蓝本制定了这个串行接口标准,其电缆接口为6根电缆组成,包括一堆电源线和两对双绞信号线。
IEEE 1394 协议定义了三种传输速率: 98.304Mbps、196.608Mbps 和 392.216Mbps ,分别称之为 S100、S200 和 S400。 为了保证数据传输率,线缆的长度一般不超过4.5m。
IEEE 1394 标准通过所有连接设备建立起一种对等网络,不需要主控节点来控制数据流,即跟 USB 技术相比,最大的区别是 IEEE 1394 不需要主控制器,不同的外设之间可以直接传递信息,此外,采用该技术,两台计算机可以共享同一个外部设备。
IEEE 1394 同时支持同步和异步传输两种模式。在异步传输模式下,信息的传递可以被中断,在同步模式下,数据将不受任何中断和干扰下实现连续传输。采用异步传输模式时, IEEE 1394 会根据不同的设备实际需要分配相应的带宽。同时, IEEE 1394 设备也支持热插拔和即插即用。
(4) 并行接口
并行接口,指采用并行传输方式来传输数据的接口标准。从最简单的一个并行数据寄存器或专用接口集成电路芯片如8255、6820等,一直至较复杂的SCSI或IDE并行接口,种类有数十种。
一个并行接口的接口特性可以从两个方面加以描述:
- 以并行方式传输的数据通道的宽度,也称接口传输的位数;
- 用于协调并行数据传输的额外接口控制线或称交互信号的特性。
(5)RJ-45 接口
RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。
(6)蓝牙接口
蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。
2 软件架构
随着嵌入式技术的发展,特别是在后 PC 时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系,如图 3 所示。
这个体系自底向上由三部分组成:嵌入式操作系统、应用支撑软件和应用软件。
(1)操作系统
嵌入式操作系统由操作系统内核 、 应用程序接口 、 设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度 、 进程间的通信 、 内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
(2)应用支撑软件
嵌入式系统中的应用支撑软件由窗口系统 、 网络系统 、 数据库管理系统及 Java 虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。应用支撑软件一般用于一些浅度嵌入的系统中,如智能手机 、 个人数字助理等。
(3)应用软件
嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的,一个嵌入式系统可以没有支撑软件,甚至可以没有操作系统,但不可以没有应用软件,否则它就不可能成为一个系统。从范围上讲,嵌入式系统的应用软件涉及工业控制 、 家电 、 商业 、 通信等诸多领域。从跟用户的交互方式上讲,有跟桌面系统类似的软件,也有嵌入程度很深 、 使用户感觉不到其存在的应用软件。从运行环境上讲,有在操作系统和支撑软件上运行的软件,也有直接在硬件上运行的应用软件。
来源:oschina
链接:https://my.oschina.net/u/4602548/blog/4462599