嵌入式系統(tǒng)設(shè)計師考試筆記之嵌入式系統(tǒng)基礎(chǔ)知識
1、嵌入式系統(tǒng)的定義
(1)定義:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。
(2)嵌入式系統(tǒng)發(fā)展的4個階段:無操作系統(tǒng)階段、簡單操作系統(tǒng)階段、實時操作系統(tǒng)階段、面向Internet階段。
(3)知識產(chǎn)權(quán)核(IP核):具有知識產(chǎn)權(quán)的、功能具體、接口規(guī)范、可在多個集成電路設(shè)計中重復(fù)使用的功能模塊,是實現(xiàn)系統(tǒng)芯片(SOC)的基本構(gòu)件。
(4)IP核模塊有行為、結(jié)構(gòu)和物理3級不同程度的設(shè)計,對應(yīng)描述功能行為的不同可以分為三類:軟核、固核、硬核。
2、嵌入式系統(tǒng)的組成:硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層
(1)硬件層:嵌入式微處理器、存儲器、通用設(shè)備接口和I/O接口。
Cache:位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。它的主要目標(biāo)是減小存儲器給微處理器內(nèi)核造成的存儲器訪問瓶頸,使處理速度更快。
(2)中間層(也稱為硬件抽象層HAL或者板級支持包BSP):它將系統(tǒng)上層軟件和底層硬件分離開來,使系統(tǒng)上層軟件開發(fā)人員無需關(guān)系底層硬件的具體情況,根據(jù)BSP層提供的接口開發(fā)即可。
BSP有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。
設(shè)計一個完整的BSP需要完成兩部分工作:
A、 嵌入式系統(tǒng)的硬件初始化和BSP功能。
片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。
板級初始化:包含軟硬件兩部分在內(nèi)的初始化過程,為隨后的系統(tǒng)初始化和應(yīng)用程序建立硬件和軟件的運行環(huán)境。
系統(tǒng)級初始化:以軟件為主的初始化過程,進行操作系統(tǒng)的初始化。
B、 設(shè)計硬件相關(guān)的設(shè)備驅(qū)動。
(3)系統(tǒng)軟件層:由RTOS、文件系統(tǒng)、GUI、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。
RTOS是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺。
(4)應(yīng)用軟件:由基于實時系統(tǒng)開發(fā)的應(yīng)用程序組成。
3、實時系統(tǒng)
(1)定義:能在指定或確定的時間內(nèi)完成系統(tǒng)功能和對外部或內(nèi)部、同步或異步時間做出響應(yīng)的系統(tǒng)。
(2)區(qū)別:通用系統(tǒng)一般追求的是系統(tǒng)的平均響應(yīng)時間和用戶的使用方便;而實時系統(tǒng)主要考慮的是在最壞情況下的系統(tǒng)行為。
(3)特點:時間約束性、可預(yù)測性、可靠性、與外部環(huán)境的交互性。
(4)硬實時(強實時):指應(yīng)用的時間需求應(yīng)能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產(chǎn)損失和生態(tài)破壞,如:航天、軍事。
(5)軟實時(弱實時):指某些應(yīng)用雖然提出了時間的要求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)運行及環(huán)境不會造成嚴重影響,如:監(jiān)控系統(tǒng)、實時信息采集系統(tǒng)。
(6)任務(wù)的約束包括:時間約束、資源約束、執(zhí)行順序約束和性能約束。
4、實時系統(tǒng)的調(diào)度
(1)調(diào)度:給定一組實時任務(wù)和系統(tǒng)資源,確定每個任務(wù)何時何地執(zhí)行的整個過程。
(2)搶占式調(diào)度:通常是優(yōu)先級驅(qū)動的調(diào)度,如uCOS。優(yōu)點是實時性好、反應(yīng)快,調(diào)度算法相對簡單,可以保證高優(yōu)先級任務(wù)的時間約束;缺點是上下文切換多。
(3)非搶占式調(diào)度:通常是按時間片分配的調(diào)度,不允許任務(wù)在執(zhí)行期間被中斷,任務(wù)一旦占用處理器就必須執(zhí)行完畢或自愿放棄,如WinCE。優(yōu)點是上下文切換少;缺點是處理器有效資源利用率低,可調(diào)度性不好。
(4)靜態(tài)表驅(qū)動策略:系統(tǒng)在運行前根據(jù)各任務(wù)的時間約束及關(guān)聯(lián)關(guān)系,采用某種搜索策略生成一張運行時刻表,指明各任務(wù)的起始運行時刻及運行時間。
(5)優(yōu)先級驅(qū)動策略:按照任務(wù)優(yōu)先級的高低確定任務(wù)的執(zhí)行順序。
(6)實時任務(wù)分類:周期任務(wù)、偶發(fā)任務(wù)、非周期任務(wù)。
(7)實時系統(tǒng)的通用結(jié)構(gòu)模型:數(shù)據(jù)采集任務(wù)實現(xiàn)傳感器數(shù)據(jù)的采集,數(shù)據(jù)處理任務(wù)處理采集的數(shù)據(jù)、并將加工后的數(shù)據(jù)送到執(zhí)行機構(gòu)管理任務(wù)控制機構(gòu)執(zhí)行。
5、嵌入式微處理器體系結(jié)構(gòu)
(1)馮諾依曼結(jié)構(gòu):程序和數(shù)據(jù)共用一個存儲空間,程序指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數(shù)據(jù)總線,程序和數(shù)據(jù)的寬度相同。例如:8086、ARM7、MIPS…
(2)哈佛結(jié)構(gòu):程序和數(shù)據(jù)是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu)。例如:AVR、ARM9、ARM10…
(3)CISC與RISC的特點比較(參照教程22頁)。
計算機執(zhí)行程序所需要的時間P可以用下面公式計算:
P=I×CPI×T
I:高級語言程序編譯后在機器上運行的指令數(shù)。
CPI:為執(zhí)行每條指令所需要的平均周期數(shù)。
T:每個機器周期的時間。
(4)流水線的思想:在CPU中把一條指令的串行執(zhí)行過程變?yōu)槿舾芍噶畹淖舆^程在CPU中重疊執(zhí)行。
(5)流水線的指標(biāo):
吞吐率:單位時間里流水線處理機流出的結(jié)果數(shù)。如果流水線的子過程所用時間不一樣長,則吞吐率應(yīng)為最長子過程的倒數(shù)。
建立時間:流水線開始工作到達最大吞吐率的時間。若m個子過程所用時間一樣,均為t,則建立時間T=mt。
(6)信息存儲的字節(jié)順序
A、存儲器單位:字節(jié)(8位)
B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。
C、32位微處理器的虛擬地址空間位232,即4GB。
D、小端字節(jié)順序:低字節(jié)在內(nèi)存低地址處,高字節(jié)在內(nèi)存高地址處。
E、大端字節(jié)順序:高字節(jié)在內(nèi)存低地址處,低字節(jié)在內(nèi)存高地址處。
F、網(wǎng)絡(luò)設(shè)備的存儲順序問題取決于OSI模型底層中的數(shù)據(jù)鏈路層。
6、邏輯電路基礎(chǔ)
(1)根據(jù)電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。
(2)組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態(tài)無關(guān)。常用的邏輯電路有譯碼器和多路選擇器等。
(3)時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關(guān),而且還與該時刻電路的狀態(tài)有關(guān)。因此,時序電路中必須包含記憶元件。觸發(fā)器是構(gòu)成時序邏輯電路的基礎(chǔ)。常用的時序邏輯電路有寄存器和計數(shù)器等。
(4)真值表、布爾代數(shù)、摩根定律、門電路的概念。(教程28、29頁)
(5)NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現(xiàn)任何一種邏輯函數(shù)。
(6)譯碼器:多輸入多輸出的組合邏輯網(wǎng)絡(luò)。
每輸入一個n位的二進制代碼,在m個輸出端中最多有一個有效。
當(dāng)m=2n是,為全譯碼;當(dāng)m<2n時,為部分譯碼。
(7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅(qū)動LED時,較多采用低電平驅(qū)動方式。液晶七段字符顯示器LCD利用液晶有外加電場和無外加電場時不同的光學(xué)特性來顯示字符。
(8)時鐘信號是時序邏輯的基礎(chǔ),它用于決定邏輯單元中的狀態(tài)合適更新。同步是時鐘控制系統(tǒng)中的主要制約條件。
(9)在選用觸發(fā)器的時候,觸發(fā)方式是必須考慮的因素。觸發(fā)方式有兩種:
電平觸發(fā)方式:具有結(jié)構(gòu)簡單的有點,常用來組成暫存器。
邊沿觸發(fā)方式:具有很強的抗數(shù)據(jù)端干擾能力,常用來組成寄存器、計數(shù)器等。
7、總線電路及信號驅(qū)動
(1)總線是各種信號線的集合,是嵌入式系統(tǒng)中各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通路。在同一時刻,每條通路線路上能夠傳輸一位二進制信號。按照總線所傳送的信息類型,可以分為:數(shù)據(jù)總線(DB)、地址總線(AB)和控制總線(CB)。
(2)總線的主要參數(shù):
總線帶寬:一定時間內(nèi)總線上可以傳送的數(shù)據(jù)量,一般用MByte/s表示。
總線寬度:總線能同時傳送的數(shù)據(jù)位數(shù)(bit),即人們常說的32位、64位等總線寬度的概念,也叫總線位寬??偩€的位寬越寬,總線每秒數(shù)據(jù)傳輸率越大,也就是總線帶寬越寬。
總線頻率:工作時鐘頻率以MHz為單位,工作頻率越高,則總線工作速度越快,也即總線帶寬越寬。
總線帶寬 = 總線位寬×總線頻率/8, 單位是MBps。
常用總線:ISA總線、PCI總線、IIC總線、SPI總線、PC104總線和CAN總線等。
(3)只有具有三態(tài)輸出的設(shè)備才能夠連接到數(shù)據(jù)總線上,常用的三態(tài)門為輸出緩沖器。
(4)當(dāng)總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或驅(qū)動器,最常用的是三態(tài)緩沖器,其作用是驅(qū)動和隔離。
(5)采用總線復(fù)用技術(shù)可以實現(xiàn)數(shù)據(jù)總線和地址總線的共用。但會帶來兩個問題:
A、需要增加外部電路對總線信號進行復(fù)用解耦,例如:地址鎖存器。
B、總線速度相對非復(fù)用總線系統(tǒng)低。
(6)兩類總線通信協(xié)議:同步方式、異步方式。
(7)對總線仲裁問題的解決是以優(yōu)先級(優(yōu)先權(quán))的概念為基礎(chǔ)。
8、電平轉(zhuǎn)換電路
(1)數(shù)字集成電路可以分為兩大類:雙極型集成電路(TTL)、金屬氧化物半導(dǎo)體(MOS)。
(2)CMOS電路由于其靜態(tài)功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。
(3)解決TTL與CMOS電路接口困難的辦法是在TTL電路輸出端與電源之間接一上拉電阻R,上拉電阻R的取值由TTL的高電平輸出漏電流IOH來決定,不同系列的TTL應(yīng)選用不同的R值。
9、可編程邏輯器件基礎(chǔ)(具體參見教程51到61頁)
這方面的內(nèi)容,從總體上有個概念性的認識應(yīng)該就可以了。
10、嵌入式系統(tǒng)中信息表示與運算基礎(chǔ)
(1)進位計數(shù)制與轉(zhuǎn)換:這樣比較簡單,也應(yīng)該掌握怎么樣進行換算,有出題的可能。
(2)計算機中數(shù)的表示:源碼、反碼與補碼。
正數(shù)的反碼與源碼相同,負數(shù)的反碼為該數(shù)的源碼除符號位外按位取反。
正數(shù)的補碼與源碼相同,負數(shù)的補碼為該數(shù)的反碼加一。
例如-98的源碼:11100010B
反碼:10011101B
補碼:10011110B
(3)定點表示法:數(shù)的小數(shù)點的位置人為約定固定不變。
浮點表示法:數(shù)的小數(shù)點位置是浮動的,它由尾數(shù)部分和階數(shù)部分組成。
任意一個二進制N總可以寫成:N=2P×S。S為尾數(shù),P為階數(shù)。
(4)漢字表示法(教程67、68頁),搞清楚GB2318-80中國標(biāo)碼和機內(nèi)碼的變換。
(5)語音編碼中波形量化參數(shù)(可能會出簡單的計算題目哦)
采樣頻率:一秒內(nèi)采樣的次數(shù),反映了采樣點之間的間隔大小。
人耳的聽覺上限是20kHz,因此40kHz以上的采樣頻率足以使人滿意。
CD唱片采用的采樣頻率是44.1kHz。
測量精度:樣本的量化等級,目前標(biāo)準采樣量級有8位和16位兩種。
聲道數(shù):單聲道和立體聲雙道。立體聲需要兩倍的存儲空間。
11、差錯控制編碼
(1)根據(jù)碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發(fā)現(xiàn)差錯的碼,例如奇偶檢驗碼;糾錯碼是指不僅能發(fā)現(xiàn)差錯而且能自動糾正差錯的碼,例如循環(huán)冗余校驗碼。
(2)奇偶檢驗碼、海明碼、循環(huán)冗余校驗碼(CRC)。(教程70到77頁)
12、嵌入式系統(tǒng)的度量項目
(1)性能指標(biāo):分為部件性能指標(biāo)和綜合性能指標(biāo),主要包括:吞吐率、實時性和各種利用率。
(2)可靠性與安全性
可靠性是嵌入式系統(tǒng)最重要、最突出的基本要求,是一個嵌入式系統(tǒng)能正常工作的保證,一般用平均故障間隔時間MTBF來度量。
(3)可維護性:一般用平均修復(fù)時間MTTR表示。
(4)可用性
(5)功耗
(6)環(huán)境適應(yīng)性
(7)通用性
(8)安全性
(9)保密性
(10)可擴展性
性價比中的價格,除了直接購買嵌入式系統(tǒng)的價格外,還應(yīng)包含安裝費用、若干年的運行維修費用和軟件租用費。
13、嵌入式系統(tǒng)的評價方法:測量法和模型法
(1)測量法是最直接最基本的方法,需要解決兩個問題:
A、根據(jù)研究的目的,確定要測量的系統(tǒng)參數(shù)。
B、選擇測量的工具和方式。
(2)測量的方式有兩種:采樣方式和事件跟蹤方式。
(3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數(shù)學(xué)方程去刻畫系統(tǒng)的模型,而模擬模型法是用模擬程序的運行去動態(tài)表達嵌入式系統(tǒng)的狀態(tài),而進行系統(tǒng)統(tǒng)計分析,得出性能指標(biāo)。
(4)分析模型法中使用最多的是排隊模型,它包括三個部分:輸入流、排隊規(guī)則和服務(wù)機構(gòu)。
(5)使用模型對系統(tǒng)進行評價需要解決3個問題:設(shè)計模型、解模型、校準和證實模型。
真題解析
1、2007年4、5題
若每一條指令都可以分解為取指、分析和執(zhí)行三步。已知取指時間t取指=4△t,分析時間t分析=3△t,執(zhí)行時間t執(zhí)行=5△t。如果按串行方式執(zhí)行完100條指令需要 (4) △t。如果按照流水線方式執(zhí)行,執(zhí)行完100條指令需要 (5) △t。
(4)A. 1190 B. 1195 C. 1200 D. 1205
(5)A. 504 B. 507 C. 508 D. 510
<答案>:C、B
考查流水線技術(shù)知識點。
按照串行的方式,執(zhí)行完一條指令才能執(zhí)行下一條指令,那么執(zhí)行完100條指令的時間為:(4+3+5)×100=1200
按照流水線的方式,可以同時執(zhí)行多條指令。在第一條指令進行分析的時候,第二條指令已經(jīng)開始取指;當(dāng)?shù)谝粭l指令進行執(zhí)行的時候,第二條指令進行分析,第三條指令取指;當(dāng)?shù)诙l指令進行執(zhí)行完的時候,第三條指令已經(jīng)分析完成。依此類推,當(dāng)?shù)谝粭l指令完成之后,每一個執(zhí)行的周期就可以完成一條指令。需要注意的是,如果流水線的子過程所用時間不一樣長,則吞吐率應(yīng)以最長子過程來計算。因此,我們可以計算得100條指令的執(zhí)行時間為:(4+3+5)+(100-1)×5=507。
2、2007年24題
某總線有104根信號線,其中數(shù)據(jù)總線(DB)32根,若總線工作頻率為33MHz,則其理論最大傳輸率為 (24) 。(注:本題答案中的B表示Byte)
(24)A. 33 MB/s B. 64MB/s C. 132 MB/s D. 164 MB/s
<答案>:C
考查總線這個知識點。
根據(jù)上面的筆記,總線帶寬 = 總線位寬×總線頻率/8=32×33/8=132MB/s。
3、2007年26題
某存儲器數(shù)據(jù)總線寬度為32bit,存取周期為250ns,則該存儲器帶寬為 (26) 。(注:本題答案中的B表示Byte)
(26)A. 8×106B/s B. 16×106B/s C. 16×108B/s D. 32×106B/s
<答案>:B
考查總線這個知識點。
存儲器帶寬即總線帶寬,總線頻率為:1/250ns=4×106
存儲器帶寬為:32×4×106/8=16×106B/s
4、2007年27題
處理機主要由處理器、存儲器和總線組成,總線包括 (27) 。
(27)A. 數(shù)據(jù)總線、串行總線、邏輯總線、物理總線
B. 并行總線、地址總線、邏輯總線、物理總線
C. 并行總線、串行總線、全雙工總線
D. 數(shù)據(jù)總線、地址總線、控制總線
<答案>:D
考查總線這個知識點,基本概念的考查。
5、2007年35題
三極管是可控的開關(guān)器件,其飽和與截止?fàn)顟B(tài)分別對應(yīng)開關(guān)的接通和斷開狀態(tài)。UBE為基極輸入電壓,VTH為基極域值電壓,如果UBETH,開關(guān)應(yīng)處于 (35) 狀態(tài)。
(35)A. 接通 B. 三態(tài) C. 斷開 D. 高阻
<答案>:C
考查電路中最基本的基礎(chǔ)知識點,我覺得做不對的根本不能算嵌入式系統(tǒng)開發(fā)入門。
6、2007年36題
如下圖所示,若低位地址(A0-A11)接在內(nèi)存芯片地址引腳上,高位地址(A12-A19)進行片選譯碼(其中,A14和A16沒有參加譯碼),且片選信號低電平有效,則對下圖所示的譯碼器,不屬于此譯碼空間的地址為 (36) 。
(36)A. AB000H~ABFFFH B. BB000H~BBFFFH
C. EF000H~EFFFFH D. FE000H~FEFFFH
<答案>:D
考查數(shù)字電路中譯碼知識和存儲系統(tǒng)中統(tǒng)一編址的問題,相對來說,這個題目有點難度,但是對于學(xué)習(xí)過和親身做過單片機的兄弟來說,最基本不過了。
7、2007年46題
(46) 完全把系統(tǒng)軟件和硬件部分隔離開來,從而大大提高了系統(tǒng)的可移植性。
(46)A. 硬件抽象層 B. 驅(qū)動映射層 C. 硬件交互層 D. 中間層
<答案>:A
考查嵌入式系統(tǒng)組成中的概念。
8、2006年3題
設(shè)指令由取指、分析、執(zhí)行3個子部件完成,每個子部件的工作周期為△t,采用常規(guī)標(biāo)量單流水線處理機。若連續(xù)執(zhí)行10條指令,則共需要時間(3)△t。
(3)A.8 B.10 C.12 D.14
<答案>:C
考查流水線技術(shù)知識點。
3+(10-1)×1=12
9、2006年4、5題
某計算機的時鐘頻率為400MHz,測試計算機的程序使用4種類型的指令。每種指令的數(shù)量及所需要的指令時鐘數(shù)(CPI)如下表所示,則該計算機的指令平均時鐘數(shù)為(4);該計算機的運算速度為(5)MIPS。
指令類型 指令數(shù)目(條) 每條指令需要的時鐘數(shù)
1 160000 1
2 30000 2
3 24000 4
4 16000 8
(4)A.1.85 B.1.93 C.2.36 D.3.75
(5)A.106.7 B.169.5 C.207.3 D.216.2
<答案>:B、C
考查指令運行方面的簡單計算。
平均時鐘數(shù)=(160000+2×30000+4×24000+8×16000)/(160000+30000+24000+16000)=1.93
MIPS是指每秒種執(zhí)行多少百萬條指令,即106。
計算機的運行數(shù)度為:400/1.93=207.25=207.3MIPS
9、2006年12題
計算機要對聲音信號進行處理時,必須將它轉(zhuǎn)換為數(shù)字聲音信號。最基本的聲音信號數(shù)字化方法時取樣-量化法。若量化后的每個聲音樣本用2個字節(jié)表示,則量化分辨率是(12)
(12)A.1/2 B.1/1024 C.1/65536 D.1/131072
<答案>:C
考查聲音編碼種量化計算的知識點。
2個字節(jié)是16位,其量化分辨率位1/1016=1/65536。
10、2006年13題
某幅圖像具有640×460個象素點,若每個象素具有8位的顏色深度,則可表示(13)種不同的顏色,經(jīng)過5:1壓縮后,其圖像數(shù)據(jù)需要占用(14)(Byte)的存儲空間。
(13)A.8 B.256 C.512 D.1024
(14)A.61440 B.307200 C.384000 D.3072000
<答案>:B、A
考查圖像數(shù)據(jù)存儲計算的知識點。
8位顏色深度可以表示28=256種顏色深度。
經(jīng)過5:1壓縮后的數(shù)據(jù)大小為:640×480×8/8/5=61440。
11、2006年23題
若某邏輯門輸入A、B和輸出F的波形如下圖所示,則F(A,B)的表達式為(23)
(23) A.F=A B B.F=A+B
C.F=A異或B D.F=A(B的非)
___ __
A_______| |____| |_______
_______
B_______| |___________
______
F___________| |_______
<答案>:C
考查數(shù)字電路的最基本知識點,我覺得這個都搞不清楚很難通過這個考試。
12、2006年24題
一個4位的二進制計數(shù)器,由0000狀態(tài)開始,經(jīng)過25個時鐘脈沖后,該計數(shù)器的狀態(tài)為24
(24) A.1100 B.1000 C.1001 D.1010
<答案>:C
考查數(shù)字電路的最基本知識點,相對上面一題有點難,需要對計數(shù)器的工作原理有比較清楚的理解。這個也是搞嵌入式系統(tǒng)的基礎(chǔ)中的基礎(chǔ),參考教程38頁或相關(guān)的數(shù)電書籍。
4位的計數(shù)器,其計數(shù)范圍是24=16,0000開始經(jīng)過16個時鐘脈沖之后又回到了開始的狀態(tài)0000。25-16=9,所以說經(jīng)過25個時鐘之后,其計數(shù)器的數(shù)值應(yīng)該是9=1001。
13、2006年25題
穩(wěn)壓二極管構(gòu)成的穩(wěn)壓電路的接法是(25)
(25) A.穩(wěn)壓管與負載電阻串聯(lián)。
B.穩(wěn)壓管與限流電阻并聯(lián)。
C.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻串聯(lián)。
D.限流電阻與穩(wěn)壓管串聯(lián)后,在與負載電阻并聯(lián)。
<答案>:D
考查模擬電路的最基本知識點,實在太簡單,不知道從那里開始分析了。
14、2006年26題
以下敘述中,不符合RISC指令系統(tǒng)特點的是(26)
(26) A.指令長度固定,指令種類少。
B.尋址方式種類豐富,指令功能盡量增強。
C.設(shè)置大量通用寄存器,訪問存儲器指令簡單。
D.選取使用頻率較高的一些簡單指令。
<答案>:B
考查RISC與CICS的區(qū)別,考生應(yīng)該清楚他們的區(qū)別,參加教程22頁。
15、2006年27題
通常所說的32位微處理器是指(27)
(27) A.地址總線的寬度為32位 B.處理器數(shù)據(jù)長度只能為32位
C.CPU字長為32位 D.通用寄存器數(shù)目為32位
<答案>:C
考查字長的概念和總線寬度的理解,參加教程25頁。
16、2006年28題
在32位總線系統(tǒng)中,若時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,則該總線系統(tǒng)的數(shù)據(jù)傳送速率為(28)MB/s。
(28) A.200 B.400 C.600 D.800
<答案>:B
考查總線和數(shù)據(jù)傳輸方面的知識點。
5個時鐘周期可以傳送4個Byte。
每秒中可以傳送:4×(500/5)=400MB/s。
17、2006年30題
評價一個計算機系統(tǒng)時,通常主要使用(30)來衡量系統(tǒng)的可靠性。
(30) A.評價響應(yīng)時間
B.平均無故障時間(MTBF)
C.平均修復(fù)時間
D.數(shù)據(jù)處理速率
<答案>:B
考查嵌入式系統(tǒng)性能評價中重要知識點??催^了就會做,每什么分析的,參見教程77頁。
小結(jié)
就我個人的意見,從內(nèi)容來看,嵌入式系統(tǒng)基礎(chǔ)知識的范圍很廣,知識點很多,而且沒有很強的邏輯性,顯得比較凌亂,很難將他們有序的組織在一起。但是也不要害怕,內(nèi)容雖然多而亂,但是考試的題目都比較簡單,有些題目幾乎是所見即所得。只要你做過嵌入式或者單片機方面的工作,你都能做出來。一些計算的題目也是一些基本概念的延伸。通過分析歷年的真題,一方面可以把握考試的出題方式和考試難度,同時可以把握這部分內(nèi)容的出題方向和復(fù)習(xí)的方法。從兩年的考試題目數(shù)量分布來看,06年10道,07年7道,數(shù)量有所較少,但是我覺得這不是一個趨勢,08年應(yīng)該不會少于7道題目的。這部分在嵌入式系統(tǒng)設(shè)計里面是相當(dāng)重要的,有一個良好的基礎(chǔ)才能做好下面的事情。如果復(fù)習(xí)得好,將這7、8分題目拿到手,那么你離45分左右的及格線又邁進了一大步了。
嵌入式系統(tǒng)設(shè)計師考試筆記之嵌入式微處理器
一、
嵌入式微處理器是嵌入式系統(tǒng)的核心器件,深入理解嵌入式微處理器的工作原理,組成結(jié)構(gòu)、體系結(jié)構(gòu)以及軟件編程等方面,無論對嵌入式設(shè)計師考試的準備還是對嵌入式項目的開發(fā)都有一定的幫助。在目前白花盛放的嵌入式微處理器市場,各種各樣大大小小的嵌入式微處理器就像菜市場里面的青菜一樣。要對各種嵌入式微處理器都有深入的理解幾乎是不可能的。但是萬變不離其中,在總多的嵌入式微處理器中都有著共同的概念、原理與規(guī)律。我們要做的是分析嵌入式微處理器的基本結(jié)構(gòu)、基本工作原理、體系結(jié)構(gòu)、市場發(fā)展趨勢、各種微處理器的特點與應(yīng)用場合等等。我個人覺得,面對全國的考試,其考點應(yīng)該是大家都應(yīng)該去掌握的一些共有的基本知識,或者是大家都熟悉,流行程度甚廣的一些微處理器的使用,而不是一些個性化的知識點或者偏門器件的使用。
二、復(fù)習(xí)筆記
1. 嵌入式微處理器的基本結(jié)構(gòu)
(1)嵌入式硬件系統(tǒng)一般由嵌入式微處理器、存儲器和輸入/輸出部分組成。
(2)嵌入式微處理器是嵌入式硬件系統(tǒng)的核心,通常由控制單元、算術(shù)邏輯單元和寄存器3大部分組成:
A、控制單元:主要負責(zé)取指、譯碼和取數(shù)等基本操作并發(fā)送主要的控制指令。
B、算術(shù)邏輯單元:主要處理數(shù)值型數(shù)據(jù)和進行邏輯運算工作。
C、寄存器:用于暫存臨時性的數(shù)據(jù)。
2. 嵌入式微處理器的分類(根據(jù)用途)
(1)嵌入式微控制器(MCU):又稱為單片機,片上外設(shè)資源一般比較豐富,適合于控制。最大的特點是單片化,體積小,功耗和成本低,可靠性高。目前約占70%的市場份額。
(2)嵌入式微處理器(EMPU):又稱為單板機,由通用計算機中的CPU發(fā)展而來,它的特征是具有32位以上的處理器,具有較高的性能。通常嵌入式微處理器把CPU、ROM、RAM及I/O等模塊做到同一個芯片上。
(3)嵌入式DSP處理器(DSP):專門用于信號處理方面的處理器,其在系統(tǒng)結(jié)構(gòu)和指令算法方面進行了特殊設(shè)計,使其處理速度比最快的CPU還快10~50倍,在數(shù)字濾波、FFT、頻譜分析等方面獲得了大量的應(yīng)用。
(4)嵌入式片上系統(tǒng)(SOC):追求產(chǎn)品系統(tǒng)最大包容的集成器件,其最大的特點是成功實現(xiàn)了軟硬件的無縫結(jié)合,直接在微處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。
3. 典型8位微處理器的結(jié)構(gòu)和特點
該部分參考《教程》86~94頁,以8051為重點,徹底搞清楚8位單片機的工作原理,外設(shè)控制、存儲分布、尋址方式以及典型應(yīng)用。2007年11月下午的第一道題目就考查了8051的定時器使用、外部時鐘連接、實際應(yīng)用的流程設(shè)計以及典型的尋址方式。這些考點幾乎可以在《教程》上找到,例如外部時鐘連接那個問題的答案就是《教程》89頁上面的原圖。
4. 典型16位微處理器的結(jié)構(gòu)和特點
該部分參考《教程》94~97頁。典型的微處理器可以參考MSP430,找一本這方面的書看看關(guān)于MSP430的結(jié)構(gòu)原理以及典型應(yīng)用。
5. 典型32位微處理器的結(jié)構(gòu)和特點
該部分參考《教程》97~112頁。32位處理器采用32位的地址和數(shù)據(jù)總線,其地址空間達到了232=4GB。目前主流的32位嵌入式處理器系統(tǒng)主要有ARM系列、MIPS系列、PoewrPC系列等。ARM微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC處理器結(jié)構(gòu)。按照目前的發(fā)展形式,ARM幾乎成了嵌入式應(yīng)用的代名詞。按照我個人的意見,作為嵌入式系統(tǒng)設(shè)計師考試,逐漸增加考查ARM體系結(jié)構(gòu)與編程方面的題目是大勢所趨。2006年沒有一道關(guān)于ARM的題目,2007年出了少量題目,可能在2008年會繼續(xù)增加。在下午題方面,2006年考查了X86方面的應(yīng)用、2007年考查了8051方面的應(yīng)用,這個可能是一個過度過程,以目前ARM在嵌入式領(lǐng)域的廣泛應(yīng)用和普及程度,下午題目考查ARM應(yīng)用方面或者32位其他的微處理器方面的應(yīng)用題目可能在不就將來的考試中就會出現(xiàn)。
6、單片機系統(tǒng)的基本概念
(1)單片機組成:中央處理器、存儲器、I/O設(shè)備。
(2)存儲器:物理實質(zhì)是一組或多組具備數(shù)據(jù)輸入/輸出和數(shù)據(jù)存儲功能的集成電路,用于充當(dāng)設(shè)備緩存或保存固定的程序及數(shù)據(jù)。
A、ROM(只讀存儲器):一般用于存放固定的程序或數(shù)據(jù)表格等,數(shù)據(jù)在掉電后仍然會保留下來。
B、RAM(隨機存儲器):用于暫存程序和數(shù)據(jù)、中間計算結(jié)果,或用作堆棧用等,數(shù)據(jù)在掉電后就會丟失。
(3)I/O端口:單片機與外界聯(lián)系的通道,它可以對各類外部信號(開關(guān)量、模擬量、頻率信號)進行檢測、判斷、處理,并可控制各類外部設(shè)備。現(xiàn)在的單片機I/O口已經(jīng)集成了更多的特性和功能,對I/O端口的功能進行了拓展和復(fù)用,例如外部中斷、ADC檢測以及PWM輸出等等。
(4)輸出電平:高電平電壓(輸出"1"時)和低電平電壓(輸出"0"時)
A、TTL電平:正邏輯,5V為邏輯正,0V為邏輯負,例如單片機的輸出。
B、RS232電平:負邏輯,-12V為邏輯正,+12V為邏輯負,例如PC的輸出。
注:因此在單片機和PC進行通訊的時候需要一個MAX232芯片進行電平轉(zhuǎn)換。
(5)堆棧:它是一種線性的數(shù)據(jù)結(jié)構(gòu),是一個只有一個進出口的一維空間。
A、堆棧特性:后進先出(LIFO)
B、堆棧指針:用于指示棧頂?shù)奈恢茫ǖ刂罚?,?dāng)發(fā)生壓?;蛘叱鰲2僮鲿r,導(dǎo)致棧頂位置變化時,堆棧指針會隨之變化。
C、堆棧操作:壓棧操作(PUSH)和出棧操作(POP)。
D、堆棧類型:"向上生長"型堆棧,每次壓棧時堆棧指針加1;"向下生長"型堆棧,每次壓棧堆棧時指針減1。
E、堆棧應(yīng)用:調(diào)用子程序、響應(yīng)中斷時,堆棧用于保護現(xiàn)場;還可以用作臨時數(shù)據(jù)緩沖區(qū)來使用。
F、使用注意:堆棧溢出問題,壓棧和出棧的匹配問題。
(6)定時/計數(shù)器:實質(zhì)都是計數(shù)器。用作定時器時是對單片機內(nèi)部的時鐘脈沖進行計數(shù),而在用作計數(shù)器時是對單片機外部的輸入脈沖進行計數(shù),其作用如下:
A、計時、定時或延時控制;
B、脈沖技術(shù);
C、測量脈沖寬度或頻率(捕獲功能)
(7)中斷:優(yōu)先級更高的事件發(fā)生,打斷優(yōu)先級低的時間進程。引起中斷的事件稱為中斷源。一個單片機可能支持多個中斷源,這些中斷源可以分為可屏蔽中斷和非可屏蔽中斷,而這些中斷源并不都是系統(tǒng)工作所需的,我們可以根據(jù)系統(tǒng)需求屏蔽那些不需要的中斷源。
A、中斷嵌套:當(dāng)一個低級中斷尚未執(zhí)行完畢,又發(fā)生了一個高級優(yōu)先級的中斷,系統(tǒng)轉(zhuǎn)而執(zhí)行高級中斷服務(wù)程序,待處理完高級中斷后再回過頭來執(zhí)行低級中斷服務(wù)程序。
B、中斷響應(yīng)時間是指從發(fā)出中斷請求到進入中斷處理所用的時間;中斷處理時間是指中斷處理開始到中斷處理結(jié)束的時間。
C、中斷響應(yīng)過程:
a、保護現(xiàn)場:將當(dāng)前地址、累加器ACC、狀態(tài)寄存器保存到堆棧中。
b、切換PC指針:根據(jù)不同的中斷源所產(chǎn)生的中斷,切換到相應(yīng)的入口地址。
c、執(zhí)行中斷服務(wù)處理程序。
d、恢復(fù)現(xiàn)場:將保存在堆棧中的主程序地址、累加器ACC、狀態(tài)寄存器恢復(fù)。
e、中斷返回:從中斷處返回到主程序,繼續(xù)執(zhí)行。
D、中斷入口地址:單片機為每個中斷源分配了不同的中斷入口地址,也稱為中斷向量。
(8)復(fù)位:通過外部電路給單片機的復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始運行。
A、復(fù)位發(fā)生時的動作:
a、PC指針從起始位置開始執(zhí)行(大多數(shù)單片機都時從0x0000處開始執(zhí)行)。
b、I/O端口設(shè)置成缺省狀態(tài)(高阻態(tài)、或者輸出低電平)。
c、部分專用控制寄存器SFR恢復(fù)到缺省狀態(tài)。
d、普通RAM不變(如果時上電復(fù)位,則是隨即數(shù))。
B、兩種不同的復(fù)位啟動方式:
a、冷啟動:也叫上電復(fù)位,指在斷電狀態(tài)下給系統(tǒng)加電,讓系統(tǒng)開始正常運行。
b、熱啟動:在不斷電的狀態(tài)下,給單片機復(fù)位引進一個復(fù)位信號,讓系統(tǒng)重新開始。
C、兩種類型的復(fù)位電路:高電平復(fù)位和低電平復(fù)位。
D注意事項:
a、
注意復(fù)位信號的電平狀態(tài)及持續(xù)時間必須滿足系統(tǒng)要求。
b、
注意避免復(fù)位信號抖動。
(9)時鐘電路:單片機是一種時序電路,必須提供脈沖電路才能正常工作。時鐘電路相當(dāng)于單片機的心臟,它的每一次跳動(振動節(jié)拍)都控制著單片機的工作節(jié)奏。振蕩得慢時,系統(tǒng)工作速度就慢,振蕩得快時,系統(tǒng)工作速度就快(功耗也增大)。
A、振蕩周期:振蕩源的振蕩節(jié)拍。
B、機器周期:單片機完成一個基本操作需要的振蕩周期(節(jié)拍)。
C、指令周期:執(zhí)行一條指令需要幾個機器周期。不同的指令需要的機器周期數(shù)不同。
7、ARM體系結(jié)構(gòu)的基本概念
(1)ARM:Advanced RISC Machine。
(2)ARM體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。
(3)ARM內(nèi)核有T、D、M、I四個功能模塊:
A、T模塊:表示16位Thumb,可以在兼顧性能的同時減少代碼尺寸。
B、D模塊:表示Debug,內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),通常為一個邊界掃描鏈JTAG。
C、M模塊:表示8位乘法器。
D、I模塊:表示EmbeddedICE Logic,用于實時斷點觀測及變量觀測的邏輯電路部分。
(4)ARM處理器有7種運行模式:
A、用戶模式(User):正常程序執(zhí)行模式,用于應(yīng)用程序。
D、快速中斷模式(FIQ):快速中斷處理,用于高速數(shù)據(jù)傳輸和通道處理。
C、外部中斷模式(IRQ):用于通用的中斷處理。
D、管理模式(SVE):供操作系統(tǒng)使用的一種保護模式。
E、數(shù)據(jù)訪問中止模式(Abort):用于虛擬存儲及存儲保護。
F、未定義指令中止模式(Undefined):當(dāng)未定義指令執(zhí)行時進入該模式。
G、系統(tǒng)模式(System):用于運行特權(quán)級的操作系統(tǒng)任務(wù)。
除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式,在這些模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進行處理器模式切換,其中,除了系統(tǒng)模式外,其他的5種特權(quán)模式又稱為異常模式。
處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數(shù)的用戶程序運行在用戶模式下,這時,應(yīng)用程序不能訪問一些受操作系統(tǒng)保護的系統(tǒng)資源,應(yīng)用程序也不能直接進行處理器模式切換。當(dāng)需要進行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進行處理器模式的切換。這種體系結(jié)構(gòu)可以使操作系統(tǒng)控制整個系統(tǒng)的資源。
當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進入相應(yīng)的異常模式。在每一種異常模式種都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證進入異常模式時,用戶模式下的寄存器不被破壞。
系統(tǒng)模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器,但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換,它主要供操作系統(tǒng)任務(wù)使用。
(5)ARM處理器共有37個寄存器:31個通用寄存器和6個狀態(tài)寄存器
A、通用寄存器包括R0~R15,可以分為3類:
a、未備份寄存器R0~R7:在所有的處理器模式下,未備份寄存器都是指向同一個物理寄存器。
b、備份寄存器R8~R14:
對于R8~R12來說,每個寄存器對于2個不同的物理寄存器,它們每次所訪問的物理寄存器都與當(dāng)前的處理器運行模式有關(guān)。
對于R13、R14來說,每個寄存器對于6個不同的物理寄存器,其中一個是用戶模式和系統(tǒng)模式共用。
R13在ARM指令種常用作堆棧指針。由于處理器的每種運行模式都有自己獨立的物理寄存器R13,所有在用戶應(yīng)用程序的初始化部分,一般要初始化每種模式下的R13,使其指向該運行模式的??臻g。
R14又稱為連接寄存器(LR),在ARM體系種具有下面兩種特殊作用:在通過BL或BLX指令調(diào)用子程序時,存放當(dāng)前子程序的返回地址;在異常中斷發(fā)生時,存放異常模式將要返回的地址。
c、程序計數(shù)器R15(PC)。
由于ARM采用了流水線機制,在三級流水線中,當(dāng)正確讀取了PC的值時,該值為當(dāng)前指令地址值加8個字節(jié)。也就是說,PC指向當(dāng)前指令的下兩條指令的地址。在ARM指令狀態(tài)下,PC的0和1位是0,在Thumb指令狀態(tài)下,PC的0位是0。
B、程序狀態(tài)寄存器
a、ARM體系結(jié)構(gòu)包含1個當(dāng)前程序狀態(tài)寄存器(CPSR)和5個備份的程序狀態(tài)寄存器(SPSR),使用MSR和MRS指令來設(shè)置和讀取這些寄存器。
b、當(dāng)前程序狀態(tài)寄存器CPSR:保存當(dāng)前處理器狀態(tài)的信息,可以在任何處理器模式下被訪問。
c、備份程序狀態(tài)寄存器SPSR:每一種異常處理器模式下都有一個專用的物理狀態(tài)寄存器。當(dāng)特定的異常中斷發(fā)生時,這個寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容,在異常中斷程序退出時,可以用SPSR中保存的值來恢復(fù)CPSR。
d、由于用戶模式和系統(tǒng)模式不屬于異常模式,它們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR時,結(jié)果是未知的。
(6)ARM指令的尋址方
所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。
A、
立即尋址:操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。
ADD
R0, R0, #1
;R0?R0+1
B、
寄存器尋址:利用寄存器中的數(shù)值作為操作數(shù)。
ADD
R0, R1, R2
;R0?R1+R2
C、
寄存器間接尋址:以寄存器中的值作為操作數(shù)地址,而操作數(shù)本身存放在存儲器中。
ADD
R0, R1, [R2]
;R0?R1+[R2]
LDR
R0, [R1]
;R0?[R1]
STR
R0, [R1]
;[R1]?R0
D、基址變址尋址:將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)的有效地址。
LDR
R0, [R1, #4]
;R0?[R1+4]
LDR
R0, [R1, #4]!
;R0?[R1+4]
R1?R1+4
LDR
R0, [R1], #4
;R0?[R1]
R1?R1+4
LDR
R0, [R1, R2]!
;R0?[R1+R2]
E、
多寄存器尋址:一條指令可以完成多個寄存器值的傳送。
LDMIA
R0, {R1, R2, R3}
;R1?[R0]
R2?[R0+4]
R3?[R0+8]
F、
相對尋址:以程序計數(shù)器PC的當(dāng)前值作為基地址,指令中的地址標(biāo)號作為偏移量,兩者相加之后得到操作數(shù)的有效地址。
BL
NEXT
;跳轉(zhuǎn)到子程序NEXT處執(zhí)行
……
NEXT
……
MOV
PC, LR
;從子程序返回
G、堆棧尋址:支持4種類型的堆棧工作方式:
a、
滿遞增堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生長。
b、
滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生長。
c、
空遞增堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由低地址向高地址生長。
d、
空遞減堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生長。
(7)ARM的存儲方法
A、大端模式:數(shù)據(jù)的高字節(jié)存儲在低地址中,低字節(jié)存儲在高地址中。
B、小端模式:數(shù)據(jù)的低字節(jié)存儲在低地址中,高字節(jié)存儲在高地址中。
(8)ARM中斷與異常
A、ARM內(nèi)核支持7種中斷,不同的中斷處于不同的處理模式,具有不同的優(yōu)先級,而且每個中斷都有固定的中斷地址入口。當(dāng)一個中斷發(fā)生是,相應(yīng)的R14(LR)存儲中斷返回地址,SPSR存儲當(dāng)前程序狀態(tài)寄存器CPSR的值。
B、由于ARM內(nèi)核支持流水線工作,LR寄存器存儲的地址可能是發(fā)生中斷后面指令的地址,所以不同的中斷處理完成后,必須將LR寄存器值經(jīng)過處理后再寫入P15(PC)寄存器。
C、ARM異常的具體含義:
a、復(fù)位:當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到異常復(fù)位異常處理程序處執(zhí)行。
b、未定義的指令:當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??梢允褂迷摦惓C制進行軟件仿真。
c、軟件中斷:該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。可使用該異常機制實現(xiàn)操作系統(tǒng)調(diào)用功能。
d、指令預(yù)取中止:如果處理器預(yù)取指令的地址不存在或該地址不允許當(dāng)前指令訪問,存儲器向處理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。
e、數(shù)據(jù)訪問中止:如果處理器數(shù)據(jù)訪問指令的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,處理器產(chǎn)生數(shù)據(jù)訪問中止異常。
f、外部中斷請求:當(dāng)ARM外部中斷請求管腳有效,而且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可以通過該異常請求中斷服務(wù)。
g、快速中斷請求:當(dāng)ARM快速中斷請求管腳有效,而且CPSR的F位為0時,產(chǎn)生FIQ異常。
D、ARM處理器對異常中斷的響應(yīng)過程
a、將下一條指令的地址存入相應(yīng)的連接寄存器LR中。
b、將CPSR復(fù)制到相應(yīng)的SPSR中。
c、根據(jù)異常的類型,強制設(shè)置CPSR的運行模式位。
d、強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。
E、ARM處理器從異常中斷處理程序中返回
a、恢復(fù)中斷的程序的處理器狀態(tài),將SPSR復(fù)制到CPSR中。
b、若在進入異常處理時設(shè)置了中斷禁止位,要在此清除。
c、將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC。
F、復(fù)位異常中斷處理程序不需要返回。在復(fù)位異常中斷程序開始整個用戶程序的執(zhí)行。
三、真題解析
1、2007年上午49題
在ARM處理器中,(49) 寄存器包括全局的中斷禁止位,控制中斷禁止位就可以打開或者關(guān)閉中斷。
(49)A.
CPSR
B.
SPSR
C.
PC
D.
IR
<答案>:A
考查ARM體系結(jié)構(gòu)的基礎(chǔ)知識,CPSR為當(dāng)前程序狀態(tài)寄存器,包含全局中斷控制位。
2、2007年下午試題一(題目略)
考查8051定時器應(yīng)用、外部時鐘硬件連接、實際項目流程設(shè)計以及尋址方式。
3、2006年上午27題
通常所說的32位微處理器是指(27)
(27)A. 地址總線的寬度為32位
B. 處理器數(shù)據(jù)長度只能為32位
C. CPU字長為32位
D. 通用寄存器數(shù)目為32個
<答案>:C
根據(jù)常識,很容易將B和D排除掉。
所謂字長,指CPU在單位時間內(nèi)(同一時間)能一次處理的二進制數(shù)的位數(shù)。
因此,能處理字長為8位數(shù)據(jù)的CPU通常就叫8位的CPU,32位CPU的字長為32位。
對于字長和字節(jié),通常8位稱為一個字節(jié),而字長的長度是不固定的,對于不同的CPU,字長的長度不一樣。8位的CPU一次只能處理一個字節(jié),而32位的CPU一次就能處理4個字節(jié)。
四、小結(jié)
從這兩年的考試真題來看,關(guān)于嵌入式微處理器方面的題目不多,06和07年上午題目各一題。而且考的都是基礎(chǔ)中的基礎(chǔ)概念。這些幾乎就是每個搞計算機或者單片機的人一進門就要理解的概念。雖然考試的題目不多,然而對嵌入式微處理器的很多基本概念和原理的理解對試卷上的其他題目的解答都有一點的幫助。隨著ARM技術(shù)的飛速普及,07年也開始出現(xiàn)ARM體系結(jié)構(gòu)的題目,我覺得在今后的考試中,這方面題目可能會不斷出現(xiàn)。在下午題目中,一道硬件相關(guān)的題目是少不了的,嵌入式微處理器作為嵌入式系統(tǒng)的核心,多多少少會設(shè)計到。06年考查X86,07年考查MCS-51,這是計算機也可以說是嵌入式發(fā)展和普及的一個過程,今后會不會考查ARM的應(yīng)用呢?完全有這個可能性。然而目前MCU的市場仍然火爆,最近ARM推出的cortex-M3也不不斷占領(lǐng)MCU的市場,可見MCS-51的為基礎(chǔ)的應(yīng)用仍然不斷涌現(xiàn)。07年考查了8051的應(yīng)用,今后我覺得可能還會繼續(xù)出的吧。
嵌入式系統(tǒng)設(shè)計師考試筆記之操作系統(tǒng)基礎(chǔ)
一、引言
原定于11月8號的嵌入式系統(tǒng)設(shè)計師考試由于某種原因推遲,得以讓我有時間再寫幾篇文章,在最后的時刻為大家提供最后的幫助。
我覺得,嵌入式系統(tǒng)設(shè)計主要包含系統(tǒng)設(shè)計、硬件設(shè)計和軟件設(shè)計。其中大部分工作是嵌入式軟件方面,包括操作系統(tǒng)的移植、系統(tǒng)體系架構(gòu)設(shè)計、設(shè)備驅(qū)動程序編寫、用戶應(yīng)用程序設(shè)計等等。所以在嵌入式系統(tǒng)設(shè)計師的考試中也應(yīng)該集中在這幾點上面。前面的幾篇文章對嵌入式硬件方面做了幾個總結(jié),現(xiàn)在對嵌入式軟件方面做一些個人的歸納,再結(jié)合歷年真題分析一下,對我認為常見的考點梳理了一下,不知道對大家有沒有用處。
在嵌入式軟件設(shè)計中,操作系統(tǒng)基礎(chǔ)尤為重要,可以考查的考點也特別的多。我覺得它的地位就跟四六級英語考試中的閱讀部分一樣。這部分內(nèi)容不能吃透,很難將這個考試拿下來,當(dāng)然也有例外的。我只是想說明這部分的重要性。閑話少數(shù),進入正題。
二、復(fù)習(xí)筆記
1、嵌入式軟件基礎(chǔ)
(1)嵌入式軟件的特點:
A、規(guī)模較小。
B、開發(fā)難度大。
C、實時性和可靠性要求高。
D、要求固化存儲。
(2)嵌入式軟件分類:
A、系統(tǒng)軟件:控制和管理嵌入式系統(tǒng)資源,如嵌入式操作系統(tǒng)、驅(qū)動程序、中間件等。
B、應(yīng)用軟件:定義嵌入式設(shè)備的主要功能和用途,負載與用戶進行交互。
C、支撐軟件:輔助軟件開發(fā)的工具軟件。
(3)無操作系統(tǒng)的嵌入式軟件的兩種實現(xiàn)方式:
A、循環(huán)輪轉(zhuǎn)
優(yōu)點:簡單、直觀、開銷小、可預(yù)測。
缺點:過于簡單,所有代碼順序執(zhí)行,無法處理異步事件,缺乏并行處理能力。
B、前后臺系統(tǒng)(在循環(huán)輪轉(zhuǎn)的基礎(chǔ)上增加了中斷處理功能)
前臺(事件處理級):中斷服務(wù)程序,負載處理異步事件。
后臺(任務(wù)級):一個無限循環(huán),負載資源分配、任務(wù)管理和系統(tǒng)調(diào)度。
(4)有操作系統(tǒng)的三大優(yōu)點:
A、提高系統(tǒng)的可靠性。
B、提高了系統(tǒng)的開發(fā)效率,降低了開發(fā)成本,縮短了開發(fā)周期。
C、有利于系統(tǒng)的擴展與移植。
(5)設(shè)備驅(qū)動層(也叫板級支持包BSP:包含了嵌入式系統(tǒng)中所有與硬件相關(guān)的代碼)
大多數(shù)的嵌入式硬件設(shè)備都需要某種類型軟件的初始化和管理。這部分工作由設(shè)備驅(qū)動層來完成的,它負責(zé)直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的驅(qū)動支持,類似PC系統(tǒng)中的BIOS和驅(qū)動程序。
(6)板級支持包BSP的基本思想
把嵌入式操作系統(tǒng)與具體的硬件平臺隔離開來。在BSP當(dāng)中,把所有與硬件相關(guān)的代碼都封裝起來,并向上提供一個虛擬的硬件平臺,而操作系統(tǒng)就運行在這個虛擬的硬件平臺上。它使用一組定義好的編程接口來與BSP進行交互,并通過BSP來訪問真正的硬件。
(7)一般來說。BSP主要包括兩個方面的內(nèi)容:
A、引導(dǎo)加載程序BootLoader。
B、設(shè)備驅(qū)動程序。
(8)關(guān)于引導(dǎo)加載程序BoorLoader
引導(dǎo)加載程序是嵌入式系統(tǒng)加電后運行的第一段軟件代碼,是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序,它的實現(xiàn)高度依賴于具體的硬件平臺,主要的基本功能如下:
A、 片級初始化:純硬件初始化過程,把微處理器從上電的默認狀態(tài)設(shè)置成系統(tǒng)要求的工作狀態(tài)。
B、 板級初始化:同時有軟件和硬件在內(nèi)的初始化過程,設(shè)置各種硬件的寄存器和設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù)。
C、 加載內(nèi)核:將操作系統(tǒng)和應(yīng)用程序的映象從Flash存儲器復(fù)制到系統(tǒng)內(nèi)存當(dāng)中,然后跳轉(zhuǎn)到系統(tǒng)內(nèi)核的第一條指令處繼續(xù)執(zhí)行。
補充:PC系統(tǒng)的引導(dǎo)加載過程。
PC系統(tǒng)的引導(dǎo)加載程序由兩部分代碼組成――BIOS和MBR中的引導(dǎo)程序。BIOS在完成硬件檢測和資源配置后,將硬盤主引導(dǎo)記錄MBR中的引導(dǎo)程序讀到系統(tǒng)的內(nèi)存當(dāng)中,然后將控制權(quán)交給它,由它負責(zé)把操作系統(tǒng)的內(nèi)核映象從硬盤讀入到內(nèi)存,然后跳轉(zhuǎn)到內(nèi)核入口去運行,即啟動操作系統(tǒng)。
(9)設(shè)備驅(qū)動程序
在一個嵌入式系統(tǒng)中,操作系統(tǒng)可能有也可能無,但是設(shè)備驅(qū)動程序是必不可少的。設(shè)備驅(qū)動程序,就是一組庫函數(shù),用來對硬件進行初始化和管理,并向上層軟件提供良好的訪問接口。大多數(shù)設(shè)備驅(qū)動程序都具備下面的基本功能:啟動、關(guān)閉、停用、啟用、讀操作、寫操作。這些功能一般用函數(shù)的形式來實現(xiàn),這些函數(shù)之間的組織結(jié)構(gòu)主要有兩種:分層結(jié)構(gòu)和混合結(jié)構(gòu)。
(10)關(guān)于分層結(jié)構(gòu)
A、硬件接口:直接操作和控制硬件。
B、調(diào)用接口:不直接跟硬件大交道,為上層軟件提供服務(wù)和函數(shù)接口。
C、優(yōu)點:把所有與硬件相關(guān)的細節(jié)都封裝在硬件接口中,在硬件需要升級,需要更新設(shè)備驅(qū)動程序的時候,只需要改動硬件接口中的函數(shù)即可,而上層調(diào)用接口中的函數(shù)不用做任何修改。
D、混合結(jié)構(gòu):在設(shè)備驅(qū)動程序當(dāng)中,沒有明確的層次關(guān)系,上層接口和硬件接口混在一起,相互調(diào)用。
(11)嵌入式中間件
它是在操作系統(tǒng)內(nèi)核、設(shè)備驅(qū)動程序和應(yīng)用軟件之外的所有系統(tǒng)軟件,其基本思路是:把原本屬于應(yīng)用軟件層的一些通用的功能模塊抽取出來,形成獨立的一層軟件,從而為運行在它上面的那些應(yīng)用軟件提供一個靈活、安全。移植性好、相互通信、協(xié)同工作的平臺。
2、嵌入式操作系統(tǒng)概述
(1)內(nèi)核
內(nèi)核是指操作系統(tǒng)中的一個組件,它包含了OS的主要功能,即OS的各種特性及其相互之間的依賴關(guān)系,這些功能主要包括:
A、任務(wù)管理:對系統(tǒng)中運行的軟件進行描述和管理,并完成處理器資源分配和調(diào)度。
B、存儲管理:提高內(nèi)存的利用率,方便用戶使用,提供足夠的存儲空間。
C、設(shè)備管理:方便設(shè)備的使用,提高CPU和I/O設(shè)備的利用率。
D、文件管理:解決文件資源存儲、共享、保密和保護等問題。
注:不同嵌入式操作系統(tǒng)的內(nèi)核設(shè)計各不相同,取決于系統(tǒng)設(shè)計和實際需求。
(2)嵌入式操作系統(tǒng)分類:
A、按系統(tǒng)類型:商業(yè)系統(tǒng)、專用系統(tǒng)、開源系統(tǒng)。
B、按響應(yīng)時間:硬實時系統(tǒng)、軟實時系統(tǒng)。
C、按軟件結(jié)構(gòu):單體結(jié)構(gòu)(uCOS)、分層結(jié)構(gòu)(MS-DOS)、微內(nèi)核結(jié)構(gòu)(Vxworks)。
3、任務(wù)管理
(1)嵌入式操作系統(tǒng)的任務(wù)管理可以分為:
A、單道程序技術(shù):操作系統(tǒng)中,任何時候只能有一個程序在運行。
B、多道程序技術(shù):操作系統(tǒng)中,允許多個程序同時存在并運行。
(2)進程
進程,簡單的說,是一個正在運行的程序。
進程與程序既有聯(lián)系又有區(qū)別,主要表現(xiàn)為下面結(jié)構(gòu)方面:
A、程序由數(shù)據(jù)和代碼兩部分內(nèi)容組成,它是一個靜態(tài)的概念。而進程是正在執(zhí)行的程序,它也由兩部分組成:程序和該程序的運行上下文。它是一個動態(tài)的概念。
B、程序和進程之間并不是一一對應(yīng)的。一個進程在運行的時候可以啟動一個或多個程序。反之,同一個程序也可能由多進程同時執(zhí)行。
C、程序可以作為一種軟件資源長期保存,以文件的形式存放在光盤或硬盤上,而進程則是一次執(zhí)行的過程,它是暫時的,是動態(tài)的產(chǎn)生和終止。
一個進程至少應(yīng)包括三個方面:相應(yīng)的程序、CPU上下文、一組系統(tǒng)資源。
進程有三個特性:
A、 動態(tài)性:進程是正在運行的程序,而程序的運行狀態(tài)是不斷變化的。
B、 獨立性:進程是系統(tǒng)資源的使用單位,每個進行有自己的運行上下文和內(nèi)部狀態(tài)。
C、 并發(fā)性:宏觀來看,系統(tǒng)中同時有多個進程存在,它們相互獨立地運行。
注:對于并發(fā)的理解。
在單CPU的情況下,所謂的并發(fā)性指的是宏觀上的并發(fā)運行,而微觀上還是順序進行,各個進程輪流去使用CPU資源。在單核CPU中,真正的、物理上的PC寄存器只有一個,進程在輪流執(zhí)行的時候,物理PC的取值也在不斷變化。而邏輯PC其實就是一個內(nèi)存變量。每個進程都有一個邏輯PC,當(dāng)一個進程要運行的時候,就把它的邏輯PC裝載到物理PC中去;反之,當(dāng)一個進程暫不運行的時候,就把物理PC中的值保存在它的邏輯PC當(dāng)中。
(3)線程
線程就是進程當(dāng)中的一條執(zhí)行流程。
進程其實包含兩個部分:資源平臺和執(zhí)行流程(線程)。
在一個進程當(dāng)中,或者說在一個資源平臺上,可以同時存在多個線程;可以用線程作為CPU的基本調(diào)度單位,使得各個線程之間可以并發(fā)執(zhí)行;對于同一個進程當(dāng)中的各個線程來說,他們可以共享該進程的大部分資源。每個線程都有自己獨立的CPU運行上下文和棧,這是不能共享的。
(4)任務(wù)
在嵌入式系統(tǒng)中,任務(wù)其實就是線程,它是能夠獨立運行的一個實體。原因有二:
A、 任務(wù)具有獨立的優(yōu)先級和??臻g,CPU上下文一般存放在??臻g中。
B、 任務(wù)之間可以很方便地、直接地使用共享的內(nèi)存單元,而不需要經(jīng)過系統(tǒng)內(nèi)核。
在多道程序的嵌入式系統(tǒng)中,同時存在著多個任務(wù),這些任務(wù)之間的結(jié)構(gòu)一般為層狀結(jié)構(gòu),存在著父子關(guān)系。當(dāng)嵌入式內(nèi)核剛剛啟動的時候,只有一個任務(wù)存在,然后由該任務(wù)派生出所有其他任務(wù)。
(5)任務(wù)的創(chuàng)建與中止(教程P270)
任務(wù)的創(chuàng)建主要發(fā)生在以下三種情形:
A、 系統(tǒng)初始化。
B、 任務(wù)運行的過程中。
C、 用戶提出請求。
從技術(shù)的角度來說,實際上新任務(wù)只有一種創(chuàng)建的方法,也就是在一個已經(jīng)存在的任務(wù)中,通過調(diào)用相應(yīng)的系統(tǒng)函數(shù)來創(chuàng)建一個新的任務(wù)。
任務(wù)的創(chuàng)建只要有兩種可能的實現(xiàn)模型:fork/exec和spawn。兩種模型的差別主要在于內(nèi)存的分配方式。
A、fork/exec模型下,首先調(diào)用fork函數(shù)為新任務(wù)創(chuàng)建一份與父任務(wù)完全相同的內(nèi)存空間,然后再調(diào)用exec函數(shù)裝入新任務(wù)的代碼,并用它來覆蓋原有的屬于父任務(wù)的內(nèi)容。嵌入式Linux操作系統(tǒng)是基于fork/exec模型的。
B、spawn模式下,在創(chuàng)建新任務(wù)的時候,直接為它分配一個全新的地址空間,然后將新任務(wù)的代碼裝入并運行。uCOS操作系統(tǒng)是基于spawn模型的。
任務(wù)的中止可能有多種原因,主要有下面三種情況:
A、 正常退出。
B、 錯誤推出。
C、 被其他任務(wù)踢出。
在有些嵌入式系統(tǒng)中,尤其是一些控制系統(tǒng)中,它的某些任務(wù)被設(shè)計為"死循環(huán)"的模式,一直循環(huán)下去,不會中止。
(6)任務(wù)的狀態(tài)
任務(wù)有三中基本狀態(tài):
A、 運行狀態(tài):任務(wù)占有CPU,并在CPU上運行。
B、 就緒狀態(tài):任務(wù)已經(jīng)具備運行的條件,在等待CPU空閑。
C、 阻塞狀態(tài):任務(wù)因為正在等待某種事件的發(fā)生而暫時不能運行。
對于就緒狀態(tài)和阻塞狀態(tài),它們的相同之處在于,任務(wù)都是處于暫停狀態(tài),沒有運行。不同之處在于,暫停的原因是不一樣的,導(dǎo)致就緒狀態(tài)的原因是外因,是操作系統(tǒng)的CPU正忙,而導(dǎo)致阻塞狀態(tài)的原因是內(nèi)因,是任務(wù)自身的問題。
任務(wù)狀態(tài)的四種轉(zhuǎn)換關(guān)系:任務(wù)由 時間 褃
A、 運行à阻塞:任務(wù)由于等待某個時間被阻塞起來。
B、 運行à就緒:調(diào)度器由于某種原因(例如優(yōu)先級)選擇了另一個任務(wù)去運行。
C、 就緒à運行:CPU空閑了,處于就緒狀態(tài)的任務(wù)被調(diào)度器選中去運行。
D、阻塞à就緒:任務(wù)的等待事件完成,具備了繼續(xù)運行的條件。
(7)任務(wù)控制塊TCB
任務(wù)控制塊TCB,就是在操作系統(tǒng)中,用來描述和管理一個任務(wù)的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)為每一個任務(wù)都維護了一個相應(yīng)的TCB,用來保存該任務(wù)的各種相關(guān)信息。它的主要內(nèi)容包括下面幾項:
A、 任務(wù)的管理信息:任務(wù)的標(biāo)識ID、狀態(tài)、優(yōu)先級、調(diào)度信息、各種隊列指針等。
B、 CPU上下文信息:CPU各種寄存器當(dāng)前的值以及邏輯寄存器。
C、 資源管理的信息:段表地址、頁表地址、根目錄、文件描述字等。
當(dāng)需要創(chuàng)建一個任務(wù)的時候,就為它生成一個TCB,并初始化這個TCB的內(nèi)容;當(dāng)需要中止一個任務(wù)的時候,只要回收它的TCB就可以了。
(7)任務(wù)的切換
基本思想:把當(dāng)前任務(wù)的運行上下文保存起來,并恢復(fù)新任務(wù)的上下文。
任務(wù)切換通常有下面的基本步驟:
A、 將處理器的運行上下文保存在當(dāng)前任務(wù)的TCB中。
B、 更新當(dāng)前任務(wù)的狀態(tài),從運行狀態(tài)變?yōu)榫途w狀態(tài)或阻塞狀態(tài)。
C、 按照一定的策略,從所有處于就緒狀態(tài)的任務(wù)中選擇一個去運行。
D、修改新任務(wù)的狀態(tài),從就緒狀態(tài)變成運行狀態(tài)。
E、 根據(jù)新任務(wù)的TCB的內(nèi)容,恢復(fù)它的運行上下文環(huán)境。
在一個多任務(wù)的操作系統(tǒng)中,采用任務(wù)隊列的方式來組織它的所有任務(wù)。由操作系統(tǒng)來維護一組隊列,用來表示系統(tǒng)當(dāng)中所有任務(wù)的當(dāng)前狀態(tài),不同的狀態(tài)用不同的隊列來標(biāo)志。
(8)任務(wù)的調(diào)度
調(diào)度器可以看作CPU的資源管理者。
任務(wù)調(diào)度的首要問題是:何時進行調(diào)度,即調(diào)度發(fā)生的時機。一般有下面幾種情形:
A、 一個新任務(wù)被創(chuàng)建時,需要決定運行新任務(wù)還是繼續(xù)執(zhí)行父任務(wù)。
B、 一個任務(wù)運行結(jié)束時,需要從就緒隊列中選擇某個任務(wù)去運行。
C、 一個任務(wù)運行阻塞時,需要選擇另一個任務(wù)去運行。
D、一個I/O操作完成,任務(wù)阻塞結(jié)束,立即執(zhí)行新就緒任務(wù)還是繼續(xù)執(zhí)行被中斷任務(wù)。
E、 一個時鐘節(jié)拍結(jié)束時,需要對就緒任務(wù)重新調(diào)度。
任務(wù)調(diào)度的第二個問題是:如何調(diào)度,即調(diào)度方式。主要有兩種方式:
A、 不可搶占調(diào)度方式:例如時間片輪轉(zhuǎn)。
B、 可搶占調(diào)度方式:例如優(yōu)先級調(diào)度。
實時操作系統(tǒng)大都采用可搶占調(diào)度方式。
任務(wù)調(diào)度的第三個問題是:調(diào)度算法。
A、 先來先服務(wù)算法:按照任務(wù)到達的先后次序進行調(diào)度,是不可搶占的調(diào)度方式。
B、 短作業(yè)優(yōu)先算法:各個任務(wù)開始執(zhí)行之前,事先預(yù)計好它的執(zhí)行時間,從中選擇用時較短的任務(wù)優(yōu)先執(zhí)行。
C、 時間片輪轉(zhuǎn)算法:所有的就緒任務(wù)按照先來先服務(wù)的原則排成一個隊列。在每次調(diào)度的時候,把處理器分派給隊列當(dāng)中的第一個任務(wù),讓它去執(zhí)行一小段時間。在這個時間段里任務(wù)被阻塞或由于其他原因暫停,或者任務(wù)的時間片用完了,它會被送到就緒隊列的末尾,然后調(diào)度器再執(zhí)行當(dāng)前隊列的第一個任務(wù)。這種算法的優(yōu)點是各個就緒任務(wù)都平均地分配使用CPU的時間,每個就緒任務(wù)都能一直保持著活動性。時間片輪轉(zhuǎn)法有一個默認前提,即位于就緒隊列中的各個任務(wù)是同等重要的。
D、優(yōu)先級算法:給每個任務(wù)都設(shè)置一個優(yōu)先級。然后在任務(wù)調(diào)度的時候,在所有處于就緒狀態(tài)的任務(wù)中選擇優(yōu)先級最高的那個任務(wù)去運行。采用優(yōu)先級調(diào)度算法的一個問題是可能會發(fā)生優(yōu)先級反轉(zhuǎn)(教程P285),出現(xiàn)任務(wù)"饑餓"現(xiàn)象。
(9)實時系統(tǒng)調(diào)度
對于RTOS調(diào)度器來說,任務(wù)之間的公平性并不是最重要的,它追求的是實時性。
A、單調(diào)速率調(diào)度算法(RMS):任務(wù)的優(yōu)先級與它的周期表現(xiàn)為單調(diào)函數(shù)的關(guān)系,任務(wù)的周期越短,優(yōu)先級越高,任務(wù)的周期越長,優(yōu)先級越低。RMS假定任務(wù)是相同獨立的、周期性的、任務(wù)在能夠在任何位置被搶占,而實際中的系統(tǒng),任務(wù)之間需要進行通信和同步,這是一種理想的調(diào)度方法,實際中并不一定存在。
B、最早期限優(yōu)先法(EDF):根據(jù)任務(wù)的截止時間來確定其優(yōu)先級,對于時間限期最近的任務(wù),分配最高的優(yōu)先級。當(dāng)有一個新的任務(wù)處于就緒狀態(tài)時,各個任務(wù)的優(yōu)先級就有可能要進行調(diào)整,選擇截止時間最近的任務(wù)去運行。
(10)任務(wù)互斥
A、任務(wù)之間的關(guān)系:相互獨立、任務(wù)互斥、任務(wù)同步、任務(wù)通信。
B、任務(wù)間的互斥:當(dāng)前已經(jīng)有一個任務(wù)正在訪問臨界區(qū)共享數(shù)據(jù),那么其他任務(wù)暫時不能訪問。
C、提出互斥訪問的四個條件:
a、在任何時候最多只能有一個任務(wù)位于它的臨界區(qū)中。
b、不能事先假定CPU的個數(shù)和系統(tǒng)的運行速度。
c、沒有任務(wù)位于它的臨界區(qū)中,它不妨礙其他任務(wù)去訪問臨界區(qū)資源。
d、任何一個任務(wù)進入臨界區(qū)的請求必須在有限的時間內(nèi)得到滿足,不能無限期。
D、任務(wù)互斥的解決方案:
a、關(guān)閉中斷法
b、繁忙等待法
c、信號量處理
(11)信號量
信號量記錄當(dāng)前可用資源的數(shù)量。
信號量由操作系統(tǒng)維護,任務(wù)不能直接去修改它的值,只能通過初始化和兩個標(biāo)準原語(PV原語)來對它進行訪問。
注:關(guān)于原語。
原語通常由若干條語句組成,用來實現(xiàn)某個特點的操作,并通過一段不可分割或不可中斷的程序來實現(xiàn)其功能。原語時操作系統(tǒng)內(nèi)核的一個組成部分,必須在內(nèi)核態(tài)下執(zhí)行。原語的不可中斷性是通過在其執(zhí)行過程中關(guān)閉中斷來實現(xiàn)的。關(guān)鍵要理解PV原語的實現(xiàn):
P(semaphores S)
{
--S.count;//申請一個資源
if(S.count < 0)????????//沒有空閑資源
{
將當(dāng)前任務(wù)阻塞起來,加到阻塞隊列末尾,調(diào)度新的任務(wù)運行。
}
}
V(semaphores S)
{
++S.count;//釋放一個資源
if(S.count <= 0)????????//有任務(wù)被阻塞
{
從阻塞隊列中取出一個任務(wù),把該任務(wù)改為就緒狀態(tài),插入就緒隊列。
}
}
利用操作系統(tǒng)提供的信號量機制,可以方便、有效地實現(xiàn)對臨界資源的互斥訪問,優(yōu)點有兩個:
A、 可以設(shè)置信號量的計數(shù)值,從而允許多個任務(wù)同時進入臨界區(qū)。
B、 當(dāng)一個任務(wù)暫時無法進入臨界區(qū)時,它會被阻塞起來,將CPU讓給其他任務(wù)。
(12)任務(wù)同步2
任務(wù)之間的同步可以使用信號量機制,通過引入PV操作來設(shè)定兩個任務(wù)在運行時的先后順序。例如,可以把信號量視為某個共享資源的當(dāng)前個數(shù),然后由一個任務(wù)負責(zé)生成這種資源,而另一個任務(wù)則負責(zé)消費這種資源,這樣可以構(gòu)成兩個任務(wù)之間的先后順序。在具體實現(xiàn)上,一般把信號量的初始值設(shè)為N,N大于或等于0。然后在一個任務(wù)內(nèi)使用V原語,把信號量加1,而在另外一個任務(wù)內(nèi)部使用P原語,將信號量減1,從而實現(xiàn)這兩個任務(wù)之間的同步關(guān)系。
(13)死鎖
在一組任務(wù)中,每個任務(wù)都占用著若干資源,同時又在等待其他任務(wù)占用的資源,從而造成所有任務(wù)都無法進展下去的現(xiàn)象,這稱為死鎖現(xiàn)象。
除了資源的競爭之外,PV操作使用不當(dāng)也會引起死鎖。
(14)信號
所謂信號,是系統(tǒng)給任務(wù)的一個指示,表明某個異步事件已經(jīng)發(fā)生了。
該事件可能來自外部,也可能來自內(nèi)部。
信號機制也可以稱為軟中斷機制。
信號機制與中斷處理機制非常相似,相同點:
A、 都具有中斷性。
B、 都有相應(yīng)的服務(wù)程序。
C、 都可以屏蔽響應(yīng)。
不同點:
A、 中斷由硬件或特定指令產(chǎn)生,而信號由系統(tǒng)調(diào)用產(chǎn)生。
B、 中斷觸發(fā)后,硬件會根據(jù)中斷向量找到相應(yīng)的處理程序執(zhí)行;而信號則通過發(fā)送信號的系統(tǒng)調(diào)用來觸發(fā),系統(tǒng)不一定馬上對它進行處理。
C、 中斷處理程序在系統(tǒng)內(nèi)核的上下文中運行,是全局的;而信號處理程序在相關(guān)任務(wù)的上下文中運行,是任務(wù)的一個組成部分。
(15)任務(wù)間通信
任務(wù)之間的通信可以分為兩種類型:
A、 低級通信:只能傳遞狀態(tài)和整數(shù)值等控制信息,例如信號量機制。
B、 高級通信:能夠傳輸任意數(shù)量的數(shù)據(jù),只要有三類:共享內(nèi)存、消息傳遞和管道。
任務(wù)之間的通信方式有兩種:
A、 直接通信:通信雙方必須明確知道與之通信的對象。例如PV原語。
B、 間接通信:通信雙方不需指出消息的來源和去向,通過共享郵箱發(fā)送和接收消息。
郵箱只能存放單條消息,它提供一種低開銷的消息傳遞機制,只有空和滿兩種狀態(tài)。消息隊列與郵箱類似,但是可以同時存放若干條消息,提供了一種任務(wù)間緩沖通信的方法。
管道由UNIX首創(chuàng),以文件系統(tǒng)為基礎(chǔ),連接兩個任務(wù)之間的一個打開的共享文件,專用于任務(wù)直接的數(shù)據(jù)通信。
4、存儲管理
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
5、設(shè)備管理
(1)設(shè)備管理基礎(chǔ)
一個I/O單元通常由兩個部分組成:
A、 機械部分:I/O設(shè)備本身。
B、 電子部分:設(shè)備控制器或設(shè)備適配器。
硬件寄存器的編址方式有三種:
A、I/O獨立編址:對于各種設(shè)備控制器中的每一個寄存器,分配一個唯一的I/O端口編號,也叫I/O端口地址,然后用專門的I/O指令對這些端口進行操作。這些端口地址構(gòu)成的地址空間是完全獨立的,與內(nèi)存地址空間沒有任何關(guān)系。
B、內(nèi)存映象編址:把各種設(shè)備控制器當(dāng)中的每一個寄存器都映射為一個內(nèi)存單元,這內(nèi)存單元專門用于I/O操作。端口地址空間與內(nèi)存地址空間是統(tǒng)一編址的,端口地址空間是內(nèi)存地址空間的一部分。
C、混合編址:對于設(shè)備控制器當(dāng)中的寄存器采用獨立編址的方法,每個寄存器有一個獨立的I/O端口地址;而對于設(shè)備的數(shù)據(jù)緩沖區(qū),則采用內(nèi)存映象編址的方法,把他們統(tǒng)一到內(nèi)存地址空間當(dāng)中。
(2)I/O控制方式:
A、程序循環(huán)檢測:要一直占用CPU,浪費CPU的時間。
B、中斷驅(qū)動方式:前后臺系統(tǒng)。
C、直接內(nèi)存訪問:DMA控制,減少了中斷的次數(shù)。
(3)I/O軟件
A、中斷處理程序:當(dāng)一個用戶程序需要某種I/O服務(wù)時,它會去調(diào)用相應(yīng)的系統(tǒng)函數(shù),而這個函數(shù)又會去調(diào)用相應(yīng)的設(shè)備驅(qū)動程序,在驅(qū)動程序中會啟動相應(yīng)的I/O操作,并且被阻塞起來,直到這個I/O操作完成后,產(chǎn)生一個中斷程序,并跳到相應(yīng)的中斷處理程序,在這里將會喚醒被阻塞的驅(qū)動程序。
B設(shè)備驅(qū)動程序:直接同I/O設(shè)備打交道,直接對它們進行控制的軟件模塊。上層的I/O軟件通過抽象的函數(shù)接口與設(shè)備驅(qū)動程序打交道,這些接口是標(biāo)準的、穩(wěn)定不變的,而硬件設(shè)備的具體細節(jié)被封裝在設(shè)備驅(qū)動程序里面。設(shè)備驅(qū)動程序的管理通過驅(qū)動程序地址表來實現(xiàn)。驅(qū)動程序表中存放了各個設(shè)備驅(qū)動程序的入口地址,可以通過此表來實現(xiàn)設(shè)備驅(qū)動的動態(tài)安裝與卸載。
C、設(shè)備獨立I/O軟件:這部分軟件在設(shè)備驅(qū)動程序的上面,是獨立的I/O軟件,也是系統(tǒng)內(nèi)核的一部分,主要任務(wù)是實現(xiàn)所有設(shè)備都需要的一些通用I/O功能,并向用戶級的軟件提供一個統(tǒng)一的訪問接口。
D、用戶空間的I/O軟件:大部分的I/O軟件都是包含在操作系統(tǒng)當(dāng)中的,也有一小部分運行在系統(tǒng)內(nèi)核之外。主要可以分為下面兩種:
a、與用戶程序進行鏈接的庫函數(shù):例如C語言中與I/O相關(guān)的庫函數(shù)。
b、完全運行在用戶空間當(dāng)中的程序:例如Spooling技術(shù)。
注:Spooling技術(shù)
Spooling是"外圍設(shè)備聯(lián)機操作"的所寫,spooling技術(shù)也叫假脫機技術(shù)或虛擬設(shè)備技術(shù),它可以把一個獨占的設(shè)備轉(zhuǎn)變?yōu)榫哂泄蚕硖卣鞯奶摂M設(shè)備。在多道系統(tǒng)中,對于一個獨占設(shè)備,專門利用一道程序來增強該設(shè)備的I/O功能。優(yōu)點有二:能提供高速的虛擬I/O服務(wù);能實現(xiàn)對獨占設(shè)備的共享。
6、文件系統(tǒng)
(1)嵌入式文件系統(tǒng)概述
文件系統(tǒng)就是操作系統(tǒng)中用以組織、存儲、命名、使用和保護文件的一套管理機制。
常見的嵌入式文件系統(tǒng)有:
A、 FAT:VxWorks、QNX、WindowsCE等
B、 NFS:網(wǎng)絡(luò)文件系統(tǒng),基于遠程調(diào)用和擴展數(shù)據(jù)表示。
C、 FFS:用于Flash存儲器的文件系統(tǒng)。
(2)文件和目錄
A、當(dāng)一個文件被創(chuàng)建時,必須給它指定一個名字,用戶就是通過文件名來訪問這個文件的。
B、文件命是一個有限長度的字符串,由兩部分組成:文件名和擴展名。
C、文件的邏輯結(jié)構(gòu)主要有三種:無結(jié)構(gòu)、簡單的記錄結(jié)構(gòu)和復(fù)雜結(jié)構(gòu)。現(xiàn)代文件系統(tǒng)通常采用的是無結(jié)構(gòu)的形式。
D、除了文件名之外,操作系統(tǒng)會給每個文件附加一些其他信息,稱為文件的屬性。
E、文件的存取方法有兩種:順序存取和隨機存取。
F、目錄也稱為文件夾,它是一張表格,記錄了在該目錄下每個文件名和其他的一些管理信息。
G、在多級目錄結(jié)構(gòu)中,訪問文件或目錄主要有兩種方法:絕對路徑名和相對路徑名。
(3)文件系統(tǒng)的實現(xiàn)
A、數(shù)據(jù)塊:在磁盤中以扇區(qū)為單元進行讀寫操作。對文件系統(tǒng)而言,把磁盤空間劃分為一個個大小相同的塊,稱為物理塊,每個物理塊包含若干個連續(xù)的扇區(qū),同時把文件的字節(jié)流也分成大小相同的邏輯塊。在文件系統(tǒng)內(nèi)部,以塊為單位來進行操作,把每一個邏輯塊保存在一個物理塊中。
B、文件的實現(xiàn)需要解決兩個方面的問題:
a、如何描述一個文件。
b、如何存儲一個文件。
C、文件控制塊(FCB):它是文件的描述方法,是操作系統(tǒng)為了管理文件而設(shè)置的一種數(shù)據(jù)結(jié)構(gòu),里面存放了與文件有關(guān)的所有管理信息,F(xiàn)CB是文件存在的標(biāo)志。
D、文件的物理結(jié)構(gòu):連續(xù)結(jié)構(gòu)、鏈表結(jié)構(gòu)和索引結(jié)構(gòu)。
連續(xù)結(jié)構(gòu):把文件的各個邏輯塊按照順序存放在若干個連續(xù)的物理塊當(dāng)中。主要用于CD-ROM等一次性寫入的光學(xué)存儲介質(zhì)當(dāng)中。
鏈表結(jié)構(gòu):把文件的各個邏輯塊依次存放在若干個物理塊當(dāng)中,這些物理塊既可以是連續(xù)的,也可以是不連續(xù)的,然后在各個塊之間通過指針連接起來,前一個物理塊指向下一個物理塊,從而形成一條鏈表。
帶有文件分配表的鏈表結(jié)構(gòu):在鏈表結(jié)構(gòu)的基礎(chǔ)上,把每一個物理塊當(dāng)中的鏈表指針抽取出來,單獨組成一個表格,就是文件分配表(FAT)。如果要隨機訪問文件的地n個邏輯塊,可以先從FAT表中查到相應(yīng)的物理塊地址,然后根據(jù)這個地址直接去訪問磁盤。
索引結(jié)構(gòu):把文件當(dāng)中每一個邏輯塊所對應(yīng)的物理塊編號直接記錄在這個文件的文件控制塊當(dāng)中,這樣的文件控制塊稱為是I節(jié)點,或索引節(jié)點。這樣,對于系統(tǒng)中的每一個文件,都有一個自己的索引節(jié)點,通過這個索引節(jié)點就能夠直接實現(xiàn)邏輯塊與物理塊之間的映射關(guān)系。
(4)目錄的實現(xiàn)
A、直接法:把文件控制塊的內(nèi)容直接保存在目錄項當(dāng)中,因此每個目錄項就等于某個文件名加上它的FCB。
B、間接法:目錄項里面只有文件名和該文件的FCB所在地址。
不管是那一種類型的實現(xiàn)方法,目錄的基本功能都一樣,即用戶給出一個文件名,就返回相應(yīng)文件的FCB。
(5)空閑空間管理方法:
A、位圖法。
B、鏈表法。
C、索引法。
三、真題解析
(1)2007年21、22題
某系統(tǒng)中有四種互斥資源R1、R2、R3和R4,可用資源數(shù)分別為3、5、6和8。假設(shè)在T0時刻有P1、P2、P3和P4 四個進程,并且這些進程對資源的最大需求量和已分配資源數(shù)如下表所示,那么在T0時刻系統(tǒng)中R1、R2、R3和R4的剩余資源數(shù)分別為 (21) 。如果從T0時刻開始進程按 (22) 順序逐個調(diào)度執(zhí)行,那么系統(tǒng)狀態(tài)是安全的。
(21)A. 3、5、6和8 B. 3、4、2和2
C. 0、1、2和1 D. 0、1、0和1
(22)A. P1→P2→P4→P3 B. P2→P1→P4→P3
C. P3→P2→P1→P4 D. P4→P2→P3→P1
<解析>:D、C
考查操作系統(tǒng)中進程(任務(wù))管理中死鎖檢測的多項資源銀行家算法。
由于T0時刻已用資源數(shù)為3、4、6和7,故剩余資源數(shù)為0、1、0、和1。
P1、P2、P3、P4四個進程中,系統(tǒng)只能滿足P3的需求資源數(shù):
現(xiàn)在P3的需求量是:1、2、1、1,尚需要的資源數(shù)是:0、1、0、1,。
現(xiàn)在剩余的資源數(shù)是0、1、0、1,剛好能滿足P3的需求,能保證P3運行完。
P3運行結(jié)束釋放資源后,系統(tǒng)的可用資源為:1、2、1、1
此時P2尚需要的資源為:1、0、0、0,系統(tǒng)能滿足P2的請求,故P2能運行完。
P2運行結(jié)束釋放資源后,系統(tǒng)的可用資源為:1、3、3、3。
此時P1尚需要資源為:0、1、1、2,P4尚需要的資源為0、0、1、2。
系統(tǒng)能滿足P1和P4的請求,故P1和P4能運行完。
因此,進程可以按P3àP2àP1àP4或P3àP2àP4àP1的順序執(zhí)行。
(2)2007年29、30、31題
考查嵌入式存儲系統(tǒng)硬件方面的基礎(chǔ)知識。
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
(3)2007年37題
下面 (37) 不屬于嵌入式系統(tǒng)中的進程狀態(tài)。
(37)A. 運行狀態(tài) B. 就緒狀態(tài) C. 開關(guān)狀態(tài) D. 等待狀態(tài)
<解析>:C
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(6)。
(4)2007年38題
下面(38)不是操作系統(tǒng)中調(diào)度程序所采用的調(diào)度算法。
(38)A. 先來先服務(wù)(FCFS) B. 先進先出(FIFO)
C. 時間片輪轉(zhuǎn)調(diào)度 D. 優(yōu)先級調(diào)度
<解析>:B
考查嵌入式操作系統(tǒng)中進程調(diào)度算法的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(8)。
(5)2007年39題
在操作系統(tǒng)中,Spooling技術(shù)是用一類物理設(shè)備模擬另一類物理設(shè)備的技術(shù),實現(xiàn)這種技術(shù)的功能模塊稱做 (39) 。
(39)A. 可林斯系統(tǒng) B. 斯普林系統(tǒng)
C. 圖靈機系統(tǒng) D. 虛擬存儲系統(tǒng)
<解析>:B
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記5設(shè)備管理(3)注。
在操作系統(tǒng)中,Spooling技術(shù)是用一種物理設(shè)備模擬另一種物理設(shè)備技術(shù),是使獨占設(shè)備變成共享設(shè)備的技術(shù),也就是一種速度匹配技術(shù),根據(jù)Spooling的讀音,實現(xiàn)這種技術(shù)的功能模塊稱作斯普林系統(tǒng)。
(6)2007年40題
在操作系統(tǒng)中,除賦初值外,對信號量僅能操作的兩種原語是 (40) 。
(40)A. 存操作、取操作 B. 讀操作、寫操作
C. P操作、V操作 D. 輸入操作、輸出操作
<解析>:C
考查嵌入式操作系統(tǒng)中PV原語。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(11)注。
P操作表示申請一個資源,V操作表示釋放一個資源。
(7)2007年41題
考查嵌入式存儲系統(tǒng)中虛擬存儲技術(shù)方面的基礎(chǔ)知識。
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
(8)2007年42題
下面 (42) 特性不符合嵌入式操作系統(tǒng)特點。
(42)A. 實時性 B. 不可定制 C. 微型化 D. 易移植
<解析>:B
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
太簡單了,常識性的問題。
(9)2007年43題
在并行環(huán)境中的某些任務(wù)必須協(xié)調(diào)自己的運行速度,以保證各自的某些關(guān)鍵語句按照某種事先規(guī)定的次序執(zhí)行,這種現(xiàn)象被稱為任務(wù)的 (43) 。
(43)A. 執(zhí)行 B. 互斥C. 調(diào)度 D. 同步
<解析>:D
考查嵌入式操作系統(tǒng)的任務(wù)同步方面的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(12)。
(10)2007年44題
關(guān)于文件系統(tǒng),下列敘述中不正確的是 (44) 。
(44)A. 負責(zé)文件的組織、存儲、檢索、命名、共享和保護
B. 提供描述文件抽象的程序接口
C. 文件存儲在磁盤或其他不易失的存儲介質(zhì)上
D. 程序員需要關(guān)心文件存儲分配和存儲布局的細節(jié)
<解析>:D
考查嵌入式操作系統(tǒng)的文件系統(tǒng)方面的基礎(chǔ)知識。
見復(fù)習(xí)筆記6文件系統(tǒng)。
文件系統(tǒng)負責(zé)文件的組織、存儲、檢索、命名、共享和保護,并為程序員提供描述文件描述的程序接口,程序員不需要關(guān)心文件存儲分配和存儲局部的細節(jié),通過程序接口即可實現(xiàn)對文件的操作。
(11)2007年45題
Linux系統(tǒng)中的設(shè)備可分為三類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備,其中不是基于文件系統(tǒng)訪問的設(shè)備是 (45) 。
(45)A. 字符設(shè)備 B. 塊設(shè)備 C.網(wǎng)絡(luò)設(shè)備D. 字符和塊設(shè)備
<解析>:C
考查嵌入式操作系統(tǒng)的文件系統(tǒng)方面的基礎(chǔ)知識。
Linux操作系統(tǒng)中的設(shè)備可以分為三類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。其中字符設(shè)備沒有緩沖區(qū),數(shù)據(jù)的處理以字節(jié)為單位按順序進行的,不支持隨機讀寫;塊設(shè)備是指那些在輸入輸出時數(shù)據(jù)處理以塊為單位的設(shè)備,一般采用了緩存技術(shù),支持數(shù)據(jù)的隨機讀寫;Linux中的網(wǎng)絡(luò)設(shè)備實現(xiàn)方法不同于字符設(shè)備和塊設(shè)備,它面向上一層不是文件系統(tǒng)而是網(wǎng)絡(luò)網(wǎng)絡(luò)協(xié)議層,設(shè)備節(jié)點只有在系統(tǒng)正確初始化網(wǎng)絡(luò)控制器之后才能建立。
(12)2007年46題
(46) 完全把系統(tǒng)軟件和硬件部分隔離開來,從而大大提高了系統(tǒng)的可移植性。
(46)A. 硬件抽象層 B. 驅(qū)動映射層 C. 硬件交互層 D. 中間層
<解析>:A
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記1嵌入式軟件基礎(chǔ)。
嵌入式系統(tǒng)常采用基于硬件抽象層的分層體系結(jié)構(gòu),以提高嵌入式軟件的可移植性和擴張性。
(13)2007年47題
實時操作系統(tǒng)(RTOS)內(nèi)核與應(yīng)用程序之間的接口稱為 (47) 。
(47)A. 輸入/輸出接口 B. 文件系統(tǒng) C. API D. 圖形用戶接口
<解析>:C
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
常識性問題,實時操作系統(tǒng)(RTOS)是一個標(biāo)準內(nèi)核,它將CPU時間、中斷、I/O和定時器等資源都包裝起來,留給用戶的是一個標(biāo)準的應(yīng)用程序接口,即API接口。
(14)2007年48題
在多任務(wù)實時系統(tǒng)中,任務(wù)間或者中斷服務(wù)與任務(wù)間常需要交換信息,這種信息交換有 (48) 兩個途徑。
(48)A. 開/關(guān)中斷和信息郵箱 B. 共享存儲區(qū)和消息傳遞
C. 郵箱機制和數(shù)據(jù)共享機制 D. 非占先式內(nèi)核和占先式內(nèi)核機制
<解析>:C
考查嵌入式操作系統(tǒng)中任務(wù)間通信的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(15)。
(15)2006年20、21題
在一個單CPU的計算機系統(tǒng)中,采用可剝奪式(也稱搶占式)優(yōu)先級的進程調(diào)度方案,且所有的任務(wù)可以并行使用I/O設(shè)備。下表列出了T1、T2、T3的優(yōu)先級和獨立運行時占用CPU和I/O設(shè)備的時間。如果操作系統(tǒng)的開銷忽略不計,則這三個任務(wù)從同時啟動到全部結(jié)束的總時間為(20)ms,CPU的空閑時間共有(21)ms。
(20) A. 28B. 58C. 61D. 64
(21) A. 3B. 5C. 8D. 13
<解析>:B、D
考查嵌入式操作系統(tǒng)中任務(wù)調(diào)度的理解和計算。
3個任務(wù)的運行過程示意圖如下:
如果操作系統(tǒng)的開銷忽略不計,從啟動到結(jié)束的總時間為:
10+13+5+5+5+2+13+5=58ms
CPU的空閑時間為任務(wù)T3進行I/O操作的時間:13ms。
(16)2006年22題
考查嵌入式操作系統(tǒng)中存儲管理的基礎(chǔ)知識。
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
(17)2006年42題
嵌入式系統(tǒng)由硬件和軟件部分構(gòu)成,以下(42)不屬于嵌入式系統(tǒng)軟件。
(42)A. 系統(tǒng)內(nèi)核B. 驅(qū)動程序
C. FPGA編程軟件D. 嵌入式中間件
<解析>:C
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記1嵌入式軟件基礎(chǔ)(2)。
(18)2006年43題
關(guān)于硬件抽象層,以下描述中錯誤的是(43)。
(43)A. 硬件抽象層包括操作系統(tǒng)內(nèi)核和驅(qū)動程序。
B. 硬件抽象層將操作系統(tǒng)與硬件平臺隔開。
C. 硬件抽象層是一種軟件。
D. 硬件抽象層有利于系統(tǒng)的模塊化設(shè)計。
<解析>:A
考查嵌入式操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記1嵌入式軟件基礎(chǔ)(5)。
硬件抽象層(HAL)也稱為板級支持包(BSP),位于嵌入式系統(tǒng)硬件層和系統(tǒng)軟件層之間,將系統(tǒng)上層軟件和低層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關(guān)。它主要包括引導(dǎo)加載程序Bootloader和設(shè)備驅(qū)動程序兩個方面的內(nèi)容。具有兩個特點:硬件相關(guān)性和操作系統(tǒng)相關(guān)性。
(19)2006年44題
一個任務(wù)被喚醒,意味著(44)。
(44)A. 該任務(wù)重新占有了CPU。B. 它的優(yōu)先級變?yōu)樽畲蟆?/p>
C. 其任務(wù)移至等待隊列的隊首。D. 任務(wù)變?yōu)榫途w狀態(tài)。
<解析>:D
考查嵌入式操作系統(tǒng)中任務(wù)狀態(tài)切換的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(6)。
(20)2006年45題
關(guān)于實時操作系統(tǒng)(RTOS)的任務(wù)調(diào)度器,以下描述中正確的是(45)。
(45)A. 任務(wù)之間的公平性是最重要的調(diào)度目標(biāo)。
B. 大多數(shù)RTOS調(diào)度算法都是可搶占式(可剝奪式)的。
C. RTOS調(diào)度器都采用了基于時間片輪轉(zhuǎn)的調(diào)度算法。
D. RTOS調(diào)度算法只是一種靜態(tài)優(yōu)先級調(diào)度算法。
<解析>:B
考查嵌入式實時操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(8)(9)。
(21)2006年46題
在下列調(diào)度算法中,(46)算法不會出現(xiàn)任務(wù)"饑餓"的情形。
(46)A. 時間片輪轉(zhuǎn)法B. 先來先服務(wù)法
C. 可搶占的短作業(yè)優(yōu)先算法D. 靜態(tài)優(yōu)先級算法
<解析>:A
考查嵌入式實時操作系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(8)。
(22)2006年47題
在實時操作系統(tǒng)中,郵箱通信是一種(47)通信方式。
(47)A. 直接B. 間接C. 低級D. 高級
<解析>:B
考查嵌入式操作系統(tǒng)中任務(wù)間通信的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(15)。
(23)2006年48題
在某個嵌入式操作系統(tǒng)中,若PV操作的信號量S的初始值為2,當(dāng)前值為-1,則表示等待信號量S的任務(wù)個數(shù)為(48)。
(48)A. 0B. 1C. 2D. 3
<解析>:B
考查嵌入式操作系統(tǒng)中的PV原語。
信號量S表示資源的實體,它是一個與隊列有關(guān)的整型變量,其值僅由P、V操作來完成。當(dāng)S=n>0時,表示列隊中有n個資源可用;當(dāng)S=0時,表示隊列中無資源可用;當(dāng)S=n<0時,表示進入等待隊列中的任務(wù)數(shù)有n的絕對值|n|個。信號量S的當(dāng)前值為-1,則表示等待的信號S的任務(wù)個數(shù)為1個。
(24)2006年49題
在實時操作系統(tǒng)中,兩個任務(wù)并發(fā)執(zhí)行,一個任務(wù)要等待其合作伙伴來發(fā)送消息,或建立某個條件后再向前執(zhí)行,這種制約性合作關(guān)系被稱為任務(wù)的(49)。
(49)A. 同步B. 互斥C. 調(diào)度D. 執(zhí)行
<解析>:A
考查嵌入式操作系統(tǒng)中任務(wù)間同步的基礎(chǔ)知識。
見復(fù)習(xí)筆記2嵌入式操作系統(tǒng)概述(12)。
(25)2006年50題
考查嵌入式操作系統(tǒng)中存儲管理的基礎(chǔ)知識。
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
(26)2006年51題
考查嵌入式操作系統(tǒng)中存儲管理的基礎(chǔ)知識。
見《嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇》。
(27)2006年52題
文件系統(tǒng)的主要功能是(52)。
(52)A. 實現(xiàn)對文件的按名存取B. 實現(xiàn)虛擬存儲
C. 提高外存的讀寫速度D. 用于保存系統(tǒng)文檔
<解析>:A
考查嵌入式操作系統(tǒng)中文件系統(tǒng)的基礎(chǔ)知識。
見復(fù)習(xí)筆記6文件系統(tǒng)。
(28)2006年53題
在FAT16文件系統(tǒng)中,若每個簇的大小是2KB,那么它所能表示的最大磁盤分區(qū)容量為(53)。
(53)A. 2MBB. 32MBC. 64MBD. 128MB
<解析>:D
考查嵌入式操作系統(tǒng)中文件系統(tǒng)的基礎(chǔ)知識。
FAT是一種適合小卷集與雙重引導(dǎo)需要的文件系統(tǒng)。采用FAT文件系統(tǒng)格式化的卷以簇的形式進行分配。FAT16使用了16位的空間來表示每個扇區(qū)配置文件的情形。如果每個簇的大小是2KB,那么它所能表示的最大磁盤分區(qū)容量為:216×2KB=217 KB=27MB=128MB。
(29)2006年54題
在下面的敘述中,(54)不是嵌入式圖形用戶接口(GUI)的主要特點。
(54)A. 運行時占用的系統(tǒng)資源少B. 模塊化結(jié)構(gòu),便于移植和定制
C. 可靠性高D. 美麗華麗,圖形算法復(fù)雜
<解析>:D
考查嵌入式圖形接口的基礎(chǔ)概念。我也不知道該不該歸類到這里來。
四、小結(jié)
縱觀兩年的考試題目,2006年考了16道題目,2007年考了17道題目。上面的75道題目,除了20道左右的公共題目,5道左右的C語言題目和10道專業(yè)外語題目之外的40道左右的題目中,嵌入式操作系統(tǒng)相關(guān)的題目占了半壁江山,可見其分量之重。弄得這部分題目除了可以在上午題目拿到可觀的分數(shù)之外,還可以在下午的題目中大派用場。細看里面的題目,考察的都是基本概念和基本原理,設(shè)計一些簡單的推理和計算。只要最這些有深入徹底的理解,基本能拿到90%的分數(shù)的。
嵌入式系統(tǒng)設(shè)計師考試筆記之接口技術(shù)
一、
嵌入式系統(tǒng)的硬件除了核心的微處理器之外就是外圍器件和接口。接口技術(shù)在嵌入式系統(tǒng)設(shè)計處于如此重要的位置,是嵌入式系統(tǒng)設(shè)計師硬件部分的重要考試范圍。目前嵌入式系統(tǒng)中的接口五花百門,每個接口都可以寫成一本厚厚的書。面對內(nèi)容如此之多,范圍如此之廣的考試部分,應(yīng)該怎么樣去復(fù)習(xí)呢?我的指導(dǎo)思想是,把握好每種接口技術(shù)的最基本概念,理解透每個接口的最基本工作原理,從歷年考題中提煉出??贾R點,重點進行復(fù)習(xí),這樣足以應(yīng)付考試了。是不是這樣就要通過真題考試來驗證了,讓我們期待吧。
二、復(fù)習(xí)筆記
1. Flash存儲器
(1)Flash存儲器是一種非易失性存儲器,根據(jù)結(jié)構(gòu)的不同可以將其分為NOR Flash和NAND Flash兩種。
(2)Flash存儲器的特點:
A、區(qū)塊結(jié)構(gòu):在物理上分成若干個區(qū)塊,區(qū)塊之間相互獨立。
B、先擦后寫:Flash的寫操作只能將數(shù)據(jù)位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執(zhí)行擦除操作,將預(yù)寫入的數(shù)據(jù)位初始化為1。擦除操作的最小單位是一個區(qū)塊,而不是單個字節(jié)。
C、操作指令:執(zhí)行寫操作,它必須輸入一串特殊指令(NOR Flash)或者完成一段時序(NAND Flash)才能將數(shù)據(jù)寫入。
D、位反轉(zhuǎn):由于Flash的固有特性,在讀寫過程中偶爾會產(chǎn)生一位或幾位的數(shù)據(jù)錯誤。位反轉(zhuǎn)無法避免,只能通過其他手段對結(jié)果進行事后處理。
E、壞塊:區(qū)塊一旦損壞,將無法進行修復(fù)。對已損壞的區(qū)塊操作其結(jié)果不可預(yù)測。
(3)NOR Flash的特點:
應(yīng)用程序可以直接在閃存內(nèi)運行,不需要再把代碼讀到系統(tǒng)RAM中運行。NOR Flash的傳輸效率很高,在1MB~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
(4)NAND Flash的特點
能夠提高極高的密度單元,可以達到高存儲密度,并且寫入和擦除的速度也很快,這也是為何所有的U盤都使用NAND Flash作為存儲介質(zhì)的原因。應(yīng)用NAND Flash的困難在于閃存需要特殊的系統(tǒng)接口。
(5)NOR Flash與NAND Flash的區(qū)別:
A、NOR Flash的讀速度比NAND Flash稍快一些。
B、NAND Flash的擦除和寫入速度比NOR Flash快很多
C、NAND Flash的隨機讀取能力差,適合大量數(shù)據(jù)的連續(xù)讀取。
D、NOR Flash帶有SRAM接口,有足夠的地址引進來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)。NAND Flash的地址、數(shù)據(jù)和命令共用8位總線(有寫公司的產(chǎn)品使用16位),每次讀寫都要使用復(fù)雜的I/O接口串行地存取數(shù)據(jù)。
E、NOR Flash的容量一般較小,通常在1MB~8MB之間;NAND Flash只用在8MB以上的產(chǎn)品中。因此,NOR Flash只要應(yīng)用在代碼存儲介質(zhì)中,NAND Flash適用于資料存儲。
F、NAND Flash中每個塊的最大擦寫次數(shù)是一百萬次,而NOR Flash是十萬次。
G、NOR Flash可以像其他內(nèi)存那樣連接,非常直接地使用,并可以在上面直接運行代碼;NAND Flash需要特殊的I/O接口,在使用的時候,必須先寫入驅(qū)動程序,才能繼續(xù)執(zhí)行其他操作。因為設(shè)計師絕不能向壞塊寫入,這就意味著在NAND Flash上自始至終必須進行虛擬映像。
H、NOR Flash用于對數(shù)據(jù)可靠性要求較高的代碼存儲、通信產(chǎn)品、網(wǎng)絡(luò)處理等領(lǐng)域,被成為代碼閃存;NAND Flash則用于對存儲容量要求較高的MP3、存儲卡、U盤等領(lǐng)域,被成為數(shù)據(jù)閃存。
2、RAM存儲器
(1)SRAM的特點:
SRAM表示靜態(tài)隨機存取存儲器,只要供電它就會保持一個值,它沒有刷新周期,由觸發(fā)器構(gòu)成基本單元,集成度低,每個SRAM存儲單元由6個晶體管組成,因此其成本較高。它具有較高速率,常用于高速緩沖存儲器。
通常SRAM有4種引腳:
CE:片選信號,低電平有效。
R/W:讀寫控制信號。
ADDRESS:一組地址線。
DATA:用于數(shù)據(jù)傳輸?shù)囊唤M雙向信號線。
(2)DRAM的特點:
DRAM表示動態(tài)隨機存取存儲器。這是一種以電荷形式進行存儲的半導(dǎo)體存儲器。它的每個存儲單元由一個晶體管和一個電容器組成,數(shù)據(jù)存儲在電容器中。電容器會由于漏電而導(dǎo)致電荷丟失,因而DRAM器件是不穩(wěn)定的。它必須有規(guī)律地進行刷新,從而將數(shù)據(jù)保存在存儲器中。
DRAM的接口比較復(fù)雜,通常有一下引腳:
CE:片選信號,低電平有效。
R/W:讀寫控制信號。
RAS:行地址選通信號,通常接地址的高位部分。
CAS:列地址選通信號,通常接地址的低位部分。
ADDRESS:一組地址線。
DATA:用于數(shù)據(jù)傳輸?shù)囊唤M雙向信號線。
(3)SDRAM的特點:
SDRAM表示同步動態(tài)隨機存取存儲器。同步是指內(nèi)存工作需要同步時鐘,內(nèi)部的命令發(fā)送與數(shù)據(jù)的傳輸都以它為基準;動態(tài)是指存儲器陣列需要不斷的刷新來保證數(shù)據(jù)不丟失。它通常只能工作在133MHz的主頻。
(4)DDRAM的特點
DDRAM表示雙倍速率同步動態(tài)隨機存取存儲器,也稱DDR。DDRAM是基于SDRAM技術(shù)的,SDRAM在一個時鐘周期內(nèi)只傳輸一次數(shù)據(jù),它是在時鐘的上升期進行數(shù)據(jù)傳輸;而DDR內(nèi)存則是一個時鐘周期內(nèi)傳輸兩次次數(shù)據(jù),它能夠在時鐘的上升期和下降期各傳輸一次數(shù)據(jù)。在133MHz的主頻下,DDR內(nèi)存帶寬可以達到133×64b/8×2=2.1GB/s。
3、硬盤、光盤、CF卡、SD卡的相關(guān)知識見《教程》145~148頁。
4、GPIO原理與結(jié)構(gòu)
GPIO是I/O的最基本形式,它是一組輸入引腳或輸出引腳。有些GPIO引腳能夠加以編程改變工作方向,通常有兩個控制寄存器:數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器。數(shù)據(jù)方向寄存器設(shè)置端口的方向。如果將引腳設(shè)置為輸出,那么數(shù)據(jù)寄存器將控制著該引腳狀態(tài)。若將引腳設(shè)置為輸入,則此輸入引腳的狀態(tài)由引腳上的邏輯電路層來實現(xiàn)對它的控制。
5、A/D接口
(1)A/D轉(zhuǎn)換器是把電模擬量轉(zhuǎn)換為數(shù)字量的電路。實現(xiàn)A/D轉(zhuǎn)換的方法有很多,常用的方法有計數(shù)法、雙積分法和逐次逼進法。
(2)計數(shù)式A/D轉(zhuǎn)換法
其電路主要部件包括:比較器、計數(shù)器、D/A轉(zhuǎn)換器和標(biāo)準電壓源。
其工作原理簡單來說就是,有一個計數(shù)器,從0開始進行加1計數(shù),每進行一次加1,該數(shù)值作為D/A轉(zhuǎn)換器的輸入,其產(chǎn)生一個比較電壓VO與輸入模擬電壓VIN進行比較。如果VO小于VIN則繼續(xù)進行加1計數(shù),直到VO大于VIN,這時計數(shù)器的累加數(shù)值就是A/D轉(zhuǎn)換器的輸出值。(詳細參考《教程》155頁)
這種轉(zhuǎn)換方式的特點是簡單,但是速度比較慢,特別是模擬電壓較高時,轉(zhuǎn)換速度更慢。例如對于一個8位A/D轉(zhuǎn)換器,若輸入模擬量為最大值,計數(shù)器要從0開始計數(shù)到255,做255次D/A轉(zhuǎn)換和電壓比較的工作,才能完成轉(zhuǎn)換。
(3)雙積分式A/D轉(zhuǎn)換法
其電路主要部件包括:積分器、比較器、計數(shù)器和標(biāo)準電壓源。
其工作原理是,首先電路對輸入待測電壓進行固定時間的積分,然后換為標(biāo)準電壓進行固定斜率的反向積分,反向積分進行到一定時間,便返回起始值。由于使用固定斜率,對標(biāo)準電壓進行反向積分的時間正比于輸入模擬電壓值,輸入模擬電壓越大,反向積分回到起始值的時間越長。只要用標(biāo)準的高頻時鐘脈沖測定反向積分花費的時間,就可以得到相應(yīng)于輸入模擬電壓的數(shù)字量,也就完成了A/D轉(zhuǎn)換。(詳細參考《教程》156頁)
其特點是,具有很強的抗工頻干擾能力,轉(zhuǎn)換精度高,但轉(zhuǎn)換速度慢,通常轉(zhuǎn)換頻率小于10Hz,主要用于數(shù)字式測試儀表、溫度測量等方面。
(4)逐次逼近式A/D轉(zhuǎn)換法
其電路主要部件包括:比較器、D/A轉(zhuǎn)換器、逐次逼近寄存器和基準電壓源。
其工作原理是,實質(zhì)上就是對分搜索法,和平時天平的使用原理一樣。在進行A/D轉(zhuǎn)換時,由D/A轉(zhuǎn)換器從高位到低位逐位增加轉(zhuǎn)換位數(shù),產(chǎn)生不同的輸出電壓,把輸入電壓與輸出電壓進行比較而實現(xiàn)。首先使最高位為1,這相當(dāng)于取出基準電壓的1/2與輸入電壓比較,如果在輸入電壓小于1/2的基準電壓,則最高位置0,反之置1。之后,次高位置1,相當(dāng)于在1/2的范圍中再作對分搜索,以此類推,逐次逼近。(詳細參考《教程》157頁)
其特點是,速度快,轉(zhuǎn)換精度高,對N位A/D轉(zhuǎn)換器只需要M個時鐘脈沖即可完成,一般可用于測量幾十到幾百微秒的過渡過程的變化,是目前應(yīng)用最普遍的轉(zhuǎn)換方法。
(5)A/D轉(zhuǎn)換的重要指標(biāo)(有可能考一些簡單的計算)
A、分辨率:反映A/D轉(zhuǎn)換器對輸入微小變化響應(yīng)的能力,通常用數(shù)字輸出最低位(LSB)所對應(yīng)的模擬電壓的電平值表示。n位A/D轉(zhuǎn)換器能反映1/2n滿量程的模擬輸入電平。
B、量程:所能轉(zhuǎn)換的模擬輸入電壓范圍,分為單極性和雙極性兩種類型。
C、轉(zhuǎn)換時間:完成一次A/D轉(zhuǎn)換所需要的時間,其倒數(shù)為轉(zhuǎn)換速率。
D、精度:精度與分辨率是兩個不同的概念,即使分辨率很高,也可能由于溫漂、線性度等原因使其精度不夠高。精度有絕對精度和相對精度兩種表示方法。通常用數(shù)字量的最低有效位LSB的分數(shù)值來表示絕對精度,用其模擬電壓滿量程的百分比來表示相對精度。
例如,滿量程10V,10位A/D芯片,若其絕對精度為±1/2LSB,則其最小有效位LSB的量化單位為:10/1024=9.77mv,其絕對精度為9.77mv/2=4.88mv,相對精度為:0.048%。
6、D/A接口基本
(1)D/A轉(zhuǎn)換器使將數(shù)字量轉(zhuǎn)換為模擬量。
(2)在集成電路中,通常采用T型網(wǎng)絡(luò)實現(xiàn)將數(shù)字量轉(zhuǎn)換為模擬電流,再由運算放大器將模擬電路轉(zhuǎn)換為模擬電壓。進行D/A轉(zhuǎn)換實際上需要上面的兩個環(huán)節(jié)。關(guān)于T型電阻解碼網(wǎng)絡(luò)和D/A轉(zhuǎn)換具體原理參考《教程》的159頁。
(3)D/A轉(zhuǎn)換器的分類:
A、電壓輸出型:常作為高速D/A轉(zhuǎn)換器。
B、電流輸出型:一般外接運算放大器使用。
C、乘算型:可用作調(diào)制器和使輸入信號數(shù)字化地衰減。
(4)D/A轉(zhuǎn)換器的主要指標(biāo):分辨率、建立時間、線性度、轉(zhuǎn)換精度、溫度系數(shù)。
7、鍵盤接口
(1)鍵盤的兩種形式:線性鍵盤和矩陣鍵盤。
(2)識別鍵盤上的閉合鍵通常有兩種方法:行掃描法和行反轉(zhuǎn)法。(《教程》163頁)
(3)行掃描法是矩陣鍵盤按鍵常用的識別方法,此方法分為兩步進行:
A、識別鍵盤哪一列的鍵被按下:讓所有行線均為低電平,查詢各列線電平是否為低,如果有列線為低,則說明該列有按鍵被按下,否則說明無按鍵按下。
B、如果某列有按鍵按下,識別鍵盤是哪一行按下:逐行置低電平,并置其余各行為高電平,查詢各列的變化,如果列電平變?yōu)榈碗娖?,則可確定此行此列交叉點處按鍵被按下。
8、顯示接口
(1)LCD的基本原理是,通過給不同的液晶單元供電,控制其光線的通過與否,從而達到顯示的目的。
(2)LCD的光源提供方式有兩種:投射式和反射式。筆記本電腦的LCD顯示器為投射式,屏的背后有一個光源,因此外界環(huán)境可以不需要光源。一般微控制器上使用的LCD為反射式,需要外界提供電源,靠反射光來工作。電致發(fā)光(EL)是液晶屏提供光源的一種方式。
(3)按照液晶驅(qū)動方式分類,常見的LCD可以分為三類:扭轉(zhuǎn)向列類(TN)、超扭曲向列型(STN)和薄膜晶體管型(TFT)。
(4)市面上出售的LCD有兩種類型:帶有驅(qū)動電路的LCD顯示模塊,只要總線方式驅(qū)動;沒有驅(qū)動電路的LCD顯示器,使用控制器掃描方式。
(5)通常,LCD控制器工作的時候,通過DMA請求總線,直接通過SDRAM控制器讀取SDRAM中指定地址(顯示緩沖區(qū))的數(shù)據(jù),此數(shù)據(jù)經(jīng)過LCD控制器轉(zhuǎn)換成液晶屏掃描數(shù)據(jù)格式,直接驅(qū)動液晶顯示器。
(6)VGA接口本質(zhì)上是一個模擬接口,一般都采用統(tǒng)一的15引腳接口,包括2個NC信號、3根顯示器數(shù)據(jù)總線、5個GND信號、3個RGB色彩分量、1個行同步信號和1個場同步信號。其色彩分量采用的電平標(biāo)準為EIA定義的RS343標(biāo)準。
9、觸摸屏接口
(1)按工作原理分,觸摸屏可以分為:表面聲波屏、電容屏、電阻屏和紅外屏幾種。(具體的工作原理看《教程》173頁)
(2)觸摸屏的控制采用專業(yè)芯片,例如ADS7843。(具體工作原理看《教程》176頁)。
10、音頻接口
(1)基本原理:麥克風(fēng)輸入的數(shù)據(jù)經(jīng)音頻編解碼器解碼完成A/D轉(zhuǎn)換,解碼后的音頻數(shù)據(jù)通過音頻控制器送入DSP或CPU進行相應(yīng)的處理,然后數(shù)據(jù)經(jīng)音頻控制器發(fā)送給音頻編碼器,經(jīng)編碼D/A轉(zhuǎn)換后由揚聲器輸出。
(2)數(shù)字音頻的格式有多種,最常用的是下面三種:
A、采用數(shù)字音頻(PCM):是CD或DVD采用的數(shù)據(jù)格式。其采樣頻率為44.1kHz。精度為16位時,PCM音頻數(shù)據(jù)速率為1.41Mb/s;精度為32位時為2.42 Mb/s。一張700MB的CD可以保存大約60分鐘的16位PCM數(shù)據(jù)格式的音樂。
B、MPEG層3音頻(MP3):MP3播放器采用的音頻格式。立體聲MP3數(shù)據(jù)速率為112kb/s至128kb/s。
C、ATSC數(shù)字音頻壓縮標(biāo)準(AC3):數(shù)字TV、HDTV和電影數(shù)字音頻編碼標(biāo)準,立體聲AC3編碼后的數(shù)據(jù)速率為192kb/s。
(3)IIS是音頻數(shù)據(jù)的編碼或解碼常用的串行音頻數(shù)字接口。IIS總線只處理聲音數(shù)據(jù),其他控制信號等則需要單獨傳輸。IIS使用了3根串行總線:數(shù)據(jù)線SD、字段選擇線WS、時鐘信號線SCK。
(4)當(dāng)接收方和發(fā)送方的數(shù)據(jù)字段寬度不一樣時,發(fā)送方不考慮接收方的數(shù)據(jù)字段寬度。如果發(fā)送方發(fā)送的數(shù)據(jù)字段小于系統(tǒng)字段寬度,就在低位補0;如果發(fā)送方的數(shù)據(jù)寬度大于接收方的寬度,則超過LSB的部分被截斷。字段選擇WS用來選擇左右聲道,WS=0表示選擇左聲道;WS=1表示選擇右聲道。此外,WS能讓接收設(shè)備存儲前一個字節(jié),并準備接收下一個字節(jié)。
11、串行接口
(1)串行通信是指,使數(shù)據(jù)一位一位地進行傳輸而實現(xiàn)的通信。與并行通信相比,串行通信具有傳輸線少、成本低等優(yōu)點,特別適合遠距離傳送;缺點使速度慢。
(2)串行數(shù)據(jù)傳送有3種基本的通信模式:單工、半雙工、全雙工。
(3)串行通信在信息格式上可以分為2種方式:同步通信和異步通信。
A、異步傳輸:把每個字符當(dāng)作獨立的信息來傳輸,并按照一固定且預(yù)定的時序傳送,但在字符之間卻取決于字符與字符的任意時序。異步通信時,字符是一幀一幀傳送的,每幀字符的傳送靠起始位來同步。一幀數(shù)據(jù)的各個代碼間間隔是固定的,而相鄰兩幀數(shù)據(jù)其時間間隔是不固定的。
B、同步傳輸:同步方式不僅在字符之間是同步的,而且在字符與字符之間的時序仍然是同步的,即同步方式是將許多字符聚集成一字符塊后,在每塊信息之前要加上1~2個同步字符,字符塊之后再加入適當(dāng)?shù)腻e誤檢測數(shù)據(jù)才傳送出去。
(4)異步通信必須遵循3項規(guī)定:
A、字符格式:起始位+數(shù)據(jù)+校驗位+停止位(檢驗位可無),低位先傳送。
B、波特率:每秒傳送的位數(shù)。
C、校驗位:奇偶檢驗。
a、奇校驗:要使字符加上校驗位有奇數(shù)個"1"。
b、偶檢驗:要使字符加上校驗位有偶數(shù)個"1"。
(5)RS-232C的電氣特性:負邏輯。
A、在TxD和RxD上:邏輯1為-3V~-15V,邏輯0為3V~15V。
B、在TES、CTS、DTR、DCD等控制線上:
信號有效(ON狀態(tài))為3V~15V
信號無效(OFF狀態(tài))為-3V~-15V
(6)TTL標(biāo)準與RS-232C標(biāo)準之間的電平轉(zhuǎn)換利用集成芯片RS232實現(xiàn)。(詳見《教程》182頁)
(7)RS-422串行通信接口
A、RS-422是一種單機發(fā)送、多機接收的單向、平衡傳輸規(guī)范,傳輸速率可達10Mb/s。
B、RS-422采用差分傳輸方式,也稱做平衡傳輸,使用一對雙絞線。
C、RS-422需要一終端電阻,要求其阻值約等于傳輸電纜的特性阻抗。
(8)RS-485串行總線接口
A、RS-485是在RS-422的基礎(chǔ)上建立的標(biāo)準,增加了多點、雙向通信能力,通信距離可為幾十米到上千米。
B、RS-485收發(fā)器采用平衡發(fā)送和差分接收,具有抑制共模干擾的能力。
C、RS-485需要兩個終端電阻。在近距離(300m一下)傳輸可不需要終端電阻。
12、并行接口
(1)并行接口的數(shù)據(jù)傳輸率比串行接口快8倍,標(biāo)準并行接口的數(shù)據(jù)傳輸率為1Mb/s,一般用來連接打印機、掃描儀等,所以又稱打印口。
(2)并行接口可以分為SPP(標(biāo)準并口)、EPP(增強型并口)和ECP(擴展型并口)。
(3)并行總線分為標(biāo)準和非標(biāo)準兩類。常用的并行標(biāo)準總線有IEEE 488總線和ANSI SCSI總線。MXI總線是一種高性能非標(biāo)準的通用多用戶并行總線。
13、PCI接口
(1)PCI總線是地址、數(shù)據(jù)多路復(fù)用的高性能32位和64位總線,是微處理器與外圍控制部件、外圍附加板之間的互連機構(gòu)。
(2)從數(shù)據(jù)寬度上看,PCI定義了32位數(shù)據(jù)總線,且可擴展為64位。從總線速度上分,有33MHz和66MHz兩種。
(3)與ISA總線相比,PCI總線的地址總線與數(shù)據(jù)總線分時復(fù)用,支持即插即用、中斷共享等功能。
14、USB接口
(1)USB總線的主要特點:
A、使用簡單,即插即用。
B、每個USB系統(tǒng)中都有主機,這個USB網(wǎng)絡(luò)中最多可以連接127個設(shè)備。
C、應(yīng)用范圍廣,支持多個設(shè)備同時操作。
D、低成本的電纜和連接器,使用統(tǒng)一的4引腳插頭。
E、較強的糾錯能力。
F、較低的協(xié)議開銷帶來了高的總線性能,且適合于低成本外設(shè)的開發(fā)。
G、支持主機與設(shè)備之間的多數(shù)據(jù)流和多消息流傳輸,且支持同步和異步傳輸類型。
H、總線供電,能為設(shè)備提供5V/100mA的供電。
(2)USB系統(tǒng)由3部分來描述:USB主機、USB設(shè)備和USB互連。
(3)USB總線支持的數(shù)據(jù)傳輸率有3種:高速信令位傳輸率為480Mb/s;全速信令位傳輸率為12Mb/s;全速信令位傳輸率為1.5Mb/s。
(4)USB總線電纜有4根線:一對雙絞信號線和一對電源線。
(5)USB是一種查詢總線,由主控制器啟動所有的數(shù)據(jù)傳輸。USB上所掛接的外設(shè)通過由主機調(diào)度的、基于令牌的協(xié)議來共享USB帶寬。
(6)大部分總線事務(wù)涉及3個包的傳輸:
A、令牌包:指示總線上要執(zhí)行什么事務(wù),欲尋址的USB設(shè)備及數(shù)據(jù)傳送方向。
B、數(shù)據(jù)包:傳輸數(shù)據(jù)或指示它沒有數(shù)據(jù)要傳輸。
C、握手包:指示傳輸是否成功。
(7)主機與設(shè)備端點之間的USB數(shù)據(jù)傳輸模型被稱作管道。管道有兩種類型:流和消息。消息數(shù)據(jù)具有USB定義的結(jié)構(gòu),而數(shù)據(jù)流沒有。
(8)事務(wù)調(diào)度表允許對某些流管道進行流量控制,在硬件級,通過使用NAK(否認)握手信號來調(diào)節(jié)數(shù)據(jù)傳輸率,以防止緩沖區(qū)上溢或下溢產(chǎn)生。
(9)USB設(shè)備最大的特點是即插即用。
(10)工作原理:USB設(shè)備插入USB端點時,主機都通過默認地址0與設(shè)備的端點0進行通信。在這個過程中,主機發(fā)出一系列試圖得到描述符的標(biāo)準請求,通過這些請求,主機得到所有感興趣的設(shè)備信息,從而知道了設(shè)備的情況以及該如何與設(shè)備通信。隨后主機通過發(fā)出Set Address請求為設(shè)備設(shè)置一個唯一的地址。以后主機就通過為設(shè)備設(shè)置好的地址與設(shè)備通信,而不再使用默認地址0。
15、SPI接口
(1)SPI是一個同步協(xié)議接口,所有的傳輸都參照一個共同的時鐘,這個同步時鐘有主機產(chǎn)生,接收數(shù)據(jù)的外設(shè)使用時鐘來對串行比特流的接收進行同步化。
(2)在多個設(shè)備連接到主機的同一個SPI接口時,主機通過從設(shè)備的片選引腳來選擇。
(3)SPI主要使用4個信號:主機輸出/從機輸入(MOSI),主機輸入/從機輸出(MISO)、串行時鐘SCLK和外設(shè)片選CS。
(4)主機和外設(shè)都包含一個串行移位寄存器,主機通過向它的SPI串行寄存器寫入一個字節(jié)來發(fā)起一次數(shù)據(jù)傳輸。寄存器通過MOSI信號線將字節(jié)傳送給外設(shè),外設(shè)也將自己移位寄存器中的內(nèi)容通過MISO信號線返回給主機,這樣,兩個移位寄存器中的內(nèi)容就被交換了。
(5)外設(shè)的寫操作和讀操作時同步完成的,因此SPI成為一個很有效的協(xié)議。
(6)如果只是進行寫操作,主機只需忽略收到的字節(jié);反過來,如果主機要讀取外設(shè)的一個字節(jié),就必須發(fā)送一個空字節(jié)來引發(fā)從機的傳輸。
16、IIC接口
(1)IIC總線是具備總線仲裁和高低速設(shè)備同步等功能的高性能多主機總線。
(2)IIC總線上需要兩條線:串行數(shù)據(jù)線SDA和串行時鐘線SCL。
(3)總線上的每個器件都有唯一的地址以供識別,而且各器件都可以作為一個發(fā)送器或者接收器(由器件的功能決定)。
(4)IIC總線有4種操作模式:主發(fā)送、主接收、從發(fā)送、從接收。
(5)IIC在傳送數(shù)據(jù)過程中共有3種類型信號:
A、開始信號:SCL為高電平時,SDA由高向低跳變。
B、結(jié)束信號:SCL為高電平時,SDA由低向高跳變。
C、應(yīng)答信號:接收方在收到8位數(shù)據(jù)后,在第9個脈沖向發(fā)送方發(fā)出特點的低電平。
(6)主器件發(fā)送一個開始信號后,它還會立即送出一個從地址,來通知將與它進行數(shù)據(jù)通信的從器件。1個字節(jié)的地址包括7位地址信息和1位傳輸方向指示位,如果第7位為0,表示要進行一個寫操作,如果為1,表示要進行一個讀操作。
(7)SDA線上傳輸?shù)拿總€字節(jié)長度都是8位,每次傳輸種字節(jié)的數(shù)量沒有限制的。在開始信號后面的第一個字節(jié)是地址域,之后每個傳輸字節(jié)后面都有一個應(yīng)答位(ACK),傳輸中串行數(shù)據(jù)的MSB(字節(jié)高位)首先發(fā)送。
(8)如果數(shù)據(jù)接收方無法再接收更多的數(shù)據(jù),它可以通過將SCL保持低電平來中斷傳輸,這樣可以迫使數(shù)據(jù)發(fā)送方等待,直到SCL被重新釋放。這樣可以達到高低速設(shè)備同步。
(9)IIC總線的工作過程:SDA和SCL都是雙向的??臻e的時候,SDA和SCL都是高電平,只有SDA變?yōu)榈碗娖?,接著SCL再變?yōu)榈碗娖?,IIC總線的數(shù)據(jù)傳輸才開始。SDA線上被傳輸?shù)拿恳晃辉赟CL的上升沿被采樣,該位必須一直保持有效到SCL再次變?yōu)榈碗娖?,然后SDA就在SCL再次變?yōu)楦唠娖街皞鬏斚乱粋€位。最后,SCL變回高電平,接著SDA也變?yōu)楦唠娖?,表示?shù)據(jù)傳輸結(jié)束。
17、以太網(wǎng)接口
(1)最常用的以太網(wǎng)協(xié)議是IEEE802.3標(biāo)準。
(2)傳輸編碼(06和07年都有考題):曼徹斯特編碼和差分曼徹斯特編碼。
A、曼徹斯特編碼:每位中間有一個電平跳變,從高到底的跳變表示"0",從低到高的跳變表示為"1"。
B、差分曼徹斯特編碼:每位中間有一個電平跳變,利用每個碼元開始時有無跳變來表示"0"或"1",有跳變?yōu)?0",無跳變?yōu)?1"。(詳見《教程》200頁)。
(3)相比之下,曼徹斯特編碼編碼簡單,差分曼徹斯特編碼提供更好的噪聲抑制性能。
(4)以太網(wǎng)數(shù)據(jù)傳輸特點:
A、所有數(shù)據(jù)位的傳輸由低位開始,傳輸?shù)奈涣鲿r用曼徹斯特編碼。
B、以太網(wǎng)是基于沖突檢測的總線復(fù)用方法,由硬件自動執(zhí)行。
C、傳輸?shù)臄?shù)據(jù)長度,目的地址DA+源地址SA+類型字段TYPE+數(shù)據(jù)段DATA+填充位PAD,最小為60B,最大為1514B。
D、通常以太網(wǎng)卡可以接收3種地址的數(shù)據(jù):廣播地址、多播地址、自己的地址。
E、任何兩個網(wǎng)卡的物理地址都不一樣,是世界上唯一的,網(wǎng)卡地址由專門機構(gòu)分配。
(5)嵌入式以太網(wǎng)接口有兩種實現(xiàn)方法:
A、嵌入式處理器+網(wǎng)卡芯片(例如:RTL8019AS、CS8900等)
B、帶有以太網(wǎng)接口的處理器。
(6)TCP/IP是一個分層協(xié)議,分為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。每層實現(xiàn)一個明確的功能,對應(yīng)一個或幾個傳輸協(xié)議,每層相對于它的下層都作為一個獨立的數(shù)據(jù)包來實現(xiàn)。每層上的協(xié)議如下:
A、應(yīng)用層:BSD套接字。
B、傳輸層:TCP、UDP。
C、網(wǎng)絡(luò)層:IP、ARP、ICMP、IGMP
D、數(shù)據(jù)鏈路層:IEEE802.3 Ethernet MAC
E、物理層:二進制比特流。
(7)ARP(地址解析協(xié)議)
A、網(wǎng)絡(luò)層用32位的地址來標(biāo)識不同的主機(即IP地址),而鏈路層使用48位的物理地址(MAC)來標(biāo)識不同的以太網(wǎng)或令牌網(wǎng)接口。
B、ARP功能:實現(xiàn)從IP地址到對應(yīng)物理地址的轉(zhuǎn)換。
(8)ICMP(網(wǎng)絡(luò)控制報文協(xié)議)
A、IP層用它來與其他主機或路由器交換錯誤報文和其他重要控制信息。
B、ICMP報文是在IP數(shù)據(jù)包內(nèi)被傳輸?shù)摹?/p>
C、網(wǎng)絡(luò)診斷工具ping和traceroute其實就是ICMP協(xié)議。
(9)IP(網(wǎng)際協(xié)議)
A、IP工作在網(wǎng)絡(luò)層,是TCP/IP協(xié)議族中最為核心的協(xié)議。
B、所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)包格式傳輸。
C、TTL(生存時間字段):指定了IP數(shù)據(jù)包的生存時間(數(shù)據(jù)包可以經(jīng)過的路由器數(shù))。
D、IP提供不可靠、無連接的數(shù)據(jù)包傳送服務(wù),高效、靈活。
a、不可靠:它不能保證數(shù)據(jù)包能成功到達目的地,任何要求的可靠性必須由上層來提供(如TCP)。如果發(fā)生某種錯誤,IP有一個簡單的錯誤處理算法--丟棄該數(shù)據(jù)包,然后發(fā)送ICMP消息報給信源端。
b、無連接:IP不維護任何關(guān)于后續(xù)數(shù)據(jù)包的狀態(tài)信息。每個數(shù)據(jù)包的處理都是相互獨立的。IP數(shù)據(jù)包可以不按順序接收,
(10)TCP(傳輸控制協(xié)議)
TCP協(xié)議是一個面向連接的可靠的傳輸層協(xié)議,它為兩臺主機提供高可靠性的端到端數(shù)據(jù)通信。
(11)UDP(用戶數(shù)據(jù)包協(xié)議)
UDP協(xié)議是一種無連接不可靠的傳輸層協(xié)議,它不保證數(shù)據(jù)包能到達目的地,可靠性有應(yīng)用層來提供。UDP協(xié)議開銷少,和TCP相比更適合于應(yīng)用在低端的嵌入式領(lǐng)域中。
(12)端口:TCP和UDP采用16位端口號來識別上層的用戶,即應(yīng)用層協(xié)議,例如FTP服務(wù)的TCP端口號都是21,Telnet服務(wù)的TCP端口號都是23,TFTP服務(wù)的UDP端口號都是69。
18、CAN總線接口
(1)CAN(Control Area Network,控制器局域網(wǎng))總線是一種多主方式的串行通信總線,是國際上應(yīng)用最廣泛的現(xiàn)場總線之一,最初被用于汽車環(huán)境中的電子控制網(wǎng)絡(luò)。一個CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理想情況下可以掛接任意多個節(jié)點,實際應(yīng)用中節(jié)點數(shù)據(jù)受網(wǎng)絡(luò)硬件的電氣特性所限制。
(2)總線信號使用差分電壓傳送。兩條信號線被稱為CAN_H和CAN_L,靜態(tài)是均為2.5V左右,此時狀態(tài)表示邏輯1,也可以叫做"隱性"。用CAN_H比CAN_L高表示邏輯0,稱為"顯性",此時,通常電壓值為CAN_H=3.5V和CAN_L=1.5V。
(3)當(dāng)"顯性"和"隱性"位同時發(fā)送的時候,最后總線數(shù)值將為"顯性"這種特性為CAN總線的仲裁奠定了基礎(chǔ)。
(4)CAN總線的一個位時間可以分成4個部分:同步段、傳播時間段、相位緩沖段1和相位緩沖段2。(詳見《教程》205頁)
(5)CAN總線的數(shù)據(jù)幀有兩種格式:標(biāo)準格式和擴展格式。包括:幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、ACK場和幀結(jié)束。
(6)CAN總線硬件接口包括:CAN總線控制器和CAN收發(fā)器。CAN控制器主要完成時序邏輯轉(zhuǎn)換等工作,例如菲利普的SJA1000。CAN收發(fā)器是CAN總線的物理層芯片,實現(xiàn)TTL電平到CAN總線電平特性的轉(zhuǎn)換,例如TJA1050。
19、xDSL接口
(1)xDSL(數(shù)字用戶線路)技術(shù)是,在現(xiàn)有用戶電話線兩側(cè)同時接入專用的DSL調(diào)制解調(diào)設(shè)備,在用戶線上利用數(shù)字數(shù)字信號高頻帶寬較寬的特性直接采用數(shù)字信號傳輸,省去中間的A/D轉(zhuǎn)換,突破了模擬信號傳輸極限速率為56KB/s的閑置。
(2)DSL技術(shù)主要分為對稱和非對稱兩大類。
(3)對成xDSL更適合于企業(yè)點對點連接應(yīng)用,例如文件傳輸、視頻會議等收發(fā)數(shù)據(jù)量大致相同的工作。
(4)ASDL是近年發(fā)展的另一種寬帶接入技術(shù),是利用雙絞銅線向用戶提供兩個方向上速率不對稱的寬帶信息業(yè)務(wù)。
(5)ADSL在一對電話線上同時傳送一路高速下行數(shù)據(jù)、一路較低速率上行數(shù)據(jù)、一路模擬電話。各信號之間采用頻分復(fù)用方式占用不同頻帶,低頻段傳送話音;中間窄頻帶傳送上行信道數(shù)據(jù)及控制信息;其余高頻段傳送下行信道數(shù)據(jù)、圖像或高速數(shù)據(jù)。
20、WLAN接口
(1)WLAN(Wireless Local Area Network)是利用無線通信技術(shù)在一定的局部范圍內(nèi)建立的,是計算機網(wǎng)絡(luò)與無線通信技術(shù)相結(jié)合的產(chǎn)物,它以無線多址通道作為傳輸媒介,提供有線局域網(wǎng)的功能。
(2)WLAN的標(biāo)準:主要是針對物理層和媒質(zhì)訪問控制層(MAC層),涉及到所有使用的無線頻率范圍、控制接口通信協(xié)議等技術(shù)規(guī)范與技術(shù)標(biāo)準。
A、IEEE 802.11:定義了物理層和MAC層規(guī)范,工作在2.4~2.4835GHz頻段,最高速率為2Mb/s,是IEEE最初制定的一個無線局域網(wǎng)標(biāo)準。
B、IEEE 802.11b:工作在2.4~2.4835GHz頻段,最高速率為11Mb/s,傳輸距離50~150inch。采用點對點模式和基本模式兩種運行模式。在數(shù)據(jù)傳輸速率方面可以根據(jù)實際情況在11Mb/s、5.5Mb/s、2 Mb/s、1 Mb/s的不同速率間自動切換。
C、IEEE 802.11a:工作在5.15~8.825GHz頻段,最高速率為54Mb/s/72Mb/s,傳輸距離10~100m。
D、IEEE 802.11g:混合標(biāo)準,擁有EEE 802.11a的傳輸速率,安全性較EEE 802.11b好,采用兩種調(diào)制方式,做到與EEE 802.11a和EEE 802.11b兼容。
(3)WLAN有兩種網(wǎng)絡(luò)類型:對等網(wǎng)絡(luò)和基礎(chǔ)機構(gòu)網(wǎng)絡(luò)。
21、藍牙接口
(1)藍牙技術(shù)的目的:使特定的移動電話、便鞋式電腦以及各種便攜通信設(shè)備的主機之間近距離內(nèi)實現(xiàn)無縫的資源共享。
(2)藍牙技術(shù)的實質(zhì)內(nèi)容是要建立通用的無線空中接口及其控制軟件的公開標(biāo)準。其工作頻段為全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段,其數(shù)據(jù)傳輸速率為1Mb/s,采用時分雙工方案來實現(xiàn)全雙工傳輸,其理想的連接范圍為10cm~10m。
(3)藍牙基帶協(xié)議是電路交換和分組交換的結(jié)合。
(4)藍牙技術(shù)特點:
A、傳輸距離短,工作距離在10m以內(nèi)。
B、采用跳頻擴頻技術(shù)。
C、采用時分復(fù)用多路訪問技術(shù),有效地避免了"碰撞"和"隱藏終端"等問題。
D、網(wǎng)絡(luò)技術(shù)。
E、語言支持。
F、糾錯技術(shù),其采用的是FEC(前向糾錯)方案。
(5)藍牙接口由3大單元組成:無線單元、基帶單元、鏈路管理與控制單元。
22、1394接口
(1)1394作為一種標(biāo)準總線,可以在不同的工業(yè)設(shè)備之間架起一座溝通的橋梁,在一條總線上可以接入63個設(shè)備。
(2)IEEE 1394的特點:
A、支持多種總線速度,適應(yīng)不同應(yīng)用要求。
B、即插即用,支持熱插拔。
C、支持同步和異步兩種傳輸方式。
D、支持點到點通信模式,IEEE 1394是多主總線。
E、遵循ANSI IEEE 1212控制及狀態(tài)寄存器(CSR)標(biāo)準,定義了64位的地址空間,可尋址1024條總線的63個節(jié)點,每個節(jié)點可包含256TB的內(nèi)存空間。
F、支持較遠距離的傳輸。
G、支持公平仲裁原則,為每一種傳輸方式保證足夠的傳輸帶寬。
H、六線電纜具有電源線,可傳輸8~40V的直流電壓。
(3)IEEE 1394的協(xié)議棧由3層組成:物理層、鏈路層和事務(wù)層,例外還有一個管理層。物理層和鏈路層由硬件構(gòu)成,而事務(wù)層主要由軟件實現(xiàn)。
A、物理層提供IEEE 1394的電氣和機械接口,功能是重組字節(jié)流并將它們發(fā)送到目的節(jié)點上去。
B、鏈路層提供了給事務(wù)層確認的數(shù)據(jù)服務(wù),包括:尋址、數(shù)據(jù)組幀和數(shù)據(jù)校驗。
C、事務(wù)層為應(yīng)用提供服務(wù)。
D、管理層定義了一個管理節(jié)點所使用的所有協(xié)議、服務(wù)以及進程。
23、電源接口
(1)DC-DC轉(zhuǎn)換器有三種類型:
A、線性穩(wěn)壓器:產(chǎn)生較輸入電壓低的電壓。
B、開關(guān)穩(wěn)壓器:能升高電壓、降低電壓或翻轉(zhuǎn)輸入電壓。
C、充電泵:可以升高、降低或翻轉(zhuǎn)輸入電壓,但電流驅(qū)動能力有限。
(2)任何變壓器的轉(zhuǎn)換過程都不具有100%的效率,穩(wěn)壓器本省也使用電流(靜態(tài)電流),這個電流來自輸入電流。靜態(tài)電流越大,穩(wěn)壓器功耗越大。
(3)線性穩(wěn)壓器輸入輸出使用退耦電容來過濾,電容除了有助于平穩(wěn)電壓以外,還有利于去除電源中的瞬間短時脈沖波形干擾。
(4)電壓與功耗之間的平方關(guān)系意味著理想高效的方法是在要求較低電壓的較低時鐘速率上執(zhí)行代碼,而不是先以最高的時鐘速率執(zhí)行代碼然后再轉(zhuǎn)為空閑休眠。
(5)電源通常被認為是整個系統(tǒng)的"心臟",絕大多數(shù)電子設(shè)備50%~80%的節(jié)能潛力在于電源系統(tǒng),研制開發(fā)新型開關(guān)電源是節(jié)能的主要舉措之一。
(6)降低功耗的設(shè)計技術(shù):
A、采用低功耗器件,例如選用CMOS電路芯片。
B、采用高集成度專用器件,外部設(shè)備的選擇也要盡量支持低功耗設(shè)計。
C、動態(tài)調(diào)整處理器的時鐘頻率和電壓,在允許的情況下盡量使用低頻率器件。
D、利用"節(jié)電"工作方式。
E、合理處理器件空余引腳:
a、大多數(shù)數(shù)字電路的輸出端在輸出低電平時,其功耗遠遠大于輸出高電平時的功耗,設(shè)計時應(yīng)該注意控制低電平的輸出時間,閑置時使其處于高電平輸出狀態(tài)。
b、多余的非門、與非門的輸入端應(yīng)接低電平,多余的與門、或門的輸入端應(yīng)接高電平。
c、ROM或RAM及其他有片選信號的器件,不要將"片選"引腳直接接地,避免器件長期被接通,而應(yīng)該與"讀/寫"信號結(jié)合,只對其進行讀寫操作時才選通。
F、實現(xiàn)電源管理,設(shè)計外部器件電源控制電路,控制"耗電大戶"的供電情況。
三、真題解析
1、2007年25題
下圖為01001110的各種編碼方式,不歸零電平(NRZ-L)采用0表示高電平,1表示低電平。若按照從上到下的順序,所采用的編碼方式分別為(25)。
25)A.不歸零電平,曼徹斯特編碼,差分曼徹斯特編碼,不歸零1制
B.不歸零電平,不歸零1制,曼徹斯特編碼,差分曼徹斯特編碼
C.曼徹斯特編碼,不歸零電平,不歸零1制,差分曼徹斯特編碼
D.不歸零1制,不歸零電平,差分曼徹斯特編碼,曼徹斯特編碼
<答案>:B
考查計算機系統(tǒng)硬件編碼方面的基礎(chǔ)知識。
不歸零電平:0=高電平;1=低電平。
不歸零1制:0=在間隔的其實位置沒有跳變;1=在間隔的其實位置有跳變。
曼徹斯特編碼:
0=在間隔的中間位置從高向低跳變。
1=在間隔的中間位置從低向高跳變。
差分曼徹斯特編碼:在間隔的中間位置總有一個跳變。
0=在間隔的起始位置有跳變。
1=在間隔的起始位置沒有跳變。
2、2007年28題
下面關(guān)于DMA方式的描述,不正確的是(28)。
(28)A. DMA方式使外設(shè)接口可直接與內(nèi)存進行高速的數(shù)據(jù)傳輸
B. DMA方式在外設(shè)與內(nèi)存進行數(shù)據(jù)傳輸時不需要CPU干預(yù)
C.采用DMA方式進行數(shù)據(jù)傳輸時,首先需要進行現(xiàn)場保護
D. DMA方式執(zhí)行I/O交換要有專門的硬件電路
<答案>:C
考查計算機系統(tǒng)硬件方面關(guān)于DMA方式的基礎(chǔ)知識。盡管《教程》中沒有詳細的提及,但是作為嵌入式最基本的知識點,是應(yīng)該掌握的。
DMA是"直接存儲器訪問",以這種方式傳送數(shù)據(jù)時,是通過專門的硬件電路-DMA控制器直接訪問存儲器來完成,不需要CPU的干預(yù),省去了保護和恢復(fù)現(xiàn)場的問題。
3、2007年32題
下列關(guān)于D/A變換器接口的描述,不正確的是(32)。
(32)A.它是嵌入式微機系統(tǒng)與外部模擬控制對象的重要控制接口
B.它通常由模擬開關(guān)、權(quán)電阻電路、緩沖電路組成
C.它也可以把外界的模擬量變換成數(shù)字量
D.它輸出的模擬量可以是電流,也可以是電壓
<答案>:C
考查嵌入式系統(tǒng)中D/A接口的基礎(chǔ)知識。
D/A轉(zhuǎn)換器是將數(shù)據(jù)信號轉(zhuǎn)化為模擬信號的接口,是嵌入式系統(tǒng)與外部模擬控制對象的重要控制接口,其通常由模擬開關(guān)、權(quán)電阻電路和緩沖電路組成,根據(jù)不同的情況,輸出的模擬量可以是電流,也可以是電壓。
4、2007年33題
RS-232C串行通信總線的電氣特性要求總線信號采用(33)。
(33)A.正邏輯 B.負邏輯 C.高電平 D.低電平
<答案>:B
考查嵌入式系統(tǒng)中串行接口的基本知識。我覺得這是常識性的問題。
5、2006年33、34題
RS-232標(biāo)準在初期可以滿足人們的要求,但當(dāng)人們要求以更高的速率傳送到更遠的距離時,需要有新的標(biāo)準。RS-449就是為此目的而設(shè)計的,它的標(biāo)準規(guī)格中,RS-422標(biāo)準是平衡式的,傳輸一個信號用兩根線,邏輯信號用(33)表示,雙線傳輸?shù)闹饕獌?yōu)點是(34)
(33) A.正負5V以上電平 B.正負3V以上電平
C.兩線的電平差 D.兩線的電平
(34) A.冗余可靠 B.抗干擾能力強
C.傳輸線少 D.可并行傳輸信號
<答案>:C、B
考查RS-422串行通信接口的基本知識。
RS-422標(biāo)準的數(shù)據(jù)信號采用差分傳輸方式(即邏輯信號用兩條線的電平差表示),使用一對雙絞線進行信號傳輸。其主要優(yōu)點是增強了信號的抗干擾能力。
6、2006年35題
若曼徹斯特編碼和差分曼徹斯特編碼的波形如圖所示,則實際傳送的比特串為(35)
(35) A. 011010110 B. 100101100
C. 100100100 D. 011010011
<答案>:D
考查計算機系統(tǒng)硬件編碼方面的基礎(chǔ)知識。
詳解見(1)2007年25題。
7、2006年36題
下面關(guān)于PCI總線的敘述,其中(36)是錯誤的。
(36) A. PCI總線支持64位總線。
B. PCI總線的地址總線與數(shù)據(jù)總線是分時復(fù)用的。
C. PCI總線是一種獨立設(shè)計的總線,它的性能不受CPU類型的影響。
D. PC機中不能同時使用PCI總線和ISA總線。
<答案>:D
考查嵌入式系統(tǒng)中PCI接口的基本知識。
詳見見復(fù)習(xí)筆記13。在普通PC中允許同時使用PCI總線和ISA總線,這也是常識。
8、2006年37題
IEEE802.11b標(biāo)準定義了使用跳頻、擴頻技術(shù)的無線局域網(wǎng)標(biāo)準,傳輸速率為1Mb/s,2Mb/s,5.5Mb/s和(37)
(37) A. 10Mb/s B. 11Mb/s C. 20 Mb/s D. 54 Mb/s
<答案>:B
考查WLAN中常用標(biāo)準的基本知識。
嵌入式系統(tǒng)設(shè)計師考試復(fù)習(xí)筆記之存儲管理篇
1、存儲器系統(tǒng)的層次架構(gòu)
計算機系統(tǒng)的存儲器被組織城一個金字塔的層次結(jié)構(gòu)。
自上而下為:CPU內(nèi)部寄存器、芯片內(nèi)部高速緩存(cache)、芯片外部高速緩存(SRAM、SDRAM、DRAM)、主存儲器(FLASH、EEPROM)、外部存儲器(磁盤、光盤、CF卡、SD卡)和遠程二級存儲器(分布式文件系統(tǒng)、WEB服務(wù)器),6個層次的結(jié)構(gòu)。
上述設(shè)備從上而下,依次速度更慢、容量更大、訪問頻率更小,造價更便宜。
2、高速緩存(cache)
工作原理(參照教程126頁,博客畫不了圖):主要利用了程序的局部性特點。
地址映象是指把主存地址空間映象到cache的地址空間。
地址變換是指當(dāng)程序或數(shù)據(jù)已經(jīng)裝入到cache后,在實際運行過程中,把主存地址如何編程cache空間的地址。
常用的地址映象和地址變換的方式有:(教程127頁)
直接映象和變換:速度快,造價低,但有局限性,不能充分利用cache的好處。
組相聯(lián)地址映象和變換:速度稍慢但是命中率高。
全相聯(lián)地址映象和變換:可以任意映射。
常用的cache替換算法:輪轉(zhuǎn)法和隨機替換算法。
高速緩存的分類:
統(tǒng)一cache和獨立的數(shù)據(jù)/指令cache
寫通cache和寫回cache
讀操作分配cache和寫操作分配cache
3、存儲管理單元(MMU)
MMU在CPU和物理內(nèi)存之間進行地址轉(zhuǎn)換,將地址從邏輯空間映射到物理空間,這個過程稱為內(nèi)存映射。
MMU主要完成下面的工作:
A.虛擬存儲空間到物理空間的映射。
B.存儲器訪問權(quán)限的控制。
C.設(shè)置虛擬存儲空間的緩沖特性。
嵌入式系統(tǒng)中常常采用頁式存儲管理。為了管理這些頁引入了頁表的概念。
頁表是位于內(nèi)存中的表,它的每一行對應(yīng)虛擬存儲空間的一個頁,該行包含了該虛擬內(nèi)存頁對應(yīng)的物理內(nèi)存頁的地址、該頁的訪問權(quán)限和該頁的緩沖特性等。
從虛擬地址到物理地址的變換過程就是查詢頁表的過程。
由于頁表存儲在內(nèi)存中的,整個查詢過程需要付出很大的代價。根據(jù)程序局部性的特點,增加了一個小容量、高速度的存儲部件來存放當(dāng)前訪問需要的地址變換條目,這個存儲部件稱為:地址轉(zhuǎn)換后備緩沖器(TLB)。
當(dāng)CPU訪問內(nèi)存時,首先在TLB中查找需要的地址變換條目,如果該條目不存在,CPU再從內(nèi)存中的頁表中查詢,并把相應(yīng)的結(jié)果添加到TLB中,更新它的內(nèi)容。
嵌入式系統(tǒng)中虛擬存儲空間到物理空間的映射以內(nèi)存塊為單位進行。即虛擬存儲空間中一塊連續(xù)的存儲空間被映射到物理存儲空間中同樣大小的一塊連續(xù)存儲空間。
在頁表和TLB中,每一個地址變換條目實際上記錄了一個虛擬存儲空間的內(nèi)存塊的基地址與物理存儲空間相對應(yīng)的一個內(nèi)存塊的基地址之間的對應(yīng)關(guān)系。
在MMU中實現(xiàn)虛擬地址到物理地址的映射是通過兩級頁表來實現(xiàn)的。
禁止MMU時,所有物理地址和虛擬地址相等,即使用平板存儲模式。
4、內(nèi)存保護
操作系統(tǒng)通常利用MMU來實現(xiàn)操作系統(tǒng)內(nèi)核與應(yīng)用程序之間的隔離,以及應(yīng)用程序與應(yīng)用程序之間的隔離。
內(nèi)存保護包含兩個方面的內(nèi)容:
A.防止地址越界,每個應(yīng)用程序都有自己獨立的地址空間。
B.防止越權(quán)操作,每個應(yīng)用程序都有自己的訪問權(quán)限。
5、實模式與保護模式
在嵌入式系統(tǒng)中,常見的存儲管理方案可以分為兩大類:實模式和保護模式。
實模式:內(nèi)存的平面使用模式。特點有:
A.不劃分"系統(tǒng)空間"與"用戶空間",無須進行地址映射。
B.操作系統(tǒng)與應(yīng)用程序之間不再有物理的邊界。
C.系統(tǒng)中的"任務(wù)"或"進程",實際上全是內(nèi)核線程。
在實模式下,內(nèi)存布局可以分為5個段:
A.代碼段:包含操作系統(tǒng)和應(yīng)用程序的所有代碼。
B.數(shù)據(jù)段:所有帶有初始值的全局變量。
C.BSS段:所有未帶初始值的全局變量。
D.堆空間:動態(tài)分配的內(nèi)存空間。
E.棧空間:保存上下文以及函數(shù)調(diào)用時的局部變量和形參。
在實模式存儲管理方案下,主要的工作在于堆空間的管理,即如何來管理空閑的堆空間、如何來分配內(nèi)存、如何來回收內(nèi)存等等。
保護模式:處理器中必須有MMU硬件并啟用。特點有:
A.系統(tǒng)內(nèi)核和用戶程序都有各自獨立的地址空間。
B.每個應(yīng)用程序只能訪問自己的地址空間,不能去破壞操作系統(tǒng)和其他應(yīng)用程序的代碼和數(shù)據(jù)。
6、分區(qū)存儲管理
為了實現(xiàn)多道程序系統(tǒng)而采用的內(nèi)存管理。
基本思路:把整個內(nèi)存劃分為兩大區(qū)域,即系統(tǒng)區(qū)和用戶區(qū),然后再把用戶區(qū)劃分為若干個分區(qū),每個任務(wù)占有其中的一個分區(qū)。這樣,在內(nèi)存當(dāng)中就同時保留多個任務(wù),讓他們共享整個用戶區(qū),從而實現(xiàn)多個任務(wù)的并發(fā)運行。
分區(qū)存儲管理又可以分為兩類:固定分區(qū)和可變分區(qū)。
固定分區(qū):各個用戶分區(qū)的個數(shù)、位置和大小一旦確定后,就固定不變,不能再修改。
優(yōu)點:易于實現(xiàn),系統(tǒng)開銷較小。
缺點:內(nèi)存利用率不高,分區(qū)總數(shù)固定。
可變分區(qū):動態(tài)創(chuàng)建,在裝入一個程序時,系統(tǒng)將根據(jù)它的需求和內(nèi)存空間的使用情況來決定是否分配。
優(yōu)點:動態(tài)變化,非常靈活。
缺點:可能存在外碎片。
在實現(xiàn)可變存儲管理技術(shù)的時候,需要考慮三個方面的問題:
A.內(nèi)存管理的數(shù)據(jù)結(jié)構(gòu)
B.內(nèi)存的分配算法
C.內(nèi)存的回收算法
7、地址映射
地址映射也叫地址重定位。
邏輯地址和物理地址是完全不同的,不能用邏輯地址來直接訪問內(nèi)存單元。
為了保證CPU在執(zhí)行指令的時候,可以正確地訪問內(nèi)存單元,需要將用戶程序中的邏輯地址轉(zhuǎn)換為運行時由機器直接尋址的物理地址。這個過程稱為:地址映射。
地址映射由存儲管理單元MMU來完成。
地址映射主要有兩種方式:靜態(tài)地址映射和動態(tài)地址映射。
靜態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,直接對指令代碼進行修改,一次性地實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換。
動態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時,不對指令代碼做任何修改,而是在程序的運行過程中,當(dāng)它需要訪問內(nèi)存單元的時候,再來進行地址轉(zhuǎn)換。
在具體實現(xiàn)時,這項轉(zhuǎn)換工作一般是由硬件的地址映射機制來完成的。通常設(shè)置一個基地址寄存器,或者叫重定位寄存器。當(dāng)一個任務(wù)被調(diào)度運行時,就把它所在分區(qū)的起始地址裝入到整個寄存器中。然后,在程序運行的過程中,當(dāng)需要訪問某個內(nèi)存單元時,硬件就會自動地將其中的邏輯地址加上基地址寄存器中的內(nèi)容,從而得到實際的物理地址,并且按照這個物理地址區(qū)執(zhí)行。
這個基地址寄存器位于MMU的內(nèi)部,整個地址映射過程是自動運行的。從理論上說,每訪問一次內(nèi)存都要進行一次地址映射。
8、頁式存儲管理(重點)
基本思路:把物理內(nèi)存劃分為許多固定大小的內(nèi)存塊,稱為物理頁面;把邏輯地址空間也劃分為大小相同的塊,稱為邏輯頁面。當(dāng)一個用戶程序被裝入內(nèi)存時,不是以整個程序為單位,把它存放在一整塊連續(xù)的區(qū)域,而是以頁面為單位來進行分配的。對于一個大小為N的頁面程序,需要有N個空閑的物理頁面來把它裝載。這些物理頁面不一定是要連續(xù)的。
在頁式存儲管理中需要解決三個問題:數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配與回收、地址映射。
數(shù)據(jù)結(jié)構(gòu)有兩個:頁表和物理頁面表。
A.頁表:給出了任務(wù)邏輯頁面號和內(nèi)存中物理頁面號之間的對應(yīng)關(guān)系。
B.物理頁面表:描述內(nèi)存空間中,各個物理頁面的使用情況。
具體的例子請參考《教程》317頁(博客中畫不了圖,有興趣自己看)。
內(nèi)存的分配過程:
A.對于一個新來的任務(wù),計算它所需要的頁面數(shù)N,然后查看位示圖,看是否還有N個空閑的物理頁面。
B.如果有足夠的空閑物理頁面,就去申請一個頁表,其長度為N,并把頁表的起始地址填入到該任務(wù)的控制塊中。
C.分配N個空閑的物理頁面,把他們的變換填到頁表中,建立邏輯頁面與物理頁面直接的對應(yīng)關(guān)系。
D.修改位示圖,對剛剛被占用的那些物理頁面進行標(biāo)記。
地址映射的基本思路:
A.邏輯地址分析:對邏輯地址,找到它所在的邏輯頁面,以及它在頁面內(nèi)的偏移地址。
B.頁表查找:根據(jù)邏輯頁面號,從頁表中找出它對應(yīng)的物理頁面號。
C.物理地址合成:根據(jù)物理頁面號和頁內(nèi)偏移地址,最終確定物理地址。
邏輯地址分析:
頁面的大小都是2的整數(shù)次冪。對于給定的一個邏輯地址,可以直接把它的高位部分作為邏輯頁面號,把它的低位部分作為頁內(nèi)偏移地址。例如,假設(shè)頁面的大小是4KB,即2的12次冪,邏輯地址為32為,那么在一個邏輯地址當(dāng)中,最低12位為頁內(nèi)偏移地址,而剩下的20位就是邏輯頁面號。
計算方法:
邏輯頁面號=邏輯地址/頁面大小
頁內(nèi)偏移量=邏輯地址%頁面大小
頁表查找:
頁表作為操作系統(tǒng)的一個數(shù)據(jù)結(jié)構(gòu),通常保存在內(nèi)核的地址空間中。
頁表基地址寄存器用來指向頁表的起始地址;頁表長度寄存器用來指示頁表的大小,即對于當(dāng)前任務(wù),它總共包含有多少個頁面。
物理地址合成:
假設(shè)物理頁面號為f,頁內(nèi)偏移地址為offset,每個頁面大小為2n,那么相應(yīng)的物理地址為:f×2n+offset。
9、虛擬存儲管理
程序局部性原理:時間局限性和空間局限性。
虛擬頁式存儲管理:在頁式管理的基礎(chǔ)上,增加了請求調(diào)頁和頁面置換的功能。
基本思路:當(dāng)一個用戶程序需要調(diào)入內(nèi)存去運行時,不是將這個程序的所有頁面都裝入內(nèi)存,而是只裝載部分的頁面,就可以啟動這個程序運行。在運行過程中,如果發(fā)現(xiàn)要執(zhí)行的指令或者訪問的數(shù)據(jù)不在內(nèi)存當(dāng)中,就向系統(tǒng)發(fā)出缺頁中斷請求,然后系統(tǒng)在處理這個中斷請求時,就會將保存在外存中的相應(yīng)頁面調(diào)入內(nèi)存,從而使該程序能繼續(xù)運行。
在虛擬頁式存儲管理中,頁表包含:邏輯頁面號、物理頁面號、駐留位、保護位、修改位和訪問位。
常用的頁面置換算法:
A.最優(yōu)頁面置換算法:理想化算法。
B.最近最久未使用算法:鏈表法和棧方法。尋找長時間沒有被訪問的頁面。
C.最不常用算法:每個頁面設(shè)置一個訪問計數(shù)器。
D.先進先出算法:性能比較差。
E.時鐘頁面置換算法:把頁面組成環(huán)形鏈表,類似時鐘面。
一般來說,當(dāng)一個任務(wù)剛剛啟動的時候,它會不斷去訪問一些新的頁面,然后逐步建立一個比較穩(wěn)定的工作集。工作集是指當(dāng)前任務(wù)正在使用的邏輯頁面的集合。如果分配給一個任務(wù)的物理頁面數(shù)太少,不能包含整個的工作集,任務(wù)將會造成很多缺頁中斷,需要頻繁地進行頁面置換,這種現(xiàn)象稱為"抖動"。
10、相關(guān)的考試真題
(1)2007年6題:
若內(nèi)存地址區(qū)間為4000H~43FFH,每個存貯單元可存儲16位二進制數(shù),該內(nèi)存區(qū)域用4片存儲器芯片構(gòu)成,則構(gòu)成該內(nèi)存所用的存儲器芯片的容量是(6)。
(6)A.512×16bitB.256×8bitC.256×16bitD.1024×8bit
<答案>:C
首先計算內(nèi)容空間的大?。?3FFH-4000H=3FFH,其大小為1024×16bit
接著計算存儲芯片的容量:(1024×16bit)/4=256×16bit=512×8bit
根據(jù)選項提供的內(nèi)容,只有256×16bit符合提綱的要求。
(2)2007年23題:
頁式存儲系統(tǒng)的邏輯地址是由頁號和頁內(nèi)地址兩部分組成,地址變換過程如下圖所示。假定頁面的大小為8K,圖中所示的十進制邏輯地址9612經(jīng)過地址變換后,形成的物理地址a應(yīng)為十進制(23)。
(23)A.42380B.25996C.9612D.8192
<答案>:B
8K=1024×8=8192
邏輯頁面號=9612/8192=1(1號頁號對應(yīng)的物理地址塊號為3)
頁內(nèi)偏移量=9612%8192=1420
物理地址=3×8192+1420=25996
(3)2007年24題
某總線有104根信號線,其中數(shù)據(jù)總線(DB)32根,若總線工作頻率為33MHz,則其理論最大傳輸率為(24)。(注:本題答案中的B表示Byte)
(24)A.33MB/sB.64MB/sC.132MB/sD.164MB/s
<答案>:C
每個字節(jié)8位,需要8根數(shù)據(jù)線。
數(shù)據(jù)總線有32跟,每次可以并行傳輸32/8=4個字節(jié)。
總線工作頻率為33MHz,那么理論最大傳輸率為33×4=132MHz。
(4)2007年26題
某存儲器數(shù)據(jù)總線寬度為32bit,存取周期為250ns,則該存儲器帶寬為(26)。(注:本題答案中的B表示Byte)
(26)A.8×106B/sB.16×106B/sC.16×108B/sD.32×106B/s
<答案>:B
存取頻率為:1/0.00000025s=4000000
總線寬度為:32bit/8=4byte
存儲器帶寬:4×4000000=16000000=16×106B/s
(5)2007年29~31題
在嵌入式處理器中,CACHE的主要功能由(29)實現(xiàn);某32位計算機的CACHE容量為16KB(B:字節(jié)),CACHE塊的大小為16B(B:字節(jié)),若主存與CACHE地址映像采用直接映像方式,則主存地址為0x1234E8F8的單元裝入CACHE的地址(30);在下列CACHE替換算法中平均命中率最高的是(31)。
(29)A.硬件B.軟件
C.操作系統(tǒng)D.應(yīng)用程序
(30)A.00010001001101B.01000100011010
C.10100011111000D.11010011101000
(31)A.先入后出算法(FILO)B.隨機替換算法(RAND)
C.先入先出算法(FIFO)D.近期最少使用算法(LRU)
<答案>:A、C、D
29:Cache的主要功能由硬件實現(xiàn),這個《教程》有介紹。
30:cache容量為16KB即邏輯地址的低14位
由于采用的是直接映象所以cache的地址為:主存地址的低14位。
31:相比較說,D的命中率最低。
(6)2007年34題
在嵌入式系統(tǒng)的存儲結(jié)構(gòu)中,存取速度最快的是(34)。
(34)A.內(nèi)存B.寄存器組C.FlashD.Cache
<答案>:B
寄存器組>cache>內(nèi)存>flash
(7)2007年41題
操作系統(tǒng)中的"抖動"是指(41)的現(xiàn)象。
(41)A.根據(jù)一定的頁面置換算法,將頁面調(diào)出
B.由于選擇了長期未被訪問的頁進行置換,導(dǎo)致系統(tǒng)更換頁面
C.頁面調(diào)入不久就被導(dǎo)出,導(dǎo)出不久又被調(diào)入,導(dǎo)致系統(tǒng)頻繁更換頁面
D.根據(jù)系統(tǒng)運行情況決定將哪個頁面調(diào)出,而不是由頁面置換算法決定更換哪個頁面
<答案>:C
《教程》中328頁有對"抖動"的介紹。
(8)2006年1題
若內(nèi)存按字節(jié)編址,用存儲容量為32K×8比特的存儲器芯片構(gòu)成地址編號A0000H到DFFFFH的內(nèi)存空間,則至少需要(1)片。
(1)A.4B.6C.8D.10
<答案>:C
DFFFF=-A0000H=256KB。
256/32=8片
(9)2006年22題
從下表關(guān)于操作系統(tǒng)存儲管理方案1、方案2和方案3的相關(guān)描述可以看出,他們分別對應(yīng)(22)存儲管理方案。
方案1:在系統(tǒng)進行初始化的時候就已經(jīng)將主存儲空間劃分成大小相等或不等的塊,并且這些塊的大小在此后是不可以改變的。系統(tǒng)將程序分配在聯(lián)系的區(qū)域中。
方案2:主儲存空間和程序按固定大小大單位進行分割,程序可以分配在不連續(xù)的區(qū)域中。該方案當(dāng)一個作業(yè)的程序地址空間大于主存可以使用的空間時也可以執(zhí)行。
方案3:編程時必須劃分程序模塊和確定程序模塊之間的調(diào)用關(guān)系,不存在調(diào)用關(guān)系的模塊可以占用相同的主存區(qū)。
(22)A.固定分區(qū)、請求分頁和覆蓋
B.覆蓋、請求分頁和固定分區(qū)
C.固定分區(qū)、覆蓋和請求分頁
D.請求分頁、覆蓋和固定分區(qū)
<答案>:A
《教程》中有相關(guān)概念的介紹。
(10)2006年28題
在32位總線系統(tǒng)中,若時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,則該總線系統(tǒng)的數(shù)據(jù)傳輸速率為(28)MB/s。
(28)A.200B.400C.600D.800
<答案>:B
與2007年的24和26題考查的是相同的內(nèi)容。
在32位總線系統(tǒng)中,每次可以傳送32位字,即4個BYTE。
時鐘頻率為500MHz,則傳輸32位的速率為100MHz。
也就是總線的數(shù)據(jù)傳輸速率為:4×100=400MB/s。
在嵌入式系統(tǒng)的存儲結(jié)構(gòu)中,存取速度最快的是(34)。
(11)2006年29題
在CPU和物理內(nèi)存之間進行地址轉(zhuǎn)換時,(29)將地址從虛擬(邏輯)地址空間映射到物理地址空間。
(29)A.TCBB.MMUC.CACHED.DMA
<答案>:B
TCB:任務(wù)控制塊
MMU:存儲管理單元
CACHE:高速緩存
DMA:直接存儲
(12)2006年31題
下列存取速度最快的是(31)。
(31)A.flash存儲器B.DRAM存儲器C.高速緩存(CACHE)D.磁盤
<答案>:C
高速緩存(CACHE)>DRAM存儲器>flash存儲器、磁盤
(13)2006年51題
頁式存儲器當(dāng)中的頁面是由(51)所感知的。
(51)A.用戶B.操作系統(tǒng)C.編譯系統(tǒng)D.連接程序
<答案>:B
概念理解,看過就應(yīng)該會做,不看過也能推理出來。
總的來看,07年考查內(nèi)存管理方面的內(nèi)容比06年多,深度也相應(yīng)的增加了。
嵌入式系統(tǒng)設(shè)計師考試筆記之電子電路設(shè)計基礎(chǔ)
一、引言
在嵌入式系統(tǒng)的硬件設(shè)計中,嵌入式微處理器和外圍設(shè)備接口技術(shù)是兩個最為核心的部分,然而支撐這個兩個部分的基礎(chǔ)確實電子電路的基本技術(shù)。任何一個嵌入式系統(tǒng)的設(shè)計都離不開電子電路的設(shè)計。作為嵌入式系統(tǒng)設(shè)計師的考試,對這方面的考查或多或少有幾題,但在整個考試題目中所占的比例不多。過去的兩分考題中,06年考了4題,07年沒有考查相關(guān)題目。這不能說明以后的考試就不會考查這方面的知識,畢竟這個部分是一個不可缺少的基礎(chǔ)。同時,在嵌入式的一些基礎(chǔ)知識題目的解題中,也需要一定電子電路設(shè)計的基礎(chǔ)知識。電子電路設(shè)計的基礎(chǔ)知識可以寫成幾本書,但是不要害怕。正是如此,考試考查的只可能是重要概念、基礎(chǔ)知識和基本技能。過去的真題也驗證了這一點,考查的都是電子電路設(shè)計的基本步驟,一些基本概念、布線布局的基本原則以及抗干擾的一些基本措施。想當(dāng)年,我也是這樣賭一把,把教程上的基本東西梳理清楚,感覺可以應(yīng)用考試的題目。當(dāng)然這是一種偷懶的做法,如果您有時間和精力,完全把握這方面的內(nèi)容是件好事情。
二、復(fù)習(xí)筆記
1、電路設(shè)計原理
(1)電路板設(shè)計主要分為3個步驟:設(shè)計電路原理圖、生成網(wǎng)絡(luò)表、設(shè)計印制電路版。
(2)網(wǎng)絡(luò)表是電路原理設(shè)計和印制電路板設(shè)計中的一個橋梁,它是設(shè)計工具軟件自動布線的靈魂。
(3)網(wǎng)絡(luò)表的格式包括2部分:元器件聲明和網(wǎng)絡(luò)定義。(缺少任一部分都有可能在布線的時候出錯)
(4)電路原理圖設(shè)計不僅是整個電路設(shè)計的第一步,也是電路設(shè)計的基礎(chǔ)。包括以下的一些具體步驟:
A、建立元器件庫中沒有的庫元件。
B、設(shè)置圖紙屬性。
C、放置元件。
D、原理圖布線。
E、檢查與校對。
F、電路分析與仿真。
G、生成網(wǎng)絡(luò)表。
H、保存與輸出。
2、PCB電路設(shè)計
(1)PCB設(shè)計是電子產(chǎn)品物理結(jié)構(gòu)設(shè)計的一部分,它的主要任務(wù)是根據(jù)電路的原理和所需元件的封裝形式進行物理結(jié)構(gòu)的布局和布線。
(2)PCB設(shè)計包括下面一些具體步驟:
A、建立封裝庫中沒有的封裝。
B、規(guī)劃電路板。
C、載入網(wǎng)絡(luò)表和元件封裝。
D、布置元件封裝。
E、布線。
F、設(shè)計規(guī)則檢查。
G、PCB仿真分析。
H、存檔輸出。
3、多層PCB設(shè)計的注意事項
(1)高頻信號線一定要短,不可以有尖角(90度直角),兩根線之間的距離不宜平行、過近,否則可能會產(chǎn)生寄生電容。
(2)如果是兩面板,一面的線布成橫線,一面的線布成豎線,盡量不要布成斜線。
(3)一般來說,線寬一般為0.3mm,間隔也為0.3mm,這個長度約為8~10mil。但是對于電源線或者大電流線應(yīng)該有足夠?qū)挾?,一般需?0~80mil。焊盤一般為64mil。
(4)單面板的生產(chǎn)工藝都很差,因此,單面板的焊盤盡量做得大一些,線要盡量粗一些。
(5)銅膜線的地線應(yīng)該在電路板的周邊,同時將電路上可以利用的空間全部使用銅箔做地線,增強屏蔽能力,并且防止寄生電容。
(6)電路圖上的地線表示電路中的零電位,并用作電路中其他各點的公共參考點,在實際電路中由于地線阻抗的存在,必然會帶來共阻干擾,因此,在布線是,不能將具有地線符號的點隨便連接在一起,這可能引起有害的耦合而影響電路的正常工作。
4、PCB設(shè)計中的可靠性知識
(1)地線設(shè)計:在電子設(shè)備中,接地是控制干擾的重要方法。
A、正確選擇單點接地與多點接地。
a、在低頻電路中(工作頻率小于1MHz),采用一點接地。
b、在高頻電路中(工作頻率大于10MHz),采用就近多點接地。
B、將數(shù)字電路與模擬電路分開,兩者地線不要相混。分別與電源端地線相連。
C、盡量加粗地線。若地線很細,接地電位則隨電流的變化而變化,如有可能,接地線的寬度應(yīng)大于3mm。
D、將接地線構(gòu)成環(huán)路,可以明顯提高抗噪聲能力。
(2)電磁兼容性設(shè)計
A、選擇合理的導(dǎo)線寬度。
a、瞬變電流在印制線條上所產(chǎn)生的沖擊干擾主要是由印制導(dǎo)線的電感成分造成的。
b、時鐘引線、行驅(qū)動器和總線驅(qū)動器的信號線常常載有大的瞬變電流,導(dǎo)線要盡可能短。
c、對于分立元件,導(dǎo)線寬度載1.5mm左右可滿足要求。
d、對于集成電路,導(dǎo)線寬度可在0.2mm~1mm之間選擇。
B、采用正確的布線策略:最好采用井字形網(wǎng)狀布線結(jié)構(gòu)。
a、PCB的一面橫向布線,另一面縱向布線,然后在交叉孔處用金屬化孔相連。
b、盡量減少導(dǎo)線的不連續(xù)性,例如導(dǎo)線不要突變,拐角應(yīng)大于90度。
c、盡量避免長距離的平行走線,盡可能拉開線與線之間的距離。
d、信號線與地線及電源線盡可能不交叉。
e、在一些對干擾十分敏感的信號線之間設(shè)置一根地線,可以有效抑制串?dāng)_。
C、抑制反射干擾。
(3)去耦電容配置。
配置去耦電容可以抑制因負載變化而產(chǎn)生的噪聲,是印制電路板的可靠性設(shè)計的一種常規(guī)做法。配置原則如下:
A、 電源輸入端跨接一個10~100uF的電解電容。
B、 為每個集成電路芯片配置一個0.01uF的陶瓷電容。
C、 對于噪聲能力弱、關(guān)斷時電流變化大的器件和ROM、RAM等存儲型器件,應(yīng)在芯片的電源線和地線之間直接接入去耦電容。
D、去耦電容的引線不能過長,特別是高頻旁路電容不能帶引線。
(4)PCB的尺寸與器件的布置。
A、相互有關(guān)的元件盡量放得靠近一些。
B、時鐘發(fā)生器、晶振和CPU的時鐘輸入端易產(chǎn)生干擾,要相互靠近一些。
C、易產(chǎn)生噪聲的元件、小電流電路、大電流電路等應(yīng)盡量原理邏輯電路。
(5)散熱設(shè)計。
5、電子設(shè)計原理
(1)EDA是指以計算機為工作平臺,融合了應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包。利用EDA工具,電子工程師可以將電子產(chǎn)品的由電路設(shè)計、性能分析到IC設(shè)計圖或PCB設(shè)計圖整個過程在計算機上自動處理完成。
(2)"自頂向下"的設(shè)計方法。
先從系統(tǒng)設(shè)計入手,在頂層進行功能框圖的劃分和結(jié)構(gòu)設(shè)計。在框圖一級進行仿真和糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,在系統(tǒng)一級進行驗證,然后用綜合優(yōu)化工具生成具體的門電路網(wǎng)表,其對應(yīng)的物理實現(xiàn)級可以是PCB或?qū)S眉呻娐贰?/p>
(3)VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級、寄存器傳輸級和邏輯門級多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流、行為3種描述形式的混合描述。
6、電子電路測試原理與方法
(1)故障檢測:判斷故障是否存在,即只判斷有無故障。
(2)故障診斷(故障定位):不僅判斷故障是否存在,而且指出故障位置。
(3)仿真:對設(shè)計過程中得到的電路參數(shù)驗證其正確性。
(4)測試:判斷產(chǎn)品是否合格。
(5)可測試設(shè)計的3個方面是:測試生成、測試驗證、測試設(shè)計。
(6)JTAG測試接口是IC芯片測試方法的標(biāo)準。
7、硬件抗干擾測試
(1)形成干擾的3個基本要素:干擾源、傳播路徑和敏感器件。
(2)干擾的耦合方式:干擾源產(chǎn)生的干擾信號要通過一定的耦合通道才對系統(tǒng)產(chǎn)生作用。
A、直接耦合:最有效的方式是加入去耦電容。
B、公共阻抗耦合。
C、電容耦合。
D、電磁感應(yīng)耦合(磁場耦合)。
E、漏電耦合。
(3)抑制干擾源的技術(shù)
盡可能減小干擾源的du/dt和di/dt,這是抗干擾設(shè)計中最優(yōu)先考慮和最重要的原則。
A、 主要通過在干擾源兩端并聯(lián)電容來實現(xiàn)減小干擾源的du/dt。
B、 主要通過在干擾源回路串聯(lián)電感或電阻及增加續(xù)流二極管來實現(xiàn)di/dt。
(4)切斷干擾傳播路徑的技術(shù)
A、充分考慮電源對嵌入式系統(tǒng)的影響。例如給電源加濾波電路或穩(wěn)壓器。
B、若微處理器的I/O口接控制電機等噪聲器件,應(yīng)在I/O和噪聲源之間加隔離。
C、晶振與微處理器的引腳盡量靠近,用地線把時鐘區(qū)隔離起來,晶振外殼接地并固定。
D、電路板合理分區(qū),如強、弱信號,數(shù)字、模擬信號。
E、盡可能將干擾源與敏感元件遠離。
F、用地線把數(shù)字區(qū)與模擬區(qū)隔離。
G、數(shù)字地與模擬地要分離,最后再一點接于電源地。
H、微處理器和大功率器件的地線要單獨接地,以減小互相干擾。
I、大功率器件盡可能放在電路板邊緣。
(5)提高敏感元件的抗干擾性能
A、布線時盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。
B、電源線和地線要盡量粗,除減小壓降外,更重要的是降低耦合噪聲。
C、微處理器閑置的I/O口不要懸空,要接地或接電源。
D、其他IC的閑置端在不改變系統(tǒng)邏輯的情況下接地或電源。
E、使用電源監(jiān)控及看門狗電路,可大幅度提高整個電路的抗干擾性能。
F、在滿足要求的前提下,盡量降低微處理器的晶振和選用低速數(shù)字電路。
三、真題解析
1、2006年38題
電路板的設(shè)計主要分為三個步驟,不包括(38)這一個步驟。
(38) A、生成網(wǎng)絡(luò)表 B、設(shè)計印制電路版
C、設(shè)計電路原理圖 D、自動布線
<答案>:D
見復(fù)習(xí)筆記1,這是嵌入式硬件設(shè)計的常識。
2、2006年39題
現(xiàn)代電子設(shè)計方法包含了可測試設(shè)計,其中(39)接口是IC芯片測試的標(biāo)準接口。
(39)A. BIST B. JATG C. UART D. USB
<答案>:B
見復(fù)習(xí)筆記6,概念性問題。
3、2006年40題
多層印制電路板(4層或者4層以上)比雙面板更適合于高速PCB布線,最主要的原因是(40)
(40) A. 通過電源平面供電,電壓更穩(wěn)定。
B. 可以大大減小電路中信號回路的面積。
C、多層印制電路板工藝簡單。
D、自動布線更容易。
<答案>:B
可以用排除法,根據(jù)常識首先可以排除C和D。
見復(fù)習(xí)筆記7,布線時盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。因此,相比之下,B選型是最主要原因。
4、2006年41題
下面不符合數(shù)字電路(或者集成電路)的電磁兼容性設(shè)計方法的是(41)
(41) A. IC的電源及地的引腳較近,有多個電源和地。
B. 使用貼片元件,不是用插座。
C. IC的輸出級驅(qū)動能力應(yīng)超過實際應(yīng)用的要求。
D. 對輸入和按鍵采用電平檢測(而非邊沿檢測)
<答案>:C(參考郭春柱著的《嵌入式系統(tǒng)設(shè)計師案例導(dǎo)學(xué)》)
數(shù)字電路(或集成電路)的電磁兼容性(EMI)設(shè)計在進行器件選型時,通常遵循一下原則:
(1) 在滿足技術(shù)指標(biāo)前提下,盡量選用低速時鐘的IC。
(2) 所選IC的電源及地引腳較近。
(3) 所選IC有多個電源及地線引腳。
(4) 所選IC的輸出電壓波動性小,輸出級能力不超過實際應(yīng)用要求。
(5) 所選IC的電源瞬態(tài)電流(穿透電流)低。
(6) 所選IC的輸入電容盡量小。
(7) 所選IC具有可控開關(guān)速率。
(8) 所選IC地線反射較低。
(9) 建議在PCB上焊接表貼芯片。
在EMC電路技術(shù)方面,通常遵循以下原則:
(1) 對輸入和按鍵采用電平檢測(而非邊沿檢測)。
(2) 降低負載電容,以使靠近輸出端的集電極開路驅(qū)動器便于上拉,電阻值盡量大。
(3) 使用前沿速率盡可能慢而且平滑的數(shù)字信號(不超過失真極限)。
(4) 在PCB樣板上,允許對信號邊沿速度或帶寬進行控制。
(5) 微處理器散熱片與芯片之間通過導(dǎo)熱材料隔離,并在周圍多點射頻接地。
(6) 不能在看門狗或電源監(jiān)視電路上使用可編程器件。
(7) 電路中盡量配置一只高質(zhì)量的看門狗。
(8) 電源的監(jiān)視電路要對電源中斷、跌落、浪涌和瞬態(tài)干擾有抵抗能力。
四、小結(jié)
到這里,關(guān)于嵌入式系統(tǒng)設(shè)計師考試的硬件方面的復(fù)習(xí)筆記也就整理完畢了。希望我的這些文章能幫到你們。
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3660瀏覽量
130553
原文標(biāo)題:資料下載:嵌入式系統(tǒng)設(shè)計師考試筆記
文章出處:【微信號:edn-china,微信公眾號:EDN電子技術(shù)設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論