(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. 典型的微處理器的結構和特點
(1)8位微處理器:以8051為重點,徹底搞清楚8位單片機的工作原理,外設控制、存儲分布 、尋址方式以及典型應用。
(2)16位微處理器:典型的微處理器可以參考 MSP430,找一本這方面的書看看關于 MSP430的結構原理以及典型應用。
(3)32位微處理器:32位處理器采用32位的地址和數據總線,其地址空間達到了2 32 =4GB 。目前主流的32位嵌入式處理器系統主要有 ARM 系列、MIPS 系列、PoewrPC系列等。ARM 微處理器體系結構目前被公認為是嵌入式應用領域領先的32位嵌入式 RISC 處理器結構。按照目前的發展形式,ARM 幾乎成了嵌入式應用的代名詞。
4、單片機系統的基本概念
(1)單片機組成:中央處理器、存儲器、I/O 設備。
(2) 存儲器:物理實質是一組或多組具備數據輸入/輸出和數據存儲功能的集成電路,用于充當設備緩存或保存固定的程序及數據。
A、ROM(只讀存儲器):一般用于存放固定的程序或數據表格等,數據在掉電后仍然會保留下來。
B、RAM(隨機存儲器):用于暫存程序和數據、中間計算結果,或用作堆棧用等,數據在掉電后就會丟失。
(3) I/O 端口:單片機與外界聯系的通道,它可以對各類外部信號(開關量、模擬量、頻率信號)進行檢測、判斷、處理,并可控制各類外部設備。現在的單片機 I/O 口已經集成了更多的特性和功能,對 I/O端口的功能進行了拓展和復用,例如外部中斷、ADC 檢測以及 PWM 輸出等等。
(4)輸出電平:高電平電壓(輸出“1”時)和低電平電壓(輸出“0”時)
A、TTL 電平:正邏輯,5V 為邏輯正,0V 為邏輯負,例如單片機的輸出。
B、RS232電平:負邏輯,-12V 為邏輯正,+12V 為邏輯負,例如 PC 的輸出。
注:因此在單片機和 PC 進行通訊的時候需要一個 MAX232芯片進行電平轉換。
(5)堆棧:它是一種線性的數據結構,是一個只有一個進出口的一維空間。
A、堆棧特性:后進先出(LIFO)
B、堆棧指針:用于指示棧頂的位置(地址),當發生壓棧或者出棧操作時,導致棧頂位置變化時,堆棧指針會隨之變化。
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、指令周期:執行一條指令需要幾個機器周期。不同的指令需要的機器周期數不同。
5、 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,使其指向該運行模式的棧空間。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+4LDR R0, [R1], #4 ;R0=[R1] R1=R1+4LDR 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、復位異常中斷處理程序不需要返回。在復位異常中斷程序開始整個用戶程序的執行。
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304800 -
微處理器
+關注
關注
11文章
2258瀏覽量
82403
原文標題:嵌入式系統之微處理器篇
文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論