嵌入式計算系統課件:總線、IO、中斷_第1頁
嵌入式計算系統課件:總線、IO、中斷_第2頁
嵌入式計算系統課件:總線、IO、中斷_第3頁
嵌入式計算系統課件:總線、IO、中斷_第4頁
嵌入式計算系統課件:總線、IO、中斷_第5頁
已閱讀5頁,還剩85頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、CPUs總線的概念與分類PC的總線與接口嵌入式系統總線IO 接口電路中斷總線計算機系統中模塊到模塊間傳送信息的一束信號線總線實現了CPU、內存和I/O設備之間的通信.定義了通信協議.總線的分類按功能分:地址總線數據總線控制總線按層次結構分:內部總線系統總線外部總線按通信方式分:串行總線并行總線CPU總線的概念與分類PC的總線與接口嵌入式系統總線IO 接口電路中斷CPU內存I/O接口I/O設備數據總線DB地址總線AB控制總線CB主機數據總線、控制總線是雙向的,地址總線是單向的地址總線用來尋址內存單元和外設端口計算機組成數據總線DB(Data Bus)雙向傳送數據(指令、數值)地址總線AB(Add

2、ress Bus)發送數據的來源地址和目的地址控制總線CB(Control Bus)發送各種控制指令信息計算機系統中模塊到模塊間傳送信息的一束信號線總線PC I/O PORTUSB音頻網口PS2IDE串口并口IEEE1394PCIUSB+藍牙+WIFI 搞定一切CPU總線的概念與分類PC的總線與接口嵌入式系統總線IO 接口電路中斷10MPU總線單總線多總線結構多總線結構:低速設備連到低速總線上.高速設備連到高速總線.橋實現高速總線和低速總線的互聯.CPUslow devicememoryhigh-speeddevicebridgeslow deviceARM總線結構兩類總線:AHB 高速總線:

3、 AHB 支持 流水線,突發傳輸,分離事務和多總線控制器.APB 低速總線:所有低速設備連接到AHB上.ARM總線結構DMADirect memory access (DMA) 允許不由CPU控制讀寫的總線操作.總線請求.總線授權.DMA 控制器.常見的片內外設TimerAD/DA外部中斷接口GPIOUARTI2C/USB/SPI外部總線 CPU總線的概念與分類PC的總線與接口嵌入式系統總線IO 接口電路中斷嵌入式系統應用多樣性嵌入式計算系統,lecture1-118打印機、路由器汽車:發動機、剎車等.飛機:發動機、飛行控制、導航、通信.數字電視.家用電氣.手環、手表、插座、窗簾智能車、機器人

4、、物聯網設備智能手機、平板(趨向于通用平臺)多種多樣的外設工作原理不同比如鍵盤:機械、電子、機電、電磁傳送信息類型多樣比如傳感器:數字量、模擬量、開關量傳送速度差別極大傳送方式不盡相同串行、并行編碼方式不同二進制、BCD碼、ASCII碼I/O接口基本概念為什么需要I/O接口(電路)?外部設備多種多樣工作原理、驅動方式、信息格式、以及工作速度、時序方面與CPU不匹配必須經過中間電路再與系統相連這部分電路被稱為I/O接口電路多種外設I/O接口基本概念(續1)什么是I/O接口(電路)?I/O接口是位于系統與外設間、用來協助完成數據傳送和控制任務的邏輯電路CPU接口電路 I/O設備系統總線I/O接口基

5、本概念(續2)什么是接口技術?處理CPU與外設間聯系的技術注意其軟硬結合的特點根據應用系統的需要,使用和構造相應的接口電路,編制配套的接口程序,支持和連接有關的設備接口技術是編程人員的一項基本技能。嵌入式系統中的常用I/O接口GPIO通用I/O接口UART串口,數據通信I2CIC器件之間的通信SPIIC器件之間的通信CAN高性能和可靠性的串行通信協議USB通用串行總線A/D and D/A數模轉換,模數轉換應用示例應用示例GPIOSPI溫濕度傳感I2CI2CAT86RF231-SPIRF 模塊UARTGPIO的作用輸出數據/控制LED的控制輸入數據讀取當前LED的狀態按鍵STM32的GPIO功

6、能實驗課的LED如何連接的?I/O端口選擇的是輸入還是輸出?輸入輸出的模式?GPIO基本輸入結構GPIO 輸入電路工作原理工作原理弱上拉輸入弱上拉弱上拉輸入下拉輸入如何實現?下拉輸入總結推挽輸出電路推挽輸出電路推挽輸出電路推挽輸出推推挽輸出挽總結開漏輸出開漏輸出雙向開漏雙向開漏雙向開漏開漏輸出開漏輸出總結GPIO與復用I/OSTM32 I/OCPU總線的概念與分類PC的總線與接口嵌入式系統總線IO 接口電路中斷61I/0編程使用I/O設備:通過CPU讀取和寫入I/O設備的寄存器使用I/O設備要解決的問題:I/O寄存器的地址問題I/O寄存器的讀寫問題I/0編程有兩種方式可以是I/O端口程序控制:

7、I/O指令:I/O提供單獨的地址空間,用特殊的 I/O 指令進行操作;Intel x86內存映射I/O: I/O地址映射到內存地址,通過內存 load/store指令操作.其他CPUs:ARM,MIPSARM memory-mapped I/O定義 I/O設備在內存單元中的名稱: DEV1 EQU 0 x1000讀寫代碼:LDR r1,#DEV1 ; /set up device adrsLDR r0,r1 ; /read DEV1LDR r0,#8 ; /set up value to writeSTR r0,r1 ; /write value to deviceC語言#define DEV

8、1 0 x1000/讀操作int peek(char *location) return *location; dev_status = peek(DEV1);/寫操作void poke(char *location, char newval) (*location) = newval; poke(DEV1, 8);I/O操作忙等 I/O#define OUT_CHAR Ox1000#define OUT_STATUS Ox1001char *current_char = “hello world!”;while (*current_char != 0) poke(OUT_CHAR,*curr

9、ent_char); /write a charpoke(OUT_STATUS,1);/read statuswhile (peek(OUT_STATUS) != 0); /status !=0: busycurrent_char+;/ next輸入復制到輸出while (TRUE) /* read */while (peek(IN_STATUS) = 0);/status, =0: no inputchar achar = (char)peek(IN_DATA);/* write */poke(OUT_DATA,achar);poke(OUT_STATUS,1);while (peek(OU

10、T_STATUS) != 0);忙等 I/O:前臺程序: 輸入/輸出CPUI/O設備查詢設備狀態(輪詢)設備操作 時間中斷 I/O忙等I/O效率低I/O事務未完成,CPU不能執行其他操作 不能同時執行I/O中斷機制允許設備發送信號到CPU, 改變CPU程序執行過程CPU調用子程序處理設備操作(中斷處理程序)中斷接口CPU狀態寄存器數據寄存器設備管理機制PC中斷請求中斷應答數據/地址IR中斷行為描述基于子程序調用機制中斷發生時強制CPU執行一段特定代碼(中斷處理程序)存儲當前正在執行的程序地址,執行中斷處理程序后能夠返回到被中斷的程序“上下文”切換到中斷服務程序中斷物理接口CPU和設備之間通過C

11、PU總線連接CPU和設備的握手過程:設備向CPU發送中斷請求當CPU能夠處理該中斷時,向設備發送發送中斷應答中斷機制:前臺程序:輸入/輸出:中斷處理CPUI/O設備其他操作設備操作 時間實例3.4:應用中斷將字符從輸入設備復制到輸出設備/*輸入中斷處理程序*/void input_handler() /achar = IN_DATA; /全局變量gotchar = TRUE; /通知主程序IN_STATUS=0;/設置狀態值#define IN_DATA (*(volatile unsigned byte *) 0 xE0028018) /輸入寄存器#define IN_STATUS (*(v

12、olatile unsigned byte *) 0 xE002801C)/輸入狀態寄存器中斷驅動的main程序main() while (TRUE) if (gotchar) OUT_DATA = achar;/寫入字符OUT_STATUS = 1;/設置狀態值gotchar = FALSE; /重設標志位#define OUT_DATA (*(volatile unsigned byte *) 0 xE0028020) /輸出寄存器#define OUT_STATUS (*(volatile unsigned byte *) 0 xE002802C)/輸出狀態寄存器Example: int

13、errupt-driven main program executionmainInput_handlerpeek a charpeek a charpeek a charpoke a charwhilepoke a charwhilepoke a charwhile:Input:Output中斷代碼調試中斷處理程序有錯誤,可能導致:前臺程序發生奇怪的錯誤Bug很難復現取決于中斷的頻率.Context save/restore中斷代碼調試舉例:/*輸入中斷處理程序*/void input_handler() /achar = IN_DATA; /全局變量gotchar = TRUE; /通知主

14、程序IN_STATUS=0;/設置狀態值#define IN_DATA (*(volatile unsigned byte *) 0 xE0028018) /輸入寄存器#define IN_STATUS (*(volatile unsigned byte *) 0 xE002801C)/輸入狀態寄存器中斷優先級和中斷向量有兩種機制可以使中斷機制更有效:中斷優先級決定了哪個中斷被CPU優先執行中斷向量允許中斷設備指定其中斷處理程序多數CPU同時支持這兩種機制帶優先級的中斷機制CPU設備 1設備 2設備 nL1 L2 . Ln中斷應答中斷優先級中斷屏蔽 (Masking):優先級低于當前中斷的不被

15、執行,直到當前中斷處理程序執行完畢不可屏蔽中斷 (Non-maskable interrupt,NMI): 最高優先級中斷,不被屏蔽通常為由電源故障引發的中斷準備例子: 優先級中斷A prior B, B prior C中斷向量需求舉例:設備只有一個中斷管腳,但是有多個中斷源例如:射頻芯片有發送完成中斷、接收中斷、異常中斷等等中斷向量硬件結構支持中斷處理程序 0中斷處理程序 1中斷處理程序 2中斷處理程序 3中斷向量表表頭設備CPU中斷請求中斷響應向量中斷向量獲取:CPU:設備收到中斷請求收到中斷應答收到中斷向量中斷執行過程CPU 響應中斷請求設備發送中斷向量CPU 調用中斷處理程序執行中斷處理程序CPU恢復執行前臺程序中斷開銷分支跳轉及返回開銷額外的時鐘周期應答中斷和獲取中斷向量寄存器的保存與恢復.流水線相關的開銷.Cache相關的開銷.ARM interruptsARM7 支持兩種中斷:快速中斷請求(FIQs).一般中斷請求(IRQs).中斷向量表保存在內存低地址部分,一般從 0 地址開始.管態、異常和陷阱管態:提供用戶態不具有的特權指令,避免用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論