《微型計算機輸入輸出接口技術(shù).ppt》由會員分享,可在線閱讀,更多相關(guān)《微型計算機輸入輸出接口技術(shù).ppt(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第8章 微型計算機輸入/輸出接口技術(shù),8.1 概述 8.2 CPU與外設(shè)之間的數(shù)據(jù)傳送方式 8.3 I/O接口的基本結(jié)構(gòu)及讀寫技術(shù),8.1 概述,8.1.1 輸入/輸出接口的概念與功能 8.1.2 CPU與外設(shè)之間的接口信息 8.1.3 I/O端口的編址方法 8.1.4 I/O端口的地址分配 8.1.5 I/O端口的譯碼,8.1.1 輸入/輸出接口的概念與功能,I/O接口 I/O接口與系統(tǒng)和外設(shè)的連接 采用I/O接口的必要性 I/O接口的功能 I/O接口的類型,1. I/O接口,I/O接口是位于系統(tǒng)與外設(shè)間,協(xié)助完成數(shù)據(jù)傳送的電路。 I/O接口是連接外設(shè)和主機的一個“橋梁”。I/O接口的外設(shè)側(cè)
2、、主機側(cè)各有一個接口。主機側(cè)的接口稱為內(nèi)部接口,外設(shè)側(cè)的接口稱為外部接口。 內(nèi)部接口通過系統(tǒng)總線與內(nèi)存和CPU相連;外部接口則通過各種接口電纜(如串行電纜、并行電纜、網(wǎng)線或SCSI電纜等)與外設(shè)相連。,接口技術(shù) 是研究CPU如何與外部世界進行最佳耦合與匹配,實現(xiàn)雙方高效、可靠地交換信息的一門技術(shù),是軟件、硬件結(jié)合的體現(xiàn),是微機應(yīng)用的關(guān)鍵。,IBM PC總線是在IBM PC/XT個人計算機上使用的總線,它是針對Intel 8088CPU設(shè)計的,有62條信號線,以適應(yīng)8088的8位數(shù)據(jù)線和20條地址線的要求。這種總線是用戶在IBM PC/XT機器的主板上擴展I/O板的I/O總線。 在IBM PC/
3、XT微型計算機中有8個62線的擴展槽,這8個擴展槽是擴充系統(tǒng)的通道,擴展槽上可以插入不同功能的插件板,如內(nèi)存擴展板、顯示適配器、磁盤控制器、打印適配器、串行口適配器、網(wǎng)絡(luò)適配器等。,2. I/O接口與系統(tǒng)和外設(shè)的連接,1、速度的不匹配 2、信號電平不匹配 3、信號格式不匹配 4、時序不匹配,3. 采用I/O接口的必要性,4. I/O接口的功能,1、數(shù)據(jù)緩沖; 2、信號格式轉(zhuǎn)換,例如:串并/并串轉(zhuǎn)換; 3、電平轉(zhuǎn)換、數(shù)/模和模/數(shù)轉(zhuǎn)換等; 4、協(xié)調(diào)時序,同步CPU與外設(shè)的工作; 5、端口譯碼; 6、提供聯(lián)絡(luò)信號; 7、提供中斷和DMA控制。,1、按數(shù)據(jù)傳送方式分為并行接口與串行接口兩類。 主機側(cè)
4、的內(nèi)部接口,數(shù)據(jù)在接口與主機之間總是通過系統(tǒng)總線按字節(jié)或字或多字進行并行傳輸;外設(shè)側(cè)的外部接口,數(shù)據(jù)在接口與外設(shè)之間有串行和并行兩種傳送方式。例如:并行接口Intel 8255,串行接口Intel 8250,主要用于連接顯示終端等慢速設(shè)備。 2、按功能選擇的靈活性分為可編程接口與不可編程接口兩類。 例如:可編程接口 Intel 8255、Intel 8250;不可編程接口Intel 8212。 3、按通用性分為通用接口與專用接口。 例如:通用接口Intel 8255;專用接口Intel 8279可編程鍵盤、顯示接口器件。 4、按數(shù)據(jù)傳送的控制方式分為程序式接口與DMA式接口。 5、按設(shè)備的連接
5、方式分為點對點接口與多點接口。,5. I/O接口的類型,圖 微機常見外部接口,8.1.2 CPU與外設(shè)之間的接口信息,數(shù)據(jù)信息、狀態(tài)信息和控制信息。,端口:接口電路中的寄存器,包括數(shù)據(jù)端口、控制端口和狀態(tài)端口。,接口和端口的區(qū)別: 端口:是指接口電路中能被CPU直接訪問的寄存器或某些特定的器件,分別用來存放數(shù)據(jù)信息,控制信息和狀態(tài)信息,相應(yīng)的端口就是數(shù)據(jù)端口、控制端口和狀態(tài)端口。CPU通過這些端口來發(fā)送命令、讀取狀態(tài)和傳送數(shù)據(jù)。 接口:若干個端口加上相應(yīng)的控制邏輯才能組成。,數(shù)據(jù)信息:通常包括數(shù)字量、模擬量和開關(guān)量三種基本形式 狀態(tài)信息:主要用來指示輸入/輸出設(shè)備當前的狀態(tài),CPU根據(jù)這些狀態(tài)
6、信息適時準確地進行有效的數(shù)據(jù)傳送。 控制信息:主要是用來控制輸入/輸出設(shè)備的一類接口信息,它能控制設(shè)備的啟動與停止,8.1.3 I/O端口的編址方法,I/O端口的編址方式通常有兩種:統(tǒng)一編址方式和獨立編址方式。 1、統(tǒng)一編址(存儲器映射編址),將I/O端口地址與存儲器地址統(tǒng)一分配,即將I/O端口看作一個存儲單元。 I/O端口相當于內(nèi)存的一部分,使內(nèi)存容量減小 對I/O端口的讀/寫與對存儲器的讀/寫相同, 所有可對內(nèi)存操作的指令對I/O端口均可使用,指令多。 指令系統(tǒng)中不專設(shè)I/O指令,尋址速度慢 2、獨立編址,將I/O端口和存儲器分開獨立編址,即I/O端口和存儲器的地址空間是相互獨立的。,特點
7、: 端口與存儲器分別獨立編址 端口不占用內(nèi)存空間 設(shè)有專門的 I/O指令對端口進行讀寫,指令執(zhí)行速度快 對內(nèi)存操作的指令不能用于I/O端口,例 MOV 10H, AL 對內(nèi)存操作 IN 10H, AL 對端口操作,可尋址220= 1M個內(nèi)存單元 內(nèi)存范圍00000 FFFFFh 內(nèi)存單元的地址有5種尋址 可尋址216= 64 K個I/O端口 I/O端口范圍0000 FFFFH I/O端口的地址由 一個8位二進制數(shù)直接尋址 或DX寄存器間接尋址,8.1.4 I/O端口的地址分配,表8.1 主板上接口芯片的端口地址,表8.2 擴展槽上接口控制卡的端口地址,8.1.5 I/O端口的譯碼,【例8.1】
8、設(shè)計端口地址為218H的譯碼電路。 解:218H端口地址A9A0依次為1000011000,據(jù)此設(shè)計譯碼電路。 1、采用門電路:圖8.3。 2、采用門電路(實際芯片):圖8.4。 3、采用譯碼器:圖8.5。,方法一、用門電路實現(xiàn)218H的地址譯碼,注意譯碼電路中:由于高位地址線A15-A10未參與譯碼, 即:地址A15-A0為: 10 0001 1000均能輸出0, 所以該電路使:一個端口對應(yīng)多個地址,共26=64個 218,618, A18,E18等等,采用實際芯片:,PC總線,CS,I/O口,D0 D7,數(shù) 據(jù) 線 DB,端 口 譯碼電路,0,A9 A8 A7 A6 A5 A4 A3 A2
9、 A1 A0 AEN +5V IOR IOW,D0 D7,1 0 0 0 0 1 1 0 0 0 0,1,0,0,74LS30,74LS20,74LS32,方法二、用譯碼器、門電路組合實現(xiàn)218H的地址譯碼,74LS138 3-8譯碼器,218H,A Y0 B Y1 C Y2 E3 Y3 Y4 E1 Y5 Y6 E2 Y7,0 0 0 0 1 1 0 0 0 0 1 0 0,&,A0 A1 A2 AEN A3 A4 A5 A6 A7 A8 A9 IOR IOW,CS,D0 D7,&,數(shù) 據(jù) 線 DB,D0 D7,端 口 譯碼電路,8.2 CPU與外設(shè)之間的數(shù)據(jù)傳送方式,8.2.1 直接程序控制
10、方式 8.2.2 中斷傳送方式 8.2.3 直接存儲器存取方式,8.2.1 直接程序控制方式,直接程序控制方式:通過程序直接控制CPU與外設(shè)之間的數(shù)據(jù)傳送。直接程序控制方式分為無條件傳送方式和條件傳送方式兩種。 無條件傳送方式:外部設(shè)備必須已準備好,系統(tǒng)不需要查詢外設(shè)的狀態(tài)。接口示意如圖8.7所示。 條件傳送方式(查詢傳送方式):在執(zhí)行輸入/輸出操作之前,需通過測試程序?qū)ν獠吭O(shè)備的狀態(tài)進行檢查。當所選定的外設(shè)已準備“就緒”后,才開始進行輸入/輸出操作。查詢傳送方式的程序流程如圖8.8所示。,圖8.7 無條件傳送接口示意圖,例:一個采用無條件傳送方式的數(shù)據(jù)采集系統(tǒng)。 這是一個16位精度的數(shù)據(jù)采集
11、系統(tǒng)。被采集的數(shù)據(jù)是8個模擬量,由繼電器繞組P0、P1、P7分別控制觸點K0、K1K7逐個接通。 每次采樣用一個4位(十進制數(shù))數(shù)字電壓表測量,把被采樣的模擬量轉(zhuǎn)換成16位BCD代碼,高8位和低8位通過兩個不同的端口(其地址分別為10H和11H)輸入。 CPU通過端口20H輸出控制信號,以控制某個繼電器的吸合,實現(xiàn)采集不同通道的模擬量。,1.無條件傳送方式:,8個模擬量,16位精度的數(shù)據(jù)采集系統(tǒng),繼電器繞組,觸點,控制端口,數(shù)據(jù)端口,采集過程要求: (1) 先斷開所有的繼電器線圈及觸頭,不采集數(shù)據(jù)。 (2) 延遲一段時間后,使K0閉合,采集第1個通道的模擬量,并保持一段時間,以使數(shù)字電壓表能將
12、模擬電壓轉(zhuǎn)換為16位BCD碼。 (3) 分別將高8位與低8位BCD碼存入內(nèi)存,完成第1個模擬量的輸入與轉(zhuǎn)存。 (4) 利用移位與循環(huán)實現(xiàn)8個模擬量的依次采集、輸入與轉(zhuǎn)存。,數(shù)據(jù)采集程序: START:MOV DX,0100H;01HDH,置吸合第1個繼電器代碼 ;00HDL,置斷開所有繼電器代碼 LEA BX,DSTOR;置輸入數(shù)據(jù)緩沖器的地址指針 XOR AL,AL;清AL及進位位CF AGAIN: MOV AL,DL OUT 20H,AL;斷開所有繼電器線圈 CALL NEAR DELAY1;模擬繼電器觸點的釋放時間 MOV AL,DH OUT 20H,AL;先使P0吸合 CALL NEA
13、R DELAY2;模擬觸點閉合及數(shù)字電壓表的轉(zhuǎn)換時間 IN AX,10H;輸入 MOV BX,AX;存入內(nèi)存 INC BX INC BX RCL DH,1;DH左移(大循環(huán))1位,為下一個觸點吸合作準備 JNC AGAIN; 8個模擬量已經(jīng)全部輸入了?沒有,則循環(huán) DONE: ;輸入結(jié)束,執(zhí)行別的程序段,圖8.8 查詢傳送方式流程,【例8.2】如圖所示,I/O接口的狀態(tài)端口為地址為21CH,當D4=1時,表示外設(shè)數(shù)據(jù)準備好;I/O接口的的數(shù)據(jù)端口為218H。完成程序段:從外設(shè)讀入50H個字節(jié)到內(nèi)存緩沖區(qū)buffer中。,相應(yīng)程序段為: MOV AX, SEG buffer ;取緩沖區(qū)首地址 M
14、OV DS, AX LEA DI, buffer MOV CX, 50H ;傳送個數(shù) NEXT: MOV DX, 21CH ASK: IN AL, DX ;從狀態(tài)端口讀入狀態(tài)信息 TEST AL, 00010000B;檢測D4位 JZ ASK;D4=0,繼續(xù)查詢 MOV DX, 218H IN AL, DX;從數(shù)據(jù)端口讀入數(shù)據(jù) MOV DI, AL;送緩沖區(qū) INC DI;修改緩沖區(qū)指針 LOOP NEXT;傳送下一個 ,8.2.2 中斷傳送方式,在中斷傳送方式中,CPU和外設(shè)并行工作,當外設(shè)有需要時可向CPU提出服務(wù)請求,CPU接到中斷申請后,暫時停止當前程序的執(zhí)行,響應(yīng)外設(shè)的中斷請求,轉(zhuǎn)去
15、執(zhí)行中斷服務(wù)子程序,中斷服務(wù)子程序執(zhí)行完畢后,CPU返回主程序繼續(xù)執(zhí)行。,8.2.3 直接存儲器存取方式,直接存儲器存取方式(Direct Memory Access,DMA)方式:在外設(shè)與存儲器之間傳送數(shù)據(jù)時,不需要通過CPU中轉(zhuǎn),由專門的硬件裝置DMA控制器(DMAC)即可完成。,8.3 I/O接口的基本結(jié)構(gòu)及讀寫技術(shù),8.3.1 I/O接口的基本結(jié)構(gòu) 8.3.2 I/O接口的讀寫技術(shù),8.3.1 I/O接口的基本結(jié)構(gòu),8.3.2 I/O接口的讀寫技術(shù),1. 簡單的輸入輸出接口 2. 端口的讀/寫控制,1. 簡單的輸入輸出接口,輸入采用緩沖器,輸出采用鎖存器。 (1)常用緩沖器:,74LS240 74LS244 74LS245 8位單向負邏輯 8位單向正邏輯 8位雙向正邏輯,240為三態(tài)輸出的八組反向緩沖器和總線驅(qū)動器,244為三態(tài)輸出的八組緩沖器和總線驅(qū)動器,(2)常用鎖存器,74LS273是帶清除端的8D觸發(fā)器。 74LS373是三態(tài)輸出的8D透明鎖存器(不鎖存數(shù)據(jù)時,輸出隨輸入 變化)。 74LS374是三態(tài)輸出的8D邊沿觸發(fā)器。,2. 端口的讀/寫控制,MOV DX, 200H IN AL, DX,2. 端口的讀/寫控制,MOV DX, 300H OUT DX, AL,作業(yè),P172 8.5,