微型計算機輸入輸出接口技術(shù)
信息工程學(xué)院 接口 CPU 與外設(shè)之間的一種緩沖電 路,是CPU 與外設(shè)之間信息交 換的中轉(zhuǎn)站。6.1.1 什么是接口與接口技術(shù) 圖6.1 微機控制各類接口框圖內(nèi)存內(nèi)存接口CPU智能儀器接口通信接口過程控制接口輸入接口輸出接口外存接口數(shù)字化存儲示波器,數(shù)字化萬用表終端調(diào)制解調(diào)器 電傳機A/D轉(zhuǎn)換器開關(guān)量輸入D/A轉(zhuǎn)換器開關(guān)量輸出鍵盤 數(shù)字化儀光筆 圖形輸入 聲音輸入 掃描儀點陣打印 CRT 顯示激光打印 液晶顯示噴墨打印 繪圖儀X-Y記錄儀硬盤 軟盤光盤 磁帶 接口技術(shù) 采用硬件與軟件相結(jié)合的方法,研究CPU 與外設(shè)之間如何實現(xiàn)高效、可靠的信息交換的一門技術(shù)。 (1)數(shù)字量 由鍵盤、光電輸入機等輸入的信息,通常是以二進制表示的數(shù)或以 ASCII 碼表示的數(shù)或字符。1. 數(shù)據(jù)信息(DATA)CPU與外設(shè)交換的數(shù)據(jù)本身:CPU 外設(shè) (2)模擬量非電量信息傳感器電量信號處理U/I A/D CPU(P/T/Q) (3)開關(guān)量兩個狀態(tài)的量 ,可以用“0”、“1”表示,例如電機的啟與停,開關(guān)的合與開等。 例如 輸入時,輸入設(shè)備是否準備好? 準備就緒信號READY輸出時,輸出設(shè)備是否空閑? 忙信號BUSY2. 狀態(tài)信息(STATUS)例如控制I/O 設(shè)備啟動或停止等。3. 控制信息(CONTROL)反映外設(shè)當(dāng)前工作狀態(tài)的信息: CPU 外設(shè)CPU控制外設(shè)工作所發(fā)送的一種信息: CPU 外設(shè) 1. 接口電路的組成圖6.2 接口的組成CPU I/O設(shè)備I/O接口DRSRCRABDBCB DATASTATUSCONTROL總線驅(qū)動地址譯碼控制邏輯DR:數(shù)據(jù)寄存器SR:狀態(tài)寄存器CR:控制寄存器 2. I/O端口訪問方法端口地址與存儲器地址統(tǒng)一編址。譯碼器8086CPU AB存儲器I/O端口IOM/RDWR 圖6.3 統(tǒng)一編址方式硬件框圖 (1)統(tǒng)一編址方式 優(yōu)點:指令豐富,電路簡單。缺點:外設(shè)占用存儲器空間,內(nèi)存 容量減小。 圖6.4 獨立編址方式硬件框圖 譯碼器8086CPU AB存儲器I/O端口IOM/譯碼器 存儲器和外設(shè)都有自己的地址譯碼器,地址空間獨立,互不影響。用專用的I/O 指令訪問I/O 端口。 (1)匯編語言的I/O 指令輸入指令: IN AL, n ; n 為8位立即地址IN AL, DX ; 16位地址用DX間址輸出指令: OUT n, ALOUT DX, AL 例:IN AL, 20HMOV DX, 2F0HOUT DX, AL (2)C 語言中的端口讀寫函數(shù)Turbo C 中的(1) unsigned inportb (int port)(2) void outportb (int port, unsigned value)# include dos.hmain ( ) unsigned c; c = inportb (0 x2f0); printf (data = %0 x, c); outportb (0 x360, c); 從解決CPU 與外設(shè)在連接時存在的矛盾這個角度看,接口應(yīng)有以下功能: 設(shè)置“ 數(shù)據(jù)口”,解決CPU 高速與外設(shè)相對低速的矛盾,并為主機與外設(shè)的批量數(shù)據(jù)傳輸創(chuàng)造條件。1. 數(shù)據(jù)緩沖功能 設(shè)置“ 命令口”,對CPU 發(fā)出的代碼形式的控制命令識別、分析并執(zhí)行。CPU與外設(shè)之間信號在邏輯關(guān)系上的轉(zhuǎn)換、數(shù)據(jù)格式的轉(zhuǎn)換(串 并)、以及時序配合、電平匹配等。2. 接收與執(zhí)行CPU命令的功能3. 信號轉(zhuǎn)換功能 設(shè)置地址譯碼電路對外設(shè)尋址。設(shè)置中斷控制器,處理有關(guān)中斷事務(wù)(中斷請求、中斷優(yōu)先權(quán)排隊等)。4. 設(shè)備選擇功能5. 中斷管理功能使用可編程芯片實現(xiàn)。使用戶在不改動硬件的條件下,只修改驅(qū)動程序就可改變接口的工作方式。6. 可編程功能 查詢方式 中斷方式 DMA方式輸入外設(shè)狀態(tài)準備好?數(shù)據(jù)輸入/輸出No Yes1. 查詢方式 (1)查詢式輸入 圖6.5 查詢式輸入接口電路 LOOP1: IN AL, STATUS_PORTTEST AL, 80H ;JE LOOP1IN AL, DATA_PORT D7位表示狀態(tài)信息D71 準備好 (2)查詢式輸出 圖6.6 查詢式輸出接口電路 LOOP2: IN AL, STATUS_PORTTEST AL, 40H ;JNE LOOP2MOV AL, DATAOUT DATA_PORT, AL假設(shè)D6為狀態(tài)信息D61 表示忙 查詢方式的數(shù)據(jù)采集系統(tǒng)CPU 3 2 4A/D轉(zhuǎn)換8位數(shù)據(jù)1個模擬量數(shù)據(jù)READY1位狀態(tài)啟動 輸入數(shù)據(jù)8位模擬量.8位數(shù)據(jù)總線4 2 1 0IO/M.RD.3 IO/M.RD.2 IO/M.RD.4 8個輸入模擬量,經(jīng)過多路開關(guān)-它由端口4輸出的3位二進制碼(D2D1D0)控制(000-相應(yīng)于A0輸入),每次送出一個模擬量到A/D轉(zhuǎn)換器;同時A/D轉(zhuǎn)換器由端口4輸出的D4位控制啟動與停止。A/D轉(zhuǎn)換器的READY信號由端口2的D0輸送到CPU數(shù)據(jù)總線,經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù)由端口3傳送到數(shù)據(jù)總線。 START:MOV DL,0F8H LEA DI,DSTORAGAIN:MOV AL,DL AND AL,0EFH OUT 4,AL CALL DELAY MOV AL,DL OUT 4,ALPOLL:IN AL,2 SHR AL,1 JNC POLL IN AL,3 STOSB INC DL AGAIN 數(shù)據(jù)I/OCPU 執(zhí)行程序CPU 中斷允許外設(shè)準備數(shù)據(jù)(外設(shè)準備好,請求中斷) 圖6.7 中斷傳送方式的接口電路 DMA (Direct Memory Access) 是存儲器與外設(shè)或存儲器之間進行大量數(shù)據(jù)傳送的方法,是在DMA 控制器的控制下進行的。3. DMA方式 DMA 請求DMA 響應(yīng)送存儲器地址傳送數(shù)據(jù)DMA 結(jié)束傳送結(jié)束?Yes修改地址指針No圖6.8 DMA 工作流程圖 能向CPU 發(fā)出DMA 請求信號。 CPU 響應(yīng)后,接管對總線控制,進入DMA 方式。 發(fā)出讀、寫控制信號。 決定數(shù)據(jù)傳送的地址和數(shù)據(jù)傳送的長度。 判斷DMA 操作的結(jié)束,撤消總線請求信號, 使CPU 恢復(fù)正常工作。 (3)DMA 方式與中斷方式的比較中斷方式特點DMA方式控制數(shù)據(jù)傳送CPU 狀態(tài)響應(yīng)適用性由DMA控制器控制I/O 存儲器不破壞CPU 內(nèi)部寄存器狀態(tài)請求響應(yīng),級別高于中斷適用于高速I/O設(shè)備和成組數(shù)據(jù)交換由CPU程序控制I/O CPU 存儲器請求響應(yīng),級別比DMA方式低適用于慢速 I/O設(shè)備,實時處理破壞CPU內(nèi)部寄存器狀態(tài) I/O 端口地址譯碼一般由地址信號和控制信號的不同組合實現(xiàn)。其原則是:(2)低位地址線直接連接到 I/O 接口芯片,實現(xiàn)片內(nèi)尋址。1. I/O端口地址譯碼電路設(shè)計原則(1)高位地址與CPU 的控制信號組合,經(jīng)譯 碼電路產(chǎn)生 I/O 接口芯片的片選信號CS, 實現(xiàn)片間尋址。 (1)固定式端口地址譯碼 使用門電路的譯碼電路圖6.9 2F8H讀操作端口譯碼或門 圖6.10 2E2H 讀/寫操作端口譯碼 使用譯碼器的譯碼電路圖6.11 PC/XT 系統(tǒng)板上的地址譯碼電路 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0產(chǎn)生片選信號片內(nèi)尋址0 0 0 0 1 0 0 0 0 01 1 1 1 18259Y1有效選中因此8259的端口地址范圍 02003FH。 (2)開關(guān)式可選端口地址譯碼 用比較器組成的可選式譯碼電路圖6.12 74LS688 為8位比較器。當(dāng) P07 Q07時,P 0P07 Q07時,P1 使用跳線的可選式譯碼電路圖6.13 跳線開關(guān)可選 式譯碼電路 (3)使用可編程邏輯器件譯碼 1.分析接口兩側(cè)的情況2.實現(xiàn)系統(tǒng)總線與外設(shè)之間的信號轉(zhuǎn)換3.合理選用接口芯片4.接口驅(qū)動程序分析與設(shè)計