了解硬件体系 开发嵌入式Linux
扫描二维码
随时随地手机看文章
与单纯的硬件开发或软件开发有所不同,嵌入式Linux系统在研发过程中通常都要涉及到硬件和软件两个环节。许多计算机软件开发人员在转向嵌入式系统Linux开发的过程中显得力不从心,一个原因就在于缺乏对嵌入式系统的硬件体系结构的了解,而偏偏嵌入式系统开发又对硬件的要求非常高。
从本质上说,嵌入式Linux系统也属于计算机系统的范畴,因此不可避免地要由三大基本部分组成:中央处理器(CPU)、存储设备和I/O设备。此外,它还需要负责在三大部分之间进行通信的设备。本文从这几个方面入手介绍嵌入式Linux系统的硬件体系结构。
中央处理器
嵌入式系统的核心部件是各种类型的嵌入式中央处理器。根据所用指令集的不同,嵌入式中央处理器可以分成两种主要的体系结构,一种是复杂指令集(Complex Instruction Set Computer,CISC)系统,另一种则是精简指令集(Reduced Instruction Set Computer,RISC)系统。
在20世纪60年代,CISC结构曾是嵌入式中央处理器的设计主流。但是随着时间的推移,这种设计思想已经越来越难以满足实际应用的需要。于是有人开始提出了一种全新的处理器体系结构——RISC。目前使用的嵌入式中央处理器大多采用RISC结构。
现在几乎所有的半导体制造商都有能力生产嵌入式中央处理器,根据所用技术的不同,可以将嵌入式中央处理器分成如下四种类型:
◆ 嵌入式微处理器(Embedded Micro Processor Unit,EMPU)
◆ 嵌入式微控制器(Embedded Micro-controller Unit,EMU)
◆ 嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)
◆ 嵌入式片上系统(Embedded System on Chip,ESoC)
微处理器
现在的通用计算机都是以微处理器为中心。从严格意义上说,“微处器”指的是芯片内部只包括CPU本身,而不包括存储器和I/O接口等其它功能模块,采用的是冯·诺依曼体系结构。在一些高端的嵌入式应用中,通过将微处理器装配在专门设计的电路板上,并配以必要的外围接口电路和扩展电路,可以快速构造出一个实用的嵌入式系统。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上与通用微处理器基本相同,但在工作电压、工作温度、抗干扰性和可靠性等方面都做了增强。一般说来,采用微处理器来构建嵌入式系统具有良好的实时性能、支持多任务处理、便于存储区保护、提供处理器扩展、丰富的调试功能和完善的电源管理等优势。
微控制器
微处理器芯片中不包括I/O接口电路,也没有其它外围功能模块,功能相对单一。因此,嵌入式系统的设计人员和硬件厂商开始倾向于开发另一种类型的嵌入式处理器。这种处理器不用像通用处理器那样具有强大而齐全的功能,但要力求做到小巧,而且省电。这就是嵌入式微控制器,通常也称之为单片机。
微控制器通常以某个微处理器内核为基础,芯片内部集成ROM、RAM、FLASH、总线逻辑和I/O端口等各种必要的功能模块,以适应特定场合的需要。与微处理器相比,微控制器最大的优点就是集成化,使体积、功耗和成本得到了有效的控制,并且可靠性大大提高。微控制器是目前嵌入式系统的主流产品,在构建嵌入式系统时,能节省系统开支、降低出错概率和减少高频干扰。
在开发嵌入式系统时,经常会遇到结构简单且数量众多的外围设备。这些设备有的需要CPU为之提供控制手段,有的则需要被CPU当作输入信号,虽然功能各不相同,但通常都只需要表示开和关两个基本状态就足够了。因为无论是传统的串口还是并口,对这些设备的处理都显得力不从心,所以在微控制器芯片上大多会提供一个通用可编程I/O接口(GPIO),这是微控制器有别于微处理器的一个显著特征。
DSP处理器
数字信号处理器(Digital Signal Processor,DSP)是专门为数字信号处理而设计的处理器。它现在已经被广泛地应用在各种消费电子类产品当中,比如手机就运用了DSP技术对数字语音信号进行编码和译码。DSP处理器通常是针对特定应用而开发的,其优点是能够在短时间内对特定的数字信号进行大量的处理,具有很强的实时运行功能。PC机上使用的通用处理器(如Intel的80x86)在工作时,大约有百分之九十的时间都是在进行加法运算,乘法运算所占的比重相对较少。因此,通用处理器一般不会在提高乘法运算能力上下很大功夫,而DSP处理器的出现正好弥补了这一缺陷。
为了加快数字信号的处理速度,DSP处理器在设计时加入了许多特殊结构,以增强它的并行处理能力。通用处理器在设计时遵循的是便宜和简单的原则,一般面向普通用户。因而它采用的是冯·诺依曼体系结构,指令和数据处于同一地址空间。当处理器要执行某条指令时,必须先将指令从内存中读出来进行译码,然后再将运算数据从内存中取出来,之后才能执行真正的运算,耗费在运算之外的时间非常多。DSP处理器则拥有一种称为哈佛的总线结构。这种结构使用不同的指令和运算数据总线,可以同时从内存中读出指令和数据进行运算,从而减少了运算所耗费的时间。
嵌入式DSP处理器对系统结构和指令都进行了特殊设计,使其能够在资源受限的情况下执行某种DSP算法。由于编译效率和指令执行速度都很高,因此,像数字滤波、快速傅立叶变换和离散余弦变换等DSP算法正在被大量引入到嵌入式领域中来。目前,DSP处理器主要应用在嵌入式系统的智能化领域,如生物信息识别终端、实时语音处理和虚拟现实等。这类智能化算法一般运算量较大,特别是乘法运算和向量运算非常多,而这恰好是DSP处理器的优势所在。
SoC
随着EDI的推广和VLSI设计的普及,出现了片上系统(System on Chip,SoC)。SoC顾名思义指的是集成在CPU芯片上的部件比较多,足以独立构成一个系统。实际上它与微控制器的区别并不十分严格,因此有时会将同一块芯片既称为微控制器,又称为SoC。
在嵌入式系统中使用SoC处理器具有如下一些显著的优点:
◆ 降低内部工作电压,减少芯片功耗;
◆ 减少芯片引脚数目,简化制造过程;
◆ 简化外围驱动单元,优化处理速度;
◆ 优化内部电路结构,降低系统噪声。
存储设备
存储设备的主要作用是保存操作系统和应用程序的映像,以及系统在运行时所需的数据。在嵌入式系统中使用的存储设备可以分为内部存储器和外部存储器两类。内部存储器和处理器处于同一块芯片上,CPU不必通过I/O电路就可以直接访问它们,处理速度非常快,但造价也异常昂贵。外部存储器是用来存储程序或数据的独立设备,访问时需要花费比内部存储器更多的时间,并且需要在处理器周围搭建额外的寻址电路。
无论存储器位于处理器的内部还是外部,都可以进一步划分成如下几种类型:
◆ 随机存取存储器(Random Access Memory,RAM);
◆ 只读存储器(Read Only Memory,ROM);
◆ 混合存储器(Hybrid Memory)。
RAM
RAM是一种可以被随机访问的存储设备。RAM有时也被称为读写存储器,这是因为对这种存储设备可以同时执行读操作和写操作。根据工作原理的不同,RAM可以分为两种类型,动态RAM(DRAM,Dynamic RAM)和静态RAM(SRAM,Static RAM)。
RAM既可以位于处理器内部,也可以位于处理器外部。它与处理器的连线一般包括地址总线、数据总线、片选信号和读/写控制信号等。通用计算机一般采用DRAM,而嵌入式系统则多少会采用一些SRAM,或者完全采用SRAM。
ROM
嵌入式系统一般都不采用磁盘,其操作系统和应用程序的映像,以及系统运行时所需的数据,都必须保存在某种断电以后数据不会丢失的存储设备中,即通常所说的不挥发存储器。与通用计算机相比,嵌入式系统往往配备更多的不挥发存储器。现在基于半导体技术的不挥发存储器大多是只读的或接近只读的,一般泛称为ROM,常见的有掩膜式ROM、可编程ROM和可擦除ROM。
ROM的特点是即使关闭电源,其中的内容仍然能够保存不变。因此,它通常被嵌入式系统用来保存系统所需的程序代码和所有永久性数据。
混合存储器
在嵌入式系统中使用的混合存储器主要有以下几类:
◆ EEPROM 与EPROM类似,不同点在于它是通过电信号进行擦除的。
◆ Flash 也称为闪存,其本质上是一种EEPROM,但能够在正常的工作电压和电流下进行擦除和写入操作。因此,它可以在目标系统中在线地改变其内容
◆ NVRAM 也称为非易失性RAM,可以看成是带有后备电池的SRAM,即使电源关闭后它的内容也可以保持不变。
在现有的技术条件下,闪存对嵌入式系统来讲是理想的、不挥发存储器。
I/O设备
一般来说,嵌入式系统配备的显示设备大多是尺寸较小的LCD,按工作原理不同可以分为TFT和DSTN两种。
◆ TFT 由薄膜晶体管(Thin Film Transistor)陈列构成,优点是亮度大、色彩鲜艳、可视角度大;缺点是价格高、耗电大,并且容易发生因个别晶体管损坏而在图像上形成斑点的现象。
◆ DSTN 利用液晶在不同电场下能够呈现不同的光学特性,在显示屏上用水平和垂直放置的导线做成网格,并加以电信号进行扫描,就可以依次在每个交点上形成并保持一定的电场,从而使该点上的液晶在反射或透射光线时能够显示出不同的颜色。
目前,在嵌入式系统中广泛使用的LCD有主动式和被动式的区别。被动式LCD显示器的电压控制部件设计在显示面板的四周,反应时间长且光线输出量少,因而可视角度比较小,显示动态图像时的效果比较差,并且容易产生残影现象。主动式LCD显示器则通过在每个液晶单元内放置电压控制单元,在缩短反应时间的同时增加了光线的输出量,从而可以提供较好的动态显示效果。由于主动式LCD显示器的成本较高,因此目前只在一些高端的嵌入式设备中采用,如PDA和信息家电等。一般的嵌入式系统基于成本和实用性方面的考虑,大多采用被动式LCD显示器,如普通的移动电话等。
配备了LCD显示器的嵌入式设备往往还同时配有透明的触摸屏,通常触摸屏与液晶显示器是叠放在一起的。这样用户可以用触笔或手指在屏幕上定位,从而取代鼠标的作用,或者直接进行手写输入,以取代键盘的作用。
通信设备
Firewire
IEEE 1394也称为Firewire,其传输带宽可以达到400Mb/s,最适合进行多媒体数据的传输,可以运用在多媒体实时播放、剪辑或者传输的场合。在需要进行快速且大量数据传输的嵌入式设备中,IEEE 1394是一个经常被用到的数据传输接口。
IEEE 1394在进行多媒体数据传输时的体系结构最上层为应用层(Application),以下依次为传输层(Transaction)、链路层(Link)和物理层(Physical)。多媒体数据在由应用层传送到链路层后,将遵循IEEE 1394标准进行封包,然后再经由链路层和物理层把数据传送出去。数据接收的另一端会接收打包数据,再经过拆包将数据还原成原来的多媒体数据。
USB
USB接口原本是用于PC机的一种输入/输出接口,具有热插拔特性。当拥有USB接口的外围设备在与PC机连接时,操作系统会自动侦测到这一设备,并且能够在不重新启动计算机的前提下完成软硬件的配置。
因为USB 1.1规范中定义的数据传输速度可以高达12Mbps,所以使用USB接口的PDA在与PC进行数据同步时的速度要比使用RS-232高出许多。而最新的USB 2.0规范中,数据传输的最高速度可以达到480Mbps,用于进行大量且高速的数据传输。
蓝牙
蓝牙(Bluetooth)是一个用于无线通信的标准协议。它可以给嵌入式系统提供无线数据传输功能,其通信频率处于2.4GHz以内,即使在无线噪声很强的环境下仍然能够保持很高的准确性。用于无线通信的蓝牙模块主要由三个部分组成,无线传输收发单元、基带处理单元和数据传输接口。
当无线信号由蓝牙的无线传输收发单元接收到之后,会被送到基带处理单元进行信号处理。处理后的数字信号再通过数据传输接口,传送到嵌入式系统的处理器之中作进一步的处理。
红外线
嵌入式系统中的红外收发模块主要由三个部分组成:红外线发光二极管、硅管光检测器和控制电路。红外线发光二级管是用于发射红外线的装置。它能够发射波长在0.85微米到0.90微米之间的红外光波。硅管光检测器是用于接收红外线的装置。由它接收到的信号将被传到控制电路当中,然后再送给嵌入式系统的处理器作进一步的处理。
红外线收发模块也有相应的标准。最早出现的是1994年的IrDA1.0,采用波长在0.85微米到0.90微米的红外线进行传输,传输速度为115.2Kbps,距离大约在1米左右,接收角度在30度之内。而在1999年提出的VFIR标准中,传输速度已经可以高达16Mbps,有效距离为8米。
802.11
802.11是IEEE在1997年提出的一个无线网络通信标准,其目的是使各个厂商的无线网络设备可以互相兼容,从而提供一个稳定的无线传输环境。到了1999年,IEEE又先后提出了IEEE 802.11a和IEEE 802.11b两个无线传输协议,其中802.11a使用5.8GHz的频带进行无线传输,而802.11b则使用2.4GHz的频带进行无线传输。基于802.11b协议的无线网络的最高速度是11Mbps,比常用的以太网稍微快一点,现在已经有许多嵌入式系统开始使用基于802.11b协议的设备,开发基于无线网络的各种应用。最新的协议是802.11g。
本文讨论了嵌入式Linux系统的硬件体系结构,从中央处理器、存储设备、I/O设备和通信设备几个方面分别介绍了目前在嵌入式开发中经常遇到的硬件设备。了解这些基本的硬件知识对今后深入进行嵌入式Linux系统的开发将会很有帮助。(T111)