微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出

上傳人:努力****83 文檔編號:192658276 上傳時間:2023-03-07 格式:PPTX 頁數(shù):99 大小:1.48MB
收藏 版權(quán)申訴 舉報 下載
微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出_第1頁
第1頁 / 共99頁
微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出_第2頁
第2頁 / 共99頁
微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出_第3頁
第3頁 / 共99頁

下載文檔到電腦,查找使用更方便

40 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出》由會員分享,可在線閱讀,更多相關(guān)《微型計算機(jī)原理及應(yīng)用:第7章輸入和輸出(99頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、7.1 7.1 概述概述7.2 CPU7.2 CPU與外設(shè)數(shù)據(jù)傳送的方式與外設(shè)數(shù)據(jù)傳送的方式7.3 DMA7.3 DMA控制器控制器第第 7 7 章章 輸入和輸出輸入和輸出17.1 7.1 概述概述輸入和輸出設(shè)備是計算機(jī)系統(tǒng)的重要組成部分。程序、原始數(shù)據(jù)和輸入和輸出設(shè)備是計算機(jī)系統(tǒng)的重要組成部分。程序、原始數(shù)據(jù)和各種現(xiàn)場采集到的資料和信息,都要通過輸入設(shè)備輸入至計算機(jī)。計算結(jié)各種現(xiàn)場采集到的資料和信息,都要通過輸入設(shè)備輸入至計算機(jī)。計算結(jié)果或各種控制信號要輸出給各種輸出設(shè)備,以便顯示、打印和實(shí)現(xiàn)各種控果或各種控制信號要輸出給各種輸出設(shè)備,以便顯示、打印和實(shí)現(xiàn)各種控制動作。常用的輸入設(shè)備有鍵盤制

2、動作。常用的輸入設(shè)備有鍵盤(Key Board)(Key Board)、鼠標(biāo)、掃描儀,或者經(jīng)過、鼠標(biāo)、掃描儀,或者經(jīng)過A/D(A/D(模模/數(shù)數(shù))轉(zhuǎn)換的現(xiàn)場信息等。轉(zhuǎn)換的現(xiàn)場信息等。常用的輸出設(shè)備有常用的輸出設(shè)備有CRTCRT、各種行打印機(jī)、各種行打印機(jī)(Line Printer)(Line Printer)、繪圖儀,以、繪圖儀,以及經(jīng)過及經(jīng)過D/A(D/A(數(shù)數(shù)/模模)轉(zhuǎn)換的各種控制信號。近年來,多媒體技術(shù)有了很大發(fā)轉(zhuǎn)換的各種控制信號。近年來,多媒體技術(shù)有了很大發(fā)展,聲音和圖像的輸入和輸出也是重要的展,聲音和圖像的輸入和輸出也是重要的I/OI/O設(shè)備。設(shè)備。CPUCPU與外部設(shè)備與外部設(shè)備(

3、Peripheral)(Peripheral)交換信息也是計算機(jī)系統(tǒng)中十分重要和十分頻繁的操作。交換信息也是計算機(jī)系統(tǒng)中十分重要和十分頻繁的操作。外部設(shè)備的種類繁多,可以是機(jī)械式、電動式、電子式以及其他形外部設(shè)備的種類繁多,可以是機(jī)械式、電動式、電子式以及其他形式。輸入的信息也不相同,可以是數(shù)字量、模擬量式。輸入的信息也不相同,可以是數(shù)字量、模擬量(模擬的電壓、電流模擬的電壓、電流),也可以是開關(guān)量也可以是開關(guān)量(兩個狀態(tài)的信息兩個狀態(tài)的信息)。而且輸入信息的速度也有很大區(qū)別,。而且輸入信息的速度也有很大區(qū)別,可以是手動的鍵盤輸入可以是手動的鍵盤輸入(每個字符輸入的速度為秒級每個字符輸入的速度

4、為秒級),也可以是磁盤輸入,也可以是磁盤輸入(它能以它能以1Mb/s1Mb/s的速率傳送的速率傳送)。所以。所以CPUCPU與外設(shè)之間的連接與信息交換是比較與外設(shè)之間的連接與信息交換是比較復(fù)雜的。復(fù)雜的。27.1.1 7.1.1 輸入輸出的尋址方式輸入輸出的尋址方式CPUCPU尋址外設(shè)可以有兩種方式:尋址外設(shè)可以有兩種方式:存儲器對應(yīng)輸入輸出方存儲器對應(yīng)輸入輸出方式和端口尋址的輸入輸出方式。式和端口尋址的輸入輸出方式。1.1.存儲器對應(yīng)輸入輸出方式存儲器對應(yīng)輸入輸出方式(I/OI/O統(tǒng)一編址統(tǒng)一編址)在這種方式中,把一個外設(shè)端口作為存儲器的一個單元在這種方式中,把一個外設(shè)端口作為存儲器的一個單

5、元來對待,故每一個外設(shè)端口占有存儲器的一個地址。從外部來對待,故每一個外設(shè)端口占有存儲器的一個地址。從外部設(shè)備輸入一個數(shù)據(jù),作為一次存儲器讀的操作;而向外部設(shè)設(shè)備輸入一個數(shù)據(jù),作為一次存儲器讀的操作;而向外部設(shè)備輸出一個數(shù)據(jù),則作為一次存儲器寫的操作。備輸出一個數(shù)據(jù),則作為一次存儲器寫的操作。3這種方式的優(yōu)點(diǎn)是:這種方式的優(yōu)點(diǎn)是:(1)CPU(1)CPU對外設(shè)的操作可使用全部的存儲器操作指令,對外設(shè)的操作可使用全部的存儲器操作指令,故指令多,使用方便。如可對外設(shè)中的數(shù)據(jù)故指令多,使用方便。如可對外設(shè)中的數(shù)據(jù)(存于外設(shè)的寄存于外設(shè)的寄存器中存器中)進(jìn)行算術(shù)和邏輯運(yùn)算,進(jìn)行循環(huán)或移位等。進(jìn)行算術(shù)和

6、邏輯運(yùn)算,進(jìn)行循環(huán)或移位等。(2)(2)內(nèi)存和外設(shè)的地址分布圖是同一個。內(nèi)存和外設(shè)的地址分布圖是同一個。(3)(3)不需要專門的輸入輸出指令以及區(qū)分是存儲器還是不需要專門的輸入輸出指令以及區(qū)分是存儲器還是I/OI/O操作的控制信號。操作的控制信號。這種方式的缺點(diǎn)是:這種方式的缺點(diǎn)是:(1)(1)外設(shè)占用了內(nèi)存單元,使內(nèi)存容量減小。外設(shè)占用了內(nèi)存單元,使內(nèi)存容量減小。(2)(2)要尋址的外設(shè)的端口地址,顯然比內(nèi)存單元的地址要尋址的外設(shè)的端口地址,顯然比內(nèi)存單元的地址要少得多。所以,在用直接尋址方式尋址外設(shè)時,它的地址要少得多。所以,在用直接尋址方式尋址外設(shè)時,它的地址字節(jié),通??偸且葘ぶ穬?nèi)存單

7、元的地址少一個字節(jié),因而字節(jié),通??偸且葘ぶ穬?nèi)存單元的地址少一個字節(jié),因而節(jié)省了指令的存儲空間,縮短了指令的執(zhí)行時間。節(jié)省了指令的存儲空間,縮短了指令的執(zhí)行時間。42.2.端口尋址的輸入輸出方式端口尋址的輸入輸出方式(I/OI/O獨(dú)立編址獨(dú)立編址)在這種工作方式中,在這種工作方式中,CPUCPU有專門的有專門的I/OI/O指令,用地址來區(qū)指令,用地址來區(qū)分不同的外設(shè)。但要注意,實(shí)際上是以端口分不同的外設(shè)。但要注意,實(shí)際上是以端口(Port)(Port)作為地址作為地址的單元,因?yàn)橐粋€外設(shè)不僅有數(shù)據(jù)寄存器還有狀態(tài)寄存器和的單元,因?yàn)橐粋€外設(shè)不僅有數(shù)據(jù)寄存器還有狀態(tài)寄存器和控制命令寄存器,它們各

8、需要一個端口才能加以區(qū)分,故一控制命令寄存器,它們各需要一個端口才能加以區(qū)分,故一個外設(shè)往往需要多個端口地址。個外設(shè)往往需要多個端口地址。CPUCPU用地址來選擇外設(shè)。通用地址來選擇外設(shè)。通常專用的常專用的I/OI/O指令,只用一個字節(jié)作為端口地址,故最多可指令,只用一個字節(jié)作為端口地址,故最多可尋址尋址256256個端口。個端口。在在IA-32IA-32結(jié)構(gòu)微處理器中,例如在結(jié)構(gòu)微處理器中,例如在Intel 8088Intel 8088和和80868086中,中,若用直接尋址方式尋址外設(shè),則仍用一個字節(jié)的地址,可尋若用直接尋址方式尋址外設(shè),則仍用一個字節(jié)的地址,可尋址址256256個端口;而

9、用個端口;而用DXDX間接尋址外設(shè)時,則端口地址是間接尋址外設(shè)時,則端口地址是1616位位的,可尋址的,可尋址2 21616=64K=64K個端口地址。個端口地址。在用端口尋址方式尋址外設(shè)的在用端口尋址方式尋址外設(shè)的CPUCPU中,必須要有控制線中,必須要有控制線來區(qū)分是尋址內(nèi)存還是尋址外設(shè)。來區(qū)分是尋址內(nèi)存還是尋址外設(shè)。57.1.2 CPU7.1.2 CPU與與I/OI/O設(shè)備之間的接口信息設(shè)備之間的接口信息CPUCPU與一個外設(shè)之間交換的信息,如圖與一個外設(shè)之間交換的信息,如圖7-17-1所示。所示。傳送的信息傳送的信息1.1.數(shù)據(jù)數(shù)據(jù)(Data)(Data)在微型計算機(jī)中,數(shù)據(jù)通常為在微

10、型計算機(jī)中,數(shù)據(jù)通常為8 8位、位、1616位或位或3232位。它大位。它大致可以分為三種基本類型:致可以分為三種基本類型:(1)(1)數(shù)字量數(shù)字量由鍵盤等輸入的信息是以二進(jìn)制形式表示的數(shù)或以由鍵盤等輸入的信息是以二進(jìn)制形式表示的數(shù)或以ASCIIASCII碼表示的數(shù)或字符。碼表示的數(shù)或字符。6(2)(2)模擬量模擬量當(dāng)計算機(jī)用于控制時,大量的現(xiàn)場信息經(jīng)過傳感器把非當(dāng)計算機(jī)用于控制時,大量的現(xiàn)場信息經(jīng)過傳感器把非電量電量(例如溫度、壓力、流量、位移等例如溫度、壓力、流量、位移等)轉(zhuǎn)換為電量,并經(jīng)放轉(zhuǎn)換為電量,并經(jīng)放大即得到模擬電壓或電流。這些模擬量必須先經(jīng)過大即得到模擬電壓或電流。這些模擬量必須

11、先經(jīng)過A/DA/D轉(zhuǎn)換轉(zhuǎn)換才能輸入計算機(jī);計算機(jī)的控制輸出也必須先經(jīng)過才能輸入計算機(jī);計算機(jī)的控制輸出也必須先經(jīng)過D/AD/A轉(zhuǎn)換轉(zhuǎn)換才能去控制執(zhí)行機(jī)構(gòu)。才能去控制執(zhí)行機(jī)構(gòu)。(3)(3)開關(guān)量開關(guān)量開關(guān)量是兩個狀態(tài)的量,如電機(jī)的運(yùn)轉(zhuǎn)與停止,開關(guān)的開關(guān)量是兩個狀態(tài)的量,如電機(jī)的運(yùn)轉(zhuǎn)與停止,開關(guān)的閉合與斷開,閥門的打開和關(guān)閉等。這些量只要用一位二進(jìn)閉合與斷開,閥門的打開和關(guān)閉等。這些量只要用一位二進(jìn)制數(shù)即可表示,故字長制數(shù)即可表示,故字長8 8位的機(jī)器一次輸入或輸出可以控制位的機(jī)器一次輸入或輸出可以控制8 8個這樣的開關(guān)量。個這樣的開關(guān)量。72.2.狀態(tài)信息狀態(tài)信息(Status)(Status)

12、在輸入時,有輸入設(shè)備的狀態(tài)信息是否準(zhǔn)備好在輸入時,有輸入設(shè)備的狀態(tài)信息是否準(zhǔn)備好(Ready)(Ready);在輸出時,有輸出設(shè)備的狀態(tài)信息是否有空在輸出時,有輸出設(shè)備的狀態(tài)信息是否有空(Empty)(Empty),若輸,若輸出設(shè)備正在輸出信息,則以忙出設(shè)備正在輸出信息,則以忙(Busy)(Busy)指示等。指示等。3.3.控制信息控制信息(Control)(Control)例如控制輸入輸出設(shè)備啟動或停止等信息。例如控制輸入輸出設(shè)備啟動或停止等信息。狀態(tài)信息和控制信息與數(shù)據(jù)是不同性質(zhì)的信息,必須要狀態(tài)信息和控制信息與數(shù)據(jù)是不同性質(zhì)的信息,必須要分別傳送。但在大部分微型計算機(jī)中分別傳送。但在大部

13、分微型計算機(jī)中(8086(8086也如此也如此),只有通,只有通用的輸入用的輸入ININ和輸出和輸出OUTOUT指令,因此,外設(shè)的狀態(tài)也必須作為指令,因此,外設(shè)的狀態(tài)也必須作為一種數(shù)據(jù)輸入;而一種數(shù)據(jù)輸入;而CPUCPU的控制命令,也必須作為一種數(shù)據(jù)輸?shù)目刂泼?,也必須作為一種數(shù)據(jù)輸出。為了使它們之間相互能夠區(qū)分開,它們必須有自己不同出。為了使它們之間相互能夠區(qū)分開,它們必須有自己不同的端口地址,如圖的端口地址,如圖7-27-2所示。所示。8計算機(jī)的接口計算機(jī)的接口910PCPC機(jī)接口卡端口地址機(jī)接口卡端口地址(0100H-03FFH)(0100H-03FFH)11數(shù)據(jù)需要一個端口;外設(shè)的狀態(tài)

14、需要一個端口,數(shù)據(jù)需要一個端口;外設(shè)的狀態(tài)需要一個端口,CPUCPU才才能把它讀入,了解外設(shè)的運(yùn)行情況;能把它讀入,了解外設(shè)的運(yùn)行情況;CPUCPU的控制信號往往也的控制信號往往也需要一個端口,以控制外設(shè)的正常工作。所以,一個外設(shè)往需要一個端口,以控制外設(shè)的正常工作。所以,一個外設(shè)往往要幾個端口地址,往要幾個端口地址,CPUCPU尋址的是端口,而不是籠統(tǒng)的外設(shè)。尋址的是端口,而不是籠統(tǒng)的外設(shè)。一個端口的寄存器往往是一個端口的寄存器往往是8 8位的,通常一個外設(shè)的數(shù)據(jù)端口位的,通常一個外設(shè)的數(shù)據(jù)端口是是8 8位的,而狀態(tài)與控制端口只用其中的位的,而狀態(tài)與控制端口只用其中的1 1位或位或2 2位,

15、故不同位,故不同的外設(shè)的狀態(tài)或控制信息可以共用一個端口。的外設(shè)的狀態(tài)或控制信息可以共用一個端口。127.1.3 CPU7.1.3 CPU的輸入輸出時序的輸入輸出時序在最大組態(tài)下,在最大組態(tài)下,80868086的基本輸入輸出總線周期的時序與的基本輸入輸出總線周期的時序與存儲器讀寫的時序是類似的。但是,通常存儲器讀寫的時序是類似的。但是,通常I/OI/O接口電路的工接口電路的工作速度較慢,往往需要插入等待狀態(tài)。所以,基本作速度較慢,往往需要插入等待狀態(tài)。所以,基本I/OI/O操作操作由由T1T1、T2T2、T3T3、T TW W、T4T4組成,占用組成,占用5 5個時鐘周期,如圖個時鐘周期,如圖7

16、-37-3所所示。示。13147.1.4 CPU7.1.4 CPU與接口電路之間數(shù)據(jù)傳送的與接口電路之間數(shù)據(jù)傳送的形式形式CPUCPU與外設(shè)的信息交換稱為通信與外設(shè)的信息交換稱為通信(Communication)(Communication)。基本?;镜耐ㄐ欧绞接袃煞N:的通信方式有兩種:并行通信并行通信數(shù)據(jù)的各位同時傳送;數(shù)據(jù)的各位同時傳送;串行通信串行通信數(shù)據(jù)一位一位順序傳送。數(shù)據(jù)一位一位順序傳送。并行通信與串行通信方式,如圖并行通信與串行通信方式,如圖7-47-4所示。所示。15167.2 CPU7.2 CPU與外設(shè)數(shù)據(jù)傳送的方式與外設(shè)數(shù)據(jù)傳送的方式當(dāng)當(dāng)CPUCPU與外設(shè)進(jìn)行信息(數(shù)據(jù)、

17、狀態(tài)信號和控制命令)傳送時,為與外設(shè)進(jìn)行信息(數(shù)據(jù)、狀態(tài)信號和控制命令)傳送時,為了保證傳送的可靠性和提高工作效率,有了保證傳送的可靠性和提高工作效率,有幾種不同的傳送方式。幾種不同的傳送方式。無條件傳送方式,常用于簡單設(shè)備,處理器認(rèn)為它們總是處于無條件傳送方式,常用于簡單設(shè)備,處理器認(rèn)為它們總是處于就緒狀態(tài),隨時進(jìn)行數(shù)據(jù)傳送。就緒狀態(tài),隨時進(jìn)行數(shù)據(jù)傳送。程序查詢方式:處理器首先查詢外設(shè)工作狀態(tài),在外設(shè)就緒時程序查詢方式:處理器首先查詢外設(shè)工作狀態(tài),在外設(shè)就緒時進(jìn)行數(shù)據(jù)傳送。進(jìn)行數(shù)據(jù)傳送。中斷方式:外設(shè)在準(zhǔn)備就緒的條件下通過請求引腳信號,主動中斷方式:外設(shè)在準(zhǔn)備就緒的條件下通過請求引腳信號,主

18、動向處理器提出交換數(shù)據(jù)的請求。處理器無其他更緊迫任務(wù),則執(zhí)行中斷向處理器提出交換數(shù)據(jù)的請求。處理器無其他更緊迫任務(wù),則執(zhí)行中斷服務(wù)程序完成一次數(shù)據(jù)傳送。服務(wù)程序完成一次數(shù)據(jù)傳送。DMADMA傳送:傳送:DMADMA控制器可接管總線,作為總線的主控設(shè)備,通過控制器可接管總線,作為總線的主控設(shè)備,通過系統(tǒng)總線來控制存儲器和外設(shè)直接進(jìn)行數(shù)據(jù)交換。此種方式適用于需要系統(tǒng)總線來控制存儲器和外設(shè)直接進(jìn)行數(shù)據(jù)交換。此種方式適用于需要大量數(shù)據(jù)高速傳送的場合。大量數(shù)據(jù)高速傳送的場合。查詢傳送:查詢傳送:簡單實(shí)用,可以避免設(shè)備未準(zhǔn)備好,保證數(shù)據(jù)存取的簡單實(shí)用,可以避免設(shè)備未準(zhǔn)備好,保證數(shù)據(jù)存取的正確有效,缺點(diǎn)是效

19、率較低,正確有效,缺點(diǎn)是效率較低,CPUCPU需要一直等待;需要一直等待;中斷方式中斷方式:是當(dāng)設(shè)備準(zhǔn)備好時再向是當(dāng)設(shè)備準(zhǔn)備好時再向CPUCPU發(fā)中斷申請?zhí)幚?。發(fā)中斷申請?zhí)幚怼?77.2.1 7.2.1 查詢傳送方式查詢傳送方式 1 1.查詢式輸入查詢式輸入CPUCPU與與I/OI/O設(shè)備的工作往往是異步的,很難保證,當(dāng)設(shè)備的工作往往是異步的,很難保證,當(dāng)CPUCPU執(zhí)行輸入操作時,外設(shè)已把要輸入的信息準(zhǔn)備好了;而當(dāng)執(zhí)行輸入操作時,外設(shè)已把要輸入的信息準(zhǔn)備好了;而當(dāng)CPUCPU執(zhí)行輸出時,外設(shè)的寄存器(用于存放執(zhí)行輸出時,外設(shè)的寄存器(用于存放CPUCPU輸出數(shù)據(jù)的寄輸出數(shù)據(jù)的寄存器)一定是空

20、的。所以,存器)一定是空的。所以,通常在程序控制下的傳送方式,通常在程序控制下的傳送方式,在傳送前,必須要查詢外設(shè)的狀態(tài),當(dāng)外設(shè)準(zhǔn)備就緒了才傳在傳送前,必須要查詢外設(shè)的狀態(tài),當(dāng)外設(shè)準(zhǔn)備就緒了才傳送;若未準(zhǔn)備好,則送;若未準(zhǔn)備好,則CPUCPU等待。等待。所以,接口部分除了數(shù)據(jù)傳送的端口以外,還必須有傳所以,接口部分除了數(shù)據(jù)傳送的端口以外,還必須有傳送狀態(tài)信號的端口,其方框圖如圖送狀態(tài)信號的端口,其方框圖如圖7-97-9所示。所示。1819當(dāng)輸入設(shè)備的數(shù)據(jù)已經(jīng)準(zhǔn)備好后便發(fā)出一個選通信號,當(dāng)輸入設(shè)備的數(shù)據(jù)已經(jīng)準(zhǔn)備好后便發(fā)出一個選通信號,一方面把數(shù)據(jù)送入鎖存器,另一方面使一方面把數(shù)據(jù)送入鎖存器,另一

21、方面使D D觸發(fā)器為觸發(fā)器為“1”1”,給,給出出“準(zhǔn)備好準(zhǔn)備好”(Ready)(Ready)的狀態(tài)信號。而數(shù)據(jù)信號與狀態(tài)信號的狀態(tài)信號。而數(shù)據(jù)信號與狀態(tài)信號必須由不同的端口輸至必須由不同的端口輸至CPUCPU數(shù)據(jù)總線。數(shù)據(jù)總線。當(dāng)當(dāng)CPUCPU要由外設(shè)輸入信要由外設(shè)輸入信息時,先輸入狀態(tài)信息,檢查數(shù)據(jù)是否已經(jīng)準(zhǔn)備好,當(dāng)數(shù)據(jù)息時,先輸入狀態(tài)信息,檢查數(shù)據(jù)是否已經(jīng)準(zhǔn)備好,當(dāng)數(shù)據(jù)已經(jīng)準(zhǔn)備好后,才輸入數(shù)據(jù)。讀入數(shù)據(jù)的命令,使?fàn)顟B(tài)信息已經(jīng)準(zhǔn)備好后,才輸入數(shù)據(jù)。讀入數(shù)據(jù)的命令,使?fàn)顟B(tài)信息清清“0”0”。讀入的數(shù)據(jù)是讀入的數(shù)據(jù)是8 8位或位或1616位的,而讀入的狀態(tài)信息往往是位的,而讀入的狀態(tài)信息往往是

22、1 1位的,如圖位的,如圖7-107-10所示。所以,不同外設(shè)的狀態(tài)信息,可以使所示。所以,不同外設(shè)的狀態(tài)信息,可以使用同一個端口,而只要使用不同的位就行。用同一個端口,而只要使用不同的位就行。這種查詢輸入方式的程序流程圖如圖這種查詢輸入方式的程序流程圖如圖7-117-11所示。所示。2021查詢部分的程序如下:查詢部分的程序如下:POLL:POLL:ININALAL,STATUS_PORTSTATUS_PORT;從狀態(tài)端口輸入狀;從狀態(tài)端口輸入狀態(tài)信息態(tài)信息TESTTESTALAL,80H80H;檢查;檢查READYREADY是否為是否為1 1JEJEPOLLPOLL;未;未READYREA

23、DY,循環(huán),循環(huán)ININALAL,DATA_PORTDATA_PORT;READYREADY,從數(shù)據(jù)端口輸入數(shù)據(jù),從數(shù)據(jù)端口輸入數(shù)據(jù)這種這種CPUCPU與外設(shè)的狀態(tài)信息的交換方式,稱為應(yīng)答式,與外設(shè)的狀態(tài)信息的交換方式,稱為應(yīng)答式,狀態(tài)信息稱為狀態(tài)信息稱為“聯(lián)絡(luò)聯(lián)絡(luò)”或或“握手握手”(Handshake)(Handshake)信息。信息。222.2.查詢式輸出查詢式輸出在輸出時,在輸出時,CPUCPU也必須了解外設(shè)的狀態(tài),看外設(shè)是否有空也必須了解外設(shè)的狀態(tài),看外設(shè)是否有空(即外設(shè)不即外設(shè)不正處在輸出狀態(tài),或外設(shè)的數(shù)據(jù)寄存器是空的,可以接收正處在輸出狀態(tài),或外設(shè)的數(shù)據(jù)寄存器是空的,可以接收CPU

24、CPU輸出的信輸出的信息息),若有空,則,若有空,則CPUCPU執(zhí)行輸出指令,否則就等待。執(zhí)行輸出指令,否則就等待。因此,接口電路中也因此,接口電路中也必須要有狀態(tài)信息的端口,其方框圖如圖必須要有狀態(tài)信息的端口,其方框圖如圖7-127-12所示。所示。2324當(dāng)輸出設(shè)備把當(dāng)輸出設(shè)備把CPUCPU要輸出的數(shù)據(jù)輸出以后,發(fā)出一個要輸出的數(shù)據(jù)輸出以后,發(fā)出一個ACK(Acknowledge)ACK(Acknowledge)信號,使信號,使D D觸發(fā)器置觸發(fā)器置“0”0”,即使,即使“Busy”Busy”線為線為0(Empty=Busy)0(Empty=Busy),當(dāng),當(dāng)CPUCPU輸入這個狀態(tài)信息后

25、,知道外設(shè)輸入這個狀態(tài)信息后,知道外設(shè)為為“空空”,于是就執(zhí)行輸出指令。輸出指令執(zhí)行后,由地址,于是就執(zhí)行輸出指令。輸出指令執(zhí)行后,由地址信號和信號和IO/MIO/M及及WRWR相相“與與”后,發(fā)出選通信號,把在數(shù)據(jù)線上后,發(fā)出選通信號,把在數(shù)據(jù)線上輸出的數(shù)據(jù)送至鎖存器。同時,令輸出的數(shù)據(jù)送至鎖存器。同時,令D D觸發(fā)器置觸發(fā)器置“1”1”,它一方,它一方面通知外設(shè)輸出數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以執(zhí)行輸出操作;另一面通知外設(shè)輸出數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以執(zhí)行輸出操作;另一方面在數(shù)據(jù)由輸出設(shè)備輸出以前,一直為方面在數(shù)據(jù)由輸出設(shè)備輸出以前,一直為“1”1”,告訴,告訴CPU(CPUCPU(CPU通過讀狀態(tài)端口而

26、知道通過讀狀態(tài)端口而知道)外設(shè)外設(shè)“Busy”Busy”,阻止,阻止CPUCPU輸輸出新的數(shù)據(jù)。出新的數(shù)據(jù)。接口電路的端口信息為:接口電路的端口信息為:數(shù)據(jù)端口為數(shù)據(jù)端口為8 8位或位或1616位;狀態(tài)位;狀態(tài)信息為信息為1 1位,如圖位,如圖7-137-13所示,查詢式輸出的程序流程圖如圖所示,查詢式輸出的程序流程圖如圖7-147-14所示。所示。2526查詢部分的程序?yàn)椋翰樵儾糠值某绦驗(yàn)椋篜OLL:INPOLL:IN ALAL,STATUS_PORTSTATUS_PORT;從狀態(tài)端口輸入狀態(tài)信息;從狀態(tài)端口輸入狀態(tài)信息 TEST ALTEST AL,80H80H;檢查;檢查BUSYBUSY

27、位位 JNE POLLJNE POLL;BUSYBUSY則循環(huán)等待則循環(huán)等待 MOV ALMOV AL,STORESTORE;否則,從緩沖區(qū)取數(shù)據(jù);否則,從緩沖區(qū)取數(shù)據(jù) OUT DATA_PORTOUT DATA_PORT,ALAL;從數(shù)據(jù)端口輸出;從數(shù)據(jù)端口輸出其中,其中,STATUS_PORTSTATUS_PORT是狀態(tài)端口的符號地址;是狀態(tài)端口的符號地址;DATA_PORTDATA_PORT是數(shù)據(jù)端口的符號地址;是數(shù)據(jù)端口的符號地址;STORESTORE是存放數(shù)據(jù)單元的地址偏移是存放數(shù)據(jù)單元的地址偏移量。量。273.3.一個采用查詢方式的數(shù)據(jù)采集系統(tǒng)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng)一個有一

28、個有8 8個模擬量輸入的數(shù)據(jù)采集系統(tǒng),用查詢的方式個模擬量輸入的數(shù)據(jù)采集系統(tǒng),用查詢的方式與與CPUCPU傳送信息,其電路如圖傳送信息,其電路如圖7-157-15所示。所示。8 8個輸入模擬量,經(jīng)過多路開關(guān)個輸入模擬量,經(jīng)過多路開關(guān)它由端口它由端口4 4輸出的輸出的3 3位二進(jìn)制碼位二進(jìn)制碼(D0(D0、D1D1、D2)D2)控制控制(000(000相應(yīng)于相應(yīng)于A0A0輸入輸入),每,每次送出一個模擬量至次送出一個模擬量至A/DA/D轉(zhuǎn)換器;同時轉(zhuǎn)換器;同時A/DA/D轉(zhuǎn)換器由端口轉(zhuǎn)換器由端口4 4輸輸出的出的D4D4位控制啟動與停止。位控制啟動與停止。2829A/DA/D轉(zhuǎn)換器的轉(zhuǎn)換器的RE

29、ADYREADY信號由端口信號由端口2 2的的D0D0輸送至輸送至CPUCPU數(shù)據(jù)總線,數(shù)據(jù)總線,經(jīng)經(jīng)A/DA/D轉(zhuǎn)換后的數(shù)據(jù)由端口轉(zhuǎn)換后的數(shù)據(jù)由端口3 3傳送至數(shù)據(jù)總線。所以,這樣的傳送至數(shù)據(jù)總線。所以,這樣的一個數(shù)據(jù)采集系統(tǒng),需要用到一個數(shù)據(jù)采集系統(tǒng),需要用到3 3個端口,它們有各自的地址。個端口,它們有各自的地址。實(shí)現(xiàn)這樣的數(shù)據(jù)采集過程的程序?yàn)椋簩?shí)現(xiàn)這樣的數(shù)據(jù)采集過程的程序?yàn)椋?0START:MOV DLSTART:MOV DL,0F8H0F8H;設(shè)置啟動;設(shè)置啟動A/DA/D轉(zhuǎn)換的信號轉(zhuǎn)換的信號 LEA DILEA DI,DSTORDSTOR;存放輸入數(shù)據(jù)緩沖區(qū)的地址偏移量;存放輸入數(shù)

30、據(jù)緩沖區(qū)的地址偏移量DIDIAGAIN:MOV ALAGAIN:MOV AL,DLDL AND AL AND AL,0EFH0EFH;使;使D4=0D4=0 OUT 4 OUT 4,ALAL;停止;停止A/DA/D轉(zhuǎn)換轉(zhuǎn)換 CALL DELAYCALL DELAY;等待停止;等待停止A/DA/D操作的完成操作的完成 MOV ALMOV AL,DLDL OUT 4 OUT 4,ALAL;啟動;啟動A/DA/D,且選擇模擬量,且選擇模擬量A0A0POLL:IN ALPOLL:IN AL,2 2;輸入狀態(tài)信息;輸入狀態(tài)信息 SHR ALSHR AL,1 1 JNC POLL JNC POLL;若未;

31、若未READYREADY,程序循環(huán)等待,程序循環(huán)等待 ININ AL AL,3 3;否則,輸入數(shù)據(jù);否則,輸入數(shù)據(jù) STOSBSTOSB ;存至內(nèi)存存至內(nèi)存 INC DLINC DL;修改多路開關(guān)控制信號,指向下一個模擬量;修改多路開關(guān)控制信號,指向下一個模擬量 JNE AGAINJNE AGAIN;8 8個模擬量未輸入完,循環(huán)已完,執(zhí)行別的程序段個模擬量未輸入完,循環(huán)已完,執(zhí)行別的程序段 317.2.2 7.2.2 中斷傳送方式中斷傳送方式 在上述的查詢傳送方式中,在上述的查詢傳送方式中,CPUCPU要不斷地詢問外設(shè),當(dāng)要不斷地詢問外設(shè),當(dāng)外設(shè)沒有準(zhǔn)備好時,外設(shè)沒有準(zhǔn)備好時,CPUCPU要等

32、待,不能干別的操作,這樣就要等待,不能干別的操作,這樣就浪費(fèi)了浪費(fèi)了CPUCPU的時間。而且許多外設(shè)的速度是較低的,如鍵盤、的時間。而且許多外設(shè)的速度是較低的,如鍵盤、打印機(jī)等,它們輸入或輸出一個數(shù)據(jù)的速度是很慢的,在這打印機(jī)等,它們輸入或輸出一個數(shù)據(jù)的速度是很慢的,在這個過程中,個過程中,CPUCPU可以執(zhí)行大量的指令。為了提高可以執(zhí)行大量的指令。為了提高CPUCPU的效率,的效率,可采用中斷的傳送方式??刹捎弥袛嗟膫魉头绞?。即當(dāng)即當(dāng)CPUCPU需要輸入或輸出時,若外設(shè)的輸入數(shù)據(jù)已存入需要輸入或輸出時,若外設(shè)的輸入數(shù)據(jù)已存入寄存器;在輸出時,若外設(shè)已把上一個數(shù)據(jù)輸出,輸出寄存寄存器;在輸出時

33、,若外設(shè)已把上一個數(shù)據(jù)輸出,輸出寄存器已空,這時由外設(shè)向器已空,這時由外設(shè)向CPUCPU發(fā)出中斷申請,發(fā)出中斷申請,CPUCPU就暫停原來執(zhí)就暫停原來執(zhí)行的程序行的程序(即實(shí)現(xiàn)中斷即實(shí)現(xiàn)中斷),轉(zhuǎn)去執(zhí)行輸入或輸出操作,轉(zhuǎn)去執(zhí)行輸入或輸出操作(中斷服中斷服務(wù)務(wù)),待輸入輸出操作完成后即返回,待輸入輸出操作完成后即返回,CPUCPU再繼續(xù)執(zhí)行原來的再繼續(xù)執(zhí)行原來的程序。程序。這樣就可以大大地提高這樣就可以大大地提高CPUCPU的效率,而且有了中斷的的效率,而且有了中斷的概念,允許概念,允許CPUCPU與外設(shè)與外設(shè)(甚至多個外設(shè)甚至多個外設(shè))同時工作。同時工作。32在中斷傳送方式時的接口電路,其方框

34、圖如圖在中斷傳送方式時的接口電路,其方框圖如圖7-167-16所示。所示。當(dāng)輸入設(shè)備輸入一數(shù)據(jù),發(fā)出選通信號,把數(shù)據(jù)存入鎖存器,又使當(dāng)輸入設(shè)備輸入一數(shù)據(jù),發(fā)出選通信號,把數(shù)據(jù)存入鎖存器,又使D D觸發(fā)器置觸發(fā)器置“1”1”,發(fā)出中斷請求,若中斷是開放的,發(fā)出中斷請求,若中斷是開放的,CPUCPU接受了中斷請求接受了中斷請求信號后,在現(xiàn)行指令執(zhí)行完后,暫停正在執(zhí)行的程序,發(fā)出中斷響應(yīng)信信號后,在現(xiàn)行指令執(zhí)行完后,暫停正在執(zhí)行的程序,發(fā)出中斷響應(yīng)信號號INTAINTA,于是外設(shè)把一個中斷矢量放到數(shù)據(jù)總線上,于是外設(shè)把一個中斷矢量放到數(shù)據(jù)總線上,CPUCPU就轉(zhuǎn)入中斷服務(wù)就轉(zhuǎn)入中斷服務(wù)程序程序即讀入

35、或者輸出數(shù)據(jù),同時清除中斷請求標(biāo)志。當(dāng)中斷處理完即讀入或者輸出數(shù)據(jù),同時清除中斷請求標(biāo)志。當(dāng)中斷處理完后,后,CPUCPU返回被中斷的程序繼續(xù)執(zhí)行。返回被中斷的程序繼續(xù)執(zhí)行。33347.2.3 7.2.3 直接數(shù)據(jù)通道傳送直接數(shù)據(jù)通道傳送(DMA)(DMA)方式方式利用中斷進(jìn)行數(shù)據(jù)傳送,可以大大提高利用中斷進(jìn)行數(shù)據(jù)傳送,可以大大提高CPUCPU的利用率。的利用率。例如某一個外設(shè)例如某一個外設(shè)1 1秒鐘能傳送秒鐘能傳送100100個字節(jié)。若用查詢方式輸入,個字節(jié)。若用查詢方式輸入,則在這則在這1 1秒鐘內(nèi)秒鐘內(nèi)CPUCPU全部用于查詢和傳送;若用中斷方式,全部用于查詢和傳送;若用中斷方式,CPU

36、CPU每傳送一個字節(jié)的服務(wù)程序若需每傳送一個字節(jié)的服務(wù)程序若需100s100s,則傳送,則傳送100100個字個字節(jié),節(jié),CPUCPU只需用只需用10ms10ms,即只占,即只占1 1秒的秒的1/1001/100的時間,這樣的時間,這樣99/10099/100的時間的時間CPUCPU可用于執(zhí)行主程序。可用于執(zhí)行主程序。但是中斷傳送仍然是由但是中斷傳送仍然是由CPUCPU通過程序來傳送的,每次要通過程序來傳送的,每次要保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場需用多條指令,每條指令要有取指和執(zhí)保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場需用多條指令,每條指令要有取指和執(zhí)行時間。這對于一個高速行時間。這對于一個高速I/OI/O設(shè)備,以及成組交換數(shù)

37、據(jù)的情設(shè)備,以及成組交換數(shù)據(jù)的情況,例如磁盤與內(nèi)存間的信息交換,就顯得速度太慢了。況,例如磁盤與內(nèi)存間的信息交換,就顯得速度太慢了。35所以希望用硬件在外設(shè)與內(nèi)存之間直接進(jìn)行數(shù)據(jù)交換所以希望用硬件在外設(shè)與內(nèi)存之間直接進(jìn)行數(shù)據(jù)交換(DMA)(DMA)而不通過而不通過CPUCPU,這樣數(shù)據(jù)傳送的速度的上限就取決于存,這樣數(shù)據(jù)傳送的速度的上限就取決于存儲器的工作速度。儲器的工作速度。但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號線但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號線(例如例如IO/MIO/M、RDRD、WRWR等等)是由是由CPUCPU管理的。管理的。在在DMADMA方式時,就希望方式時

38、,就希望CPUCPU把這些總線讓出來把這些總線讓出來(即即CPUCPU連到連到這些總線上的線處于第三態(tài)這些總線上的線處于第三態(tài)高阻狀態(tài)高阻狀態(tài)),而由,而由DMADMA控制器控制器接管,控制傳送的字節(jié)數(shù),判斷接管,控制傳送的字節(jié)數(shù),判斷DMADMA是否結(jié)束,以及發(fā)出是否結(jié)束,以及發(fā)出DMADMA結(jié)束等信號。這些都是由硬件實(shí)現(xiàn)的。結(jié)束等信號。這些都是由硬件實(shí)現(xiàn)的。36DMADMA控制器必須有以下功能:控制器必須有以下功能:(1)(1)能向能向CPUCPU發(fā)出發(fā)出HOLDHOLD信號;信號;(2)(2)當(dāng)當(dāng)CPUCPU發(fā)出發(fā)出HLDAHLDA信號后,接管和控制總線,進(jìn)入信號后,接管和控制總線,進(jìn)入

39、DMADMA方式;方式;(3)(3)發(fā)出地址信息,能對存儲器尋址以及能修改地址指發(fā)出地址信息,能對存儲器尋址以及能修改地址指針;針;(4)(4)能發(fā)出讀或?qū)懙瓤刂菩盘?;能發(fā)出讀或?qū)懙瓤刂菩盘枺?5)(5)能決定傳送的字節(jié)數(shù),判斷能決定傳送的字節(jié)數(shù),判斷DMADMA傳送是否結(jié)束;傳送是否結(jié)束;(6)(6)發(fā)出發(fā)出DMADMA結(jié)束信號,使結(jié)束信號,使CPUCPU恢復(fù)正常工作狀態(tài)?;謴?fù)正常工作狀態(tài)。通常通常DMADMA的工作流程如圖的工作流程如圖7-177-17所示。所示。3738能實(shí)現(xiàn)上述操作的能實(shí)現(xiàn)上述操作的DMADMA控制器的硬件方框圖如圖控制器的硬件方框圖如圖7-187-18所所示。示。當(dāng)外

40、設(shè)把數(shù)據(jù)準(zhǔn)備好以后,發(fā)出一個選通脈沖使當(dāng)外設(shè)把數(shù)據(jù)準(zhǔn)備好以后,發(fā)出一個選通脈沖使DMADMA請請求觸發(fā)器置求觸發(fā)器置“1”1”,它一方面向控制,它一方面向控制/狀態(tài)端口發(fā)出準(zhǔn)備就緒狀態(tài)端口發(fā)出準(zhǔn)備就緒信號,另一方面向信號,另一方面向DMADMA控制器發(fā)出控制器發(fā)出DMADMA請求。于是請求。于是DMADMA控制器控制器向向CPUCPU發(fā)出發(fā)出HOLDHOLD信號,當(dāng)信號,當(dāng)CPUCPU在現(xiàn)行的機(jī)器周期結(jié)束后響應(yīng)發(fā)在現(xiàn)行的機(jī)器周期結(jié)束后響應(yīng)發(fā)出出HLDAHLDA信號,于是信號,于是DMADMA控制器就接管總線??刂破骶徒庸芸偩€。3940向地址總線發(fā)出地址信號,在數(shù)據(jù)總線上給出數(shù)據(jù),并向地址總線發(fā)

41、出地址信號,在數(shù)據(jù)總線上給出數(shù)據(jù),并給出存儲器寫的命令,就可把由外設(shè)輸入的數(shù)據(jù)寫入存儲器。給出存儲器寫的命令,就可把由外設(shè)輸入的數(shù)據(jù)寫入存儲器。然后修改地址指針,修改計數(shù)器,檢查傳送是否結(jié)束,若未然后修改地址指針,修改計數(shù)器,檢查傳送是否結(jié)束,若未結(jié)束則循環(huán)直至整個數(shù)據(jù)傳送完畢。結(jié)束則循環(huán)直至整個數(shù)據(jù)傳送完畢。DMADMA工作過程波形圖如工作過程波形圖如圖圖7-197-19所示。所示。4142在整個數(shù)據(jù)傳送完后,在整個數(shù)據(jù)傳送完后,DMADMA控制器撤除總線請求信號控制器撤除總線請求信號(HOLD(HOLD變低變低),在下一個,在下一個T T周期的上升沿,就使周期的上升沿,就使HLDAHLDA

42、變低。變低。當(dāng)當(dāng)CPUCPU需要運(yùn)行別的周期時,又取得對總線的控制。需要運(yùn)行別的周期時,又取得對總線的控制。隨著大規(guī)模集成電路技術(shù)的發(fā)展,隨著大規(guī)模集成電路技術(shù)的發(fā)展,DMADMA傳送已不局限于傳送已不局限于存儲器與外設(shè)間的信息交換,而可以擴(kuò)展為在存儲器的兩個存儲器與外設(shè)間的信息交換,而可以擴(kuò)展為在存儲器的兩個區(qū)域之間,或兩種高速的外設(shè)之間進(jìn)行區(qū)域之間,或兩種高速的外設(shè)之間進(jìn)行DMADMA傳送,如圖傳送,如圖7-207-20所示。所示。43441.DMA1.DMA控制器的基本功能控制器的基本功能DMACDMAC是控制存儲器和外部設(shè)備之間直接高速地傳送數(shù)據(jù)是控制存儲器和外部設(shè)備之間直接高速地傳送

43、數(shù)據(jù)的硬件電路,它應(yīng)能取代的硬件電路,它應(yīng)能取代CPUCPU,用硬件完成圖,用硬件完成圖7-177-17所示的各所示的各項(xiàng)功能。具體地說,項(xiàng)功能。具體地說,DMACDMAC應(yīng)具有如下功能:應(yīng)具有如下功能:(1)(1)能接收外設(shè)的請求,向能接收外設(shè)的請求,向CPUCPU發(fā)出發(fā)出DMADMA請求信號;請求信號;(2)(2)當(dāng)當(dāng)CPUCPU發(fā)出發(fā)出DMADMA響應(yīng)信號之后,接管對總線的控制,響應(yīng)信號之后,接管對總線的控制,進(jìn)入進(jìn)入DMADMA方式;方式;(3)(3)能尋址存儲器,即能輸出地址信息和修改地址;能尋址存儲器,即能輸出地址信息和修改地址;(4)(4)能向存儲器和外設(shè)發(fā)出相應(yīng)的讀能向存儲器和

44、外設(shè)發(fā)出相應(yīng)的讀/寫控制信號;寫控制信號;(5)(5)能控制傳送的字節(jié)數(shù),判斷能控制傳送的字節(jié)數(shù),判斷DMADMA傳送是否結(jié)束;傳送是否結(jié)束;(6)(6)在在DMADMA傳送結(jié)束以后,能結(jié)束傳送結(jié)束以后,能結(jié)束DMADMA請求信號,釋放總請求信號,釋放總線,使線,使CPUCPU恢復(fù)正常工作?;謴?fù)正常工作。452.DMA2.DMA傳送方式傳送方式DMACDMAC一般都有兩種基本的一般都有兩種基本的DMADMA傳送方式:傳送方式:(1)(1)單字節(jié)方式:單字節(jié)方式:每次每次DMADMA請求只傳送一個字節(jié)數(shù)據(jù),請求只傳送一個字節(jié)數(shù)據(jù),每傳送完一個字節(jié),都撤除每傳送完一個字節(jié),都撤除DMADMA請求信

45、號釋放總線;請求信號釋放總線;(2)(2)字節(jié)字節(jié)(字符字符)組方式:組方式:每次每次DMADMA請求連續(xù)傳送一個數(shù)請求連續(xù)傳送一個數(shù)據(jù)塊,待規(guī)定長度的數(shù)據(jù)塊傳送完了以后才撤除據(jù)塊,待規(guī)定長度的數(shù)據(jù)塊傳送完了以后才撤除DMADMA請求釋請求釋放總線。放總線。在在DMADMA傳送中,為了使源和目的之間的數(shù)據(jù)傳送取得同傳送中,為了使源和目的之間的數(shù)據(jù)傳送取得同步,不同的步,不同的DMACDMAC在操作時都受到外設(shè)的請求信號或準(zhǔn)備就緒在操作時都受到外設(shè)的請求信號或準(zhǔn)備就緒信號信號READYREADY信號的限制。信號的限制。467.3 DMA 7.3 DMA 控控 制制 器器下面以下面以Intel 8

46、237 DMACIntel 8237 DMAC為例介紹為例介紹DMADMA控制器(控制器(DMACDMAC)的)的工作原理和使用。工作原理和使用。Intel 8237/8237A-5Intel 8237/8237A-5是一種高功能的可編程的是一種高功能的可編程的DMADMA控制控制器,采用器,采用5MHz5MHz的的8237-28237-2傳送速度可以達(dá)到傳送速度可以達(dá)到1.61.6兆字節(jié)兆字節(jié)/秒。秒。477.3.1 DMA7.3.1 DMA控制器的主要功能控制器的主要功能DMADMA控制器有以下主要功能:控制器有以下主要功能:(1)(1)在一個芯片中有四個獨(dú)立的在一個芯片中有四個獨(dú)立的DM

47、ADMA通道通道(8237(8237必須與一必須與一片片8 8位地址鎖存器如位地址鎖存器如82828282連用連用)。PCPC機(jī)系統(tǒng)占用了機(jī)系統(tǒng)占用了8237A8237A通道通道0 0、通道、通道2 2、通道、通道3 3,分別用于,分別用于刷新動態(tài)存儲器、軟盤控制器與存儲器間交換數(shù)據(jù)、硬盤控刷新動態(tài)存儲器、軟盤控制器與存儲器間交換數(shù)據(jù)、硬盤控制器與存儲器交換數(shù)據(jù),只有通道制器與存儲器交換數(shù)據(jù),只有通道1 1未使用,供用戶使用。未使用,供用戶使用。(2)(2)每一個通道的每一個通道的DMADMA請求都可以分別允許和禁止。請求都可以分別允許和禁止。(3)(3)每一個通道的每一個通道的DMADMA請

48、求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可請求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可以是固定的,也可以是循環(huán)的以是固定的,也可以是循環(huán)的(由編程決定由編程決定)。(4)(4)每一個通道一次傳送的最大長度可達(dá)每一個通道一次傳送的最大長度可達(dá)64KB64KB,可以在,可以在存儲器與外設(shè)間進(jìn)行數(shù)據(jù)傳送,也可以在存儲器的兩個區(qū)域存儲器與外設(shè)間進(jìn)行數(shù)據(jù)傳送,也可以在存儲器的兩個區(qū)域之間進(jìn)行傳送。之間進(jìn)行傳送。48(5)8237(5)8237的的DMADMA傳送有以下四種方式:傳送有以下四種方式:單字節(jié)傳送方式;單字節(jié)傳送方式;數(shù)據(jù)塊傳送方式;數(shù)據(jù)塊傳送方式;請求傳送方式;請求傳送方式;級連方式。級連方式。在每一種方式下,都能接收外設(shè)

49、的請求信號在每一種方式下,都能接收外設(shè)的請求信號DREQDREQ,向外,向外設(shè)發(fā)出響應(yīng)信號設(shè)發(fā)出響應(yīng)信號DACKDACK,向,向CPUCPU發(fā)出發(fā)出DMADMA請求信號請求信號HRQHRQ,當(dāng)接收,當(dāng)接收到到CPUCPU的響應(yīng)信號的響應(yīng)信號HLDAHLDA后就可以接管總線,進(jìn)行后就可以接管總線,進(jìn)行DMADMA傳送。每傳送。每傳送一個數(shù)據(jù),修改地址指針傳送一個數(shù)據(jù),修改地址指針(可以編程規(guī)定為增量修改或可以編程規(guī)定為增量修改或減量修改減量修改),字節(jié)數(shù)減,字節(jié)數(shù)減1 1,當(dāng)規(guī)定的傳送長度,當(dāng)規(guī)定的傳送長度(字節(jié)數(shù)字節(jié)數(shù))減到零減到零時,會發(fā)出時,會發(fā)出TCTC信號結(jié)束信號結(jié)束DMADMA傳送或

50、重新初始化。傳送或重新初始化。49(6)(6)有一個結(jié)束處理的輸入信號有一個結(jié)束處理的輸入信號EOPEOP,允許外界用此輸,允許外界用此輸入端來結(jié)束入端來結(jié)束DMADMA傳送或重新初始化。傳送或重新初始化。(7)8237(7)8237可以級連,任意擴(kuò)展通道數(shù)??梢约夁B,任意擴(kuò)展通道數(shù)。507.3.2 82377.3.2 8237的結(jié)構(gòu)的結(jié)構(gòu)Intel 8237Intel 8237的方框圖如圖的方框圖如圖7-217-21所示。圖中的通道部分只所示。圖中的通道部分只畫出了一個通道的情況,即每個通道都有一個基地址寄存器畫出了一個通道的情況,即每個通道都有一個基地址寄存器(16(16位位),基字節(jié)數(shù)計

51、數(shù)器,基字節(jié)數(shù)計數(shù)器(16(16位位),現(xiàn)行地址寄存器,現(xiàn)行地址寄存器(16(16位位)和和現(xiàn)行字節(jié)數(shù)計數(shù)器現(xiàn)行字節(jié)數(shù)計數(shù)器(16(16位位),每一個通道都有一個,每一個通道都有一個6 6位的模式位的模式寄存器以控制不同的工作模式,所以,寄存器以控制不同的工作模式,所以,82378237的內(nèi)部寄存器的的內(nèi)部寄存器的類型和數(shù)量如表類型和數(shù)量如表7-17-1所示。所示。515282378237的結(jié)構(gòu)中包含了三個基本的控制邏輯塊:的結(jié)構(gòu)中包含了三個基本的控制邏輯塊:(1)(1)時序控制邏輯塊時序控制邏輯塊根據(jù)編程規(guī)定的根據(jù)編程規(guī)定的DMACDMAC的工作模式,產(chǎn)生包括的工作模式,產(chǎn)生包括DMADMA

52、請求,請求,DMADMA傳送以及傳送以及DMADMA結(jié)束所需要的內(nèi)部時序和外部信號。結(jié)束所需要的內(nèi)部時序和外部信號。(2)(2)程序命令控制塊程序命令控制塊對在對在DMADMA請求服務(wù)之前請求服務(wù)之前CPUCPU編程時所給定的命令字和模式編程時所給定的命令字和模式控制字進(jìn)行譯碼,以確定控制字進(jìn)行譯碼,以確定DMADMA服務(wù)的類型。服務(wù)的類型。(3)(3)優(yōu)先權(quán)編碼邏輯優(yōu)先權(quán)編碼邏輯對同時有請求的通道進(jìn)行優(yōu)先權(quán)編碼,確定哪個通道的對同時有請求的通道進(jìn)行優(yōu)先權(quán)編碼,確定哪個通道的優(yōu)先權(quán)最高。在優(yōu)先權(quán)最高。在 82378237中,通道的優(yōu)先權(quán)可以是固定的,也中,通道的優(yōu)先權(quán)可以是固定的,也可以是旋轉(zhuǎn)

53、的??梢允切D(zhuǎn)的。另外還有緩沖器。另外還有緩沖器。82378237的數(shù)據(jù)引線、地址引線都有三態(tài)的數(shù)據(jù)引線、地址引線都有三態(tài)緩沖器,因而可以接管和釋放總線。緩沖器,因而可以接管和釋放總線。537.3.3 82377.3.3 8237的工作周期的工作周期82378237在設(shè)計時規(guī)定它有兩種主要的工作周期,即空閑周在設(shè)計時規(guī)定它有兩種主要的工作周期,即空閑周期和有效周期。每一個周期又由若干個時鐘周期組成。期和有效周期。每一個周期又由若干個時鐘周期組成。1.1.空閑周期空閑周期當(dāng)當(dāng)82378237的任一通道在無請求時就進(jìn)入空閑周期的任一通道在無請求時就進(jìn)入空閑周期(Idle(Idle Cycle)Cy

54、cle)。在空閑周期,。在空閑周期,82378237始終執(zhí)行始終執(zhí)行S SI I狀態(tài),在每一個時鐘狀態(tài),在每一個時鐘周期都采樣通道的請求輸入線周期都采樣通道的請求輸入線DREQDREQ。只要無請求就始終停留。只要無請求就始終停留在在S SI I狀態(tài)。狀態(tài)。在在S SI I狀態(tài),可由狀態(tài),可由CPUCPU對對82378237編程或從編程或從82378237讀取狀態(tài)。讀取狀態(tài)。82378237在在S SI I狀態(tài)也始終采樣選片信號狀態(tài)也始終采樣選片信號CSCS,只要,只要CSCS信號變?yōu)橛行?,信號變?yōu)橛行В瑒t則CPUCPU要對要對82378237進(jìn)行讀進(jìn)行讀/寫操作。寫操作。當(dāng)當(dāng)82378237采

55、樣到采樣到CSCS為低為低(有效有效)而而HRQHRQ也為低也為低(無效無效),則進(jìn),則進(jìn)入程序狀態(tài),入程序狀態(tài),CPUCPU可以對可以對82378237的內(nèi)部寄存器進(jìn)行寫入操作,的內(nèi)部寄存器進(jìn)行寫入操作,實(shí)現(xiàn)對實(shí)現(xiàn)對82378237的編程或者改變的編程或者改變82378237的工作狀態(tài)(的工作狀態(tài)(82378237初始化)。初始化)。54在這種情況下,由控制信號在這種情況下,由控制信號IORIOR和和IOWIOW、地址信號、地址信號A3A3A0A0來選擇來選擇82378237內(nèi)部不同的寄存器。內(nèi)部不同的寄存器。由于由于82378237內(nèi)部的地址寄存器和字節(jié)數(shù)計數(shù)器都是內(nèi)部的地址寄存器和字節(jié)數(shù)

56、計數(shù)器都是1616位的,位的,而數(shù)據(jù)線卻是而數(shù)據(jù)線卻是8 8位的,所以,在位的,所以,在82378237的內(nèi)部有一個觸發(fā)器稱的內(nèi)部有一個觸發(fā)器稱為高為高/低觸發(fā)器,由它來控制寫入低觸發(fā)器,由它來控制寫入1616位寄存器的高位寄存器的高8 8位還是低位還是低 8 8位。位。82378237還具有一些軟件命令,這些命令是通過對地址線還具有一些軟件命令,這些命令是通過對地址線A3A3A0A0和和IOWIOW、CSCS信號的譯碼來決定的,不使用數(shù)據(jù)總線。信號的譯碼來決定的,不使用數(shù)據(jù)總線。2.2.有效周期有效周期(Active Cycles)(Active Cycles)當(dāng)當(dāng)82378237在在S S

57、I I狀態(tài)采樣到外設(shè)有請求狀態(tài)采樣到外設(shè)有請求DREQ DREQ,就脫離,就脫離S SI I而進(jìn)而進(jìn)入入S S0 0狀態(tài),狀態(tài),S S0 0狀態(tài)是狀態(tài)是DMADMA服務(wù)的第一個狀態(tài),在這個狀態(tài)服務(wù)的第一個狀態(tài),在這個狀態(tài)82378237已經(jīng)接收了外設(shè)的請求,向已經(jīng)接收了外設(shè)的請求,向CPUCPU發(fā)出了發(fā)出了DMADMA請求信號請求信號HRQHRQ,但,但尚未收到尚未收到CPUCPU的的 DMADMA響應(yīng)信號響應(yīng)信號HLDAHLDA。當(dāng)接收到。當(dāng)接收到HLDAHLDA就使就使82378237進(jìn)入工作狀態(tài),開始進(jìn)入工作狀態(tài),開始DMADMA傳送。傳送。55工作狀態(tài)是由工作狀態(tài)是由S S1 1、S

58、S2 2、S S3 3、S S4 4組成以完成數(shù)據(jù)傳送,若組成以完成數(shù)據(jù)傳送,若外設(shè)的數(shù)據(jù)傳送速度較慢,不能在外設(shè)的數(shù)據(jù)傳送速度較慢,不能在S S4 4之前完成,則可由之前完成,則可由ReadyReady信號線在信號線在S S2 2或或S S3 3與與S S4 4之間插入之間插入S SW W狀態(tài)。狀態(tài)。在存儲器與存儲器之間的傳送,需要完成從存儲器讀和在存儲器與存儲器之間的傳送,需要完成從存儲器讀和存儲器寫的操作,所以每一次傳送需要存儲器寫的操作,所以每一次傳送需要8 8個時鐘周期,在前個時鐘周期,在前4 4個周期個周期S S1111、S S1212、S S1313、S S1414完成從存儲器讀

59、的操作,后完成從存儲器讀的操作,后4 4個周期個周期S S2121、S S2222、S S2323、S2S24 4完成存儲器寫操作。完成存儲器寫操作。567.3.4 8237A7.3.4 8237A引腳與內(nèi)部結(jié)構(gòu)引腳與內(nèi)部結(jié)構(gòu)A3A3A0(35A0(35腳腳3232腳腳):低:低8 8位地址線的低位地址線的低4 4位,雙向,三位,雙向,三態(tài)。當(dāng)態(tài)。當(dāng)CPUCPU控制總線時,控制總線時,82378237作為一般作為一般I/OI/O接口,接口,A3A3A0A0為輸為輸入,作為選中入,作為選中8237A8237A內(nèi)部寄存器的地址選擇線。當(dāng)內(nèi)部寄存器的地址選擇線。當(dāng)8237A8237A控制控制總線時,

60、總線時,A3A3A0A0為輸出,作為選中存儲器的低為輸出,作為選中存儲器的低4 4位地址。位地址。A7A7A4(40A4(40腳腳3737腳腳):低:低8 8位地址線的高位地址線的高4 4位,輸出,三位,輸出,三態(tài)。當(dāng)態(tài)。當(dāng)8237A8237A控制總線時,控制總線時,A7A7A4A4作為被訪問存儲器單元的作為被訪問存儲器單元的地址信號地址信號A7A7A4A4。57BD7BD7BD0(21BD0(21腳腳2323腳、腳、2626腳腳3030腳腳):8 8位數(shù)據(jù)線,雙向,三位數(shù)據(jù)線,雙向,三態(tài)。作用有三:態(tài)。作用有三:第一是當(dāng)?shù)谝皇钱?dāng)8237A8237A空閑,即空閑,即CPUCPU控制總線時,控制

61、總線時,BD7BD7BD0BD0作為雙向作為雙向數(shù)據(jù)線,由數(shù)據(jù)線,由CPUCPU讀讀/寫寫8237A8237A內(nèi)部寄存器;內(nèi)部寄存器;第二是當(dāng)?shù)诙钱?dāng)8237A8237A控制總線時,控制總線時,BD7BD7BD0BD0輸出被訪問存儲器單元輸出被訪問存儲器單元的高的高8 8位地址信號位地址信號A15A15A8A8,并由,并由ADSTBADSTB信號將這些地址信息存信號將這些地址信息存入地址鎖存器。入地址鎖存器。第三是在進(jìn)行第三是在進(jìn)行DMADMA操作時,讀周期經(jīng)操作時,讀周期經(jīng)DB7DB7DB0DB0線把源存儲器的線把源存儲器的數(shù)據(jù)送入數(shù)據(jù)緩沖器保存,在寫周期再把數(shù)據(jù)緩沖器保存的數(shù)數(shù)據(jù)送入數(shù)據(jù)緩

62、沖器保存,在寫周期再把數(shù)據(jù)緩沖器保存的數(shù)據(jù)經(jīng)據(jù)經(jīng)DB7DB7DB0DB0傳送到目的存儲器。傳送到目的存儲器。ADSTB(8ADSTB(8腳腳):地址選通信號,輸出,高電平有效。當(dāng):地址選通信號,輸出,高電平有效。當(dāng)ADSTBADSTB1 1時,將保存在時,將保存在8237A8237A緩沖器的高緩沖器的高8 8位地址信號通過位地址信號通過BD7BD7BD0BD0傳送傳送到片外地址鎖存器。到片外地址鎖存器。58 CSCS片選信號片選信號(11(11腳腳):輸入,低電平有效。當(dāng):輸入,低電平有效。當(dāng)8237A8237A空閑時,空閑時,僅作為一個僅作為一個I/OI/O設(shè)備時,為設(shè)備時,為8237A82

63、37A的片選信號。當(dāng)該信號有效的片選信號。當(dāng)該信號有效時,時,CPUCPU向向8237A8237A寫入工作方式控制字、操作方式控制字,或?qū)懭牍ぷ鞣绞娇刂谱?、操作方式控制字,或讀入狀態(tài)寄存器中的內(nèi)容。讀入狀態(tài)寄存器中的內(nèi)容。IORIOR(1(1腳腳):I/OI/O讀信號,雙向,三態(tài),低電平有效。當(dāng)讀信號,雙向,三態(tài),低電平有效。當(dāng)CPUCPU控制總線時,為輸入信號,控制總線時,為輸入信號,CPUCPU讀讀8237A8237A內(nèi)部寄存器的狀態(tài)內(nèi)部寄存器的狀態(tài)信息;當(dāng)信息;當(dāng)8237A8237A控制總線時,為輸出信號,與配合實(shí)現(xiàn)控制總線時,為輸出信號,與配合實(shí)現(xiàn)DMADMA寫寫操作。操作。IOWIO

64、W(2(2腳腳):I/O I/O寫信號,雙向,三態(tài),低電平有效。當(dāng)寫信號,雙向,三態(tài),低電平有效。當(dāng)CPUCPU控制總線時,為輸入信號,控制總線時,為輸入信號,CPUCPU利用它把數(shù)據(jù)寫入利用它把數(shù)據(jù)寫入8237A8237A內(nèi)內(nèi)部寄存器;當(dāng)部寄存器;當(dāng)8237A8237A控制總線時,為輸出信號,與配合實(shí)現(xiàn)控制總線時,為輸出信號,與配合實(shí)現(xiàn)DMADMA讀操作。讀操作。59CLK(12CLK(12腳腳):時鐘信號,輸入。:時鐘信號,輸入。8237A8237A的時鐘頻率為的時鐘頻率為3MHz3MHz,用,用于控制芯片內(nèi)部定時和數(shù)據(jù)傳送速率。于控制芯片內(nèi)部定時和數(shù)據(jù)傳送速率。RESET(2RESET(

65、2腳腳):復(fù)位信號,輸入,高電平有效。當(dāng)芯片被復(fù)位時:復(fù)位信號,輸入,高電平有效。當(dāng)芯片被復(fù)位時,屏蔽寄存器被置,屏蔽寄存器被置1 1,其余寄存器置,其余寄存器置0 0,8237A8237A處于空閑狀態(tài),處于空閑狀態(tài),即即4 4個通道的個通道的DMADMA請求被禁止,僅作為一般請求被禁止,僅作為一般I/OI/O設(shè)備。設(shè)備。READY(6READY(6腳腳):準(zhǔn)備好信號,輸入,高電平有效。當(dāng)進(jìn)行:準(zhǔn)備好信號,輸入,高電平有效。當(dāng)進(jìn)行DMADMA操操作,存儲器或外部設(shè)備的速度較慢,來不及接收或發(fā)送數(shù)據(jù)時作,存儲器或外部設(shè)備的速度較慢,來不及接收或發(fā)送數(shù)據(jù)時,外部電路使,外部電路使READY REA

66、DY 為低電平,這時為低電平,這時DMADMA控制器會在總線傳送控制器會在總線傳送周期,自動插入等待周期,直到周期,自動插入等待周期,直到READYREADY變成高電平。變成高電平。60AEN(9AEN(9腳腳):地址允許信號,輸出,高電平有效。訪問:地址允許信號,輸出,高電平有效。訪問DMADMA時時AENAEN1 1,訪問外設(shè)時,訪問外設(shè)時AENAEN0 0。當(dāng)。當(dāng)AENAEN1 1時,它把外部地址鎖時,它把外部地址鎖存器中的高存器中的高8 8位地址送入地址總線,與位地址送入地址總線,與8237A8237A芯片輸出的低芯片輸出的低8 8位位地址組成地址組成1616位地址。位地址。DREQ3DREQ3DREQ0(16DREQ0(16腳腳1919腳腳):DMADMA請求信號,輸入,有效電平請求信號,輸入,有效電平可由工作方式控制字確定。他們分別是連接到四個通道的外可由工作方式控制字確定。他們分別是連接到四個通道的外設(shè),向設(shè),向DMADMA控制器請求控制器請求DMADMA操作的請求信號。該信號要保持有操作的請求信號。該信號要保持有效電平一直到效電平一直到8237A8237A控制器作出控制

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲