《嵌入式系统设计师》笔记之一——嵌入式系统基础知识
1.1?嵌入式系統的定義和組成
1.1.1?嵌入式系統的定義
以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。
1.1.2?嵌入式系統發展概述
1、嵌入式系統發展的4個階段:無操作系統階段、簡單操作系統階段、實時操作系統階段、面向Internet階段。
2、知識產權核(IP核):具有知識產權的、功能具體、接口規范、可在多個集成電路設計中重復使用的功能模塊,是實現系統芯片(SOC)的基本構件。
3、IP核模塊有行為、結構和物理3級不同程度的設計,對應描述功能行為的不同可以分為三類:軟核、固核、硬核。
1.1.3?嵌入式系統的組成
硬件層、中間層、系統軟件層和應用軟件層
1、硬件層:嵌入式微處理器、存儲器、通用設備接口和I/O接口。
2、嵌入式核心模塊=微處理器+電源電路+時鐘電路+存儲器
3、Cache:位于主存和嵌入式微處理器內核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數據。它的主要目標是減小存儲器給微處理器內核造成的存儲器訪問瓶頸,使處理速度更快。
4、中間層(也稱為硬件抽象層HAL或者板級支持包BSP):它將系統上層軟件和底層硬件分離開來,使系統上層軟件開發人員無需關系底層硬件的具體情況,根據BSP層提供的接口開發即可。
BSP有兩個特點:硬件相關性和操作系統相關性。
5、設計一個完整的BSP需要完成兩部分工作:
A、?嵌入式系統的硬件初始化和BSP功能。
片級初始化、板級初始化、系統級初始化
B、?設計硬件相關的設備驅動。
6、系統軟件層:由RTOS、文件系統、GUI、網絡系統及通用組件模塊組成。
RTOS是嵌入式應用軟件的基礎和開發平臺。
7、應用軟件:由基于實時系統開發的應用程序組成。
1.1.4?實時系統
1、定義:能在指定或確定的時間內完成系統功能和對外部或內部、同步或異步時間做出響應的系統。
2、區別:通用系統一般追求的是系統的平均響應時間和用戶的使用方便;而實時系統主要考慮的是在最壞情況下的系統行為。
3、特點:時間約束性、可預測性、可靠性、與外部環境的交互性。
4、硬實時(強實時):指應用的時間需求應能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產損失和生態破壞,如:航天、軍事。
5、軟實時(弱實時):指某些應用雖然提出了時間的要求,但實時任務偶爾違反這種需求對系統運行及環境不會造成嚴重影響,如:監控系統、實時信息采集系統。
6、任務的約束包括:時間約束、資源約束、執行順序約束和性能約束。
7、調度:給定一組實時任務和系統資源,確定每個任務何時何地執行的整個過程。
8、搶占式調度:通常是優先級驅動的調度,如uCOS。優點是實時性好、反應快,調度算法相對簡單,可以保證高優先級任務的時間約束;缺點是上下文切換多。
9、非搶占式調度:通常是按時間片分配的調度,不允許任務在執行期間被中斷,任務一旦占用處理器就必須執行完畢或自愿放棄,如WinCE。優點是上下文切換少;缺點是處理器有效資源利用率低,可調度性不好。
10、靜態表驅動策略:系統在運行前根據各任務的時間約束及關聯關系,采用某種搜索策略生成一張運行時刻表,指明各任務的起始運行時刻及運行時間。
11、優先級驅動策略:按照任務優先級的高低確定任務的執行順序。
12、實時任務分類:周期任務、偶發任務、非周期任務。
13、實時系統的通用結構模型:數據采集任務實現傳感器數據的采集,數據處理任務處理采集的數據、并將加工后的數據送到執行機構管理任務控制機構執行。
1.2嵌入式微處理器體系結構
1.2.1體系結構
1、馮諾依曼結構:程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數據總線,程序和數據的寬度相同。例如:8086、ARM7、MIPS…
2、哈佛結構:程序和數據是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數據存儲分開的存儲器結構。例如:AVR、ARM9、ARM10…
1.2.2?CISC與RISC
1、計算機執行程序所需要的時間P可以用下面公式計算:
P=I×CPI×T
I:高級語言程序編譯后在機器上運行的指令數。
CPI:為執行每條指令所需要的平均周期數。
T:每個機器周期的時間。
1.2.3?流水線技術
1、流水線的思想:在CPU中把一條指令的串行執行過程變為若干指令的子過程在CPU中重疊執行。
2、流水線的指標:
吞吐率:單位時間里流水線處理機流出的結果數。如果流水線的子過程所用時間不一樣長,則吞吐率應為最長子過程的倒數。
建立時間:流水線開始工作到達最大吞吐率的時間。若m個子過程所用時間一樣,均為t,則建立時間T=mt。
1.2.4?信息存儲的字節順序
A、存儲器單位:字節(8位)
B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。
C、32位微處理器的虛擬地址空間位2^32,即4GB。
D、小端字節順序:低字節在內存低地址處,高字節在內存高地址處。
E、大端字節順序:高字節在內存低地址處,低字節在內存高地址處。
F、網絡設備的存儲順序問題取決于OSI模型底層中的數據鏈路層。
1.3?嵌入式系統的硬件基礎
1.3.1?邏輯電路基礎
1、根據電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。
2、組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態無關。常用的邏輯電路有譯碼器和多路選擇器等。
3、時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關,而且還與該時刻電路的狀態有關。因此,時序電路中必須包含記憶元件。觸發器是構成時序邏輯電路的基礎。常用的時序邏輯電路有寄存器和計數器等。
4、真值表、布爾代數、摩根定律、門電路的概念。(教程28、29頁)
5、NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現任何一種邏輯函數。
6、譯碼器:多輸入多輸出的組合邏輯網絡。
每輸入一個n位的二進制代碼,在m個輸出端中最多有一個有效。
當m=2n是,為全譯碼;當m<2n時,為部分譯碼。
7、由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅動LED時,較多采用低電平驅動方式。液晶七段字符顯示器LCD利用液晶有外加電場和無外加電場時不同的光學特性來顯示字符。
8、時鐘信號是時序邏輯的基礎,它用于決定邏輯單元中的狀態合適更新。同步是時鐘控制系統中的主要制約條件。
9、在選用觸發器的時候,觸發方式是必須考慮的因素。觸發方式有兩種:
電平觸發方式:具有結構簡單的有點,常用來組成暫存器。
邊沿觸發方式:具有很強的抗數據端干擾能力,常用來組成寄存器、計數器等。
1.3.3?總線電路及信號驅動
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、對總線仲裁問題的解決是以優先級(優先權)的概念為基礎。
1.3.4?電平轉換電路
1、數字集成電路可以分為兩大類:雙極型集成電路(TTL)、金屬氧化物半導體(MOS)。
2、CMOS電路由于其靜態功耗極低,工作速度較高,抗干擾能力較強,被廣泛使用。
3、解決TTL與CMOS電路接口困難的辦法是在TTL電路輸出端與電源之間接一上拉電阻R,上拉電阻R的取值由TTL的高電平輸出漏電流IOH來決定,不同系列的TTL應選用不同的R值。
1.3.5?可編程邏輯器件基礎(具體參見教程51到61頁)
這方面的內容,從總體上有個概念性的認識應該就可以了。
1.4?嵌入式系統中信息表示與運算基礎
1.4.1?進位計數制與轉換
1.4.2?計算機中數的表示
1、進位計數制與轉換:這樣比較簡單,也應該掌握怎么樣進行換算,有出題的可能。
2、計算機中數的表示:源碼、反碼與補碼。
正數的反碼與源碼相同,負數的反碼為該數的源碼除符號位外按位取反。
正數的補碼與源碼相同,負數的補碼為該數的反碼加一。
例如-98的源碼:11100010B、反碼:10011101B、補碼:10011110B
3、定點表示法:數的小數點的位置人為約定固定不變。
4、浮點表示法:數的小數點位置是浮動的,它由尾數部(有效數字)分和階數部分(位移量P,正右負左移)組成。
5、任意一個二進制N總可以寫成:N=2P×S。S為尾數,P為階數。
1.4.3?非數值數據編碼
1、ASCII編碼,一個字節的右邊的7位比奧斯不同的字符代碼,最左邊的以為可以左奇偶校驗或者區別西文和漢字。
2、字符串向量存放法,所有的字符在物理上是鄰接的,最簡單最省空間,但插入刪除時需重新分配空間。
3、字符串串表法,在字符后面緊跟下一個字符的地址,不需物理相連但是主存的有效利用率只有25%。
4、漢字表示法(教程67、68頁),搞清楚GB2318-80中國標碼和機內碼的變換。(把每個字節最高位置1)
5、聲音三要素:音調(頻率)、音強(振幅)、音色(形狀)。
6、語音編碼中波形量化參數,聲音質量(可能會出簡單的計算題目哦)
采樣頻率:一秒內采樣的次數,反映了采樣點之間的間隔大小。人耳的聽覺上限是20kHz,因此40kHz以上的采樣頻率足以使人滿意。CD唱片采用的采樣頻率是44.1kHz。
測量精度:樣本的量化等級,目前標準采樣量級有8位和16位兩種。
聲道數:單聲道和立體聲雙道。立體聲需要兩倍的存儲空間。
1.4.4?差錯控制編碼
1、根據碼組的功能,可以分為檢錯碼和糾錯碼兩類。檢錯碼是指能自動發現差錯的碼,例如奇偶檢驗碼;糾錯碼是指不僅能發現差錯而且能自動糾正差錯的碼,例如循環冗余校驗碼。
2、奇偶檢驗碼、海明碼、循環冗余校驗碼(CRC)。(教程70到77頁)
? 3、奇偶校驗:碼組中1的個數為奇偶,只能差錯,不能糾錯,只能發現奇數個錯誤。
4、海明碼:
5、冗余校驗碼
(A)crc算法已經有成熟和比較經典的現成代碼可供我們利用。CRC計算可以靠專用的硬件來實現。在發送端根據要傳送的k位二進制?碼序列,以一定的規則產生一個校驗用的監督碼(既CRC碼)r位,并附在信息后邊,構成一個新的二進制碼序列數共(k+r)位,最后發送出去。在接收端,?則根據信息碼和CRC碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。
(B)生成多項式,16位的CRC碼產生的規則是先將要發送的二進制序列數左移16位后,再除以一個多項式,最后所得到的余數既是CRC碼。例?如:代碼1010111對應的多項式為x6+x4+x2+x+1,而多項式為x5+x3+x2+x+1對應的代碼101111。
(C)標準CRC生成多項式如下表:
??? 名稱???????? 生成多項式?????????????? 簡記式*???
??? CRC-4?? x4+x+1???????? 3???????
??? CRC-8??? x8+x5+x4+1?????? 0x31????????????????????
??? CRC-8??? x8+x2+x1+1?????? 0x07????????????????????
? CRC-8? x8+x6+x4+x3+x2+x1 0x5E?
CRC-12? x12+x11+x3+x+1? 80F
??? CRC-16?? x16+x15+x2+1??? 8005?????
??? CRC16-CCITT? x16+x12+x5+1????? 1021???
CRC-32?????? x32+x26+x23+...+x2+x+1? 04C11DB7???
CRC-32c????? x32+x28+x27+...+x8+x6+1? 1EDC6F41?SCTP?
生成多項式的最高位固定的1,故在簡記式中忽略最高位1了,如0x1021實際是0x11021。
(D)基本算法(人工筆算):?
以CRC16-CCITT為例進行說明,CRC校驗碼為16位,生成多項式17位。假如數據流為4字節:BYTE[3]、BYTE[2]、BYTE[1]、BYTE[0];?數據流左移16位,相當于擴大256×256倍,再除以生成多項式0x11021,做不借位的除法運算(相當于按位異或),所得的余數就是CRC校驗碼。?發送時的數據流為6字節:BYTE[3]、BYTE[2]、BYTE[1]、BYTE[0]、CRC[1]、CRC[0];
(E)舉例:
信息字段代碼為:?m(x)=x6+x4+x3+1????代碼為:1011001
生成多項式:????g(x)=x4+x3+1???????代碼為:11001(生成碼5位=r+1,校驗碼就是r位,r的位數需要可以檢測出信息段每一位出錯的可能,2^r>信息段的位數)
m(x)x4=x10+x8+x7+x4?對應的代碼記為:10110010000?????即?左移r(4)位
m(x)x4?在與?g(x)進行?模2的除法運算,相當于按位異或,計算過程如下:
?
?
1?0?1?1?0?0?1?0?0?0?0?
1?1?0?0?1?
-----------------------------?
0?1?1?1?1?0?1?0?0?0?0?
??1?1?0?0?1?
-----------------------------?
??0?0?0?1?1?1?1?0?0?0?0?
?????????1?1?0?0?1?
-----------------------------?
??????????????0?0?1?1?1?0?0?0?
??????????????1?1?0?0?1?
-----------------------------?
??????????????????0?0?1?0?1?0?????????????-------------->?余數?????即?校驗碼?
發送數據碼為:?10110011010
將信息位后添加r位校驗碼:FCS幀檢驗列
校驗糾錯:收到的FCS碼除去CRC校驗碼,即用數據碼模2除CRC校驗碼,余數為0則無錯,余數不為0對應不同位出錯。
1.5?嵌入式系統的性能評價
1、性能指標:分為部件性能指標和綜合性能指標,主要包括:吞吐率、實時性和各種利用率。
2、可靠性與安全性
可靠性是嵌入式系統最重要、最突出的基本要求,是一個嵌入式系統能正常工作的保證,一般用平均故障間隔時間MTBF來度量。
3、可維護性:一般用平均修復時間MTTR表示。
4、可用性、功耗、環境適應性、通用性、安全性、保密性、可擴展性
5、性價比中的價格,除了直接購買嵌入式系統的價格外,還應包含安裝費用、若干年的運行維修費用和軟件租用費。
6、嵌入式系統的評價方法:測量法和模型法
(1)測量法是最直接最基本的方法,需要解決兩個問題:
A、根據研究的目的,確定要測量的系統參數。
B、選擇測量的工具和方式。
(2)測量的方式有兩種:采樣方式和事件跟蹤方式。
(3)模型法分為分析模型法和模擬模型法。分析模型法是用一些數學方程去刻畫系統的模型,而模擬模型法是用模擬程序的運行去動態表達嵌入式系統的狀態,而進行系統統計分析,得出性能指標。
(4)分析模型法中使用最多的是排隊模型,它包括三個部分:輸入流、排隊規則和服務機構。
(5)使用模型對系統進行評價需要解決3個問題:設計模型、解模型、校準和證實模型。
總結
以上是生活随笔為你收集整理的《嵌入式系统设计师》笔记之一——嵌入式系统基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Introducing Android
- 下一篇: mysql周报内容范文_mysql 数据