<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

資料下載:嵌入式系統設計師考試筆記(非常全面)

m3eY_edn_china ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-01 14:19 ? 次閱讀

嵌入式系統設計師考試筆記之嵌入式系統基礎知識

1、嵌入式系統的定義

(1)定義:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

(2)嵌入式系統發展的4個階段:無操作系統階段、簡單操作系統階段、實時操作系統階段、面向Internet階段。

(3)知識產權核(IP核):具有知識產權的、功能具體、接口規范、可在多個集成電路設計中重復使用的功能模塊,是實現系統芯片(SOC)的基本構件。

(4)IP核模塊有行為、結構和物理3級不同程度的設計,對應描述功能行為的不同可以分為三類:軟核、固核、硬核。

2、嵌入式系統的組成:硬件層、中間層、系統軟件層和應用軟件層

(1)硬件層:嵌入式微處理器、存儲器、通用設備接口和I/O接口。

嵌入式核心模塊=微處理器電源電路時鐘電路+存儲器

Cache:位于主存和嵌入式微處理器內核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數據。它的主要目標是減小存儲器給微處理器內核造成的存儲器訪問瓶頸,使處理速度更快。

(2)中間層(也稱為硬件抽象層HAL或者板級支持包BSP):它將系統上層軟件和底層硬件分離開來,使系統上層軟件開發人員無需關系底層硬件的具體情況,根據BSP層提供的接口開發即可。

BSP有兩個特點:硬件相關性和操作系統相關性。

設計一個完整的BSP需要完成兩部分工作:

A、 嵌入式系統的硬件初始化和BSP功能。

片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態逐步設置成系統所要求的工作狀態。

板級初始化:包含軟硬件兩部分在內的初始化過程,為隨后的系統初始化和應用程序建立硬件和軟件的運行環境。

系統級初始化:以軟件為主的初始化過程,進行操作系統的初始化。

B、 設計硬件相關的設備驅動。

(3)系統軟件層:由RTOS、文件系統、GUI、網絡系統及通用組件模塊組成。

RTOS是嵌入式應用軟件的基礎和開發平臺。

(4)應用軟件:由基于實時系統開發的應用程序組成。

3、實時系統

(1)定義:能在指定或確定的時間內完成系統功能和對外部或內部、同步或異步時間做出響應的系統。

(2)區別:通用系統一般追求的是系統的平均響應時間和用戶的使用方便;而實時系統主要考慮的是在最壞情況下的系統行為。

(3)特點:時間約束性、可預測性、可靠性、與外部環境的交互性。

(4)硬實時(強實時):指應用的時間需求應能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產損失和生態破壞,如:航天、軍事。

(5)軟實時(弱實時):指某些應用雖然提出了時間的要求,但實時任務偶爾違反這種需求對系統運行及環境不會造成嚴重影響,如:監控系統、實時信息采集系統。

(6)任務的約束包括:時間約束、資源約束、執行順序約束和性能約束。

4、實時系統的調度

(1)調度:給定一組實時任務和系統資源,確定每個任務何時何地執行的整個過程。

(2)搶占式調度:通常是優先級驅動的調度,如uCOS。優點是實時性好、反應快,調度算法相對簡單,可以保證高優先級任務的時間約束;缺點是上下文切換多。

(3)非搶占式調度:通常是按時間片分配的調度,不允許任務在執行期間被中斷,任務一旦占用處理器就必須執行完畢或自愿放棄,如WinCE。優點是上下文切換少;缺點是處理器有效資源利用率低,可調度性不好。

(4)靜態表驅動策略:系統在運行前根據各任務的時間約束及關聯關系,采用某種搜索策略生成一張運行時刻表,指明各任務的起始運行時刻及運行時間。

(5)優先級驅動策略:按照任務優先級的高低確定任務的執行順序。

(6)實時任務分類:周期任務、偶發任務、非周期任務。

(7)實時系統的通用結構模型:數據采集任務實現傳感器數據的采集,數據處理任務處理采集的數據、并將加工后的數據送到執行機構管理任務控制機構執行。

5、嵌入式微處理器體系結構

(1)馮諾依曼結構:程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數據總線,程序和數據的寬度相同。例如:8086、ARM7、MIPS…

(2)哈佛結構:程序和數據是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數據存儲分開的存儲器結構。例如:AVR、ARM9、ARM10…

(3)CISC與RISC的特點比較(參照教程22頁)。

計算機執行程序所需要的時間P可以用下面公式計算:

P=I×CPI×T

I:高級語言程序編譯后在機器上運行的指令數。

CPI:為執行每條指令所需要的平均周期數。

T:每個機器周期的時間。

(4)流水線的思想:在CPU中把一條指令的串行執行過程變為若干指令的子過程在CPU中重疊執行。

(5)流水線的指標:

吞吐率:單位時間里流水線處理機流出的結果數。如果流水線的子過程所用時間不一樣長,則吞吐率應為最長子過程的倒數。

建立時間:流水線開始工作到達最大吞吐率的時間。若m個子過程所用時間一樣,均為t,則建立時間T=mt。

(6)信息存儲的字節順序

A、存儲器單位:字節(8位)

B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。

C、32位微處理器的虛擬地址空間位232,即4GB。

D、小端字節順序:低字節在內存低地址處,高字節在內存高地址處。

E、大端字節順序:高字節在內存低地址處,低字節在內存高地址處。

F、網絡設備的存儲順序問題取決于OSI模型底層中的數據鏈路層。

6、邏輯電路基礎

(1)根據電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。

(2)組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態無關。常用的邏輯電路有譯碼器和多路選擇器等。

(3)時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關,而且還與該時刻電路的狀態有關。因此,時序電路中必須包含記憶元件。觸發器是構成時序邏輯電路的基礎。常用的時序邏輯電路有寄存器和計數器等。

(4)真值表、布爾代數、摩根定律、門電路的概念。(教程28、29頁)

(5)NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現任何一種邏輯函數。

(6)譯碼器:多輸入多輸出的組合邏輯網絡。

每輸入一個n位的二進制代碼,在m個輸出端中最多有一個有效。

當m=2n是,為全譯碼;當m<2n時,為部分譯碼。

(7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅動LED時,較多采用低電平驅動方式。液晶七段字符顯示器LCD利用液晶有外加電場和無外加電場時不同的光學特性來顯示字符。

(8)時鐘信號是時序邏輯的基礎,它用于決定邏輯單元中的狀態合適更新。同步是時鐘控制系統中的主要制約條件。

(9)在選用觸發器的時候,觸發方式是必須考慮的因素。觸發方式有兩種:

電平觸發方式:具有結構簡單的有點,常用來組成暫存器。

邊沿觸發方式:具有很強的抗數據端干擾能力,常用來組成寄存器、計數器等。

7、總線電路及信號驅動

(1)總線是各種信號線的集合,是嵌入式系統中各部件之間傳送數據、地址和控制信息的公共通路。在同一時刻,每條通路線路上能夠傳輸一位二進制信號。按照總線所傳送的信息類型,可以分為:數據總線(DB)、地址總線(AB)和控制總線(CB)。

(2)總線的主要參數

總線帶寬:一定時間內總線上可以傳送的數據量,一般用MByte/s表示。

總線寬度:總線能同時傳送的數據位數(bit),即人們常說的32位、64位等總線寬度的概念,也叫總線位寬??偩€的位寬越寬,總線每秒數據傳輸率越大,也就是總線帶寬越寬。

總線頻率:工作時鐘頻率以MHz為單位,工作頻率越高,則總線工作速度越快,也即總線帶寬越寬。

總線帶寬 = 總線位寬×總線頻率/8, 單位是MBps。

常用總線:ISA總線、PCI總線、IIC總線、SPI總線、PC104總線和CAN總線等。

(3)只有具有三態輸出的設備才能夠連接到數據總線上,常用的三態門為輸出緩沖器。

(4)當總線上所接的負載超過總線的負載能力時,必須在總線和負載之間加接緩沖器或驅動器,最常用的是三態緩沖器,其作用是驅動和隔離。

(5)采用總線復用技術可以實現數據總線和地址總線的共用。但會帶來兩個問題:

A、需要增加外部電路對總線信號進行復用解耦,例如:地址鎖存器。

B、總線速度相對非復用總線系統低。

(6)兩類總線通信協議:同步方式、異步方式。

(7)對總線仲裁問題的解決是以優先級(優先權)的概念為基礎。

8、電平轉換電路

(1)數字集成電路可以分為兩大類:雙極型集成電路(TTL)、金屬氧化物半導體(MOS)。

(2)CMOS電路由于其靜態功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。

(3)解決TTL與CMOS電路接口困難的辦法是在TTL電路輸出端與電源之間接一上拉電阻R,上拉電阻R的取值由TTL的高電平輸出漏電流IOH來決定,不同系列的TTL應選用不同的R值。

9、可編程邏輯器件基礎(具體參見教程51到61頁)

這方面的內容,從總體上有個概念性的認識應該就可以了。

10、嵌入式系統中信息表示與運算基礎

(1)進位計數制與轉換:這樣比較簡單,也應該掌握怎么樣進行換算,有出題的可能。

(2)計算機中數的表示:源碼、反碼與補碼。

正數的反碼與源碼相同,負數的反碼為該數的源碼除符號位外按位取反。

正數的補碼與源碼相同,負數的補碼為該數的反碼加一。

例如-98的源碼:11100010B

反碼:10011101B

補碼:10011110B

(3)定點表示法:數的小數點的位置人為約定固定不變。

浮點表示法:數的小數點位置是浮動的,它由尾數部分和階數部分組成。

任意一個二進制N總可以寫成:N=2P×S。S為尾數,P為階數。

(4)漢字表示法(教程67、68頁),搞清楚GB2318-80中國標碼和機內碼的變換。

(5)語音編碼中波形量化參數(可能會出簡單的計算題目哦)

采樣頻率:一秒內采樣的次數,反映了采樣點之間的間隔大小。

人耳的聽覺上限是20kHz,因此40kHz以上的采樣頻率足以使人滿意。

CD唱片采用的采樣頻率是44.1kHz。

測量精度:樣本的量化等級,目前標準采樣量級有8位和16位兩種。

聲道數:單聲道和立體聲雙道。立體聲需要兩倍的存儲空間。

11、差錯控制編碼

(1)根據碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發現差錯的碼,例如奇偶檢驗碼;糾錯碼是指不僅能發現差錯而且能自動糾正差錯的碼,例如循環冗余校驗碼。

(2)奇偶檢驗碼、海明碼、循環冗余校驗碼(CRC)。(教程70到77頁)

12、嵌入式系統的度量項目

(1)性能指標:分為部件性能指標和綜合性能指標,主要包括:吞吐率、實時性和各種利用率。

(2)可靠性與安全性

可靠性是嵌入式系統最重要、最突出的基本要求,是一個嵌入式系統能正常工作的保證,一般用平均故障間隔時間MTBF來度量。

(3)可維護性:一般用平均修復時間MTTR表示。

(4)可用性

(5)功耗

(6)環境適應性

(7)通用性

(8)安全性

(9)保密性

(10)可擴展性

性價比中的價格,除了直接購買嵌入式系統的價格外,還應包含安裝費用、若干年的運行維修費用和軟件租用費。

13、嵌入式系統的評價方法:測量法和模型法

(1)測量法是最直接最基本的方法,需要解決兩個問題:

A、根據研究的目的,確定要測量的系統參數。

B、選擇測量的工具和方式。

(2)測量的方式有兩種:采樣方式和事件跟蹤方式。

(3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數學方程去刻畫系統的模型,而模擬模型法是用模擬程序的運行去動態表達嵌入式系統的狀態,而進行系統統計分析,得出性能指標。

(4)分析模型法中使用最多的是排隊模型,它包括三個部分:輸入流、排隊規則和服務機構。

(5)使用模型對系統進行評價需要解決3個問題:設計模型、解模型、校準和證實模型。

真題解析

1、2007年4、5題

若每一條指令都可以分解為取指、分析和執行三步。已知取指時間t取指=4△t,分析時間t分析=3△t,執行時間t執行=5△t。如果按串行方式執行完100條指令需要 (4) △t。如果按照流水線方式執行,執行完100條指令需要 (5) △t。

(4)A. 1190 B. 1195 C. 1200 D. 1205

(5)A. 504 B. 507 C. 508 D. 510

<答案>:C、B

考查流水線技術知識點。

按照串行的方式,執行完一條指令才能執行下一條指令,那么執行完100條指令的時間為:(4+3+5)×100=1200

按照流水線的方式,可以同時執行多條指令。在第一條指令進行分析的時候,第二條指令已經開始取指;當第一條指令進行執行的時候,第二條指令進行分析,第三條指令取指;當第二條指令進行執行完的時候,第三條指令已經分析完成。依此類推,當第一條指令完成之后,每一個執行的周期就可以完成一條指令。需要注意的是,如果流水線的子過程所用時間不一樣長,則吞吐率應以最長子過程來計算。因此,我們可以計算得100條指令的執行時間為:(4+3+5)+(100-1)×5=507。

2、2007年24題

某總線有104根信號線,其中數據總線(DB)32根,若總線工作頻率為33MHz,則其理論最大傳輸率為 (24) 。(注:本題答案中的B表示Byte)

(24)A. 33 MB/s B. 64MB/s C. 132 MB/s D. 164 MB/s

<答案>:C

考查總線這個知識點。

根據上面的筆記,總線帶寬 = 總線位寬×總線頻率/8=32×33/8=132MB/s。

3、2007年26題

某存儲器數據總線寬度為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. 數據總線、串行總線、邏輯總線、物理總線

B. 并行總線、地址總線、邏輯總線、物理總線

C. 并行總線、串行總線、全雙工總線

D. 數據總線、地址總線、控制總線

<答案>:D

考查總線這個知識點,基本概念的考查。

5、2007年35題

三極管是可控的開關器件,其飽和與截止狀態分別對應開關的接通和斷開狀態。UBE為基極輸入電壓,VTH為基極域值電壓,如果UBETH,開關應處于 (35) 狀態。

(35)A. 接通 B. 三態 C. 斷開 D. 高阻

<答案>:C

考查電路中最基本的基礎知識點,我覺得做不對的根本不能算嵌入式系統開發入門。

6、2007年36題

如下圖所示,若低位地址(A0-A11)接在內存芯片地址引腳上,高位地址(A12-A19)進行片選譯碼(其中,A14和A16沒有參加譯碼),且片選信號低電平有效,則對下圖所示的譯碼器,不屬于此譯碼空間的地址為 (36) 。

(36)A. AB000H~ABFFFH B. BB000H~BBFFFH

C. EF000H~EFFFFH D. FE000H~FEFFFH

<答案>:D

考查數字電路中譯碼知識和存儲系統中統一編址的問題,相對來說,這個題目有點難度,但是對于學習過和親身做過單片機的兄弟來說,最基本不過了。

7、2007年46題

(46) 完全把系統軟件和硬件部分隔離開來,從而大大提高了系統的可移植性。

(46)A. 硬件抽象層 B. 驅動映射層 C. 硬件交互層 D. 中間層

<答案>:A

考查嵌入式系統組成中的概念。

8、2006年3題

設指令由取指、分析、執行3個子部件完成,每個子部件的工作周期為△t,采用常規標量單流水線處理機。若連續執行10條指令,則共需要時間(3)△t。

(3)A.8 B.10 C.12 D.14

<答案>:C

考查流水線技術知識點。

3+(10-1)×1=12

9、2006年4、5題

某計算機的時鐘頻率為400MHz,測試計算機的程序使用4種類型的指令。每種指令的數量及所需要的指令時鐘數(CPI)如下表所示,則該計算機的指令平均時鐘數為(4);該計算機的運算速度為(5)MIPS。

指令類型 指令數目(條) 每條指令需要的時鐘數

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

考查指令運行方面的簡單計算。

平均時鐘數=(160000+2×30000+4×24000+8×16000)/(160000+30000+24000+16000)=1.93

MIPS是指每秒種執行多少百萬條指令,即106。

計算機的運行數度為:400/1.93=207.25=207.3MIPS

9、2006年12題

計算機要對聲音信號進行處理時,必須將它轉換為數字聲音信號。最基本的聲音信號數字化方法時取樣-量化法。若量化后的每個聲音樣本用2個字節表示,則量化分辨率是(12)

(12)A.1/2 B.1/1024 C.1/65536 D.1/131072

<答案>:C

考查聲音編碼種量化計算的知識點。

2個字節是16位,其量化分辨率位1/1016=1/65536。

10、2006年13題

某幅圖像具有640×460個象素點,若每個象素具有8位的顏色深度,則可表示(13)種不同的顏色,經過5:1壓縮后,其圖像數據需要占用(14)(Byte)的存儲空間。

(13)A.8 B.256 C.512 D.1024

(14)A.61440 B.307200 C.384000 D.3072000

<答案>:B、A

考查圖像數據存儲計算的知識點。

8位顏色深度可以表示28=256種顏色深度。

經過5:1壓縮后的數據大小為: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

考查數字電路的最基本知識點,我覺得這個都搞不清楚很難通過這個考試。

12、2006年24題

一個4位的二進制計數器,由0000狀態開始,經過25個時鐘脈沖后,該計數器的狀態為24

(24) A.1100 B.1000 C.1001 D.1010

<答案>:C

考查數字電路的最基本知識點,相對上面一題有點難,需要對計數器的工作原理有比較清楚的理解。這個也是搞嵌入式系統的基礎中的基礎,參考教程38頁或相關的數電書籍。

4位的計數器,其計數范圍是24=16,0000開始經過16個時鐘脈沖之后又回到了開始的狀態0000。25-16=9,所以說經過25個時鐘之后,其計數器的數值應該是9=1001。

13、2006年25題

穩壓二極管構成的穩壓電路的接法是(25)

(25) A.穩壓管與負載電阻串聯。

B.穩壓管與限流電阻并聯。

C.限流電阻與穩壓管串聯后,在與負載電阻串聯。

D.限流電阻與穩壓管串聯后,在與負載電阻并聯。

<答案>:D

考查模擬電路的最基本知識點,實在太簡單,不知道從那里開始分析了。

14、2006年26題

以下敘述中,不符合RISC指令系統特點的是(26)

(26) A.指令長度固定,指令種類少。

B.尋址方式種類豐富,指令功能盡量增強。

C.設置大量通用寄存器,訪問存儲器指令簡單。

D.選取使用頻率較高的一些簡單指令。

<答案>:B

考查RISC與CICS的區別,考生應該清楚他們的區別,參加教程22頁。

15、2006年27題

通常所說的32位微處理器是指(27)

(27) A.地址總線的寬度為32位 B.處理器數據長度只能為32位

C.CPU字長為32位 D.通用寄存器數目為32位

<答案>:C

考查字長的概念和總線寬度的理解,參加教程25頁。

16、2006年28題

在32位總線系統中,若時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,則該總線系統的數據傳送速率為(28)MB/s。

(28) A.200 B.400 C.600 D.800

<答案>:B

考查總線和數據傳輸方面的知識點。

5個時鐘周期可以傳送4個Byte。

每秒中可以傳送:4×(500/5)=400MB/s。

17、2006年30題

評價一個計算機系統時,通常主要使用(30)來衡量系統的可靠性。

(30) A.評價響應時間

B.平均無故障時間(MTBF)

C.平均修復時間

D.數據處理速率

<答案>:B

考查嵌入式系統性能評價中重要知識點??催^了就會做,每什么分析的,參見教程77頁。

小結

就我個人的意見,從內容來看,嵌入式系統基礎知識的范圍很廣,知識點很多,而且沒有很強的邏輯性,顯得比較凌亂,很難將他們有序的組織在一起。但是也不要害怕,內容雖然多而亂,但是考試的題目都比較簡單,有些題目幾乎是所見即所得。只要你做過嵌入式或者單片機方面的工作,你都能做出來。一些計算的題目也是一些基本概念的延伸。通過分析歷年的真題,一方面可以把握考試的出題方式和考試難度,同時可以把握這部分內容的出題方向和復習的方法。從兩年的考試題目數量分布來看,06年10道,07年7道,數量有所較少,但是我覺得這不是一個趨勢,08年應該不會少于7道題目的。這部分在嵌入式系統設計里面是相當重要的,有一個良好的基礎才能做好下面的事情。如果復習得好,將這7、8分題目拿到手,那么你離45分左右的及格線又邁進了一大步了。

嵌入式系統設計師考試筆記之嵌入式微處理器

一、

嵌入式微處理器是嵌入式系統的核心器件,深入理解嵌入式微處理器的工作原理,組成結構、體系結構以及軟件編程等方面,無論對嵌入式設計師考試的準備還是對嵌入式項目的開發都有一定的幫助。在目前白花盛放的嵌入式微處理器市場,各種各樣大大小小的嵌入式微處理器就像菜市場里面的青菜一樣。要對各種嵌入式微處理器都有深入的理解幾乎是不可能的。但是萬變不離其中,在總多的嵌入式微處理器中都有著共同的概念、原理與規律。我們要做的是分析嵌入式微處理器的基本結構、基本工作原理、體系結構、市場發展趨勢、各種微處理器的特點與應用場合等等。我個人覺得,面對全國的考試,其考點應該是大家都應該去掌握的一些共有的基本知識,或者是大家都熟悉,流行程度甚廣的一些微處理器的使用,而不是一些個性化的知識點或者偏門器件的使用。

二、復習筆記

1. 嵌入式微處理器的基本結構

(1)嵌入式硬件系統一般由嵌入式微處理器、存儲器和輸入/輸出部分組成。

(2)嵌入式微處理器是嵌入式硬件系統的核心,通常由控制單元、算術邏輯單元和寄存器3大部分組成:

A、控制單元:主要負責取指、譯碼和取數等基本操作并發送主要的控制指令。

B、算術邏輯單元:主要處理數值型數據和進行邏輯運算工作。

C、寄存器:用于暫存臨時性的數據。

2. 嵌入式微處理器的分類(根據用途)

(1)嵌入式微控制器MCU):又稱為單片機,片上外設資源一般比較豐富,適合于控制。最大的特點是單片化,體積小,功耗和成本低,可靠性高。目前約占70%的市場份額。

(2)嵌入式微處理器(EMPU):又稱為單板機,由通用計算機中的CPU發展而來,它的特征是具有32位以上的處理器,具有較高的性能。通常嵌入式微處理器把CPU、ROM、RAM及I/O等模塊做到同一個芯片上。

(3)嵌入式DSP處理器(DSP):專門用于信號處理方面的處理器,其在系統結構和指令算法方面進行了特殊設計,使其處理速度比最快的CPU還快10~50倍,在數字濾波、FFT、頻譜分析等方面獲得了大量的應用。

(4)嵌入式片上系統(SOC):追求產品系統最大包容的集成器件,其最大的特點是成功實現了軟硬件的無縫結合,直接在微處理器片內嵌入操作系統的代碼模塊。

3. 典型8位微處理器的結構和特點

該部分參考《教程》86~94頁,以8051為重點,徹底搞清楚8位單片機的工作原理,外設控制、存儲分布、尋址方式以及典型應用。2007年11月下午的第一道題目就考查了8051的定時器使用、外部時鐘連接、實際應用的流程設計以及典型的尋址方式。這些考點幾乎可以在《教程》上找到,例如外部時鐘連接那個問題的答案就是《教程》89頁上面的原圖。

4. 典型16位微處理器的結構和特點

該部分參考《教程》94~97頁。典型的微處理器可以參考MSP430,找一本這方面的書看看關于MSP430的結構原理以及典型應用。

5. 典型32位微處理器的結構和特點

該部分參考《教程》97~112頁。32位處理器采用32位的地址和數據總線,其地址空間達到了232=4GB。目前主流的32位嵌入式處理器系統主要有ARM系列、MIPS系列、PoewrPC系列等。ARM微處理器體系結構目前被公認為是嵌入式應用領域領先的32位嵌入式RISC處理器結構。按照目前的發展形式,ARM幾乎成了嵌入式應用的代名詞。按照我個人的意見,作為嵌入式系統設計師考試,逐漸增加考查ARM體系結構與編程方面的題目是大勢所趨。2006年沒有一道關于ARM的題目,2007年出了少量題目,可能在2008年會繼續增加。在下午題方面,2006年考查了X86方面的應用、2007年考查了8051方面的應用,這個可能是一個過度過程,以目前ARM在嵌入式領域的廣泛應用和普及程度,下午題目考查ARM應用方面或者32位其他的微處理器方面的應用題目可能在不就將來的考試中就會出現。

6、單片機系統的基本概念

(1)單片機組成:中央處理器、存儲器、I/O設備。

(2)存儲器:物理實質是一組或多組具備數據輸入/輸出和數據存儲功能的集成電路,用于充當設備緩存或保存固定的程序及數據。

A、ROM(只讀存儲器):一般用于存放固定的程序或數據表格等,數據在掉電后仍然會保留下來。

B、RAM(隨機存儲器):用于暫存程序和數據、中間計算結果,或用作堆棧用等,數據在掉電后就會丟失。

(3)I/O端口:單片機與外界聯系的通道,它可以對各類外部信號(開關量、模擬量、頻率信號)進行檢測、判斷、處理,并可控制各類外部設備?,F在的單片機I/O口已經集成了更多的特性和功能,對I/O端口的功能進行了拓展和復用,例如外部中斷、ADC檢測以及PWM輸出等等。

(4)輸出電平:高電平電壓(輸出"1"時)和低電平電壓(輸出"0"時)

A、TTL電平:正邏輯,5V為邏輯正,0V為邏輯負,例如單片機的輸出。

B、RS232電平:負邏輯,-12V為邏輯正,+12V為邏輯負,例如PC的輸出。

注:因此在單片機和PC進行通訊的時候需要一個MAX232芯片進行電平轉換。

(5)堆棧:它是一種線性的數據結構,是一個只有一個進出口的一維空間。

A、堆棧特性:后進先出(LIFO)

B、堆棧指針:用于指示棧頂的位置(地址),當發生壓?;蛘叱鰲2僮鲿r,導致棧頂位置變化時,堆棧指針會隨之變化。

C、堆棧操作:壓棧操作(PUSH)和出棧操作(POP)。

D、堆棧類型:"向上生長"型堆棧,每次壓棧時堆棧指針加1;"向下生長"型堆棧,每次壓棧堆棧時指針減1。

E、堆棧應用:調用子程序、響應中斷時,堆棧用于保護現場;還可以用作臨時數據緩沖區來使用。

F、使用注意:堆棧溢出問題,壓棧和出棧的匹配問題。

(6)定時/計數器:實質都是計數器。用作定時器時是對單片機內部的時鐘脈沖進行計數,而在用作計數器時是對單片機外部的輸入脈沖進行計數,其作用如下:

A、計時、定時或延時控制;

B、脈沖技術;

C、測量脈沖寬度或頻率(捕獲功能)

(7)中斷:優先級更高的事件發生,打斷優先級低的時間進程。引起中斷的事件稱為中斷源。一個單片機可能支持多個中斷源,這些中斷源可以分為可屏蔽中斷和非可屏蔽中斷,而這些中斷源并不都是系統工作所需的,我們可以根據系統需求屏蔽那些不需要的中斷源。

A、中斷嵌套:當一個低級中斷尚未執行完畢,又發生了一個高級優先級的中斷,系統轉而執行高級中斷服務程序,待處理完高級中斷后再回過頭來執行低級中斷服務程序。

B、中斷響應時間是指從發出中斷請求到進入中斷處理所用的時間;中斷處理時間是指中斷處理開始到中斷處理結束的時間。

C、中斷響應過程:

a、保護現場:將當前地址、累加器ACC、狀態寄存器保存到堆棧中。

b、切換PC指針:根據不同的中斷源所產生的中斷,切換到相應的入口地址。

c、執行中斷服務處理程序。

d、恢復現場:將保存在堆棧中的主程序地址、累加器ACC、狀態寄存器恢復。

e、中斷返回:從中斷處返回到主程序,繼續執行。

D、中斷入口地址:單片機為每個中斷源分配了不同的中斷入口地址,也稱為中斷向量。

(8)復位:通過外部電路給單片機的復位引進一個復位信號,讓系統重新開始運行。

A、復位發生時的動作:

a、PC指針從起始位置開始執行(大多數單片機都時從0x0000處開始執行)。

b、I/O端口設置成缺省狀態(高阻態、或者輸出低電平)。

c、部分專用控制寄存器SFR恢復到缺省狀態。

d、普通RAM不變(如果時上電復位,則是隨即數)。

B、兩種不同的復位啟動方式:

a、冷啟動:也叫上電復位,指在斷電狀態下給系統加電,讓系統開始正常運行。

b、熱啟動:在不斷電的狀態下,給單片機復位引進一個復位信號,讓系統重新開始。

C、兩種類型的復位電路:高電平復位和低電平復位。

D注意事項:

a、

注意復位信號的電平狀態及持續時間必須滿足系統要求。

b、

注意避免復位信號抖動。

(9)時鐘電路:單片機是一種時序電路,必須提供脈沖電路才能正常工作。時鐘電路相當于單片機的心臟,它的每一次跳動(振動節拍)都控制著單片機的工作節奏。振蕩得慢時,系統工作速度就慢,振蕩得快時,系統工作速度就快(功耗也增大)。

A、振蕩周期:振蕩源的振蕩節拍。

B、機器周期:單片機完成一個基本操作需要的振蕩周期(節拍)。

C、指令周期:執行一條指令需要幾個機器周期。不同的指令需要的機器周期數不同。

7、ARM體系結構的基本概念

(1)ARM:Advanced RISC Machine。

(2)ARM體系結構中支持兩種指令集:ARM指令集和Thumb指令集。

(3)ARM內核有T、D、M、I四個功能模塊:

A、T模塊:表示16位Thumb,可以在兼顧性能的同時減少代碼尺寸。

B、D模塊:表示Debug,內核中放置了用于調試的結構,通常為一個邊界掃描鏈JTAG。

C、M模塊:表示8位乘法器。

D、I模塊:表示EmbeddedICE Logic,用于實時斷點觀測及變量觀測的邏輯電路部分。

(4)ARM處理器有7種運行模式:

A、用戶模式(User):正常程序執行模式,用于應用程序。

D、快速中斷模式(FIQ):快速中斷處理,用于高速數據傳輸和通道處理。

C、外部中斷模式(IRQ):用于通用的中斷處理。

D、管理模式(SVE):供操作系統使用的一種保護模式。

E、數據訪問中止模式(Abort):用于虛擬存儲及存儲保護。

F、未定義指令中止模式(Undefined):當未定義指令執行時進入該模式。

G、系統模式(System):用于運行特權級的操作系統任務。

除了用戶模式之外的其他6種處理器模式稱為特權模式,在這些模式下,程序可以訪問所有的系統資源,也可以任意地進行處理器模式切換,其中,除了系統模式外,其他的5種特權模式又稱為異常模式。

處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數的用戶程序運行在用戶模式下,這時,應用程序不能訪問一些受操作系統保護的系統資源,應用程序也不能直接進行處理器模式切換。當需要進行處理器模式切換時,應用程序可以產生異常處理,在異常處理中進行處理器模式的切換。這種體系結構可以使操作系統控制整個系統的資源。

當應用程序發生異常中斷時,處理器進入相應的異常模式。在每一種異常模式種都有一組寄存器,供相應的異常處理程序使用,這樣就可以保證進入異常模式時,用戶模式下的寄存器不被破壞。

系統模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器,但是系統模式屬于特權模式,可以訪問所有的系統資源,也可以直接進行處理器模式切換,它主要供操作系統任務使用。

(5)ARM處理器共有37個寄存器:31個通用寄存器和6個狀態寄存器

A、通用寄存器包括R0~R15,可以分為3類:

a、未備份寄存器R0~R7:在所有的處理器模式下,未備份寄存器都是指向同一個物理寄存器。

b、備份寄存器R8~R14:

對于R8~R12來說,每個寄存器對于2個不同的物理寄存器,它們每次所訪問的物理寄存器都與當前的處理器運行模式有關。

對于R13、R14來說,每個寄存器對于6個不同的物理寄存器,其中一個是用戶模式和系統模式共用。

R13在ARM指令種常用作堆棧指針。由于處理器的每種運行模式都有自己獨立的物理寄存器R13,所有在用戶應用程序的初始化部分,一般要初始化每種模式下的R13,使其指向該運行模式的??臻g。

R14又稱為連接寄存器(LR),在ARM體系種具有下面兩種特殊作用:在通過BL或BLX指令調用子程序時,存放當前子程序的返回地址;在異常中斷發生時,存放異常模式將要返回的地址。

c、程序計數器R15(PC)。

由于ARM采用了流水線機制,在三級流水線中,當正確讀取了PC的值時,該值為當前指令地址值加8個字節。也就是說,PC指向當前指令的下兩條指令的地址。在ARM指令狀態下,PC的0和1位是0,在Thumb指令狀態下,PC的0位是0。

B、程序狀態寄存器

a、ARM體系結構包含1個當前程序狀態寄存器(CPSR)和5個備份的程序狀態寄存器(SPSR),使用MSR和MRS指令來設置和讀取這些寄存器。

b、當前程序狀態寄存器CPSR:保存當前處理器狀態的信息,可以在任何處理器模式下被訪問。

c、備份程序狀態寄存器SPSR:每一種異常處理器模式下都有一個專用的物理狀態寄存器。當特定的異常中斷發生時,這個寄存器用于存放當前程序狀態寄存器的內容,在異常中斷程序退出時,可以用SPSR中保存的值來恢復CPSR。

d、由于用戶模式和系統模式不屬于異常模式,它們沒有SPSR,當在這兩種模式下訪問SPSR時,結果是未知的。

(6)ARM指令的尋址方

所謂尋址方式就是處理器根據指令中給出的地址信息來尋找物理地址的方式。

A、

立即尋址:操作數本身就在指令中給出,只要取出指令也就取到了操作數。

ADD

R0, R0, #1

;R0?R0+1

B、

寄存器尋址:利用寄存器中的數值作為操作數。

ADD

R0, R1, R2

;R0?R1+R2

C、

寄存器間接尋址:以寄存器中的值作為操作數地址,而操作數本身存放在存儲器中。

ADD

R0, R1, [R2]

;R0?R1+[R2]

LDR

R0, [R1]

;R0?[R1]

STR

R0, [R1]

;[R1]?R0

D、基址變址尋址:將寄存器(該寄存器一般稱作基址寄存器)的內容與指令中給出的地址偏移量相加,從而得到一個操作數的有效地址。

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、

相對尋址:以程序計數器PC的當前值作為基地址,指令中的地址標號作為偏移量,兩者相加之后得到操作數的有效地址。

BL

NEXT

;跳轉到子程序NEXT處執行

……

NEXT

……

MOV

PC, LR

;從子程序返回

G、堆棧尋址:支持4種類型的堆棧工作方式:

a、

滿遞增堆棧:堆棧指針指向最后壓入的數據,且由低地址向高地址生長。

b、

滿遞減堆棧:堆棧指針指向最后壓入的數據,且由高地址向低地址生長。

c、

空遞增堆棧:堆棧指針指向下一個將要放入數據的空位置,且由低地址向高地址生長。

d、

空遞減堆棧:堆棧指針指向下一個將要放入數據的空位置,且由高地址向低地址生長。

(7)ARM的存儲方法

A、大端模式:數據的高字節存儲在低地址中,低字節存儲在高地址中。

B、小端模式:數據的低字節存儲在低地址中,高字節存儲在高地址中。

(8)ARM中斷與異常

A、ARM內核支持7種中斷,不同的中斷處于不同的處理模式,具有不同的優先級,而且每個中斷都有固定的中斷地址入口。當一個中斷發生是,相應的R14(LR)存儲中斷返回地址,SPSR存儲當前程序狀態寄存器CPSR的值。

B、由于ARM內核支持流水線工作,LR寄存器存儲的地址可能是發生中斷后面指令的地址,所以不同的中斷處理完成后,必須將LR寄存器值經過處理后再寫入P15(PC)寄存器。

C、ARM異常的具體含義:

a、復位:當處理器的復位電平有效時,產生復位異常,程序跳轉到異常復位異常處理程序處執行。

b、未定義的指令:當ARM處理器或協處理器遇到不能處理的指令時,產生未定義指令異常??梢允褂迷摦惓C制進行軟件仿真。

c、軟件中斷:該異常由執行SWI指令產生,可用于用戶模式下的程序調用特權操作指令??墒褂迷摦惓C制實現操作系統調用功能。

d、指令預取中止:如果處理器預取指令的地址不存在或該地址不允許當前指令訪問,存儲器向處理器發出中止信號,但當預取的指令被執行時,才會產生指令預取中止異常。

e、數據訪問中止:如果處理器數據訪問指令的目標地址不存在,或者該地址不允許當前指令訪問,處理器產生數據訪問中止異常。

f、外部中斷請求:當ARM外部中斷請求管腳有效,而且CPSR中的I位為0時,產生IRQ異常。系統的外設可以通過該異常請求中斷服務。

g、快速中斷請求:當ARM快速中斷請求管腳有效,而且CPSR的F位為0時,產生FIQ異常。

D、ARM處理器對異常中斷的響應過程

a、將下一條指令的地址存入相應的連接寄存器LR中。

b、將CPSR復制到相應的SPSR中。

c、根據異常的類型,強制設置CPSR的運行模式位。

d、強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。

E、ARM處理器從異常中斷處理程序中返回

a、恢復中斷的程序的處理器狀態,將SPSR復制到CPSR中。

b、若在進入異常處理時設置了中斷禁止位,要在此清除。

c、將連接寄存器LR的值減去相應的偏移量后送到PC。

F、復位異常中斷處理程序不需要返回。在復位異常中斷程序開始整個用戶程序的執行。

三、真題解析

1、2007年上午49題

在ARM處理器中,(49) 寄存器包括全局的中斷禁止位,控制中斷禁止位就可以打開或者關閉中斷。

(49)A.

CPSR

B.

SPSR

C.

PC

D.

IR

<答案>:A

考查ARM體系結構的基礎知識,CPSR為當前程序狀態寄存器,包含全局中斷控制位。

2、2007年下午試題一(題目略)

考查8051定時器應用、外部時鐘硬件連接、實際項目流程設計以及尋址方式。

3、2006年上午27題

通常所說的32位微處理器是指(27)

(27)A. 地址總線的寬度為32位

B. 處理器數據長度只能為32位

C. CPU字長為32位

D. 通用寄存器數目為32個

<答案>:C

根據常識,很容易將B和D排除掉。

所謂字長,指CPU在單位時間內(同一時間)能一次處理的二進制數的位數。

因此,能處理字長為8位數據的CPU通常就叫8位的CPU,32位CPU的字長為32位。

對于字長和字節,通常8位稱為一個字節,而字長的長度是不固定的,對于不同的CPU,字長的長度不一樣。8位的CPU一次只能處理一個字節,而32位的CPU一次就能處理4個字節。

四、小結

從這兩年的考試真題來看,關于嵌入式微處理器方面的題目不多,06和07年上午題目各一題。而且考的都是基礎中的基礎概念。這些幾乎就是每個搞計算機或者單片機的人一進門就要理解的概念。雖然考試的題目不多,然而對嵌入式微處理器的很多基本概念和原理的理解對試卷上的其他題目的解答都有一點的幫助。隨著ARM技術的飛速普及,07年也開始出現ARM體系結構的題目,我覺得在今后的考試中,這方面題目可能會不斷出現。在下午題目中,一道硬件相關的題目是少不了的,嵌入式微處理器作為嵌入式系統的核心,多多少少會設計到。06年考查X86,07年考查MCS-51,這是計算機也可以說是嵌入式發展和普及的一個過程,今后會不會考查ARM的應用呢?完全有這個可能性。然而目前MCU的市場仍然火爆,最近ARM推出的cortex-M3也不不斷占領MCU的市場,可見MCS-51的為基礎的應用仍然不斷涌現。07年考查了8051的應用,今后我覺得可能還會繼續出的吧。

嵌入式系統設計師考試筆記之操作系統基礎

一、引言

原定于11月8號的嵌入式系統設計師考試由于某種原因推遲,得以讓我有時間再寫幾篇文章,在最后的時刻為大家提供最后的幫助。

我覺得,嵌入式系統設計主要包含系統設計、硬件設計和軟件設計。其中大部分工作是嵌入式軟件方面,包括操作系統的移植、系統體系架構設計、設備驅動程序編寫、用戶應用程序設計等等。所以在嵌入式系統設計師的考試中也應該集中在這幾點上面。前面的幾篇文章對嵌入式硬件方面做了幾個總結,現在對嵌入式軟件方面做一些個人的歸納,再結合歷年真題分析一下,對我認為常見的考點梳理了一下,不知道對大家有沒有用處。

在嵌入式軟件設計中,操作系統基礎尤為重要,可以考查的考點也特別的多。我覺得它的地位就跟四六級英語考試中的閱讀部分一樣。這部分內容不能吃透,很難將這個考試拿下來,當然也有例外的。我只是想說明這部分的重要性。閑話少數,進入正題。

二、復習筆記

1、嵌入式軟件基礎

(1)嵌入式軟件的特點:

A、規模較小。

B、開發難度大。

C、實時性和可靠性要求高。

D、要求固化存儲。

(2)嵌入式軟件分類:

A、系統軟件:控制和管理嵌入式系統資源,如嵌入式操作系統、驅動程序、中間件等。

B、應用軟件:定義嵌入式設備的主要功能和用途,負載與用戶進行交互。

C、支撐軟件:輔助軟件開發的工具軟件。

(3)無操作系統的嵌入式軟件的兩種實現方式:

A、循環輪轉

優點:簡單、直觀、開銷小、可預測。

缺點:過于簡單,所有代碼順序執行,無法處理異步事件,缺乏并行處理能力。

B、前后臺系統(在循環輪轉的基礎上增加了中斷處理功能)

前臺(事件處理級):中斷服務程序,負載處理異步事件。

后臺(任務級):一個無限循環,負載資源分配、任務管理和系統調度。

(4)有操作系統的三大優點:

A、提高系統的可靠性。

B、提高了系統的開發效率,降低了開發成本,縮短了開發周期。

C、有利于系統的擴展與移植。

(5)設備驅動層(也叫板級支持包BSP:包含了嵌入式系統中所有與硬件相關的代碼)

大多數的嵌入式硬件設備都需要某種類型軟件的初始化和管理。這部分工作由設備驅動層來完成的,它負責直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的驅動支持,類似PC系統中的BIOS和驅動程序。

(6)板級支持包BSP的基本思想

把嵌入式操作系統與具體的硬件平臺隔離開來。在BSP當中,把所有與硬件相關的代碼都封裝起來,并向上提供一個虛擬的硬件平臺,而操作系統就運行在這個虛擬的硬件平臺上。它使用一組定義好的編程接口來與BSP進行交互,并通過BSP來訪問真正的硬件。

(7)一般來說。BSP主要包括兩個方面的內容:

A、引導加載程序BootLoader。

B、設備驅動程序。

(8)關于引導加載程序BoorLoader

引導加載程序是嵌入式系統加電后運行的第一段軟件代碼,是在操作系統內核運行之前運行的一段小程序,它的實現高度依賴于具體的硬件平臺,主要的基本功能如下:

A、 片級初始化:純硬件初始化過程,把微處理器從上電的默認狀態設置成系統要求的工作狀態。

B、 板級初始化:同時有軟件和硬件在內的初始化過程,設置各種硬件的寄存器和設置某些軟件的數據結構和參數。

C、 加載內核:將操作系統和應用程序的映象從Flash存儲器復制到系統內存當中,然后跳轉到系統內核的第一條指令處繼續執行。

補充:PC系統的引導加載過程。

PC系統的引導加載程序由兩部分代碼組成――BIOS和MBR中的引導程序。BIOS在完成硬件檢測和資源配置后,將硬盤主引導記錄MBR中的引導程序讀到系統的內存當中,然后將控制權交給它,由它負責把操作系統的內核映象從硬盤讀入到內存,然后跳轉到內核入口去運行,即啟動操作系統。

(9)設備驅動程序

在一個嵌入式系統中,操作系統可能有也可能無,但是設備驅動程序是必不可少的。設備驅動程序,就是一組庫函數,用來對硬件進行初始化和管理,并向上層軟件提供良好的訪問接口。大多數設備驅動程序都具備下面的基本功能:啟動、關閉、停用、啟用、讀操作、寫操作。這些功能一般用函數的形式來實現,這些函數之間的組織結構主要有兩種:分層結構和混合結構。

(10)關于分層結構

A、硬件接口:直接操作和控制硬件。

B、調用接口:不直接跟硬件大交道,為上層軟件提供服務和函數接口。

C、優點:把所有與硬件相關的細節都封裝在硬件接口中,在硬件需要升級,需要更新設備驅動程序的時候,只需要改動硬件接口中的函數即可,而上層調用接口中的函數不用做任何修改。

D、混合結構:在設備驅動程序當中,沒有明確的層次關系,上層接口和硬件接口混在一起,相互調用。

(11)嵌入式中間件

它是在操作系統內核、設備驅動程序和應用軟件之外的所有系統軟件,其基本思路是:把原本屬于應用軟件層的一些通用的功能模塊抽取出來,形成獨立的一層軟件,從而為運行在它上面的那些應用軟件提供一個靈活、安全。移植性好、相互通信、協同工作的平臺。

2、嵌入式操作系統概述

(1)內核

內核是指操作系統中的一個組件,它包含了OS的主要功能,即OS的各種特性及其相互之間的依賴關系,這些功能主要包括:

A、任務管理:對系統中運行的軟件進行描述和管理,并完成處理器資源分配和調度。

B、存儲管理:提高內存的利用率,方便用戶使用,提供足夠的存儲空間。

C、設備管理:方便設備的使用,提高CPU和I/O設備的利用率。

D、文件管理:解決文件資源存儲、共享、保密和保護等問題。

注:不同嵌入式操作系統的內核設計各不相同,取決于系統設計和實際需求。

(2)嵌入式操作系統分類:

A、按系統類型:商業系統、專用系統、開源系統。

B、按響應時間:硬實時系統、軟實時系統。

C、按軟件結構:單體結構(uCOS)、分層結構(MS-DOS)、微內核結構(Vxworks)。

3、任務管理

(1)嵌入式操作系統的任務管理可以分為:

A、單道程序技術:操作系統中,任何時候只能有一個程序在運行。

B、多道程序技術:操作系統中,允許多個程序同時存在并運行。

(2)進程

進程,簡單的說,是一個正在運行的程序。

進程與程序既有聯系又有區別,主要表現為下面結構方面:

A、程序由數據和代碼兩部分內容組成,它是一個靜態的概念。而進程是正在執行的程序,它也由兩部分組成:程序和該程序的運行上下文。它是一個動態的概念。

B、程序和進程之間并不是一一對應的。一個進程在運行的時候可以啟動一個或多個程序。反之,同一個程序也可能由多進程同時執行。

C、程序可以作為一種軟件資源長期保存,以文件的形式存放在光盤或硬盤上,而進程則是一次執行的過程,它是暫時的,是動態的產生和終止。

一個進程至少應包括三個方面:相應的程序、CPU上下文、一組系統資源。

進程有三個特性:

A、 動態性:進程是正在運行的程序,而程序的運行狀態是不斷變化的。

B、 獨立性:進程是系統資源的使用單位,每個進行有自己的運行上下文和內部狀態。

C、 并發性:宏觀來看,系統中同時有多個進程存在,它們相互獨立地運行。

注:對于并發的理解。

在單CPU的情況下,所謂的并發性指的是宏觀上的并發運行,而微觀上還是順序進行,各個進程輪流去使用CPU資源。在單核CPU中,真正的、物理上的PC寄存器只有一個,進程在輪流執行的時候,物理PC的取值也在不斷變化。而邏輯PC其實就是一個內存變量。每個進程都有一個邏輯PC,當一個進程要運行的時候,就把它的邏輯PC裝載到物理PC中去;反之,當一個進程暫不運行的時候,就把物理PC中的值保存在它的邏輯PC當中。

(3)線程

線程就是進程當中的一條執行流程。

進程其實包含兩個部分:資源平臺和執行流程(線程)。

在一個進程當中,或者說在一個資源平臺上,可以同時存在多個線程;可以用線程作為CPU的基本調度單位,使得各個線程之間可以并發執行;對于同一個進程當中的各個線程來說,他們可以共享該進程的大部分資源。每個線程都有自己獨立的CPU運行上下文和棧,這是不能共享的。

(4)任務

在嵌入式系統中,任務其實就是線程,它是能夠獨立運行的一個實體。原因有二:

A、 任務具有獨立的優先級和??臻g,CPU上下文一般存放在??臻g中。

B、 任務之間可以很方便地、直接地使用共享的內存單元,而不需要經過系統內核。

在多道程序的嵌入式系統中,同時存在著多個任務,這些任務之間的結構一般為層狀結構,存在著父子關系。當嵌入式內核剛剛啟動的時候,只有一個任務存在,然后由該任務派生出所有其他任務。

(5)任務的創建與中止(教程P270)

任務的創建主要發生在以下三種情形:

A、 系統初始化。

B、 任務運行的過程中。

C、 用戶提出請求。

從技術的角度來說,實際上新任務只有一種創建的方法,也就是在一個已經存在的任務中,通過調用相應的系統函數來創建一個新的任務。

任務的創建只要有兩種可能的實現模型:fork/exec和spawn。兩種模型的差別主要在于內存的分配方式。

A、fork/exec模型下,首先調用fork函數為新任務創建一份與父任務完全相同的內存空間,然后再調用exec函數裝入新任務的代碼,并用它來覆蓋原有的屬于父任務的內容。嵌入式Linux操作系統是基于fork/exec模型的。

B、spawn模式下,在創建新任務的時候,直接為它分配一個全新的地址空間,然后將新任務的代碼裝入并運行。uCOS操作系統是基于spawn模型的。

任務的中止可能有多種原因,主要有下面三種情況:

A、 正常退出。

B、 錯誤推出。

C、 被其他任務踢出。

在有些嵌入式系統中,尤其是一些控制系統中,它的某些任務被設計為"死循環"的模式,一直循環下去,不會中止。

(6)任務的狀態

任務有三中基本狀態:

A、 運行狀態:任務占有CPU,并在CPU上運行。

B、 就緒狀態:任務已經具備運行的條件,在等待CPU空閑。

C、 阻塞狀態:任務因為正在等待某種事件的發生而暫時不能運行。

對于就緒狀態和阻塞狀態,它們的相同之處在于,任務都是處于暫停狀態,沒有運行。不同之處在于,暫停的原因是不一樣的,導致就緒狀態的原因是外因,是操作系統的CPU正忙,而導致阻塞狀態的原因是內因,是任務自身的問題。

任務狀態的四種轉換關系:任務由 時間 褃

A、 運行à阻塞:任務由于等待某個時間被阻塞起來。

B、 運行à就緒:調度器由于某種原因(例如優先級)選擇了另一個任務去運行。

C、 就緒à運行:CPU空閑了,處于就緒狀態的任務被調度器選中去運行。

D、阻塞à就緒:任務的等待事件完成,具備了繼續運行的條件。

(7)任務控制塊TCB

任務控制塊TCB,就是在操作系統中,用來描述和管理一個任務的數據結構。系統為每一個任務都維護了一個相應的TCB,用來保存該任務的各種相關信息。它的主要內容包括下面幾項:

A、 任務的管理信息:任務的標識ID、狀態、優先級、調度信息、各種隊列指針等。

B、 CPU上下文信息:CPU各種寄存器當前的值以及邏輯寄存器。

C、 資源管理的信息:段表地址、頁表地址、根目錄、文件描述字等。

當需要創建一個任務的時候,就為它生成一個TCB,并初始化這個TCB的內容;當需要中止一個任務的時候,只要回收它的TCB就可以了。

(7)任務的切換

基本思想:把當前任務的運行上下文保存起來,并恢復新任務的上下文。

任務切換通常有下面的基本步驟:

A、 將處理器的運行上下文保存在當前任務的TCB中。

B、 更新當前任務的狀態,從運行狀態變為就緒狀態或阻塞狀態。

C、 按照一定的策略,從所有處于就緒狀態的任務中選擇一個去運行。

D、修改新任務的狀態,從就緒狀態變成運行狀態。

E、 根據新任務的TCB的內容,恢復它的運行上下文環境。

在一個多任務的操作系統中,采用任務隊列的方式來組織它的所有任務。由操作系統來維護一組隊列,用來表示系統當中所有任務的當前狀態,不同的狀態用不同的隊列來標志。

(8)任務的調度

調度器可以看作CPU的資源管理者。

任務調度的首要問題是:何時進行調度,即調度發生的時機。一般有下面幾種情形:

A、 一個新任務被創建時,需要決定運行新任務還是繼續執行父任務。

B、 一個任務運行結束時,需要從就緒隊列中選擇某個任務去運行。

C、 一個任務運行阻塞時,需要選擇另一個任務去運行。

D、一個I/O操作完成,任務阻塞結束,立即執行新就緒任務還是繼續執行被中斷任務。

E、 一個時鐘節拍結束時,需要對就緒任務重新調度。

任務調度的第二個問題是:如何調度,即調度方式。主要有兩種方式:

A、 不可搶占調度方式:例如時間片輪轉。

B、 可搶占調度方式:例如優先級調度。

實時操作系統大都采用可搶占調度方式。

任務調度的第三個問題是:調度算法。

A、 先來先服務算法:按照任務到達的先后次序進行調度,是不可搶占的調度方式。

B、 短作業優先算法:各個任務開始執行之前,事先預計好它的執行時間,從中選擇用時較短的任務優先執行。

C、 時間片輪轉算法:所有的就緒任務按照先來先服務的原則排成一個隊列。在每次調度的時候,把處理器分派給隊列當中的第一個任務,讓它去執行一小段時間。在這個時間段里任務被阻塞或由于其他原因暫停,或者任務的時間片用完了,它會被送到就緒隊列的末尾,然后調度器再執行當前隊列的第一個任務。這種算法的優點是各個就緒任務都平均地分配使用CPU的時間,每個就緒任務都能一直保持著活動性。時間片輪轉法有一個默認前提,即位于就緒隊列中的各個任務是同等重要的。

D、優先級算法:給每個任務都設置一個優先級。然后在任務調度的時候,在所有處于就緒狀態的任務中選擇優先級最高的那個任務去運行。采用優先級調度算法的一個問題是可能會發生優先級反轉(教程P285),出現任務"饑餓"現象。

(9)實時系統調度

對于RTOS調度器來說,任務之間的公平性并不是最重要的,它追求的是實時性。

A、單調速率調度算法(RMS):任務的優先級與它的周期表現為單調函數的關系,任務的周期越短,優先級越高,任務的周期越長,優先級越低。RMS假定任務是相同獨立的、周期性的、任務在能夠在任何位置被搶占,而實際中的系統,任務之間需要進行通信和同步,這是一種理想的調度方法,實際中并不一定存在。

B、最早期限優先法(EDF):根據任務的截止時間來確定其優先級,對于時間限期最近的任務,分配最高的優先級。當有一個新的任務處于就緒狀態時,各個任務的優先級就有可能要進行調整,選擇截止時間最近的任務去運行。

(10)任務互斥

A、任務之間的關系:相互獨立、任務互斥、任務同步、任務通信。

B、任務間的互斥:當前已經有一個任務正在訪問臨界區共享數據,那么其他任務暫時不能訪問。

C、提出互斥訪問的四個條件:

a、在任何時候最多只能有一個任務位于它的臨界區中。

b、不能事先假定CPU的個數和系統的運行速度。

c、沒有任務位于它的臨界區中,它不妨礙其他任務去訪問臨界區資源。

d、任何一個任務進入臨界區的請求必須在有限的時間內得到滿足,不能無限期。

D、任務互斥的解決方案:

a、關閉中斷法

b、繁忙等待法

c、信號量處理

(11)信號量

信號量記錄當前可用資源的數量。

信號量由操作系統維護,任務不能直接去修改它的值,只能通過初始化和兩個標準原語(PV原語)來對它進行訪問。

注:關于原語。

原語通常由若干條語句組成,用來實現某個特點的操作,并通過一段不可分割或不可中斷的程序來實現其功能。原語時操作系統內核的一個組成部分,必須在內核態下執行。原語的不可中斷性是通過在其執行過程中關閉中斷來實現的。關鍵要理解PV原語的實現:

P(semaphores S)

{

--S.count;//申請一個資源

if(S.count < 0)????????//沒有空閑資源

{

將當前任務阻塞起來,加到阻塞隊列末尾,調度新的任務運行。

}

}

V(semaphores S)

{

++S.count;//釋放一個資源

if(S.count <= 0)????????//有任務被阻塞

{

從阻塞隊列中取出一個任務,把該任務改為就緒狀態,插入就緒隊列。

}

}

利用操作系統提供的信號量機制,可以方便、有效地實現對臨界資源的互斥訪問,優點有兩個:

A、 可以設置信號量的計數值,從而允許多個任務同時進入臨界區。

B、 當一個任務暫時無法進入臨界區時,它會被阻塞起來,將CPU讓給其他任務。

(12)任務同步2

任務之間的同步可以使用信號量機制,通過引入PV操作來設定兩個任務在運行時的先后順序。例如,可以把信號量視為某個共享資源的當前個數,然后由一個任務負責生成這種資源,而另一個任務則負責消費這種資源,這樣可以構成兩個任務之間的先后順序。在具體實現上,一般把信號量的初始值設為N,N大于或等于0。然后在一個任務內使用V原語,把信號量加1,而在另外一個任務內部使用P原語,將信號量減1,從而實現這兩個任務之間的同步關系。

(13)死鎖

在一組任務中,每個任務都占用著若干資源,同時又在等待其他任務占用的資源,從而造成所有任務都無法進展下去的現象,這稱為死鎖現象。

除了資源的競爭之外,PV操作使用不當也會引起死鎖。

(14)信號

所謂信號,是系統給任務的一個指示,表明某個異步事件已經發生了。

該事件可能來自外部,也可能來自內部。

信號機制也可以稱為軟中斷機制。

信號機制與中斷處理機制非常相似,相同點:

A、 都具有中斷性。

B、 都有相應的服務程序。

C、 都可以屏蔽響應。

不同點:

A、 中斷由硬件或特定指令產生,而信號由系統調用產生。

B、 中斷觸發后,硬件會根據中斷向量找到相應的處理程序執行;而信號則通過發送信號的系統調用來觸發,系統不一定馬上對它進行處理。

C、 中斷處理程序在系統內核的上下文中運行,是全局的;而信號處理程序在相關任務的上下文中運行,是任務的一個組成部分。

(15)任務間通信

任務之間的通信可以分為兩種類型:

A、 低級通信:只能傳遞狀態和整數值等控制信息,例如信號量機制。

B、 高級通信:能夠傳輸任意數量的數據,只要有三類:共享內存、消息傳遞和管道。

任務之間的通信方式有兩種:

A、 直接通信:通信雙方必須明確知道與之通信的對象。例如PV原語。

B、 間接通信:通信雙方不需指出消息的來源和去向,通過共享郵箱發送和接收消息。

郵箱只能存放單條消息,它提供一種低開銷的消息傳遞機制,只有空和滿兩種狀態。消息隊列與郵箱類似,但是可以同時存放若干條消息,提供了一種任務間緩沖通信的方法。

管道由UNIX首創,以文件系統為基礎,連接兩個任務之間的一個打開的共享文件,專用于任務直接的數據通信。

4、存儲管理

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

5、設備管理

(1)設備管理基礎

一個I/O單元通常由兩個部分組成:

A、 機械部分:I/O設備本身。

B、 電子部分:設備控制器或設備適配器。

硬件寄存器的編址方式有三種:

A、I/O獨立編址:對于各種設備控制器中的每一個寄存器,分配一個唯一的I/O端口編號,也叫I/O端口地址,然后用專門的I/O指令對這些端口進行操作。這些端口地址構成的地址空間是完全獨立的,與內存地址空間沒有任何關系。

B、內存映象編址:把各種設備控制器當中的每一個寄存器都映射為一個內存單元,這內存單元專門用于I/O操作。端口地址空間與內存地址空間是統一編址的,端口地址空間是內存地址空間的一部分。

C、混合編址:對于設備控制器當中的寄存器采用獨立編址的方法,每個寄存器有一個獨立的I/O端口地址;而對于設備的數據緩沖區,則采用內存映象編址的方法,把他們統一到內存地址空間當中。

(2)I/O控制方式:

A、程序循環檢測:要一直占用CPU,浪費CPU的時間。

B、中斷驅動方式:前后臺系統。

C、直接內存訪問:DMA控制,減少了中斷的次數。

(3)I/O軟件

A、中斷處理程序:當一個用戶程序需要某種I/O服務時,它會去調用相應的系統函數,而這個函數又會去調用相應的設備驅動程序,在驅動程序中會啟動相應的I/O操作,并且被阻塞起來,直到這個I/O操作完成后,產生一個中斷程序,并跳到相應的中斷處理程序,在這里將會喚醒被阻塞的驅動程序。

B設備驅動程序:直接同I/O設備打交道,直接對它們進行控制的軟件模塊。上層的I/O軟件通過抽象的函數接口與設備驅動程序打交道,這些接口是標準的、穩定不變的,而硬件設備的具體細節被封裝在設備驅動程序里面。設備驅動程序的管理通過驅動程序地址表來實現。驅動程序表中存放了各個設備驅動程序的入口地址,可以通過此表來實現設備驅動的動態安裝與卸載。

C、設備獨立I/O軟件:這部分軟件在設備驅動程序的上面,是獨立的I/O軟件,也是系統內核的一部分,主要任務是實現所有設備都需要的一些通用I/O功能,并向用戶級的軟件提供一個統一的訪問接口。

D、用戶空間的I/O軟件:大部分的I/O軟件都是包含在操作系統當中的,也有一小部分運行在系統內核之外。主要可以分為下面兩種:

a、與用戶程序進行鏈接的庫函數:例如C語言中與I/O相關的庫函數。

b、完全運行在用戶空間當中的程序:例如Spooling技術。

注:Spooling技術

Spooling是"外圍設備聯機操作"的所寫,spooling技術也叫假脫機技術或虛擬設備技術,它可以把一個獨占的設備轉變為具有共享特征的虛擬設備。在多道系統中,對于一個獨占設備,專門利用一道程序來增強該設備的I/O功能。優點有二:能提供高速的虛擬I/O服務;能實現對獨占設備的共享。

6、文件系統

(1)嵌入式文件系統概述

文件系統就是操作系統中用以組織、存儲、命名、使用和保護文件的一套管理機制。

常見的嵌入式文件系統有:

A、 FAT:VxWorks、QNX、WindowsCE等

B、 NFS:網絡文件系統,基于遠程調用和擴展數據表示。

C、 FFS:用于Flash存儲器的文件系統。

(2)文件和目錄

A、當一個文件被創建時,必須給它指定一個名字,用戶就是通過文件名來訪問這個文件的。

B、文件命是一個有限長度的字符串,由兩部分組成:文件名和擴展名。

C、文件的邏輯結構主要有三種:無結構、簡單的記錄結構和復雜結構?,F代文件系統通常采用的是無結構的形式。

D、除了文件名之外,操作系統會給每個文件附加一些其他信息,稱為文件的屬性。

E、文件的存取方法有兩種:順序存取和隨機存取。

F、目錄也稱為文件夾,它是一張表格,記錄了在該目錄下每個文件名和其他的一些管理信息。

G、在多級目錄結構中,訪問文件或目錄主要有兩種方法:絕對路徑名和相對路徑名。

(3)文件系統的實現

A、數據塊:在磁盤中以扇區為單元進行讀寫操作。對文件系統而言,把磁盤空間劃分為一個個大小相同的塊,稱為物理塊,每個物理塊包含若干個連續的扇區,同時把文件的字節流也分成大小相同的邏輯塊。在文件系統內部,以塊為單位來進行操作,把每一個邏輯塊保存在一個物理塊中。

B、文件的實現需要解決兩個方面的問題:

a、如何描述一個文件。

b、如何存儲一個文件。

C、文件控制塊(FCB):它是文件的描述方法,是操作系統為了管理文件而設置的一種數據結構,里面存放了與文件有關的所有管理信息,FCB是文件存在的標志。

D、文件的物理結構:連續結構、鏈表結構和索引結構。

連續結構:把文件的各個邏輯塊按照順序存放在若干個連續的物理塊當中。主要用于CD-ROM等一次性寫入的光學存儲介質當中。

鏈表結構:把文件的各個邏輯塊依次存放在若干個物理塊當中,這些物理塊既可以是連續的,也可以是不連續的,然后在各個塊之間通過指針連接起來,前一個物理塊指向下一個物理塊,從而形成一條鏈表。

帶有文件分配表的鏈表結構:在鏈表結構的基礎上,把每一個物理塊當中的鏈表指針抽取出來,單獨組成一個表格,就是文件分配表(FAT)。如果要隨機訪問文件的地n個邏輯塊,可以先從FAT表中查到相應的物理塊地址,然后根據這個地址直接去訪問磁盤。

索引結構:把文件當中每一個邏輯塊所對應的物理塊編號直接記錄在這個文件的文件控制塊當中,這樣的文件控制塊稱為是I節點,或索引節點。這樣,對于系統中的每一個文件,都有一個自己的索引節點,通過這個索引節點就能夠直接實現邏輯塊與物理塊之間的映射關系。

(4)目錄的實現

A、直接法:把文件控制塊的內容直接保存在目錄項當中,因此每個目錄項就等于某個文件名加上它的FCB。

B、間接法:目錄項里面只有文件名和該文件的FCB所在地址。

不管是那一種類型的實現方法,目錄的基本功能都一樣,即用戶給出一個文件名,就返回相應文件的FCB。

(5)空閑空間管理方法:

A、位圖法。

B、鏈表法。

C、索引法。

三、真題解析

(1)2007年21、22題

某系統中有四種互斥資源R1、R2、R3和R4,可用資源數分別為3、5、6和8。假設在T0時刻有P1、P2、P3和P4 四個進程,并且這些進程對資源的最大需求量和已分配資源數如下表所示,那么在T0時刻系統中R1、R2、R3和R4的剩余資源數分別為 (21) 。如果從T0時刻開始進程按 (22) 順序逐個調度執行,那么系統狀態是安全的。

(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

考查操作系統中進程(任務)管理中死鎖檢測的多項資源銀行家算法。

由于T0時刻已用資源數為3、4、6和7,故剩余資源數為0、1、0、和1。

P1、P2、P3、P4四個進程中,系統只能滿足P3的需求資源數:

現在P3的需求量是:1、2、1、1,尚需要的資源數是:0、1、0、1,。

現在剩余的資源數是0、1、0、1,剛好能滿足P3的需求,能保證P3運行完。

P3運行結束釋放資源后,系統的可用資源為:1、2、1、1

此時P2尚需要的資源為:1、0、0、0,系統能滿足P2的請求,故P2能運行完。

P2運行結束釋放資源后,系統的可用資源為:1、3、3、3。

此時P1尚需要資源為:0、1、1、2,P4尚需要的資源為0、0、1、2。

系統能滿足P1和P4的請求,故P1和P4能運行完。

因此,進程可以按P3àP2àP1àP4或P3àP2àP4àP1的順序執行。

(2)2007年29、30、31題

考查嵌入式存儲系統硬件方面的基礎知識。

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

(3)2007年37題

下面 (37) 不屬于嵌入式系統中的進程狀態。

(37)A. 運行狀態 B. 就緒狀態 C. 開關狀態 D. 等待狀態

<解析>:C

考查嵌入式操作系統的基礎知識。

見復習筆記2嵌入式操作系統概述(6)。

(4)2007年38題

下面(38)不是操作系統中調度程序所采用的調度算法。

(38)A. 先來先服務(FCFS) B. 先進先出(FIFO)

C. 時間片輪轉調度 D. 優先級調度

<解析>:B

考查嵌入式操作系統中進程調度算法的基礎知識。

見復習筆記2嵌入式操作系統概述(8)。

(5)2007年39題

在操作系統中,Spooling技術是用一類物理設備模擬另一類物理設備的技術,實現這種技術的功能模塊稱做 (39) 。

(39)A. 可林斯系統 B. 斯普林系統

C. 圖靈機系統 D. 虛擬存儲系統

<解析>:B

考查嵌入式操作系統的基礎知識。

見復習筆記5設備管理(3)注。

在操作系統中,Spooling技術是用一種物理設備模擬另一種物理設備技術,是使獨占設備變成共享設備的技術,也就是一種速度匹配技術,根據Spooling的讀音,實現這種技術的功能模塊稱作斯普林系統。

(6)2007年40題

在操作系統中,除賦初值外,對信號量僅能操作的兩種原語是 (40) 。

(40)A. 存操作、取操作 B. 讀操作、寫操作

C. P操作、V操作 D. 輸入操作、輸出操作

<解析>:C

考查嵌入式操作系統中PV原語。

見復習筆記2嵌入式操作系統概述(11)注。

P操作表示申請一個資源,V操作表示釋放一個資源。

(7)2007年41題

考查嵌入式存儲系統中虛擬存儲技術方面的基礎知識。

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

(8)2007年42題

下面 (42) 特性不符合嵌入式操作系統特點。

(42)A. 實時性 B. 不可定制 C. 微型化 D. 易移植

<解析>:B

考查嵌入式操作系統的基礎知識。

太簡單了,常識性的問題。

(9)2007年43題

在并行環境中的某些任務必須協調自己的運行速度,以保證各自的某些關鍵語句按照某種事先規定的次序執行,這種現象被稱為任務的 (43) 。

(43)A. 執行 B. 互斥C. 調度 D. 同步

<解析>:D

考查嵌入式操作系統的任務同步方面的基礎知識。

見復習筆記2嵌入式操作系統概述(12)。

(10)2007年44題

關于文件系統,下列敘述中不正確的是 (44) 。

(44)A. 負責文件的組織、存儲、檢索、命名、共享和保護

B. 提供描述文件抽象的程序接口

C. 文件存儲在磁盤或其他不易失的存儲介質上

D. 程序員需要關心文件存儲分配和存儲布局的細節

<解析>:D

考查嵌入式操作系統的文件系統方面的基礎知識。

見復習筆記6文件系統。

文件系統負責文件的組織、存儲、檢索、命名、共享和保護,并為程序員提供描述文件描述的程序接口,程序員不需要關心文件存儲分配和存儲局部的細節,通過程序接口即可實現對文件的操作。

(11)2007年45題

Linux系統中的設備可分為三類:字符設備、塊設備和網絡設備,其中不是基于文件系統訪問的設備是 (45) 。

(45)A. 字符設備 B. 塊設備 C.網絡設備D. 字符和塊設備

<解析>:C

考查嵌入式操作系統的文件系統方面的基礎知識。

Linux操作系統中的設備可以分為三類:字符設備、塊設備和網絡設備。其中字符設備沒有緩沖區,數據的處理以字節為單位按順序進行的,不支持隨機讀寫;塊設備是指那些在輸入輸出時數據處理以塊為單位的設備,一般采用了緩存技術,支持數據的隨機讀寫;Linux中的網絡設備實現方法不同于字符設備和塊設備,它面向上一層不是文件系統而是網絡網絡協議層,設備節點只有在系統正確初始化網絡控制器之后才能建立。

(12)2007年46題

(46) 完全把系統軟件和硬件部分隔離開來,從而大大提高了系統的可移植性。

(46)A. 硬件抽象層 B. 驅動映射層 C. 硬件交互層 D. 中間層

<解析>:A

考查嵌入式操作系統的基礎知識。

見復習筆記1嵌入式軟件基礎。

嵌入式系統常采用基于硬件抽象層的分層體系結構,以提高嵌入式軟件的可移植性和擴張性。

(13)2007年47題

實時操作系統(RTOS)內核與應用程序之間的接口稱為 (47) 。

(47)A. 輸入/輸出接口 B. 文件系統 C. API D. 圖形用戶接口

<解析>:C

考查嵌入式操作系統的基礎知識。

常識性問題,實時操作系統(RTOS)是一個標準內核,它將CPU時間、中斷、I/O和定時器等資源都包裝起來,留給用戶的是一個標準的應用程序接口,即API接口。

(14)2007年48題

在多任務實時系統中,任務間或者中斷服務與任務間常需要交換信息,這種信息交換有 (48) 兩個途徑。

(48)A. 開/關中斷和信息郵箱 B. 共享存儲區和消息傳遞

C. 郵箱機制和數據共享機制 D. 非占先式內核和占先式內核機制

<解析>:C

考查嵌入式操作系統中任務間通信的基礎知識。

見復習筆記2嵌入式操作系統概述(15)。

(15)2006年20、21題

在一個單CPU的計算機系統中,采用可剝奪式(也稱搶占式)優先級的進程調度方案,且所有的任務可以并行使用I/O設備。下表列出了T1、T2、T3的優先級和獨立運行時占用CPU和I/O設備的時間。如果操作系統的開銷忽略不計,則這三個任務從同時啟動到全部結束的總時間為(20)ms,CPU的空閑時間共有(21)ms。

(20) A. 28B. 58C. 61D. 64

(21) A. 3B. 5C. 8D. 13

<解析>:B、D

考查嵌入式操作系統中任務調度的理解和計算。

3個任務的運行過程示意圖如下:

如果操作系統的開銷忽略不計,從啟動到結束的總時間為:

10+13+5+5+5+2+13+5=58ms

CPU的空閑時間為任務T3進行I/O操作的時間:13ms。

(16)2006年22題

考查嵌入式操作系統中存儲管理的基礎知識。

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

(17)2006年42題

嵌入式系統由硬件和軟件部分構成,以下(42)不屬于嵌入式系統軟件。

(42)A. 系統內核B. 驅動程序

C. FPGA編程軟件D. 嵌入式中間件

<解析>:C

考查嵌入式操作系統的基礎知識。

見復習筆記1嵌入式軟件基礎(2)。

(18)2006年43題

關于硬件抽象層,以下描述中錯誤的是(43)。

(43)A. 硬件抽象層包括操作系統內核和驅動程序。

B. 硬件抽象層將操作系統與硬件平臺隔開。

C. 硬件抽象層是一種軟件。

D. 硬件抽象層有利于系統的模塊化設計。

<解析>:A

考查嵌入式操作系統的基礎知識。

見復習筆記1嵌入式軟件基礎(5)。

硬件抽象層(HAL)也稱為板級支持包(BSP),位于嵌入式系統硬件層和系統軟件層之間,將系統上層軟件和低層硬件分離開來,使系統的底層驅動程序與硬件無關。它主要包括引導加載程序Bootloader和設備驅動程序兩個方面的內容。具有兩個特點:硬件相關性和操作系統相關性。

(19)2006年44題

一個任務被喚醒,意味著(44)。

(44)A. 該任務重新占有了CPU。B. 它的優先級變為最大。

C. 其任務移至等待隊列的隊首。D. 任務變為就緒狀態。

<解析>:D

考查嵌入式操作系統中任務狀態切換的基礎知識。

見復習筆記2嵌入式操作系統概述(6)。

(20)2006年45題

關于實時操作系統(RTOS)的任務調度器,以下描述中正確的是(45)。

(45)A. 任務之間的公平性是最重要的調度目標。

B. 大多數RTOS調度算法都是可搶占式(可剝奪式)的。

C. RTOS調度器都采用了基于時間片輪轉的調度算法。

D. RTOS調度算法只是一種靜態優先級調度算法。

<解析>:B

考查嵌入式實時操作系統的基礎知識。

見復習筆記2嵌入式操作系統概述(8)(9)。

(21)2006年46題

在下列調度算法中,(46)算法不會出現任務"饑餓"的情形。

(46)A. 時間片輪轉法B. 先來先服務法

C. 可搶占的短作業優先算法D. 靜態優先級算法

<解析>:A

考查嵌入式實時操作系統的基礎知識。

見復習筆記2嵌入式操作系統概述(8)。

(22)2006年47題

在實時操作系統中,郵箱通信是一種(47)通信方式。

(47)A. 直接B. 間接C. 低級D. 高級

<解析>:B

考查嵌入式操作系統中任務間通信的基礎知識。

見復習筆記2嵌入式操作系統概述(15)。

(23)2006年48題

在某個嵌入式操作系統中,若PV操作的信號量S的初始值為2,當前值為-1,則表示等待信號量S的任務個數為(48)。

(48)A. 0B. 1C. 2D. 3

<解析>:B

考查嵌入式操作系統中的PV原語。

信號量S表示資源的實體,它是一個與隊列有關的整型變量,其值僅由P、V操作來完成。當S=n>0時,表示列隊中有n個資源可用;當S=0時,表示隊列中無資源可用;當S=n<0時,表示進入等待隊列中的任務數有n的絕對值|n|個。信號量S的當前值為-1,則表示等待的信號S的任務個數為1個。

(24)2006年49題

在實時操作系統中,兩個任務并發執行,一個任務要等待其合作伙伴來發送消息,或建立某個條件后再向前執行,這種制約性合作關系被稱為任務的(49)。

(49)A. 同步B. 互斥C. 調度D. 執行

<解析>:A

考查嵌入式操作系統中任務間同步的基礎知識。

見復習筆記2嵌入式操作系統概述(12)。

(25)2006年50題

考查嵌入式操作系統中存儲管理的基礎知識。

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

(26)2006年51題

考查嵌入式操作系統中存儲管理的基礎知識。

見《嵌入式系統設計師考試復習筆記之存儲管理篇》。

(27)2006年52題

文件系統的主要功能是(52)。

(52)A. 實現對文件的按名存取B. 實現虛擬存儲

C. 提高外存的讀寫速度D. 用于保存系統文檔

<解析>:A

考查嵌入式操作系統中文件系統的基礎知識。

見復習筆記6文件系統。

(28)2006年53題

在FAT16文件系統中,若每個簇的大小是2KB,那么它所能表示的最大磁盤分區容量為(53)。

(53)A. 2MBB. 32MBC. 64MBD. 128MB

<解析>:D

考查嵌入式操作系統中文件系統的基礎知識。

FAT是一種適合小卷集與雙重引導需要的文件系統。采用FAT文件系統格式化的卷以簇的形式進行分配。FAT16使用了16位的空間來表示每個扇區配置文件的情形。如果每個簇的大小是2KB,那么它所能表示的最大磁盤分區容量為:216×2KB=217 KB=27MB=128MB。

(29)2006年54題

在下面的敘述中,(54)不是嵌入式圖形用戶接口(GUI)的主要特點。

(54)A. 運行時占用的系統資源少B. 模塊化結構,便于移植和定制

C. 可靠性高D. 美麗華麗,圖形算法復雜

<解析>:D

考查嵌入式圖形接口的基礎概念。我也不知道該不該歸類到這里來。

四、小結

縱觀兩年的考試題目,2006年考了16道題目,2007年考了17道題目。上面的75道題目,除了20道左右的公共題目,5道左右的C語言題目和10道專業外語題目之外的40道左右的題目中,嵌入式操作系統相關的題目占了半壁江山,可見其分量之重。弄得這部分題目除了可以在上午題目拿到可觀的分數之外,還可以在下午的題目中大派用場。細看里面的題目,考察的都是基本概念和基本原理,設計一些簡單的推理和計算。只要最這些有深入徹底的理解,基本能拿到90%的分數的。

嵌入式系統設計師考試筆記之接口技術

一、

嵌入式系統的硬件除了核心的微處理器之外就是外圍器件和接口。接口技術在嵌入式系統設計處于如此重要的位置,是嵌入式系統設計師硬件部分的重要考試范圍。目前嵌入式系統中的接口五花百門,每個接口都可以寫成一本厚厚的書。面對內容如此之多,范圍如此之廣的考試部分,應該怎么樣去復習呢?我的指導思想是,把握好每種接口技術的最基本概念,理解透每個接口的最基本工作原理,從歷年考題中提煉出??贾R點,重點進行復習,這樣足以應付考試了。是不是這樣就要通過真題考試來驗證了,讓我們期待吧。

二、復習筆記

1. Flash存儲器

(1)Flash存儲器是一種非易失性存儲器,根據結構的不同可以將其分為NOR Flash和NAND Flash兩種。

(2)Flash存儲器的特點:

A、區塊結構:在物理上分成若干個區塊,區塊之間相互獨立。

B、先擦后寫:Flash的寫操作只能將數據位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執行擦除操作,將預寫入的數據位初始化為1。擦除操作的最小單位是一個區塊,而不是單個字節。

C、操作指令:執行寫操作,它必須輸入一串特殊指令(NOR Flash)或者完成一段時序(NAND Flash)才能將數據寫入。

D、位反轉:由于Flash的固有特性,在讀寫過程中偶爾會產生一位或幾位的數據錯誤。位反轉無法避免,只能通過其他手段對結果進行事后處理。

E、壞塊:區塊一旦損壞,將無法進行修復。對已損壞的區塊操作其結果不可預測。

(3)NOR Flash的特點:

應用程序可以直接在閃存內運行,不需要再把代碼讀到系統RAM中運行。NOR Flash的傳輸效率很高,在1MB~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。

(4)NAND Flash的特點

能夠提高極高的密度單元,可以達到高存儲密度,并且寫入和擦除的速度也很快,這也是為何所有的U盤都使用NAND Flash作為存儲介質的原因。應用NAND Flash的困難在于閃存需要特殊的系統接口。

(5)NOR Flash與NAND Flash的區別:

A、NOR Flash的讀速度比NAND Flash稍快一些。

B、NAND Flash的擦除和寫入速度比NOR Flash快很多

C、NAND Flash的隨機讀取能力差,適合大量數據的連續讀取。

D、NOR Flash帶有SRAM接口,有足夠的地址引進來尋址,可以很容易地存取其內部的每一個字節。NAND Flash的地址、數據和命令共用8位總線(有寫公司的產品使用16位),每次讀寫都要使用復雜的I/O接口串行地存取數據。

E、NOR Flash的容量一般較小,通常在1MB~8MB之間;NAND Flash只用在8MB以上的產品中。因此,NOR Flash只要應用在代碼存儲介質中,NAND Flash適用于資料存儲。

F、NAND Flash中每個塊的最大擦寫次數是一百萬次,而NOR Flash是十萬次。

G、NOR Flash可以像其他內存那樣連接,非常直接地使用,并可以在上面直接運行代碼;NAND Flash需要特殊的I/O接口,在使用的時候,必須先寫入驅動程序,才能繼續執行其他操作。因為設計師絕不能向壞塊寫入,這就意味著在NAND Flash上自始至終必須進行虛擬映像。

H、NOR Flash用于對數據可靠性要求較高的代碼存儲、通信產品、網絡處理等領域,被成為代碼閃存;NAND Flash則用于對存儲容量要求較高的MP3、存儲卡、U盤等領域,被成為數據閃存。

2、RAM存儲器

(1)SRAM的特點:

SRAM表示靜態隨機存取存儲器,只要供電它就會保持一個值,它沒有刷新周期,由觸發器構成基本單元,集成度低,每個SRAM存儲單元由6個晶體管組成,因此其成本較高。它具有較高速率,常用于高速緩沖存儲器。

通常SRAM有4種引腳:

CE:片選信號,低電平有效。

R/W:讀寫控制信號。

ADDRESS:一組地址線。

DATA:用于數據傳輸的一組雙向信號線。

(2)DRAM的特點:

DRAM表示動態隨機存取存儲器。這是一種以電荷形式進行存儲的半導體存儲器。它的每個存儲單元由一個晶體管和一個電容器組成,數據存儲在電容器中。電容器會由于漏電而導致電荷丟失,因而DRAM器件是不穩定的。它必須有規律地進行刷新,從而將數據保存在存儲器中。

DRAM的接口比較復雜,通常有一下引腳:

CE:片選信號,低電平有效。

R/W:讀寫控制信號。

RAS:行地址選通信號,通常接地址的高位部分。

CAS:列地址選通信號,通常接地址的低位部分。

ADDRESS:一組地址線。

DATA:用于數據傳輸的一組雙向信號線。

(3)SDRAM的特點:

SDRAM表示同步動態隨機存取存儲器。同步是指內存工作需要同步時鐘,內部的命令發送與數據的傳輸都以它為基準;動態是指存儲器陣列需要不斷的刷新來保證數據不丟失。它通常只能工作在133MHz的主頻。

(4)DDRAM的特點

DDRAM表示雙倍速率同步動態隨機存取存儲器,也稱DDR。DDRAM是基于SDRAM技術的,SDRAM在一個時鐘周期內只傳輸一次數據,它是在時鐘的上升期進行數據傳輸;而DDR內存則是一個時鐘周期內傳輸兩次次數據,它能夠在時鐘的上升期和下降期各傳輸一次數據。在133MHz的主頻下,DDR內存帶寬可以達到133×64b/8×2=2.1GB/s。

3、硬盤、光盤、CF卡、SD卡的相關知識見《教程》145~148頁。

4、GPIO原理與結構

GPIO是I/O的最基本形式,它是一組輸入引腳或輸出引腳。有些GPIO引腳能夠加以編程改變工作方向,通常有兩個控制寄存器:數據寄存器和數據方向寄存器。數據方向寄存器設置端口的方向。如果將引腳設置為輸出,那么數據寄存器將控制著該引腳狀態。若將引腳設置為輸入,則此輸入引腳的狀態由引腳上的邏輯電路層來實現對它的控制。

5、A/D接口

(1)A/D轉換器是把電模擬量轉換為數字量的電路。實現A/D轉換的方法有很多,常用的方法有計數法、雙積分法和逐次逼進法。

(2)計數式A/D轉換法

其電路主要部件包括:比較器、計數器、D/A轉換器和標準電壓源。

其工作原理簡單來說就是,有一個計數器,從0開始進行加1計數,每進行一次加1,該數值作為D/A轉換器的輸入,其產生一個比較電壓VO與輸入模擬電壓VIN進行比較。如果VO小于VIN則繼續進行加1計數,直到VO大于VIN,這時計數器的累加數值就是A/D轉換器的輸出值。(詳細參考《教程》155頁)

這種轉換方式的特點是簡單,但是速度比較慢,特別是模擬電壓較高時,轉換速度更慢。例如對于一個8位A/D轉換器,若輸入模擬量為最大值,計數器要從0開始計數到255,做255次D/A轉換和電壓比較的工作,才能完成轉換。

(3)雙積分式A/D轉換法

其電路主要部件包括:積分器、比較器、計數器和標準電壓源。

其工作原理是,首先電路對輸入待測電壓進行固定時間的積分,然后換為標準電壓進行固定斜率的反向積分,反向積分進行到一定時間,便返回起始值。由于使用固定斜率,對標準電壓進行反向積分的時間正比于輸入模擬電壓值,輸入模擬電壓越大,反向積分回到起始值的時間越長。只要用標準的高頻時鐘脈沖測定反向積分花費的時間,就可以得到相應于輸入模擬電壓的數字量,也就完成了A/D轉換。(詳細參考《教程》156頁)

其特點是,具有很強的抗工頻干擾能力,轉換精度高,但轉換速度慢,通常轉換頻率小于10Hz,主要用于數字式測試儀表、溫度測量等方面。

(4)逐次逼近式A/D轉換法

其電路主要部件包括:比較器、D/A轉換器、逐次逼近寄存器和基準電壓源。

其工作原理是,實質上就是對分搜索法,和平時天平的使用原理一樣。在進行A/D轉換時,由D/A轉換器從高位到低位逐位增加轉換位數,產生不同的輸出電壓,把輸入電壓與輸出電壓進行比較而實現。首先使最高位為1,這相當于取出基準電壓的1/2與輸入電壓比較,如果在輸入電壓小于1/2的基準電壓,則最高位置0,反之置1。之后,次高位置1,相當于在1/2的范圍中再作對分搜索,以此類推,逐次逼近。(詳細參考《教程》157頁)

其特點是,速度快,轉換精度高,對N位A/D轉換器只需要M個時鐘脈沖即可完成,一般可用于測量幾十到幾百微秒的過渡過程的變化,是目前應用最普遍的轉換方法。

(5)A/D轉換的重要指標(有可能考一些簡單的計算)

A、分辨率:反映A/D轉換器對輸入微小變化響應的能力,通常用數字輸出最低位(LSB)所對應的模擬電壓的電平值表示。n位A/D轉換器能反映1/2n滿量程的模擬輸入電平。

B、量程:所能轉換的模擬輸入電壓范圍,分為單極性和雙極性兩種類型。

C、轉換時間:完成一次A/D轉換所需要的時間,其倒數為轉換速率。

D、精度:精度與分辨率是兩個不同的概念,即使分辨率很高,也可能由于溫漂、線性度等原因使其精度不夠高。精度有絕對精度和相對精度兩種表示方法。通常用數字量的最低有效位LSB的分數值來表示絕對精度,用其模擬電壓滿量程的百分比來表示相對精度。

例如,滿量程10V,10位A/D芯片,若其絕對精度為±1/2LSB,則其最小有效位LSB的量化單位為:10/1024=9.77mv,其絕對精度為9.77mv/2=4.88mv,相對精度為:0.048%。

6、D/A接口基本

(1)D/A轉換器使將數字量轉換為模擬量。

(2)在集成電路中,通常采用T型網絡實現將數字量轉換為模擬電流,再由運算放大器將模擬電路轉換為模擬電壓。進行D/A轉換實際上需要上面的兩個環節。關于T型電阻解碼網絡和D/A轉換具體原理參考《教程》的159頁。

(3)D/A轉換器的分類:

A、電壓輸出型:常作為高速D/A轉換器。

B、電流輸出型:一般外接運算放大器使用。

C、乘算型:可用作調制器和使輸入信號數字化地衰減。

(4)D/A轉換器的主要指標:分辨率、建立時間、線性度、轉換精度、溫度系數。

7、鍵盤接口

(1)鍵盤的兩種形式:線性鍵盤和矩陣鍵盤。

(2)識別鍵盤上的閉合鍵通常有兩種方法:行掃描法和行反轉法。(《教程》163頁)

(3)行掃描法是矩陣鍵盤按鍵常用的識別方法,此方法分為兩步進行:

A、識別鍵盤哪一列的鍵被按下:讓所有行線均為低電平,查詢各列線電平是否為低,如果有列線為低,則說明該列有按鍵被按下,否則說明無按鍵按下。

B、如果某列有按鍵按下,識別鍵盤是哪一行按下:逐行置低電平,并置其余各行為高電平,查詢各列的變化,如果列電平變為低電平,則可確定此行此列交叉點處按鍵被按下。

8、顯示接口

(1)LCD的基本原理是,通過給不同的液晶單元供電,控制其光線的通過與否,從而達到顯示的目的。

(2)LCD的光源提供方式有兩種:投射式和反射式。筆記本電腦的LCD顯示器為投射式,屏的背后有一個光源,因此外界環境可以不需要光源。一般微控制器上使用的LCD為反射式,需要外界提供電源,靠反射光來工作。電致發光(EL)是液晶屏提供光源的一種方式。

(3)按照液晶驅動方式分類,常見的LCD可以分為三類:扭轉向列類(TN)、超扭曲向列型(STN)和薄膜晶體管型(TFT)。

(4)市面上出售的LCD有兩種類型:帶有驅動電路的LCD顯示模塊,只要總線方式驅動;沒有驅動電路的LCD顯示器,使用控制器掃描方式。

(5)通常,LCD控制器工作的時候,通過DMA請求總線,直接通過SDRAM控制器讀取SDRAM中指定地址(顯示緩沖區)的數據,此數據經過LCD控制器轉換成液晶屏掃描數據格式,直接驅動液晶顯示器。

(6)VGA接口本質上是一個模擬接口,一般都采用統一的15引腳接口,包括2個NC信號、3根顯示器數據總線、5個GND信號、3個RGB色彩分量、1個行同步信號和1個場同步信號。其色彩分量采用的電平標準為EIA定義的RS343標準。

9、觸摸屏接口

(1)按工作原理分,觸摸屏可以分為:表面聲波屏、電容屏、電阻屏和紅外屏幾種。(具體的工作原理看《教程》173頁)

(2)觸摸屏的控制采用專業芯片,例如ADS7843。(具體工作原理看《教程》176頁)。

10、音頻接口

(1)基本原理:麥克風輸入的數據經音頻編解碼器解碼完成A/D轉換,解碼后的音頻數據通過音頻控制器送入DSP或CPU進行相應的處理,然后數據經音頻控制器發送給音頻編碼器,經編碼D/A轉換后由揚聲器輸出。

(2)數字音頻的格式有多種,最常用的是下面三種:

A、采用數字音頻(PCM):是CD或DVD采用的數據格式。其采樣頻率為44.1kHz。精度為16位時,PCM音頻數據速率為1.41Mb/s;精度為32位時為2.42 Mb/s。一張700MB的CD可以保存大約60分鐘的16位PCM數據格式的音樂。

B、MPEG層3音頻(MP3):MP3播放器采用的音頻格式。立體聲MP3數據速率為112kb/s至128kb/s。

C、ATSC數字音頻壓縮標準(AC3):數字TV、HDTV和電影數字音頻編碼標準,立體聲AC3編碼后的數據速率為192kb/s。

(3)IIS是音頻數據的編碼或解碼常用的串行音頻數字接口。IIS總線只處理聲音數據,其他控制信號等則需要單獨傳輸。IIS使用了3根串行總線:數據線SD、字段選擇線WS、時鐘信號線SCK。

(4)當接收方和發送方的數據字段寬度不一樣時,發送方不考慮接收方的數據字段寬度。如果發送方發送的數據字段小于系統字段寬度,就在低位補0;如果發送方的數據寬度大于接收方的寬度,則超過LSB的部分被截斷。字段選擇WS用來選擇左右聲道,WS=0表示選擇左聲道;WS=1表示選擇右聲道。此外,WS能讓接收設備存儲前一個字節,并準備接收下一個字節。

11、串行接口

(1)串行通信是指,使數據一位一位地進行傳輸而實現的通信。與并行通信相比,串行通信具有傳輸線少、成本低等優點,特別適合遠距離傳送;缺點使速度慢。

(2)串行數據傳送有3種基本的通信模式:單工、半雙工、全雙工。

(3)串行通信在信息格式上可以分為2種方式:同步通信和異步通信。

A、異步傳輸:把每個字符當作獨立的信息來傳輸,并按照一固定且預定的時序傳送,但在字符之間卻取決于字符與字符的任意時序。異步通信時,字符是一幀一幀傳送的,每幀字符的傳送靠起始位來同步。一幀數據的各個代碼間間隔是固定的,而相鄰兩幀數據其時間間隔是不固定的。

B、同步傳輸:同步方式不僅在字符之間是同步的,而且在字符與字符之間的時序仍然是同步的,即同步方式是將許多字符聚集成一字符塊后,在每塊信息之前要加上1~2個同步字符,字符塊之后再加入適當的錯誤檢測數據才傳送出去。

(4)異步通信必須遵循3項規定:

A、字符格式:起始位+數據+校驗位+停止位(檢驗位可無),低位先傳送。

B、波特率:每秒傳送的位數。

C、校驗位:奇偶檢驗。

a、奇校驗:要使字符加上校驗位有奇數個"1"。

b、偶檢驗:要使字符加上校驗位有偶數個"1"。

(5)RS-232C的電氣特性:負邏輯。

A、在TxD和RxD上:邏輯1為-3V~-15V,邏輯0為3V~15V。

B、在TES、CTS、DTR、DCD等控制線上:

信號有效(ON狀態)為3V~15V

信號無效(OFF狀態)為-3V~-15V

(6)TTL標準與RS-232C標準之間的電平轉換利用集成芯片RS232實現。(詳見《教程》182頁)

(7)RS-422串行通信接口

A、RS-422是一種單機發送、多機接收的單向、平衡傳輸規范,傳輸速率可達10Mb/s。

B、RS-422采用差分傳輸方式,也稱做平衡傳輸,使用一對雙絞線。

C、RS-422需要一終端電阻,要求其阻值約等于傳輸電纜的特性阻抗。

(8)RS-485串行總線接口

A、RS-485是在RS-422的基礎上建立的標準,增加了多點、雙向通信能力,通信距離可為幾十米到上千米。

B、RS-485收發器采用平衡發送和差分接收,具有抑制共模干擾的能力。

C、RS-485需要兩個終端電阻。在近距離(300m一下)傳輸可不需要終端電阻。

12、并行接口

(1)并行接口的數據傳輸率比串行接口快8倍,標準并行接口的數據傳輸率為1Mb/s,一般用來連接打印機、掃描儀等,所以又稱打印口。

(2)并行接口可以分為SPP(標準并口)、EPP(增強型并口)和ECP(擴展型并口)。

(3)并行總線分為標準和非標準兩類。常用的并行標準總線有IEEE 488總線和ANSI SCSI總線。MXI總線是一種高性能非標準的通用多用戶并行總線。

13、PCI接口

(1)PCI總線是地址、數據多路復用的高性能32位和64位總線,是微處理器與外圍控制部件、外圍附加板之間的互連機構。

(2)從數據寬度上看,PCI定義了32位數據總線,且可擴展為64位。從總線速度上分,有33MHz和66MHz兩種。

(3)與ISA總線相比,PCI總線的地址總線與數據總線分時復用,支持即插即用、中斷共享等功能。

14、USB接口

(1)USB總線的主要特點:

A、使用簡單,即插即用。

B、每個USB系統中都有主機,這個USB網絡中最多可以連接127個設備。

C、應用范圍廣,支持多個設備同時操作。

D、低成本的電纜和連接器,使用統一的4引腳插頭。

E、較強的糾錯能力。

F、較低的協議開銷帶來了高的總線性能,且適合于低成本外設的開發。

G、支持主機與設備之間的多數據流和多消息流傳輸,且支持同步和異步傳輸類型。

H、總線供電,能為設備提供5V/100mA的供電。

(2)USB系統由3部分來描述:USB主機、USB設備和USB互連。

(3)USB總線支持的數據傳輸率有3種:高速信令位傳輸率為480Mb/s;全速信令位傳輸率為12Mb/s;全速信令位傳輸率為1.5Mb/s。

(4)USB總線電纜有4根線:一對雙絞信號線和一對電源線。

(5)USB是一種查詢總線,由主控制器啟動所有的數據傳輸。USB上所掛接的外設通過由主機調度的、基于令牌的協議來共享USB帶寬。

(6)大部分總線事務涉及3個包的傳輸:

A、令牌包:指示總線上要執行什么事務,欲尋址的USB設備及數據傳送方向。

B、數據包:傳輸數據或指示它沒有數據要傳輸。

C、握手包:指示傳輸是否成功。

(7)主機與設備端點之間的USB數據傳輸模型被稱作管道。管道有兩種類型:流和消息。消息數據具有USB定義的結構,而數據流沒有。

(8)事務調度表允許對某些流管道進行流量控制,在硬件級,通過使用NAK(否認)握手信號來調節數據傳輸率,以防止緩沖區上溢或下溢產生。

(9)USB設備最大的特點是即插即用。

(10)工作原理:USB設備插入USB端點時,主機都通過默認地址0與設備的端點0進行通信。在這個過程中,主機發出一系列試圖得到描述符的標準請求,通過這些請求,主機得到所有感興趣的設備信息,從而知道了設備的情況以及該如何與設備通信。隨后主機通過發出Set Address請求為設備設置一個唯一的地址。以后主機就通過為設備設置好的地址與設備通信,而不再使用默認地址0。

15、SPI接口

(1)SPI是一個同步協議接口,所有的傳輸都參照一個共同的時鐘,這個同步時鐘有主機產生,接收數據的外設使用時鐘來對串行比特流的接收進行同步化。

(2)在多個設備連接到主機的同一個SPI接口時,主機通過從設備的片選引腳來選擇。

(3)SPI主要使用4個信號:主機輸出/從機輸入(MOSI),主機輸入/從機輸出(MISO)、串行時鐘SCLK和外設片選CS。

(4)主機和外設都包含一個串行移位寄存器,主機通過向它的SPI串行寄存器寫入一個字節來發起一次數據傳輸。寄存器通過MOSI信號線將字節傳送給外設,外設也將自己移位寄存器中的內容通過MISO信號線返回給主機,這樣,兩個移位寄存器中的內容就被交換了。

(5)外設的寫操作和讀操作時同步完成的,因此SPI成為一個很有效的協議。

(6)如果只是進行寫操作,主機只需忽略收到的字節;反過來,如果主機要讀取外設的一個字節,就必須發送一個空字節來引發從機的傳輸。

16、IIC接口

(1)IIC總線是具備總線仲裁和高低速設備同步等功能的高性能多主機總線。

(2)IIC總線上需要兩條線:串行數據線SDA和串行時鐘線SCL。

(3)總線上的每個器件都有唯一的地址以供識別,而且各器件都可以作為一個發送器或者接收器(由器件的功能決定)。

(4)IIC總線有4種操作模式:主發送、主接收、從發送、從接收。

(5)IIC在傳送數據過程中共有3種類型信號:

A、開始信號:SCL為高電平時,SDA由高向低跳變。

B、結束信號:SCL為高電平時,SDA由低向高跳變。

C、應答信號:接收方在收到8位數據后,在第9個脈沖向發送方發出特點的低電平。

(6)主器件發送一個開始信號后,它還會立即送出一個從地址,來通知將與它進行數據通信的從器件。1個字節的地址包括7位地址信息和1位傳輸方向指示位,如果第7位為0,表示要進行一個寫操作,如果為1,表示要進行一個讀操作。

(7)SDA線上傳輸的每個字節長度都是8位,每次傳輸種字節的數量沒有限制的。在開始信號后面的第一個字節是地址域,之后每個傳輸字節后面都有一個應答位(ACK),傳輸中串行數據的MSB(字節高位)首先發送。

(8)如果數據接收方無法再接收更多的數據,它可以通過將SCL保持低電平來中斷傳輸,這樣可以迫使數據發送方等待,直到SCL被重新釋放。這樣可以達到高低速設備同步。

(9)IIC總線的工作過程:SDA和SCL都是雙向的??臻e的時候,SDA和SCL都是高電平,只有SDA變為低電平,接著SCL再變為低電平,IIC總線的數據傳輸才開始。SDA線上被傳輸的每一位在SCL的上升沿被采樣,該位必須一直保持有效到SCL再次變為低電平,然后SDA就在SCL再次變為高電平之前傳輸下一個位。最后,SCL變回高電平,接著SDA也變為高電平,表示數據傳輸結束。

17、以太網接口

(1)最常用的以太網協議是IEEE802.3標準。

(2)傳輸編碼(06和07年都有考題):曼徹斯特編碼和差分曼徹斯特編碼。

A、曼徹斯特編碼:每位中間有一個電平跳變,從高到底的跳變表示"0",從低到高的跳變表示為"1"。

B、差分曼徹斯特編碼:每位中間有一個電平跳變,利用每個碼元開始時有無跳變來表示"0"或"1",有跳變為"0",無跳變為"1"。(詳見《教程》200頁)。

(3)相比之下,曼徹斯特編碼編碼簡單,差分曼徹斯特編碼提供更好的噪聲抑制性能。

(4)以太網數據傳輸特點:

A、所有數據位的傳輸由低位開始,傳輸的位流時用曼徹斯特編碼。

B、以太網是基于沖突檢測的總線復用方法,由硬件自動執行。

C、傳輸的數據長度,目的地址DA+源地址SA+類型字段TYPE+數據段DATA+填充位PAD,最小為60B,最大為1514B。

D、通常以太網卡可以接收3種地址的數據:廣播地址、多播地址、自己的地址。

E、任何兩個網卡的物理地址都不一樣,是世界上唯一的,網卡地址由專門機構分配。

(5)嵌入式以太網接口有兩種實現方法:

A、嵌入式處理器+網卡芯片(例如:RTL8019AS、CS8900等)

B、帶有以太網接口的處理器。

(6)TCP/IP是一個分層協議,分為:物理層、數據鏈路層、網絡層、傳輸層和應用層。每層實現一個明確的功能,對應一個或幾個傳輸協議,每層相對于它的下層都作為一個獨立的數據包來實現。每層上的協議如下:

A、應用層:BSD套接字。

B、傳輸層:TCP、UDP。

C、網絡層:IP、ARP、ICMP、IGMP

D、數據鏈路層:IEEE802.3 Ethernet MAC

E、物理層:二進制比特流。

(7)ARP(地址解析協議)

A、網絡層用32位的地址來標識不同的主機(即IP地址),而鏈路層使用48位的物理地址(MAC)來標識不同的以太網或令牌網接口。

B、ARP功能:實現從IP地址到對應物理地址的轉換。

(8)ICMP(網絡控制報文協議)

A、IP層用它來與其他主機或路由器交換錯誤報文和其他重要控制信息。

B、ICMP報文是在IP數據包內被傳輸的。

C、網絡診斷工具ping和traceroute其實就是ICMP協議。

(9)IP(網際協議)

A、IP工作在網絡層,是TCP/IP協議族中最為核心的協議。

B、所有的TCP、UDP、ICMP及IGMP數據都以IP數據包格式傳輸。

C、TTL(生存時間字段):指定了IP數據包的生存時間(數據包可以經過的路由器數)。

D、IP提供不可靠、無連接的數據包傳送服務,高效、靈活。

a、不可靠:它不能保證數據包能成功到達目的地,任何要求的可靠性必須由上層來提供(如TCP)。如果發生某種錯誤,IP有一個簡單的錯誤處理算法--丟棄該數據包,然后發送ICMP消息報給信源端。

b、無連接:IP不維護任何關于后續數據包的狀態信息。每個數據包的處理都是相互獨立的。IP數據包可以不按順序接收,

(10)TCP(傳輸控制協議)

TCP協議是一個面向連接的可靠的傳輸層協議,它為兩臺主機提供高可靠性的端到端數據通信。

(11)UDP(用戶數據包協議)

UDP協議是一種無連接不可靠的傳輸層協議,它不保證數據包能到達目的地,可靠性有應用層來提供。UDP協議開銷少,和TCP相比更適合于應用在低端的嵌入式領域中。

(12)端口:TCP和UDP采用16位端口號來識別上層的用戶,即應用層協議,例如FTP服務的TCP端口號都是21,Telnet服務的TCP端口號都是23,TFTP服務的UDP端口號都是69。

18、CAN總線接口

(1)CAN(Control Area Network,控制器局域網)總線是一種多主方式的串行通信總線,是國際上應用最廣泛的現場總線之一,最初被用于汽車環境中的電子控制網絡。一個CAN總線構成的單一網絡中,理想情況下可以掛接任意多個節點,實際應用中節點數據受網絡硬件的電氣特性所限制。

(2)總線信號使用差分電壓傳送。兩條信號線被稱為CAN_H和CAN_L,靜態是均為2.5V左右,此時狀態表示邏輯1,也可以叫做"隱性"。用CAN_H比CAN_L高表示邏輯0,稱為"顯性",此時,通常電壓值為CAN_H=3.5V和CAN_L=1.5V。

(3)當"顯性"和"隱性"位同時發送的時候,最后總線數值將為"顯性"這種特性為CAN總線的仲裁奠定了基礎。

(4)CAN總線的一個位時間可以分成4個部分:同步段、傳播時間段、相位緩沖段1和相位緩沖段2。(詳見《教程》205頁)

(5)CAN總線的數據幀有兩種格式:標準格式和擴展格式。包括:幀起始、仲裁場、控制場、數據場、CRC場、ACK場和幀結束。

(6)CAN總線硬件接口包括:CAN總線控制器和CAN收發器。CAN控制器主要完成時序邏輯轉換等工作,例如菲利普的SJA1000。CAN收發器是CAN總線的物理層芯片,實現TTL電平到CAN總線電平特性的轉換,例如TJA1050。

19、xDSL接口

(1)xDSL(數字用戶線路)技術是,在現有用戶電話線兩側同時接入專用的DSL調制解調設備,在用戶線上利用數字數字信號高頻帶寬較寬的特性直接采用數字信號傳輸,省去中間的A/D轉換,突破了模擬信號傳輸極限速率為56KB/s的閑置。

(2)DSL技術主要分為對稱和非對稱兩大類。

(3)對成xDSL更適合于企業點對點連接應用,例如文件傳輸、視頻會議等收發數據量大致相同的工作。

(4)ASDL是近年發展的另一種寬帶接入技術,是利用雙絞銅線向用戶提供兩個方向上速率不對稱的寬帶信息業務。

(5)ADSL在一對電話線上同時傳送一路高速下行數據、一路較低速率上行數據、一路模擬電話。各信號之間采用頻分復用方式占用不同頻帶,低頻段傳送話音;中間窄頻帶傳送上行信道數據及控制信息;其余高頻段傳送下行信道數據、圖像或高速數據。

20、WLAN接口

(1)WLAN(Wireless Local Area Network)是利用無線通信技術在一定的局部范圍內建立的,是計算機網絡與無線通信技術相結合的產物,它以無線多址通道作為傳輸媒介,提供有線局域網的功能。

(2)WLAN的標準:主要是針對物理層和媒質訪問控制層(MAC層),涉及到所有使用的無線頻率范圍、控制接口通信協議等技術規范與技術標準。

A、IEEE 802.11:定義了物理層和MAC層規范,工作在2.4~2.4835GHz頻段,最高速率為2Mb/s,是IEEE最初制定的一個無線局域網標準。

B、IEEE 802.11b:工作在2.4~2.4835GHz頻段,最高速率為11Mb/s,傳輸距離50~150inch。采用點對點模式和基本模式兩種運行模式。在數據傳輸速率方面可以根據實際情況在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:混合標準,擁有EEE 802.11a的傳輸速率,安全性較EEE 802.11b好,采用兩種調制方式,做到與EEE 802.11a和EEE 802.11b兼容。

(3)WLAN有兩種網絡類型:對等網絡和基礎機構網絡。

21、藍牙接口

(1)藍牙技術的目的:使特定的移動電話、便鞋式電腦以及各種便攜通信設備的主機之間近距離內實現無縫的資源共享。

(2)藍牙技術的實質內容是要建立通用的無線空中接口及其控制軟件的公開標準。其工作頻段為全球通用的2.4GHz ISM(即工業、科學、醫學)頻段,其數據傳輸速率為1Mb/s,采用時分雙工方案來實現全雙工傳輸,其理想的連接范圍為10cm~10m。

(3)藍牙基帶協議是電路交換和分組交換的結合。

(4)藍牙技術特點:

A、傳輸距離短,工作距離在10m以內。

B、采用跳頻擴頻技術。

C、采用時分復用多路訪問技術,有效地避免了"碰撞"和"隱藏終端"等問題。

D、網絡技術。

E、語言支持。

F、糾錯技術,其采用的是FEC(前向糾錯)方案。

(5)藍牙接口由3大單元組成:無線單元、基帶單元、鏈路管理與控制單元。

22、1394接口

(1)1394作為一種標準總線,可以在不同的工業設備之間架起一座溝通的橋梁,在一條總線上可以接入63個設備。

(2)IEEE 1394的特點:

A、支持多種總線速度,適應不同應用要求。

B、即插即用,支持熱插拔。

C、支持同步和異步兩種傳輸方式。

D、支持點到點通信模式,IEEE 1394是多主總線。

E、遵循ANSI IEEE 1212控制及狀態寄存器(CSR)標準,定義了64位的地址空間,可尋址1024條總線的63個節點,每個節點可包含256TB的內存空間。

F、支持較遠距離的傳輸。

G、支持公平仲裁原則,為每一種傳輸方式保證足夠的傳輸帶寬。

H、六線電纜具有電源線,可傳輸8~40V的直流電壓。

(3)IEEE 1394的協議棧由3層組成:物理層、鏈路層和事務層,例外還有一個管理層。物理層和鏈路層由硬件構成,而事務層主要由軟件實現。

A、物理層提供IEEE 1394的電氣和機械接口,功能是重組字節流并將它們發送到目的節點上去。

B、鏈路層提供了給事務層確認的數據服務,包括:尋址、數據組幀和數據校驗。

C、事務層為應用提供服務。

D、管理層定義了一個管理節點所使用的所有協議、服務以及進程。

23、電源接口

(1)DC-DC轉換器有三種類型:

A、線性穩壓器:產生較輸入電壓低的電壓。

B、開關穩壓器:能升高電壓、降低電壓或翻轉輸入電壓。

C、充電泵:可以升高、降低或翻轉輸入電壓,但電流驅動能力有限。

(2)任何變壓器的轉換過程都不具有100%的效率,穩壓器本省也使用電流(靜態電流),這個電流來自輸入電流。靜態電流越大,穩壓器功耗越大。

(3)線性穩壓器輸入輸出使用退耦電容來過濾,電容除了有助于平穩電壓以外,還有利于去除電源中的瞬間短時脈沖波形干擾。

(4)電壓與功耗之間的平方關系意味著理想高效的方法是在要求較低電壓的較低時鐘速率上執行代碼,而不是先以最高的時鐘速率執行代碼然后再轉為空閑休眠。

(5)電源通常被認為是整個系統的"心臟",絕大多數電子設備50%~80%的節能潛力在于電源系統,研制開發新型開關電源是節能的主要舉措之一。

(6)降低功耗的設計技術:

A、采用低功耗器件,例如選用CMOS電路芯片。

B、采用高集成度專用器件,外部設備的選擇也要盡量支持低功耗設計。

C、動態調整處理器的時鐘頻率和電壓,在允許的情況下盡量使用低頻率器件。

D、利用"節電"工作方式。

E、合理處理器件空余引腳:

a、大多數數字電路的輸出端在輸出低電平時,其功耗遠遠大于輸出高電平時的功耗,設計時應該注意控制低電平的輸出時間,閑置時使其處于高電平輸出狀態。

b、多余的非門、與非門的輸入端應接低電平,多余的與門、或門的輸入端應接高電平。

c、ROM或RAM及其他有片選信號的器件,不要將"片選"引腳直接接地,避免器件長期被接通,而應該與"讀/寫"信號結合,只對其進行讀寫操作時才選通。

F、實現電源管理,設計外部器件電源控制電路,控制"耗電大戶"的供電情況。

三、真題解析

1、2007年25題

下圖為01001110的各種編碼方式,不歸零電平(NRZ-L)采用0表示高電平,1表示低電平。若按照從上到下的順序,所采用的編碼方式分別為(25)。

25)A.不歸零電平,曼徹斯特編碼,差分曼徹斯特編碼,不歸零1制

B.不歸零電平,不歸零1制,曼徹斯特編碼,差分曼徹斯特編碼

C.曼徹斯特編碼,不歸零電平,不歸零1制,差分曼徹斯特編碼

D.不歸零1制,不歸零電平,差分曼徹斯特編碼,曼徹斯特編碼

<答案>:B

考查計算機系統硬件編碼方面的基礎知識。

不歸零電平:0=高電平;1=低電平。

不歸零1制:0=在間隔的其實位置沒有跳變;1=在間隔的其實位置有跳變。

曼徹斯特編碼:

0=在間隔的中間位置從高向低跳變。

1=在間隔的中間位置從低向高跳變。

差分曼徹斯特編碼:在間隔的中間位置總有一個跳變。

0=在間隔的起始位置有跳變。

1=在間隔的起始位置沒有跳變。

2、2007年28題

下面關于DMA方式的描述,不正確的是(28)。

(28)A. DMA方式使外設接口可直接與內存進行高速的數據傳輸

B. DMA方式在外設與內存進行數據傳輸時不需要CPU干預

C.采用DMA方式進行數據傳輸時,首先需要進行現場保護

D. DMA方式執行I/O交換要有專門的硬件電路

<答案>:C

考查計算機系統硬件方面關于DMA方式的基礎知識。盡管《教程》中沒有詳細的提及,但是作為嵌入式最基本的知識點,是應該掌握的。

DMA是"直接存儲器訪問",以這種方式傳送數據時,是通過專門的硬件電路-DMA控制器直接訪問存儲器來完成,不需要CPU的干預,省去了保護和恢復現場的問題。

3、2007年32題

下列關于D/A變換器接口的描述,不正確的是(32)。

(32)A.它是嵌入式微機系統與外部模擬控制對象的重要控制接口

B.它通常由模擬開關、權電阻電路、緩沖電路組成

C.它也可以把外界的模擬量變換成數字量

D.它輸出的模擬量可以是電流,也可以是電壓

<答案>:C

考查嵌入式系統中D/A接口的基礎知識。

D/A轉換器是將數據信號轉化為模擬信號的接口,是嵌入式系統與外部模擬控制對象的重要控制接口,其通常由模擬開關、權電阻電路和緩沖電路組成,根據不同的情況,輸出的模擬量可以是電流,也可以是電壓。

4、2007年33題

RS-232C串行通信總線的電氣特性要求總線信號采用(33)。

(33)A.正邏輯 B.負邏輯 C.高電平 D.低電平

<答案>:B

考查嵌入式系統中串行接口的基本知識。我覺得這是常識性的問題。

5、2006年33、34題

RS-232標準在初期可以滿足人們的要求,但當人們要求以更高的速率傳送到更遠的距離時,需要有新的標準。RS-449就是為此目的而設計的,它的標準規格中,RS-422標準是平衡式的,傳輸一個信號用兩根線,邏輯信號用(33)表示,雙線傳輸的主要優點是(34)

(33) A.正負5V以上電平 B.正負3V以上電平

C.兩線的電平差 D.兩線的電平

(34) A.冗余可靠 B.抗干擾能力強

C.傳輸線少 D.可并行傳輸信號

<答案>:C、B

考查RS-422串行通信接口的基本知識。

RS-422標準的數據信號采用差分傳輸方式(即邏輯信號用兩條線的電平差表示),使用一對雙絞線進行信號傳輸。其主要優點是增強了信號的抗干擾能力。

6、2006年35題

若曼徹斯特編碼和差分曼徹斯特編碼的波形如圖所示,則實際傳送的比特串為(35)

(35) A. 011010110 B. 100101100

C. 100100100 D. 011010011

<答案>:D

考查計算機系統硬件編碼方面的基礎知識。

詳解見(1)2007年25題。

7、2006年36題

下面關于PCI總線的敘述,其中(36)是錯誤的。

(36) A. PCI總線支持64位總線。

B. PCI總線的地址總線與數據總線是分時復用的。

C. PCI總線是一種獨立設計的總線,它的性能不受CPU類型的影響。

D. PC機中不能同時使用PCI總線和ISA總線。

<答案>:D

考查嵌入式系統中PCI接口的基本知識。

詳見見復習筆記13。在普通PC中允許同時使用PCI總線和ISA總線,這也是常識。

8、2006年37題

IEEE802.11b標準定義了使用跳頻、擴頻技術的無線局域網標準,傳輸速率為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中常用標準的基本知識。

嵌入式系統設計師考試復習筆記之存儲管理篇

1、存儲器系統的層次架構
計算機系統的存儲器被組織城一個金字塔的層次結構。
自上而下為:CPU內部寄存器、芯片內部高速緩存(cache)、芯片外部高速緩存(SRAM、SDRAM、DRAM)、主存儲器(FLASH、EEPROM)、外部存儲器(磁盤、光盤、CF卡、SD卡)和遠程二級存儲器(分布式文件系統、WEB服務器),6個層次的結構。
上述設備從上而下,依次速度更慢、容量更大、訪問頻率更小,造價更便宜。

2、高速緩存(cache)
工作原理(參照教程126頁,博客畫不了圖):主要利用了程序的局部性特點。
地址映象是指把主存地址空間映象到cache的地址空間。
地址變換是指當程序或數據已經裝入到cache后,在實際運行過程中,把主存地址如何編程cache空間的地址。
常用的地址映象和地址變換的方式有:(教程127頁)
直接映象和變換:速度快,造價低,但有局限性,不能充分利用cache的好處。
組相聯地址映象和變換:速度稍慢但是命中率高。
全相聯地址映象和變換:可以任意映射。
常用的cache替換算法:輪轉法和隨機替換算法。
高速緩存的分類:
統一cache和獨立的數據/指令cache
寫通cache和寫回cache
讀操作分配cache和寫操作分配cache
3、存儲管理單元(MMU)
MMU在CPU和物理內存之間進行地址轉換,將地址從邏輯空間映射到物理空間,這個過程稱為內存映射。
MMU主要完成下面的工作:
A.虛擬存儲空間到物理空間的映射。
B.存儲器訪問權限的控制。
C.設置虛擬存儲空間的緩沖特性。
嵌入式系統中常常采用頁式存儲管理。為了管理這些頁引入了頁表的概念。
頁表是位于內存中的表,它的每一行對應虛擬存儲空間的一個頁,該行包含了該虛擬內存頁對應的物理內存頁的地址、該頁的訪問權限和該頁的緩沖特性等。
從虛擬地址到物理地址的變換過程就是查詢頁表的過程。
由于頁表存儲在內存中的,整個查詢過程需要付出很大的代價。根據程序局部性的特點,增加了一個小容量、高速度的存儲部件來存放當前訪問需要的地址變換條目,這個存儲部件稱為:地址轉換后備緩沖器(TLB)。
當CPU訪問內存時,首先在TLB中查找需要的地址變換條目,如果該條目不存在,CPU再從內存中的頁表中查詢,并把相應的結果添加到TLB中,更新它的內容。
嵌入式系統中虛擬存儲空間到物理空間的映射以內存塊為單位進行。即虛擬存儲空間中一塊連續的存儲空間被映射到物理存儲空間中同樣大小的一塊連續存儲空間。
在頁表和TLB中,每一個地址變換條目實際上記錄了一個虛擬存儲空間的內存塊的基地址與物理存儲空間相對應的一個內存塊的基地址之間的對應關系。
在MMU中實現虛擬地址到物理地址的映射是通過兩級頁表來實現的。
禁止MMU時,所有物理地址和虛擬地址相等,即使用平板存儲模式。
4、內存保護
操作系統通常利用MMU來實現操作系統內核與應用程序之間的隔離,以及應用程序與應用程序之間的隔離。
內存保護包含兩個方面的內容:
A.防止地址越界,每個應用程序都有自己獨立的地址空間。
B.防止越權操作,每個應用程序都有自己的訪問權限。
5、實模式與保護模式
在嵌入式系統中,常見的存儲管理方案可以分為兩大類:實模式和保護模式。
實模式:內存的平面使用模式。特點有:
A.不劃分"系統空間"與"用戶空間",無須進行地址映射。
B.操作系統與應用程序之間不再有物理的邊界。
C.系統中的"任務"或"進程",實際上全是內核線程。
在實模式下,內存布局可以分為5個段:
A.代碼段:包含操作系統和應用程序的所有代碼。
B.數據段:所有帶有初始值的全局變量。
C.BSS段:所有未帶初始值的全局變量。
D.堆空間:動態分配的內存空間。
E.??臻g:保存上下文以及函數調用時的局部變量和形參。
在實模式存儲管理方案下,主要的工作在于堆空間的管理,即如何來管理空閑的堆空間、如何來分配內存、如何來回收內存等等。
保護模式:處理器中必須有MMU硬件并啟用。特點有:
A.系統內核和用戶程序都有各自獨立的地址空間。
B.每個應用程序只能訪問自己的地址空間,不能去破壞操作系統和其他應用程序的代碼和數據。
6、分區存儲管理
為了實現多道程序系統而采用的內存管理。
基本思路:把整個內存劃分為兩大區域,即系統區和用戶區,然后再把用戶區劃分為若干個分區,每個任務占有其中的一個分區。這樣,在內存當中就同時保留多個任務,讓他們共享整個用戶區,從而實現多個任務的并發運行。
分區存儲管理又可以分為兩類:固定分區和可變分區。
固定分區:各個用戶分區的個數、位置和大小一旦確定后,就固定不變,不能再修改。
優點:易于實現,系統開銷較小。
缺點:內存利用率不高,分區總數固定。
可變分區:動態創建,在裝入一個程序時,系統將根據它的需求和內存空間的使用情況來決定是否分配。
優點:動態變化,非常靈活。
缺點:可能存在外碎片。
在實現可變存儲管理技術的時候,需要考慮三個方面的問題:
A.內存管理的數據結構
B.內存的分配算法
C.內存的回收算法
7、地址映射
地址映射也叫地址重定位。
邏輯地址和物理地址是完全不同的,不能用邏輯地址來直接訪問內存單元。
為了保證CPU在執行指令的時候,可以正確地訪問內存單元,需要將用戶程序中的邏輯地址轉換為運行時由機器直接尋址的物理地址。這個過程稱為:地址映射。
地址映射由存儲管理單元MMU來完成。
地址映射主要有兩種方式:靜態地址映射和動態地址映射。
靜態地址映射:當用戶程序被裝入內存時,直接對指令代碼進行修改,一次性地實現邏輯地址到物理地址的轉換。
動態地址映射:當用戶程序被裝入內存時,不對指令代碼做任何修改,而是在程序的運行過程中,當它需要訪問內存單元的時候,再來進行地址轉換。

在具體實現時,這項轉換工作一般是由硬件的地址映射機制來完成的。通常設置一個基地址寄存器,或者叫重定位寄存器。當一個任務被調度運行時,就把它所在分區的起始地址裝入到整個寄存器中。然后,在程序運行的過程中,當需要訪問某個內存單元時,硬件就會自動地將其中的邏輯地址加上基地址寄存器中的內容,從而得到實際的物理地址,并且按照這個物理地址區執行。
這個基地址寄存器位于MMU的內部,整個地址映射過程是自動運行的。從理論上說,每訪問一次內存都要進行一次地址映射。
8、頁式存儲管理(重點)
基本思路:把物理內存劃分為許多固定大小的內存塊,稱為物理頁面;把邏輯地址空間也劃分為大小相同的塊,稱為邏輯頁面。當一個用戶程序被裝入內存時,不是以整個程序為單位,把它存放在一整塊連續的區域,而是以頁面為單位來進行分配的。對于一個大小為N的頁面程序,需要有N個空閑的物理頁面來把它裝載。這些物理頁面不一定是要連續的。
在頁式存儲管理中需要解決三個問題:數據結構、內存分配與回收、地址映射。
數據結構有兩個:頁表和物理頁面表。
A.頁表:給出了任務邏輯頁面號和內存中物理頁面號之間的對應關系。
B.物理頁面表:描述內存空間中,各個物理頁面的使用情況。
具體的例子請參考《教程》317頁(博客中畫不了圖,有興趣自己看)。
內存的分配過程:
A.對于一個新來的任務,計算它所需要的頁面數N,然后查看位示圖,看是否還有N個空閑的物理頁面。
B.如果有足夠的空閑物理頁面,就去申請一個頁表,其長度為N,并把頁表的起始地址填入到該任務的控制塊中。
C.分配N個空閑的物理頁面,把他們的變換填到頁表中,建立邏輯頁面與物理頁面直接的對應關系。
D.修改位示圖,對剛剛被占用的那些物理頁面進行標記。
地址映射的基本思路:
A.邏輯地址分析:對邏輯地址,找到它所在的邏輯頁面,以及它在頁面內的偏移地址。
B.頁表查找:根據邏輯頁面號,從頁表中找出它對應的物理頁面號。
C.物理地址合成:根據物理頁面號和頁內偏移地址,最終確定物理地址。
邏輯地址分析:
頁面的大小都是2的整數次冪。對于給定的一個邏輯地址,可以直接把它的高位部分作為邏輯頁面號,把它的低位部分作為頁內偏移地址。例如,假設頁面的大小是4KB,即2的12次冪,邏輯地址為32為,那么在一個邏輯地址當中,最低12位為頁內偏移地址,而剩下的20位就是邏輯頁面號。
計算方法:
邏輯頁面號=邏輯地址/頁面大小
頁內偏移量=邏輯地址%頁面大小
頁表查找:
頁表作為操作系統的一個數據結構,通常保存在內核的地址空間中。
頁表基地址寄存器用來指向頁表的起始地址;頁表長度寄存器用來指示頁表的大小,即對于當前任務,它總共包含有多少個頁面。
物理地址合成:
假設物理頁面號為f,頁內偏移地址為offset,每個頁面大小為2n,那么相應的物理地址為:f×2n+offset。
9、虛擬存儲管理
程序局部性原理:時間局限性和空間局限性。
虛擬頁式存儲管理:在頁式管理的基礎上,增加了請求調頁和頁面置換的功能。
基本思路:當一個用戶程序需要調入內存去運行時,不是將這個程序的所有頁面都裝入內存,而是只裝載部分的頁面,就可以啟動這個程序運行。在運行過程中,如果發現要執行的指令或者訪問的數據不在內存當中,就向系統發出缺頁中斷請求,然后系統在處理這個中斷請求時,就會將保存在外存中的相應頁面調入內存,從而使該程序能繼續運行。
在虛擬頁式存儲管理中,頁表包含:邏輯頁面號、物理頁面號、駐留位、保護位、修改位和訪問位。
常用的頁面置換算法:
A.最優頁面置換算法:理想化算法。
B.最近最久未使用算法:鏈表法和棧方法。尋找長時間沒有被訪問的頁面。
C.最不常用算法:每個頁面設置一個訪問計數器。
D.先進先出算法:性能比較差。
E.時鐘頁面置換算法:把頁面組成環形鏈表,類似時鐘面。
一般來說,當一個任務剛剛啟動的時候,它會不斷去訪問一些新的頁面,然后逐步建立一個比較穩定的工作集。工作集是指當前任務正在使用的邏輯頁面的集合。如果分配給一個任務的物理頁面數太少,不能包含整個的工作集,任務將會造成很多缺頁中斷,需要頻繁地進行頁面置換,這種現象稱為"抖動"。
10、相關的考試真題
(1)2007年6題:
若內存地址區間為4000H~43FFH,每個存貯單元可存儲16位二進制數,該內存區域用4片存儲器芯片構成,則構成該內存所用的存儲器芯片的容量是(6)。
(6)A.512×16bitB.256×8bitC.256×16bitD.1024×8bit
<答案>:C
首先計算內容空間的大?。?3FFH-4000H=3FFH,其大小為1024×16bit
接著計算存儲芯片的容量:(1024×16bit)/4=256×16bit=512×8bit
根據選項提供的內容,只有256×16bit符合提綱的要求。
(2)2007年23題:
頁式存儲系統的邏輯地址是由頁號和頁內地址兩部分組成,地址變換過程如下圖所示。假定頁面的大小為8K,圖中所示的十進制邏輯地址9612經過地址變換后,形成的物理地址a應為十進制(23)。
(23)A.42380B.25996C.9612D.8192
<答案>:B
8K=1024×8=8192
邏輯頁面號=9612/8192=1(1號頁號對應的物理地址塊號為3)
頁內偏移量=9612%8192=1420
物理地址=3×8192+1420=25996
(3)2007年24題
某總線有104根信號線,其中數據總線(DB)32根,若總線工作頻率為33MHz,則其理論最大傳輸率為(24)。(注:本題答案中的B表示Byte)
(24)A.33MB/sB.64MB/sC.132MB/sD.164MB/s
<答案>:C
每個字節8位,需要8根數據線。
數據總線有32跟,每次可以并行傳輸32/8=4個字節。
總線工作頻率為33MHz,那么理論最大傳輸率為33×4=132MHz。
(4)2007年26題
某存儲器數據總線寬度為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)實現;某32位計算機的CACHE容量為16KB(B:字節),CACHE塊的大小為16B(B:字節),若主存與CACHE地址映像采用直接映像方式,則主存地址為0x1234E8F8的單元裝入CACHE的地址(30);在下列CACHE替換算法中平均命中率最高的是(31)。
(29)A.硬件B.軟件
C.操作系統D.應用程序
(30)A.00010001001101B.01000100011010
C.10100011111000D.11010011101000
(31)A.先入后出算法(FILO)B.隨機替換算法(RAND)
C.先入先出算法(FIFO)D.近期最少使用算法(LRU)
<答案>:A、C、D
29:Cache的主要功能由硬件實現,這個《教程》有介紹。
30:cache容量為16KB即邏輯地址的低14位
由于采用的是直接映象所以cache的地址為:主存地址的低14位。
31:相比較說,D的命中率最低。
(6)2007年34題
在嵌入式系統的存儲結構中,存取速度最快的是(34)。
(34)A.內存B.寄存器組C.FlashD.Cache
<答案>:B
寄存器組>cache>內存>flash
(7)2007年41題
操作系統中的"抖動"是指(41)的現象。
(41)A.根據一定的頁面置換算法,將頁面調出
B.由于選擇了長期未被訪問的頁進行置換,導致系統更換頁面
C.頁面調入不久就被導出,導出不久又被調入,導致系統頻繁更換頁面
D.根據系統運行情況決定將哪個頁面調出,而不是由頁面置換算法決定更換哪個頁面
<答案>:C
《教程》中328頁有對"抖動"的介紹。
(8)2006年1題
若內存按字節編址,用存儲容量為32K×8比特的存儲器芯片構成地址編號A0000H到DFFFFH的內存空間,則至少需要(1)片。
(1)A.4B.6C.8D.10
<答案>:C
DFFFF=-A0000H=256KB。
256/32=8片
(9)2006年22題
從下表關于操作系統存儲管理方案1、方案2和方案3的相關描述可以看出,他們分別對應(22)存儲管理方案。
方案1:在系統進行初始化的時候就已經將主存儲空間劃分成大小相等或不等的塊,并且這些塊的大小在此后是不可以改變的。系統將程序分配在聯系的區域中。

方案2:主儲存空間和程序按固定大小大單位進行分割,程序可以分配在不連續的區域中。該方案當一個作業的程序地址空間大于主存可以使用的空間時也可以執行。
方案3:編程時必須劃分程序模塊和確定程序模塊之間的調用關系,不存在調用關系的模塊可以占用相同的主存區。
(22)A.固定分區、請求分頁和覆蓋
B.覆蓋、請求分頁和固定分區
C.固定分區、覆蓋和請求分頁
D.請求分頁、覆蓋和固定分區
<答案>:A
《教程》中有相關概念的介紹。
(10)2006年28題
在32位總線系統中,若時鐘頻率為500MHz,傳送一個32位字需要5個時鐘周期,則該總線系統的數據傳輸速率為(28)MB/s。
(28)A.200B.400C.600D.800
<答案>:B
與2007年的24和26題考查的是相同的內容。
在32位總線系統中,每次可以傳送32位字,即4個BYTE。
時鐘頻率為500MHz,則傳輸32位的速率為100MHz。
也就是總線的數據傳輸速率為:4×100=400MB/s。
在嵌入式系統的存儲結構中,存取速度最快的是(34)。
(11)2006年29題
在CPU和物理內存之間進行地址轉換時,(29)將地址從虛擬(邏輯)地址空間映射到物理地址空間。
(29)A.TCBB.MMUC.CACHED.DMA
<答案>:B
TCB:任務控制塊
MMU:存儲管理單元
CACHE:高速緩存
DMA:直接存儲
(12)2006年31題
下列存取速度最快的是(31)。
(31)A.flash存儲器B.DRAM存儲器C.高速緩存(CACHE)D.磁盤
<答案>:C
高速緩存(CACHE)>DRAM存儲器>flash存儲器、磁盤
(13)2006年51題
頁式存儲器當中的頁面是由(51)所感知的。
(51)A.用戶B.操作系統C.編譯系統D.連接程序
<答案>:B
概念理解,看過就應該會做,不看過也能推理出來。
總的來看,07年考查內存管理方面的內容比06年多,深度也相應的增加了。

嵌入式系統設計師考試筆記之電子電路設計基礎

一、引言

在嵌入式系統的硬件設計中,嵌入式微處理器和外圍設備接口技術是兩個最為核心的部分,然而支撐這個兩個部分的基礎確實電子電路的基本技術。任何一個嵌入式系統的設計都離不開電子電路的設計。作為嵌入式系統設計師的考試,對這方面的考查或多或少有幾題,但在整個考試題目中所占的比例不多。過去的兩分考題中,06年考了4題,07年沒有考查相關題目。這不能說明以后的考試就不會考查這方面的知識,畢竟這個部分是一個不可缺少的基礎。同時,在嵌入式的一些基礎知識題目的解題中,也需要一定電子電路設計的基礎知識。電子電路設計的基礎知識可以寫成幾本書,但是不要害怕。正是如此,考試考查的只可能是重要概念、基礎知識和基本技能。過去的真題也驗證了這一點,考查的都是電子電路設計的基本步驟,一些基本概念、布線布局的基本原則以及抗干擾的一些基本措施。想當年,我也是這樣賭一把,把教程上的基本東西梳理清楚,感覺可以應用考試的題目。當然這是一種偷懶的做法,如果您有時間和精力,完全把握這方面的內容是件好事情。

二、復習筆記

1、電路設計原理

(1)電路板設計主要分為3個步驟:設計電路原理圖、生成網絡表、設計印制電路版。

(2)網絡表是電路原理設計和印制電路板設計中的一個橋梁,它是設計工具軟件自動布線的靈魂。

(3)網絡表的格式包括2部分:元器件聲明和網絡定義。(缺少任一部分都有可能在布線的時候出錯)

(4)電路原理圖設計不僅是整個電路設計的第一步,也是電路設計的基礎。包括以下的一些具體步驟:

A、建立元器件庫中沒有的庫元件。

B、設置圖紙屬性。

C、放置元件。

D、原理圖布線。

E、檢查與校對。

F、電路分析與仿真。

G、生成網絡表。

H、保存與輸出。

2、PCB電路設計

(1)PCB設計電子產品物理結構設計的一部分,它的主要任務是根據電路的原理和所需元件的封裝形式進行物理結構的布局和布線。

(2)PCB設計包括下面一些具體步驟:

A、建立封裝庫中沒有的封裝。

B、規劃電路板。

C、載入網絡表和元件封裝。

D、布置元件封裝。

E、布線。

F、設計規則檢查。

G、PCB仿真分析。

H、存檔輸出。

3、多層PCB設計的注意事項

(1)高頻信號線一定要短,不可以有尖角(90度直角),兩根線之間的距離不宜平行、過近,否則可能會產生寄生電容。

(2)如果是兩面板,一面的線布成橫線,一面的線布成豎線,盡量不要布成斜線。

(3)一般來說,線寬一般為0.3mm,間隔也為0.3mm,這個長度約為8~10mil。但是對于電源線或者大電流線應該有足夠寬度,一般需要60~80mil。焊盤一般為64mil。

(4)單面板的生產工藝都很差,因此,單面板的焊盤盡量做得大一些,線要盡量粗一些。

(5)銅膜線的地線應該在電路板的周邊,同時將電路上可以利用的空間全部使用銅箔做地線,增強屏蔽能力,并且防止寄生電容。

(6)電路圖上的地線表示電路中的零電位,并用作電路中其他各點的公共參考點,在實際電路中由于地線阻抗的存在,必然會帶來共阻干擾,因此,在布線是,不能將具有地線符號的點隨便連接在一起,這可能引起有害的耦合而影響電路的正常工作。

4、PCB設計中的可靠性知識

(1)地線設計:在電子設備中,接地是控制干擾的重要方法。

A、正確選擇單點接地與多點接地。

a、在低頻電路中(工作頻率小于1MHz),采用一點接地。

b、在高頻電路中(工作頻率大于10MHz),采用就近多點接地。

B、將數字電路與模擬電路分開,兩者地線不要相混。分別與電源端地線相連。

C、盡量加粗地線。若地線很細,接地電位則隨電流的變化而變化,如有可能,接地線的寬度應大于3mm。

D、將接地線構成環路,可以明顯提高抗噪聲能力。

(2)電磁兼容性設計

A、選擇合理的導線寬度。

a、瞬變電流在印制線條上所產生的沖擊干擾主要是由印制導線的電感成分造成的。

b、時鐘引線、行驅動器和總線驅動器的信號線常常載有大的瞬變電流,導線要盡可能短。

c、對于分立元件,導線寬度載1.5mm左右可滿足要求。

d、對于集成電路,導線寬度可在0.2mm~1mm之間選擇。

B、采用正確的布線策略:最好采用井字形網狀布線結構。

a、PCB的一面橫向布線,另一面縱向布線,然后在交叉孔處用金屬化孔相連。

b、盡量減少導線的不連續性,例如導線不要突變,拐角應大于90度。

c、盡量避免長距離的平行走線,盡可能拉開線與線之間的距離。

d、信號線與地線及電源線盡可能不交叉。

e、在一些對干擾十分敏感的信號線之間設置一根地線,可以有效抑制串擾。

C、抑制反射干擾。

(3)去耦電容配置。

配置去耦電容可以抑制因負載變化而產生的噪聲,是印制電路板的可靠性設計的一種常規做法。配置原則如下:

A、 電源輸入端跨接一個10~100uF的電解電容。

B、 為每個集成電路芯片配置一個0.01uF的陶瓷電容。

C、 對于噪聲能力弱、關斷時電流變化大的器件和ROM、RAM等存儲型器件,應在芯片的電源線和地線之間直接接入去耦電容。

D、去耦電容的引線不能過長,特別是高頻旁路電容不能帶引線。

(4)PCB的尺寸與器件的布置。

A、相互有關的元件盡量放得靠近一些。

B、時鐘發生器、晶振和CPU的時鐘輸入端易產生干擾,要相互靠近一些。

C、易產生噪聲的元件、小電流電路、大電流電路等應盡量原理邏輯電路。

(5)散熱設計。

5、電子設計原理

(1)EDA是指以計算機為工作平臺,融合了應用電子技術、計算機技術、智能化技術最新成果而研制成的電子CAD通用軟件包。利用EDA工具,電子工程師可以將電子產品的由電路設計、性能分析到IC設計圖或PCB設計圖整個過程在計算機上自動處理完成。

(2)"自頂向下"的設計方法。

先從系統設計入手,在頂層進行功能框圖的劃分和結構設計。在框圖一級進行仿真和糾錯,并用硬件描述語言對高層次的系統行為進行描述,在系統一級進行驗證,然后用綜合優化工具生成具體的門電路網表,其對應的物理實現級可以是PCB或專用集成電路。

(3)VHDL是一種全方位的硬件描述語言,包括系統行為級、寄存器傳輸級和邏輯門級多個設計層次,支持結構、數據流、行為3種描述形式的混合描述。

6、電子電路測試原理與方法

(1)故障檢測:判斷故障是否存在,即只判斷有無故障。

(2)故障診斷(故障定位):不僅判斷故障是否存在,而且指出故障位置。

(3)仿真:對設計過程中得到的電路參數驗證其正確性。

(4)測試:判斷產品是否合格。

(5)可測試設計的3個方面是:測試生成、測試驗證、測試設計。

(6)JTAG測試接口是IC芯片測試方法的標準。

7、硬件抗干擾測試

(1)形成干擾的3個基本要素:干擾源、傳播路徑和敏感器件。

(2)干擾的耦合方式:干擾源產生的干擾信號要通過一定的耦合通道才對系統產生作用。

A、直接耦合:最有效的方式是加入去耦電容。

B、公共阻抗耦合。

C、電容耦合。

D、電磁感應耦合(磁場耦合)。

E、漏電耦合。

(3)抑制干擾源的技術

盡可能減小干擾源的du/dt和di/dt,這是抗干擾設計中最優先考慮和最重要的原則。

A、 主要通過在干擾源兩端并聯電容來實現減小干擾源的du/dt。

B、 主要通過在干擾源回路串聯電感或電阻及增加續流二極管來實現di/dt。

(4)切斷干擾傳播路徑的技術

A、充分考慮電源對嵌入式系統的影響。例如給電源加濾波電路或穩壓器。

B、若微處理器的I/O口接控制電機等噪聲器件,應在I/O和噪聲源之間加隔離。

C、晶振與微處理器的引腳盡量靠近,用地線把時鐘區隔離起來,晶振外殼接地并固定。

D、電路板合理分區,如強、弱信號,數字、模擬信號。

E、盡可能將干擾源與敏感元件遠離。

F、用地線把數字區與模擬區隔離。

G、數字地與模擬地要分離,最后再一點接于電源地。

H、微處理器和大功率器件的地線要單獨接地,以減小互相干擾。

I、大功率器件盡可能放在電路板邊緣。

(5)提高敏感元件的抗干擾性能

A、布線時盡量減少回路環的面積,以降低感應噪聲。

B、電源線和地線要盡量粗,除減小壓降外,更重要的是降低耦合噪聲。

C、微處理器閑置的I/O口不要懸空,要接地或接電源。

D、其他IC的閑置端在不改變系統邏輯的情況下接地或電源。

E、使用電源監控看門狗電路,可大幅度提高整個電路的抗干擾性能。

F、在滿足要求的前提下,盡量降低微處理器的晶振和選用低速數字電路。

三、真題解析

1、2006年38題

電路板的設計主要分為三個步驟,不包括(38)這一個步驟。

(38) A、生成網絡表 B、設計印制電路版

C、設計電路原理圖 D、自動布線

<答案>:D

見復習筆記1,這是嵌入式硬件設計的常識。

2、2006年39題

現代電子設計方法包含了可測試設計,其中(39)接口是IC芯片測試的標準接口。

(39)A. BIST B. JATG C. UART D. USB

<答案>:B

見復習筆記6,概念性問題。

3、2006年40題

多層印制電路板(4層或者4層以上)比雙面板更適合于高速PCB布線,最主要的原因是(40)

(40) A. 通過電源平面供電,電壓更穩定。

B. 可以大大減小電路中信號回路的面積。

C、多層印制電路板工藝簡單。

D、自動布線更容易。

<答案>:B

可以用排除法,根據常識首先可以排除C和D。

見復習筆記7,布線時盡量減少回路環的面積,以降低感應噪聲。因此,相比之下,B選型是最主要原因。

4、2006年41題

下面不符合數字電路(或者集成電路)的電磁兼容性設計方法的是(41)

(41) A. IC的電源及地的引腳較近,有多個電源和地。

B. 使用貼片元件,不是用插座。

C. IC的輸出級驅動能力應超過實際應用的要求。

D. 對輸入和按鍵采用電平檢測(而非邊沿檢測)

<答案>:C(參考郭春柱著的《嵌入式系統設計師案例導學》)

數字電路(或集成電路)的電磁兼容性(EMI)設計在進行器件選型時,通常遵循一下原則:

(1) 在滿足技術指標前提下,盡量選用低速時鐘的IC。

(2) 所選IC的電源及地引腳較近。

(3) 所選IC有多個電源及地線引腳。

(4) 所選IC的輸出電壓波動性小,輸出級能力不超過實際應用要求。

(5) 所選IC的電源瞬態電流(穿透電流)低。

(6) 所選IC的輸入電容盡量小。

(7) 所選IC具有可控開關速率。

(8) 所選IC地線反射較低。

(9) 建議在PCB上焊接表貼芯片。

EMC電路技術方面,通常遵循以下原則:

(1) 對輸入和按鍵采用電平檢測(而非邊沿檢測)。

(2) 降低負載電容,以使靠近輸出端的集電極開路驅動器便于上拉,電阻值盡量大。

(3) 使用前沿速率盡可能慢而且平滑的數字信號(不超過失真極限)。

(4) 在PCB樣板上,允許對信號邊沿速度或帶寬進行控制。

(5) 微處理器散熱片與芯片之間通過導熱材料隔離,并在周圍多點射頻接地。

(6) 不能在看門狗或電源監視電路上使用可編程器件。

(7) 電路中盡量配置一只高質量的看門狗。

(8) 電源的監視電路要對電源中斷、跌落、浪涌和瞬態干擾有抵抗能力。

四、小結

到這里,關于嵌入式系統設計師考試的硬件方面的復習筆記也就整理完畢了。希望我的這些文章能幫到你們。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    40

    文章

    3443

    瀏覽量

    128371

原文標題:資料下載:嵌入式系統設計師考試筆記

文章出處:【微信號:edn-china,微信公眾號:EDN電子技術設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    2007年嵌入式系統設計師考試大綱及設計師上午/下午試題

    2007年嵌入式系統設計師考試大綱及設計師上午/下午試題 一、考試說明 1、
    發表于 10-22 11:27

    嵌入式系統設計師考試復習筆記之存儲管理篇

    嵌入式系統設計師考試復習筆記之存儲管理篇
    發表于 08-02 14:38

    嵌入式系統設計師考試筆記(完整整理版)

    本帖最后由 eehome 于 2013-1-5 09:50 編輯 嵌入式系統設計師考試筆記(完整整理版)
    發表于 08-16 14:52

    嵌入式系統設計師考試筆記(完整整理版)

    嵌入式系統設計師考試筆記(完整整理版)
    發表于 08-20 12:47

    嵌入式系統設計師考試筆記

    嵌入式系統設計師考試筆記(完整整理版),感覺很不錯,需要的可以看一下:
    發表于 01-22 16:02

    嵌入式系統設計師考試筆記(完整整理版)

    本帖最后由 玄風夕韻 于 2014-1-22 13:18 編輯 https://bbs.elecfans.com/portal.php 嵌入式系統設計師考試筆記(完整整理版)和大
    發表于 01-22 12:53

    嵌入式系統設計師考試筆記

    嵌入式系統設計師考試筆記
    發表于 02-02 11:26

    嵌入式系統設計師考試筆記

    本帖最后由 lee_st 于 2018-3-3 00:46 編輯 嵌入式系統設計師考試筆記
    發表于 03-01 15:56

    下載】《嵌入式系統設計師考試筆記嵌入式系統基礎知識》

    `嵌入式系統設計師的一天考試分為上午和下午部分,兩部分的考試方式、試題難度、考點分布和復習方法都是不同的。這次我們討論的是
    發表于 03-12 16:24

    嵌入式系統設計師軟考筆記

    嵌入式系統設計師軟考筆記
    發表于 11-08 06:25

    嵌入式系統設計師要掌握哪些基礎知識

    考試大綱和教材目錄見www.ceiaec.org/資格考試/教材目錄)嵌入式系統設計師考試說明6
    發表于 11-09 07:20

    嵌入式系統設計師考試的相關資料分享

    汽車電子技術——嵌入式系統設計師相關知識學習及考試備考1. 嵌入式開發相關知識學習2.嵌入式
    發表于 11-09 06:41

    嵌入式系統設計師考試大綱09版

    嵌入式系統設計師考試大綱(2009版) 一、考試說明1、考試要求:(1)掌握科學基礎知識;(2
    發表于 03-31 15:25 ?0次下載

    嵌入式考試筆記嵌入式系統基礎知識

    嵌入式考試筆記嵌入式系統基礎知識 一、引言 自《嵌入式系統
    發表于 05-17 09:25 ?938次閱讀

    嵌入式系統設計師考試筆記(完整整理版)

    嵌入式系統設計師考試筆記(完整整理版),快快下載學習嵌入式
    發表于 01-11 17:06 ?0次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>