了解硬件體系 開發(fā)嵌入式Linux
與單純的硬件開發(fā)或軟件開發(fā)有所不同,嵌入式Linux系統(tǒng)在研發(fā)過程中通常都要涉及到硬件和軟件兩個(gè)環(huán)節(jié)。許多計(jì)算機(jī)軟件開發(fā)人員在轉(zhuǎn)向嵌入式系統(tǒng)Linux開發(fā)的過程中顯得力不從心,一個(gè)原因就在于缺乏對嵌入式系統(tǒng)的硬件體系結(jié)構(gòu)的了解,而偏偏嵌入式系統(tǒng)開發(fā)又對硬件的要求非常高。
本文引用地址:http://butianyuan.cn/article/201808/387868.htm從本質(zhì)上說,嵌入式Linux系統(tǒng)也屬于計(jì)算機(jī)系統(tǒng)的范疇,因此不可避免地要由三大基本部分組成:中央處理器(CPU)、存儲(chǔ)設(shè)備和I/O設(shè)備。此外,它還需要負(fù)責(zé)在三大部分之間進(jìn)行通信的設(shè)備。本文從這幾個(gè)方面入手介紹嵌入式Linux系統(tǒng)的硬件體系結(jié)構(gòu)。
中央處理器
嵌入式系統(tǒng)的核心部件是各種類型的嵌入式中央處理器。根據(jù)所用指令集的不同,嵌入式中央處理器可以分成兩種主要的體系結(jié)構(gòu),一種是復(fù)雜指令集(Complex Instruction Set Computer,CISC)系統(tǒng),另一種則是精簡指令集(Reduced Instruction Set Computer,RISC)系統(tǒng)。
在20世紀(jì)60年代,CISC結(jié)構(gòu)曾是嵌入式中央處理器的設(shè)計(jì)主流。但是隨著時(shí)間的推移,這種設(shè)計(jì)思想已經(jīng)越來越難以滿足實(shí)際應(yīng)用的需要。于是有人開始提出了一種全新的處理器體系結(jié)構(gòu)——RISC。目前使用的嵌入式中央處理器大多采用RISC結(jié)構(gòu)。
現(xiàn)在幾乎所有的半導(dǎo)體制造商都有能力生產(chǎn)嵌入式中央處理器,根據(jù)所用技術(shù)的不同,可以將嵌入式中央處理器分成如下四種類型:
嵌入式微處理器(Embedded Micro Processor Unit,EMPU)
嵌入式微控制器(Embedded Micro-controller Unit,EMU)
嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)
嵌入式片上系統(tǒng)(Embedded System on Chip,ESoC)
微處理器
現(xiàn)在的通用計(jì)算機(jī)都是以微處理器為中心。從嚴(yán)格意義上說,“微處器”指的是芯片內(nèi)部只包括CPU本身,而不包括存儲(chǔ)器和I/O接口等其它功能模塊,采用的是馮·諾依曼體系結(jié)構(gòu)。在一些高端的嵌入式應(yīng)用中,通過將微處理器裝配在專門設(shè)計(jì)的電路板上,并配以必要的外圍接口電路和擴(kuò)展電路,可以快速構(gòu)造出一個(gè)實(shí)用的嵌入式系統(tǒng)。
為了滿足嵌入式應(yīng)用的特殊要求,嵌入式微處理器雖然在功能上與通用微處理器基本相同,但在工作電壓、工作溫度、抗干擾性和可靠性等方面都做了增強(qiáng)。一般說來,采用微處理器來構(gòu)建嵌入式系統(tǒng)具有良好的實(shí)時(shí)性能、支持多任務(wù)處理、便于存儲(chǔ)區(qū)保護(hù)、提供處理器擴(kuò)展、豐富的調(diào)試功能和完善的電源管理等優(yōu)勢。
微控制器
微處理器芯片中不包括I/O接口電路,也沒有其它外圍功能模塊,功能相對單一。因此,嵌入式系統(tǒng)的設(shè)計(jì)人員和硬件廠商開始傾向于開發(fā)另一種類型的嵌入式處理器。這種處理器不用像通用處理器那樣具有強(qiáng)大而齊全的功能,但要力求做到小巧,而且省電。這就是嵌入式微控制器,通常也稱之為單片機(jī)。
微控制器通常以某個(gè)微處理器內(nèi)核為基礎(chǔ),芯片內(nèi)部集成ROM、RAM、FLASH、總線邏輯和I/O端口等各種必要的功能模塊,以適應(yīng)特定場合的需要。與微處理器相比,微控制器最大的優(yōu)點(diǎn)就是集成化,使體積、功耗和成本得到了有效的控制,并且可靠性大大提高。微控制器是目前嵌入式系統(tǒng)的主流產(chǎn)品,在構(gòu)建嵌入式系統(tǒng)時(shí),能節(jié)省系統(tǒng)開支、降低出錯(cuò)概率和減少高頻干擾。
在開發(fā)嵌入式系統(tǒng)時(shí),經(jīng)常會(huì)遇到結(jié)構(gòu)簡單且數(shù)量眾多的外圍設(shè)備。這些設(shè)備有的需要CPU為之提供控制手段,有的則需要被CPU當(dāng)作輸入信號(hào),雖然功能各不相同,但通常都只需要表示開和關(guān)兩個(gè)基本狀態(tài)就足夠了。因?yàn)闊o論是傳統(tǒng)的串口還是并口,對這些設(shè)備的處理都顯得力不從心,所以在微控制器芯片上大多會(huì)提供一個(gè)通用可編程I/O接口(GPIO),這是微控制器有別于微處理器的一個(gè)顯著特征。
DSP處理器
數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)是專門為數(shù)字信號(hào)處理而設(shè)計(jì)的處理器。它現(xiàn)在已經(jīng)被廣泛地應(yīng)用在各種消費(fèi)電子類產(chǎn)品當(dāng)中,比如手機(jī)就運(yùn)用了DSP技術(shù)對數(shù)字語音信號(hào)進(jìn)行編碼和譯碼。DSP處理器通常是針對特定應(yīng)用而開發(fā)的,其優(yōu)點(diǎn)是能夠在短時(shí)間內(nèi)對特定的數(shù)字信號(hào)進(jìn)行大量的處理,具有很強(qiáng)的實(shí)時(shí)運(yùn)行功能。PC機(jī)上使用的通用處理器(如Intel的80x86)在工作時(shí),大約有百分之九十的時(shí)間都是在進(jìn)行加法運(yùn)算,乘法運(yùn)算所占的比重相對較少。因此,通用處理器一般不會(huì)在提高乘法運(yùn)算能力上下很大功夫,而DSP處理器的出現(xiàn)正好彌補(bǔ)了這一缺陷。
為了加快數(shù)字信號(hào)的處理速度,DSP處理器在設(shè)計(jì)時(shí)加入了許多特殊結(jié)構(gòu),以增強(qiáng)它的并行處理能力。通用處理器在設(shè)計(jì)時(shí)遵循的是便宜和簡單的原則,一般面向普通用戶。因而它采用的是馮·諾依曼體系結(jié)構(gòu),指令和數(shù)據(jù)處于同一地址空間。當(dāng)處理器要執(zhí)行某條指令時(shí),必須先將指令從內(nèi)存中讀出來進(jìn)行譯碼,然后再將運(yùn)算數(shù)據(jù)從內(nèi)存中取出來,之后才能執(zhí)行真正的運(yùn)算,耗費(fèi)在運(yùn)算之外的時(shí)間非常多。DSP處理器則擁有一種稱為哈佛的總線結(jié)構(gòu)。這種結(jié)構(gòu)使用不同的指令和運(yùn)算數(shù)據(jù)總線,可以同時(shí)從內(nèi)存中讀出指令和數(shù)據(jù)進(jìn)行運(yùn)算,從而減少了運(yùn)算所耗費(fèi)的時(shí)間。
嵌入式DSP處理器對系統(tǒng)結(jié)構(gòu)和指令都進(jìn)行了特殊設(shè)計(jì),使其能夠在資源受限的情況下執(zhí)行某種DSP算法。由于編譯效率和指令執(zhí)行速度都很高,因此,像數(shù)字濾波、快速傅立葉變換和離散余弦變換等DSP算法正在被大量引入到嵌入式領(lǐng)域中來。目前,DSP處理器主要應(yīng)用在嵌入式系統(tǒng)的智能化領(lǐng)域,如生物信息識(shí)別終端、實(shí)時(shí)語音處理和虛擬現(xiàn)實(shí)等。這類智能化算法一般運(yùn)算量較大,特別是乘法運(yùn)算和向量運(yùn)算非常多,而這恰好是DSP處理器的優(yōu)勢所在。
SoC
隨著EDI的推廣和VLSI設(shè)計(jì)的普及,出現(xiàn)了片上系統(tǒng)(System on Chip,SoC)。SoC顧名思義指的是集成在CPU芯片上的部件比較多,足以獨(dú)立構(gòu)成一個(gè)系統(tǒng)。實(shí)際上它與微控制器的區(qū)別并不十分嚴(yán)格,因此有時(shí)會(huì)將同一塊芯片既稱為微控制器,又稱為SoC。
在嵌入式系統(tǒng)中使用SoC處理器具有如下一些顯著的優(yōu)點(diǎn):
降低內(nèi)部工作電壓,減少芯片功耗;
減少芯片引腳數(shù)目,簡化制造過程;
簡化外圍驅(qū)動(dòng)單元,優(yōu)化處理速度;
優(yōu)化內(nèi)部電路結(jié)構(gòu),降低系統(tǒng)噪聲。
存儲(chǔ)設(shè)備
存儲(chǔ)設(shè)備的主要作用是保存操作系統(tǒng)和應(yīng)用程序的映像,以及系統(tǒng)在運(yùn)行時(shí)所需的數(shù)據(jù)。在嵌入式系統(tǒng)中使用的存儲(chǔ)設(shè)備可以分為內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器兩類。內(nèi)部存儲(chǔ)器和處理器處于同一塊芯片上,CPU不必通過I/O電路就可以直接訪問它們,處理速度非???,但造價(jià)也異常昂貴。外部存儲(chǔ)器是用來存儲(chǔ)程序或數(shù)據(jù)的獨(dú)立設(shè)備,訪問時(shí)需要花費(fèi)比內(nèi)部存儲(chǔ)器更多的時(shí)間,并且需要在處理器周圍搭建額外的尋址電路。
無論存儲(chǔ)器位于處理器的內(nèi)部還是外部,都可以進(jìn)一步劃分成如下幾種類型:
隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM);
只讀存儲(chǔ)器(Read Only Memory,ROM);
混合存儲(chǔ)器(Hybrid Memory)。
RAM
RAM是一種可以被隨機(jī)訪問的存儲(chǔ)設(shè)備。RAM有時(shí)也被稱為讀寫存儲(chǔ)器,這是因?yàn)閷@種存儲(chǔ)設(shè)備可以同時(shí)執(zhí)行讀操作和寫操作。根據(jù)工作原理的不同,RAM可以分為兩種類型,動(dòng)態(tài)RAM(DRAM,Dynamic RAM)和靜態(tài)RAM(SRAM,Static RAM)。
RAM既可以位于處理器內(nèi)部,也可以位于處理器外部。它與處理器的連線一般包括地址總線、數(shù)據(jù)總線、片選信號(hào)和讀/寫控制信號(hào)等。通用計(jì)算機(jī)一般采用DRAM,而嵌入式系統(tǒng)則多少會(huì)采用一些SRAM,或者完全采用SRAM。
ROM
嵌入式系統(tǒng)一般都不采用磁盤,其操作系統(tǒng)和應(yīng)用程序的映像,以及系統(tǒng)運(yùn)行時(shí)所需的數(shù)據(jù),都必須保存在某種斷電以后數(shù)據(jù)不會(huì)丟失的存儲(chǔ)設(shè)備中,即通常所說的不揮發(fā)存儲(chǔ)器。與通用計(jì)算機(jī)相比,嵌入式系統(tǒng)往往配備更多的不揮發(fā)存儲(chǔ)器。現(xiàn)在基于半導(dǎo)體技術(shù)的不揮發(fā)存儲(chǔ)器大多是只讀的或接近只讀的,一般泛稱為ROM,常見的有掩膜式ROM、可編程ROM和可擦除ROM。
ROM的特點(diǎn)是即使關(guān)閉電源,其中的內(nèi)容仍然能夠保存不變。因此,它通常被嵌入式系統(tǒng)用來保存系統(tǒng)所需的程序代碼和所有永久性數(shù)據(jù)。
混合存儲(chǔ)器
在嵌入式系統(tǒng)中使用的混合存儲(chǔ)器主要有以下幾類:
EEPROM與EPROM類似,不同點(diǎn)在于它是通過電信號(hào)進(jìn)行擦除的。
Flash也稱為閃存,其本質(zhì)上是一種EEPROM,但能夠在正常的工作電壓和電流下進(jìn)行擦除和寫入操作。因此,它可以在目標(biāo)系統(tǒng)中在線地改變其內(nèi)容
NVRAM也稱為非易失性RAM,可以看成是帶有后備電池的SRAM,即使電源關(guān)閉后它的內(nèi)容也可以保持不變。
在現(xiàn)有的技術(shù)條件下,閃存對嵌入式系統(tǒng)來講是理想的、不揮發(fā)存儲(chǔ)器。
I/O設(shè)備
一般來說,嵌入式系統(tǒng)配備的顯示設(shè)備大多是尺寸較小的LCD,按工作原理不同可以分為TFT和DSTN兩種。
TFT 由薄膜晶體管(Thin Film Transistor)陳列構(gòu)成,優(yōu)點(diǎn)是亮度大、色彩鮮艷、可視角度大;缺點(diǎn)是價(jià)格高、耗電大,并且容易發(fā)生因個(gè)別晶體管損壞而在圖像上形成斑點(diǎn)的現(xiàn)象。
DSTN 利用液晶在不同電場下能夠呈現(xiàn)不同的光學(xué)特性,在顯示屏上用水平和垂直放置的導(dǎo)線做成網(wǎng)格,并加以電信號(hào)進(jìn)行掃描,就可以依次在每個(gè)交點(diǎn)上形成并保持一定的電場,從而使該點(diǎn)上的液晶在反射或透射光線時(shí)能夠顯示出不同的顏色。
目前,在嵌入式系統(tǒng)中廣泛使用的LCD有主動(dòng)式和被動(dòng)式的區(qū)別。被動(dòng)式LCD顯示器的電壓控制部件設(shè)計(jì)在顯示面板的四周,反應(yīng)時(shí)間長且光線輸出量少,因而可視角度比較小,顯示動(dòng)態(tài)圖像時(shí)的效果比較差,并且容易產(chǎn)生殘影現(xiàn)象。主動(dòng)式LCD顯示器則通過在每個(gè)液晶單元內(nèi)放置電壓控制單元,在縮短反應(yīng)時(shí)間的同時(shí)增加了光線的輸出量,從而可以提供較好的動(dòng)態(tài)顯示效果。由于主動(dòng)式LCD顯示器的成本較高,因此目前只在一些高端的嵌入式設(shè)備中采用,如PDA和信息家電等。一般的嵌入式系統(tǒng)基于成本和實(shí)用性方面的考慮,大多采用被動(dòng)式LCD顯示器,如普通的移動(dòng)電話等。
配備了LCD顯示器的嵌入式設(shè)備往往還同時(shí)配有透明的觸摸屏,通常觸摸屏與液晶顯示器是疊放在一起的。這樣用戶可以用觸筆或手指在屏幕上定位,從而取代鼠標(biāo)的作用,或者直接進(jìn)行手寫輸入,以取代鍵盤的作用。
通信設(shè)備
Firewire
IEEE 1394也稱為Firewire,其傳輸帶寬可以達(dá)到400Mb/s,最適合進(jìn)行多媒體數(shù)據(jù)的傳輸,可以運(yùn)用在多媒體實(shí)時(shí)播放、剪輯或者傳輸?shù)膱龊?。在需要進(jìn)行快速且大量數(shù)據(jù)傳輸?shù)那度胧皆O(shè)備中,IEEE 1394是一個(gè)經(jīng)常被用到的數(shù)據(jù)傳輸接口。
IEEE 1394在進(jìn)行多媒體數(shù)據(jù)傳輸時(shí)的體系結(jié)構(gòu)最上層為應(yīng)用層(Application),以下依次為傳輸層(Transaction)、鏈路層(Link)和物理層(Physical)。多媒體數(shù)據(jù)在由應(yīng)用層傳送到鏈路層后,將遵循IEEE 1394標(biāo)準(zhǔn)進(jìn)行封包,然后再經(jīng)由鏈路層和物理層把數(shù)據(jù)傳送出去。數(shù)據(jù)接收的另一端會(huì)接收打包數(shù)據(jù),再經(jīng)過拆包將數(shù)據(jù)還原成原來的多媒體數(shù)據(jù)。
USB
USB接口原本是用于PC機(jī)的一種輸入/輸出接口,具有熱插拔特性。當(dāng)擁有USB接口的外圍設(shè)備在與PC機(jī)連接時(shí),操作系統(tǒng)會(huì)自動(dòng)偵測到這一設(shè)備,并且能夠在不重新啟動(dòng)計(jì)算機(jī)的前提下完成軟硬件的配置。
因?yàn)閁SB 1.1規(guī)范中定義的數(shù)據(jù)傳輸速度可以高達(dá)12Mbps,所以使用USB接口的PDA在與PC進(jìn)行數(shù)據(jù)同步時(shí)的速度要比使用RS-232高出許多。而最新的USB 2.0規(guī)范中,數(shù)據(jù)傳輸?shù)淖罡咚俣瓤梢赃_(dá)到480Mbps,用于進(jìn)行大量且高速的數(shù)據(jù)傳輸。
藍(lán)牙
藍(lán)牙(Bluetooth)是一個(gè)用于無線通信的標(biāo)準(zhǔn)協(xié)議。它可以給嵌入式系統(tǒng)提供無線數(shù)據(jù)傳輸功能,其通信頻率處于2.4GHz以內(nèi),即使在無線噪聲很強(qiáng)的環(huán)境下仍然能夠保持很高的準(zhǔn)確性。用于無線通信的藍(lán)牙模塊主要由三個(gè)部分組成,無線傳輸收發(fā)單元、基帶處理單元和數(shù)據(jù)傳輸接口。
當(dāng)無線信號(hào)由藍(lán)牙的無線傳輸收發(fā)單元接收到之后,會(huì)被送到基帶處理單元進(jìn)行信號(hào)處理。處理后的數(shù)字信號(hào)再通過數(shù)據(jù)傳輸接口,傳送到嵌入式系統(tǒng)的處理器之中作進(jìn)一步的處理。
紅外線
嵌入式系統(tǒng)中的紅外收發(fā)模塊主要由三個(gè)部分組成:紅外線發(fā)光二極管、硅管光檢測器和控制電路。紅外線發(fā)光二級(jí)管是用于發(fā)射紅外線的裝置。它能夠發(fā)射波長在0.85微米到0.90微米之間的紅外光波。硅管光檢測器是用于接收紅外線的裝置。由它接收到的信號(hào)將被傳到控制電路當(dāng)中,然后再送給嵌入式系統(tǒng)的處理器作進(jìn)一步的處理。
紅外線收發(fā)模塊也有相應(yīng)的標(biāo)準(zhǔn)。最早出現(xiàn)的是1994年的IrDA1.0,采用波長在0.85微米到0.90微米的紅外線進(jìn)行傳輸,傳輸速度為115.2Kbps,距離大約在1米左右,接收角度在30度之內(nèi)。而在1999年提出的VFIR標(biāo)準(zhǔn)中,傳輸速度已經(jīng)可以高達(dá)16Mbps,有效距離為8米。
802.11
802.11是IEEE在1997年提出的一個(gè)無線網(wǎng)絡(luò)通信標(biāo)準(zhǔn),其目的是使各個(gè)廠商的無線網(wǎng)絡(luò)設(shè)備可以互相兼容,從而提供一個(gè)穩(wěn)定的無線傳輸環(huán)境。到了1999年,IEEE又先后提出了IEEE 802.11a和IEEE 802.11b兩個(gè)無線傳輸協(xié)議,其中802.11a使用5.8GHz的頻帶進(jìn)行無線傳輸,而802.11b則使用2.4GHz的頻帶進(jìn)行無線傳輸。基于802.11b協(xié)議的無線網(wǎng)絡(luò)的最高速度是11Mbps,比常用的以太網(wǎng)稍微快一點(diǎn),現(xiàn)在已經(jīng)有許多嵌入式系統(tǒng)開始使用基于802.11b協(xié)議的設(shè)備,開發(fā)基于無線網(wǎng)絡(luò)的各種應(yīng)用。最新的協(xié)議是802.11g。
本文討論了嵌入式Linux系統(tǒng)的硬件體系結(jié)構(gòu),從中央處理器、存儲(chǔ)設(shè)備、I/O設(shè)備和通信設(shè)備幾個(gè)方面分別介紹了目前在嵌入式開發(fā)中經(jīng)常遇到的硬件設(shè)備。了解這些基本的硬件知識(shí)對今后深入進(jìn)行嵌入式Linux系統(tǒng)的開發(fā)將會(huì)很有幫助。
評(píng)論