微型計(jì)算機(jī)原理及應(yīng)用:第7章輸入和輸出
-
資源ID:192658276
資源大?。?span id="0s8wmcc" class="font-tahoma">1.48MB
全文頁(yè)數(shù):99頁(yè)
- 資源格式: PPTX
下載積分:40積分
快捷下載

會(huì)員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。
|
微型計(jì)算機(jī)原理及應(yīng)用:第7章輸入和輸出
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ì)算機(jī)系統(tǒng)的重要組成部分。程序、原始數(shù)據(jù)和輸入和輸出設(shè)備是計(jì)算機(jī)系統(tǒng)的重要組成部分。程序、原始數(shù)據(jù)和各種現(xiàn)場(chǎng)采集到的資料和信息,都要通過輸入設(shè)備輸入至計(jì)算機(jī)。計(jì)算結(jié)各種現(xiàn)場(chǎng)采集到的資料和信息,都要通過輸入設(shè)備輸入至計(jì)算機(jī)。計(jì)算結(jié)果或各種控制信號(hào)要輸出給各種輸出設(shè)備,以便顯示、打印和實(shí)現(xiàn)各種控果或各種控制信號(hào)要輸出給各種輸出設(shè)備,以便顯示、打印和實(shí)現(xiàn)各種控制動(dòng)作。常用的輸入設(shè)備有鍵盤制動(dòng)作。常用的輸入設(shè)備有鍵盤(Key Board)(Key Board)、鼠標(biāo)、掃描儀,或者經(jīng)過、鼠標(biāo)、掃描儀,或者經(jīng)過A/D(A/D(模模/數(shù)數(shù))轉(zhuǎn)換的現(xiàn)場(chǎng)信息等。轉(zhuǎn)換的現(xiàn)場(chǎng)信息等。常用的輸出設(shè)備有常用的輸出設(shè)備有CRTCRT、各種行打印機(jī)、各種行打印機(jī)(Line Printer)(Line Printer)、繪圖儀,以、繪圖儀,以及經(jīng)過及經(jīng)過D/A(D/A(數(shù)數(shù)/模模)轉(zhuǎn)換的各種控制信號(hào)。近年來,多媒體技術(shù)有了很大發(fā)轉(zhuǎn)換的各種控制信號(hào)。近年來,多媒體技術(shù)有了很大發(fā)展,聲音和圖像的輸入和輸出也是重要的展,聲音和圖像的輸入和輸出也是重要的I/OI/O設(shè)備。設(shè)備。CPUCPU與外部設(shè)備與外部設(shè)備(Peripheral)(Peripheral)交換信息也是計(jì)算機(jī)系統(tǒng)中十分重要和十分頻繁的操作。交換信息也是計(jì)算機(jī)系統(tǒng)中十分重要和十分頻繁的操作。外部設(shè)備的種類繁多,可以是機(jī)械式、電動(dòng)式、電子式以及其他形外部設(shè)備的種類繁多,可以是機(jī)械式、電動(dòng)式、電子式以及其他形式。輸入的信息也不相同,可以是數(shù)字量、模擬量式。輸入的信息也不相同,可以是數(shù)字量、模擬量(模擬的電壓、電流模擬的電壓、電流),也可以是開關(guān)量也可以是開關(guān)量(兩個(gè)狀態(tài)的信息兩個(gè)狀態(tài)的信息)。而且輸入信息的速度也有很大區(qū)別,。而且輸入信息的速度也有很大區(qū)別,可以是手動(dòng)的鍵盤輸入可以是手動(dòng)的鍵盤輸入(每個(gè)字符輸入的速度為秒級(jí)每個(gè)字符輸入的速度為秒級(jí)),也可以是磁盤輸入,也可以是磁盤輸入(它能以它能以1Mb/s1Mb/s的速率傳送的速率傳送)。所以。所以CPUCPU與外設(shè)之間的連接與信息交換是比較與外設(shè)之間的連接與信息交換是比較復(fù)雜的。復(fù)雜的。27.1.1 7.1.1 輸入輸出的尋址方式輸入輸出的尋址方式CPUCPU尋址外設(shè)可以有兩種方式:尋址外設(shè)可以有兩種方式:存儲(chǔ)器對(duì)應(yīng)輸入輸出方存儲(chǔ)器對(duì)應(yīng)輸入輸出方式和端口尋址的輸入輸出方式。式和端口尋址的輸入輸出方式。1.1.存儲(chǔ)器對(duì)應(yīng)輸入輸出方式存儲(chǔ)器對(duì)應(yīng)輸入輸出方式(I/OI/O統(tǒng)一編址統(tǒng)一編址)在這種方式中,把一個(gè)外設(shè)端口作為存儲(chǔ)器的一個(gè)單元在這種方式中,把一個(gè)外設(shè)端口作為存儲(chǔ)器的一個(gè)單元來對(duì)待,故每一個(gè)外設(shè)端口占有存儲(chǔ)器的一個(gè)地址。從外部來對(duì)待,故每一個(gè)外設(shè)端口占有存儲(chǔ)器的一個(gè)地址。從外部設(shè)備輸入一個(gè)數(shù)據(jù),作為一次存儲(chǔ)器讀的操作;而向外部設(shè)設(shè)備輸入一個(gè)數(shù)據(jù),作為一次存儲(chǔ)器讀的操作;而向外部設(shè)備輸出一個(gè)數(shù)據(jù),則作為一次存儲(chǔ)器寫的操作。備輸出一個(gè)數(shù)據(jù),則作為一次存儲(chǔ)器寫的操作。3這種方式的優(yōu)點(diǎn)是:這種方式的優(yōu)點(diǎn)是:(1)CPU(1)CPU對(duì)外設(shè)的操作可使用全部的存儲(chǔ)器操作指令,對(duì)外設(shè)的操作可使用全部的存儲(chǔ)器操作指令,故指令多,使用方便。如可對(duì)外設(shè)中的數(shù)據(jù)故指令多,使用方便。如可對(duì)外設(shè)中的數(shù)據(jù)(存于外設(shè)的寄存于外設(shè)的寄存器中存器中)進(jìn)行算術(shù)和邏輯運(yùn)算,進(jìn)行循環(huán)或移位等。進(jìn)行算術(shù)和邏輯運(yùn)算,進(jìn)行循環(huán)或移位等。(2)(2)內(nèi)存和外設(shè)的地址分布圖是同一個(gè)。內(nèi)存和外設(shè)的地址分布圖是同一個(gè)。(3)(3)不需要專門的輸入輸出指令以及區(qū)分是存儲(chǔ)器還是不需要專門的輸入輸出指令以及區(qū)分是存儲(chǔ)器還是I/OI/O操作的控制信號(hào)。操作的控制信號(hà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í),它的地址要少得多。所以,在用直接尋址方式尋址外設(shè)時(shí),它的地址字節(jié),通??偸且葘ぶ穬?nèi)存單元的地址少一個(gè)字節(jié),因而字節(jié),通??偸且葘ぶ穬?nèi)存單元的地址少一個(gè)字節(jié),因而節(jié)省了指令的存儲(chǔ)空間,縮短了指令的執(zhí)行時(shí)間。節(jié)省了指令的存儲(chǔ)空間,縮短了指令的執(zhí)行時(shí)間。42.2.端口尋址的輸入輸出方式端口尋址的輸入輸出方式(I/OI/O獨(dú)立編址獨(dú)立編址)在這種工作方式中,在這種工作方式中,CPUCPU有專門的有專門的I/OI/O指令,用地址來區(qū)指令,用地址來區(qū)分不同的外設(shè)。但要注意,實(shí)際上是以端口分不同的外設(shè)。但要注意,實(shí)際上是以端口(Port)(Port)作為地址作為地址的單元,因?yàn)橐粋€(gè)外設(shè)不僅有數(shù)據(jù)寄存器還有狀態(tài)寄存器和的單元,因?yàn)橐粋€(gè)外設(shè)不僅有數(shù)據(jù)寄存器還有狀態(tài)寄存器和控制命令寄存器,它們各需要一個(gè)端口才能加以區(qū)分,故一控制命令寄存器,它們各需要一個(gè)端口才能加以區(qū)分,故一個(gè)外設(shè)往往需要多個(gè)端口地址。個(gè)外設(shè)往往需要多個(gè)端口地址。CPUCPU用地址來選擇外設(shè)。通用地址來選擇外設(shè)。通常專用的常專用的I/OI/O指令,只用一個(gè)字節(jié)作為端口地址,故最多可指令,只用一個(gè)字節(jié)作為端口地址,故最多可尋址尋址256256個(gè)端口。個(gè)端口。在在IA-32IA-32結(jié)構(gòu)微處理器中,例如在結(jié)構(gòu)微處理器中,例如在Intel 8088Intel 8088和和80868086中,中,若用直接尋址方式尋址外設(shè),則仍用一個(gè)字節(jié)的地址,可尋若用直接尋址方式尋址外設(shè),則仍用一個(gè)字節(jié)的地址,可尋址址256256個(gè)端口;而用個(gè)端口;而用DXDX間接尋址外設(shè)時(shí),則端口地址是間接尋址外設(shè)時(shí),則端口地址是1616位位的,可尋址的,可尋址2 21616=64K=64K個(gè)端口地址。個(gè)端口地址。在用端口尋址方式尋址外設(shè)的在用端口尋址方式尋址外設(shè)的CPUCPU中,必須要有控制線中,必須要有控制線來區(qū)分是尋址內(nèi)存還是尋址外設(shè)。來區(qū)分是尋址內(nèi)存還是尋址外設(shè)。57.1.2 CPU7.1.2 CPU與與I/OI/O設(shè)備之間的接口信息設(shè)備之間的接口信息CPUCPU與一個(gè)外設(shè)之間交換的信息,如圖與一個(gè)外設(shè)之間交換的信息,如圖7-17-1所示。所示。傳送的信息傳送的信息1.1.數(shù)據(jù)數(shù)據(jù)(Data)(Data)在微型計(jì)算機(jī)中,數(shù)據(jù)通常為在微型計(jì)算機(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ì)算機(jī)用于控制時(shí),大量的現(xiàn)場(chǎng)信息經(jīng)過傳感器把非當(dāng)計(jì)算機(jī)用于控制時(shí),大量的現(xiàn)場(chǎng)信息經(jīng)過傳感器把非電量電量(例如溫度、壓力、流量、位移等例如溫度、壓力、流量、位移等)轉(zhuǎn)換為電量,并經(jīng)放轉(zhuǎn)換為電量,并經(jīng)放大即得到模擬電壓或電流。這些模擬量必須先經(jīng)過大即得到模擬電壓或電流。這些模擬量必須先經(jīng)過A/DA/D轉(zhuǎn)換轉(zhuǎn)換才能輸入計(jì)算機(jī);計(jì)算機(jī)的控制輸出也必須先經(jīng)過才能輸入計(jì)算機(jī);計(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)量是兩個(gè)狀態(tài)的量,如電機(jī)的運(yùn)轉(zhuǎn)與停止,開關(guān)的開關(guān)量是兩個(gè)狀態(tài)的量,如電機(jī)的運(yùn)轉(zhuǎn)與停止,開關(guān)的閉合與斷開,閥門的打開和關(guān)閉等。這些量只要用一位二進(jìn)閉合與斷開,閥門的打開和關(guān)閉等。這些量只要用一位二進(jìn)制數(shù)即可表示,故字長(zhǎng)制數(shù)即可表示,故字長(zhǎng)8 8位的機(jī)器一次輸入或輸出可以控制位的機(jī)器一次輸入或輸出可以控制8 8個(gè)這樣的開關(guān)量。個(gè)這樣的開關(guān)量。72.2.狀態(tài)信息狀態(tài)信息(Status)(Status)在輸入時(shí),有輸入設(shè)備的狀態(tài)信息是否準(zhǔn)備好在輸入時(shí),有輸入設(shè)備的狀態(tài)信息是否準(zhǔn)備好(Ready)(Ready);在輸出時(shí),有輸出設(shè)備的狀態(tài)信息是否有空在輸出時(shí),有輸出設(shè)備的狀態(tài)信息是否有空(Empty)(Empty),若輸,若輸出設(shè)備正在輸出信息,則以忙出設(shè)備正在輸出信息,則以忙(Busy)(Busy)指示等。指示等。3.3.控制信息控制信息(Control)(Control)例如控制輸入輸出設(shè)備啟動(dòng)或停止等信息。例如控制輸入輸出設(shè)備啟動(dòng)或停止等信息。狀態(tài)信息和控制信息與數(shù)據(jù)是不同性質(zhì)的信息,必須要狀態(tài)信息和控制信息與數(shù)據(jù)是不同性質(zhì)的信息,必須要分別傳送。但在大部分微型計(jì)算機(jī)中分別傳送。但在大部分微型計(jì)算機(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ī)的接口計(jì)算機(jī)的接口910PCPC機(jī)接口卡端口地址機(jī)接口卡端口地址(0100H-03FFH)(0100H-03FFH)11數(shù)據(jù)需要一個(gè)端口;外設(shè)的狀態(tài)需要一個(gè)端口,數(shù)據(jù)需要一個(gè)端口;外設(shè)的狀態(tài)需要一個(gè)端口,CPUCPU才才能把它讀入,了解外設(shè)的運(yùn)行情況;能把它讀入,了解外設(shè)的運(yùn)行情況;CPUCPU的控制信號(hào)往往也的控制信號(hào)往往也需要一個(gè)端口,以控制外設(shè)的正常工作。所以,一個(gè)外設(shè)往需要一個(gè)端口,以控制外設(shè)的正常工作。所以,一個(gè)外設(shè)往往要幾個(gè)端口地址,往要幾個(gè)端口地址,CPUCPU尋址的是端口,而不是籠統(tǒng)的外設(shè)。尋址的是端口,而不是籠統(tǒng)的外設(shè)。一個(gè)端口的寄存器往往是一個(gè)端口的寄存器往往是8 8位的,通常一個(gè)外設(shè)的數(shù)據(jù)端口位的,通常一個(gè)外設(shè)的數(shù)據(jù)端口是是8 8位的,而狀態(tài)與控制端口只用其中的位的,而狀態(tài)與控制端口只用其中的1 1位或位或2 2位,故不同位,故不同的外設(shè)的狀態(tài)或控制信息可以共用一個(gè)端口。的外設(shè)的狀態(tài)或控制信息可以共用一個(gè)端口。127.1.3 CPU7.1.3 CPU的輸入輸出時(shí)序的輸入輸出時(shí)序在最大組態(tài)下,在最大組態(tài)下,80868086的基本輸入輸出總線周期的時(shí)序與的基本輸入輸出總線周期的時(shí)序與存儲(chǔ)器讀寫的時(shí)序是類似的。但是,通常存儲(chǔ)器讀寫的時(shí)序是類似的。但是,通常I/OI/O接口電路的工接口電路的工作速度較慢,往往需要插入等待狀態(tài)。所以,基本作速度較慢,往往需要插入等待狀態(tài)。所以,基本I/OI/O操作操作由由T1T1、T2T2、T3T3、T TW W、T4T4組成,占用組成,占用5 5個(gè)時(shí)鐘周期,如圖個(gè)時(shí)鐘周期,如圖7-37-3所所示。示。13147.1.4 CPU7.1.4 CPU與接口電路之間數(shù)據(jù)傳送的與接口電路之間數(shù)據(jù)傳送的形式形式CPUCPU與外設(shè)的信息交換稱為通信與外設(shè)的信息交換稱為通信(Communication)(Communication)?;?。基本的通信方式有兩種:的通信方式有兩種:并行通信并行通信數(shù)據(jù)的各位同時(shí)傳送;數(shù)據(jù)的各位同時(shí)傳送;串行通信串行通信數(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ù)、狀態(tài)信號(hào)和控制命令)傳送時(shí),為與外設(shè)進(jìn)行信息(數(shù)據(jù)、狀態(tài)信號(hào)和控制命令)傳送時(shí),為了保證傳送的可靠性和提高工作效率,有了保證傳送的可靠性和提高工作效率,有幾種不同的傳送方式。幾種不同的傳送方式。無(wú)條件傳送方式,常用于簡(jiǎn)單設(shè)備,處理器認(rèn)為它們總是處于無(wú)條件傳送方式,常用于簡(jiǎn)單設(shè)備,處理器認(rèn)為它們總是處于就緒狀態(tài),隨時(shí)進(jìn)行數(shù)據(jù)傳送。就緒狀態(tài),隨時(shí)進(jìn)行數(shù)據(jù)傳送。程序查詢方式:處理器首先查詢外設(shè)工作狀態(tài),在外設(shè)就緒時(shí)程序查詢方式:處理器首先查詢外設(shè)工作狀態(tài),在外設(shè)就緒時(shí)進(jìn)行數(shù)據(jù)傳送。進(jìn)行數(shù)據(jù)傳送。中斷方式:外設(shè)在準(zhǔn)備就緒的條件下通過請(qǐng)求引腳信號(hào),主動(dòng)中斷方式:外設(shè)在準(zhǔn)備就緒的條件下通過請(qǐng)求引腳信號(hào),主動(dòng)向處理器提出交換數(shù)據(jù)的請(qǐng)求。處理器無(wú)其他更緊迫任務(wù),則執(zhí)行中斷向處理器提出交換數(shù)據(jù)的請(qǐng)求。處理器無(wú)其他更緊迫任務(wù),則執(zhí)行中斷服務(wù)程序完成一次數(shù)據(jù)傳送。服務(wù)程序完成一次數(shù)據(jù)傳送。DMADMA傳送:傳送:DMADMA控制器可接管總線,作為總線的主控設(shè)備,通過控制器可接管總線,作為總線的主控設(shè)備,通過系統(tǒng)總線來控制存儲(chǔ)器和外設(shè)直接進(jìn)行數(shù)據(jù)交換。此種方式適用于需要系統(tǒng)總線來控制存儲(chǔ)器和外設(shè)直接進(jìn)行數(shù)據(jù)交換。此種方式適用于需要大量數(shù)據(jù)高速傳送的場(chǎng)合。大量數(shù)據(jù)高速傳送的場(chǎng)合。查詢傳送:查詢傳送:簡(jiǎn)單實(shí)用,可以避免設(shè)備未準(zhǔn)備好,保證數(shù)據(jù)存取的簡(jiǎn)單實(shí)用,可以避免設(shè)備未準(zhǔn)備好,保證數(shù)據(jù)存取的正確有效,缺點(diǎn)是效率較低,正確有效,缺點(diǎn)是效率較低,CPUCPU需要一直等待;需要一直等待;中斷方式中斷方式:是當(dāng)設(shè)備準(zhǔn)備好時(shí)再向是當(dāng)設(shè)備準(zhǔn)備好時(shí)再向CPUCPU發(fā)中斷申請(qǐng)?zhí)幚怼0l(fā)中斷申請(qǐng)?zhí)幚怼?77.2.1 7.2.1 查詢傳送方式查詢傳送方式 1 1.查詢式輸入查詢式輸入CPUCPU與與I/OI/O設(shè)備的工作往往是異步的,很難保證,當(dāng)設(shè)備的工作往往是異步的,很難保證,當(dāng)CPUCPU執(zhí)行輸入操作時(shí),外設(shè)已把要輸入的信息準(zhǔn)備好了;而當(dāng)執(zhí)行輸入操作時(shí),外設(shè)已把要輸入的信息準(zhǔn)備好了;而當(dāng)CPUCPU執(zhí)行輸出時(shí),外設(shè)的寄存器(用于存放執(zhí)行輸出時(shí),外設(shè)的寄存器(用于存放CPUCPU輸出數(shù)據(jù)的寄輸出數(shù)據(jù)的寄存器)一定是空的。所以,存器)一定是空的。所以,通常在程序控制下的傳送方式,通常在程序控制下的傳送方式,在傳送前,必須要查詢外設(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)信號(hào)的端口,其方框圖如圖送狀態(tài)信號(hào)的端口,其方框圖如圖7-97-9所示。所示。1819當(dāng)輸入設(shè)備的數(shù)據(jù)已經(jīng)準(zhǔn)備好后便發(fā)出一個(gè)選通信號(hào),當(dāng)輸入設(shè)備的數(shù)據(jù)已經(jīng)準(zhǔn)備好后便發(fā)出一個(gè)選通信號(hào),一方面把數(shù)據(jù)送入鎖存器,另一方面使一方面把數(shù)據(jù)送入鎖存器,另一方面使D D觸發(fā)器為觸發(fā)器為“1”1”,給,給出出“準(zhǔn)備好準(zhǔn)備好”(Ready)(Ready)的狀態(tài)信號(hào)。而數(shù)據(jù)信號(hào)與狀態(tài)信號(hào)的狀態(tài)信號(hào)。而數(shù)據(jù)信號(hào)與狀態(tài)信號(hào)必須由不同的端口輸至必須由不同的端口輸至CPUCPU數(shù)據(jù)總線。數(shù)據(jù)總線。當(dāng)當(dāng)CPUCPU要由外設(shè)輸入信要由外設(shè)輸入信息時(shí),先輸入狀態(tài)信息,檢查數(shù)據(jù)是否已經(jīng)準(zhǔn)備好,當(dāng)數(shù)據(jù)息時(shí),先輸入狀態(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)信息往往是1 1位的,如圖位的,如圖7-107-10所示。所以,不同外設(shè)的狀態(tài)信息,可以使所示。所以,不同外設(shè)的狀態(tài)信息,可以使用同一個(gè)端口,而只要使用不同的位就行。用同一個(gè)端口,而只要使用不同的位就行。這種查詢輸入方式的程序流程圖如圖這種查詢輸入方式的程序流程圖如圖7-117-11所示。所示。2021查詢部分的程序如下:查詢部分的程序如下:POLL:POLL:ININALAL,STATUS_PORTSTATUS_PORT;從狀態(tài)端口輸入狀;從狀態(tài)端口輸入狀態(tài)信息態(tài)信息TESTTESTALAL,80H80H;檢查;檢查READYREADY是否為是否為1 1JEJEPOLLPOLL;未;未READYREADY,循環(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.查詢式輸出查詢式輸出在輸出時(shí),在輸出時(shí),CPUCPU也必須了解外設(shè)的狀態(tài),看外設(shè)是否有空也必須了解外設(shè)的狀態(tài),看外設(shè)是否有空(即外設(shè)不即外設(shè)不正處在輸出狀態(tài),或外設(shè)的數(shù)據(jù)寄存器是空的,可以接收正處在輸出狀態(tài),或外設(shè)的數(shù)據(jù)寄存器是空的,可以接收CPUCPU輸出的信輸出的信息息),若有空,則,若有空,則CPUCPU執(zhí)行輸出指令,否則就等待。執(zhí)行輸出指令,否則就等待。因此,接口電路中也因此,接口電路中也必須要有狀態(tài)信息的端口,其方框圖如圖必須要有狀態(tài)信息的端口,其方框圖如圖7-127-12所示。所示。2324當(dāng)輸出設(shè)備把當(dāng)輸出設(shè)備把CPUCPU要輸出的數(shù)據(jù)輸出以后,發(fā)出一個(gè)要輸出的數(shù)據(jù)輸出以后,發(fā)出一個(gè)ACK(Acknowledge)ACK(Acknowledge)信號(hào),使信號(hào),使D D觸發(fā)器置觸發(fā)器置“0”0”,即使,即使“Busy”Busy”線為線為0(Empty=Busy)0(Empty=Busy),當(dāng),當(dāng)CPUCPU輸入這個(gè)狀態(tài)信息后,知道外設(shè)輸入這個(gè)狀態(tài)信息后,知道外設(shè)為為“空空”,于是就執(zhí)行輸出指令。輸出指令執(zhí)行后,由地址,于是就執(zhí)行輸出指令。輸出指令執(zhí)行后,由地址信號(hào)和信號(hào)和IO/MIO/M及及WRWR相相“與與”后,發(fā)出選通信號(hào),把在數(shù)據(jù)線上后,發(fā)出選通信號(hào),把在數(shù)據(jù)線上輸出的數(shù)據(jù)送至鎖存器。同時(shí),令輸出的數(shù)據(jù)送至鎖存器。同時(shí),令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)端口而知道通過讀狀態(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位位 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)端口的符號(hào)地址;是狀態(tài)端口的符號(hào)地址;DATA_PORTDATA_PORT是數(shù)據(jù)端口的符號(hào)地址;是數(shù)據(jù)端口的符號(hào)地址;STORESTORE是存放數(shù)據(jù)單元的地址偏移是存放數(shù)據(jù)單元的地址偏移量。量。273.3.一個(gè)采用查詢方式的數(shù)據(jù)采集系統(tǒng)一個(gè)采用查詢方式的數(shù)據(jù)采集系統(tǒng)一個(gè)有一個(gè)有8 8個(gè)模擬量輸入的數(shù)據(jù)采集系統(tǒng),用查詢的方式個(gè)模擬量輸入的數(shù)據(jù)采集系統(tǒng),用查詢的方式與與CPUCPU傳送信息,其電路如圖傳送信息,其電路如圖7-157-15所示。所示。8 8個(gè)輸入模擬量,經(jīng)過多路開關(guān)個(gè)輸入模擬量,經(jīng)過多路開關(guān)它由端口它由端口4 4輸出的輸出的3 3位二進(jìn)制碼位二進(jìn)制碼(D0(D0、D1D1、D2)D2)控制控制(000(000相應(yīng)于相應(yīng)于A0A0輸入輸入),每,每次送出一個(gè)模擬量至次送出一個(gè)模擬量至A/DA/D轉(zhuǎn)換器;同時(shí)轉(zhuǎn)換器;同時(shí)A/DA/D轉(zhuǎn)換器由端口轉(zhuǎn)換器由端口4 4輸輸出的出的D4D4位控制啟動(dòng)與停止。位控制啟動(dòng)與停止。2829A/DA/D轉(zhuǎn)換器的轉(zhuǎn)換器的READYREADY信號(hào)由端口信號(hào)由端口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ù)總線。所以,這樣的一個(gè)數(shù)據(jù)采集系統(tǒng),需要用到一個(gè)數(shù)據(jù)采集系統(tǒng),需要用到3 3個(gè)端口,它們有各自的地址。個(gè)端口,它們有各自的地址。實(shí)現(xiàn)這樣的數(shù)據(jù)采集過程的程序?yàn)椋簩?shí)現(xiàn)這樣的數(shù)據(jù)采集過程的程序?yàn)椋?0START:MOV DLSTART:MOV DL,0F8H0F8H;設(shè)置啟動(dòng);設(shè)置啟動(dòng)A/DA/D轉(zhuǎn)換的信號(hào)轉(zhuǎn)換的信號(hào) LEA DILEA DI,DSTORDSTOR;存放輸入數(shù)據(jù)緩沖區(qū)的地址偏移量;存放輸入數(shù)據(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;啟動(dòng);啟動(dòng)A/DA/D,且選擇模擬量,且選擇模擬量A0A0POLL:IN ALPOLL:IN AL,2 2;輸入狀態(tài)信息;輸入狀態(tài)信息 SHR ALSHR AL,1 1 JNC POLL JNC POLL;若未;若未READYREADY,程序循環(huán)等待,程序循環(huán)等待 ININ AL AL,3 3;否則,輸入數(shù)據(jù);否則,輸入數(shù)據(jù) STOSBSTOSB ;存至內(nèi)存存至內(nèi)存 INC DLINC DL;修改多路開關(guān)控制信號(hào),指向下一個(gè)模擬量;修改多路開關(guān)控制信號(hào),指向下一個(gè)模擬量 JNE AGAINJNE AGAIN;8 8個(gè)模擬量未輸入完,循環(huán)已完,執(zhí)行別的程序段個(gè)模擬量未輸入完,循環(huán)已完,執(zhí)行別的程序段 317.2.2 7.2.2 中斷傳送方式中斷傳送方式 在上述的查詢傳送方式中,在上述的查詢傳送方式中,CPUCPU要不斷地詢問外設(shè),當(dāng)要不斷地詢問外設(shè),當(dāng)外設(shè)沒有準(zhǔn)備好時(shí),外設(shè)沒有準(zhǔn)備好時(shí),CPUCPU要等待,不能干別的操作,這樣就要等待,不能干別的操作,這樣就浪費(fèi)了浪費(fèi)了CPUCPU的時(shí)間。而且許多外設(shè)的速度是較低的,如鍵盤、的時(shí)間。而且許多外設(shè)的速度是較低的,如鍵盤、打印機(jī)等,它們輸入或輸出一個(gè)數(shù)據(jù)的速度是很慢的,在這打印機(jī)等,它們輸入或輸出一個(gè)數(shù)據(jù)的速度是很慢的,在這個(gè)過程中,個(gè)過程中,CPUCPU可以執(zhí)行大量的指令。為了提高可以執(zhí)行大量的指令。為了提高CPUCPU的效率,的效率,可采用中斷的傳送方式。可采用中斷的傳送方式。即當(dāng)即當(dāng)CPUCPU需要輸入或輸出時(shí),若外設(shè)的輸入數(shù)據(jù)已存入需要輸入或輸出時(shí),若外設(shè)的輸入數(shù)據(jù)已存入寄存器;在輸出時(shí),若外設(shè)已把上一個(gè)數(shù)據(jù)輸出,輸出寄存寄存器;在輸出時(shí),若外設(shè)已把上一個(gè)數(shù)據(jù)輸出,輸出寄存器已空,這時(shí)由外設(shè)向器已空,這時(shí)由外設(shè)向CPUCPU發(fā)出中斷申請(qǐng),發(fā)出中斷申請(qǐng),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è)(甚至多個(gè)外設(shè)甚至多個(gè)外設(shè))同時(shí)工作。同時(shí)工作。32在中斷傳送方式時(shí)的接口電路,其方框圖如圖在中斷傳送方式時(shí)的接口電路,其方框圖如圖7-167-16所示。所示。當(dāng)輸入設(shè)備輸入一數(shù)據(jù),發(fā)出選通信號(hào),把數(shù)據(jù)存入鎖存器,又使當(dāng)輸入設(shè)備輸入一數(shù)據(jù),發(fā)出選通信號(hào),把數(shù)據(jù)存入鎖存器,又使D D觸發(fā)器置觸發(fā)器置“1”1”,發(fā)出中斷請(qǐng)求,若中斷是開放的,發(fā)出中斷請(qǐng)求,若中斷是開放的,CPUCPU接受了中斷請(qǐng)求接受了中斷請(qǐng)求信號(hào)后,在現(xiàn)行指令執(zhí)行完后,暫停正在執(zhí)行的程序,發(fā)出中斷響應(yīng)信信號(hào)后,在現(xiàn)行指令執(zhí)行完后,暫停正在執(zhí)行的程序,發(fā)出中斷響應(yīng)信號(hào)號(hào)INTAINTA,于是外設(shè)把一個(gè)中斷矢量放到數(shù)據(jù)總線上,于是外設(shè)把一個(gè)中斷矢量放到數(shù)據(jù)總線上,CPUCPU就轉(zhuǎn)入中斷服務(wù)就轉(zhuǎn)入中斷服務(wù)程序程序即讀入或者輸出數(shù)據(jù),同時(shí)清除中斷請(qǐng)求標(biāo)志。當(dāng)中斷處理完即讀入或者輸出數(shù)據(jù),同時(shí)清除中斷請(qǐng)求標(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的利用率。的利用率。例如某一個(gè)外設(shè)例如某一個(gè)外設(shè)1 1秒鐘能傳送秒鐘能傳送100100個(gè)字節(jié)。若用查詢方式輸入,個(gè)字節(jié)。若用查詢方式輸入,則在這則在這1 1秒鐘內(nèi)秒鐘內(nèi)CPUCPU全部用于查詢和傳送;若用中斷方式,全部用于查詢和傳送;若用中斷方式,CPUCPU每傳送一個(gè)字節(jié)的服務(wù)程序若需每傳送一個(gè)字節(jié)的服務(wù)程序若需100s100s,則傳送,則傳送100100個(gè)字個(gè)字節(jié),節(jié),CPUCPU只需用只需用10ms10ms,即只占,即只占1 1秒的秒的1/1001/100的時(shí)間,這樣的時(shí)間,這樣99/10099/100的時(shí)間的時(shí)間CPUCPU可用于執(zhí)行主程序。可用于執(zhí)行主程序。但是中斷傳送仍然是由但是中斷傳送仍然是由CPUCPU通過程序來傳送的,每次要通過程序來傳送的,每次要保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)需用多條指令,每條指令要有取指和執(zhí)保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)需用多條指令,每條指令要有取指和執(zhí)行時(shí)間。這對(duì)于一個(gè)高速行時(shí)間。這對(duì)于一個(gè)高速I/OI/O設(shè)備,以及成組交換數(shù)據(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ù)傳送的速度的上限就取決于存儲(chǔ)器的工作速度。儲(chǔ)器的工作速度。但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號(hào)線但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號(hào)線(例如例如IO/MIO/M、RDRD、WRWR等等)是由是由CPUCPU管理的。管理的。在在DMADMA方式時(shí),就希望方式時(shí),就希望CPUCPU把這些總線讓出來把這些總線讓出來(即即CPUCPU連到連到這些總線上的線處于第三態(tài)這些總線上的線處于第三態(tài)高阻狀態(tài)高阻狀態(tài)),而由,而由DMADMA控制器控制器接管,控制傳送的字節(jié)數(shù),判斷接管,控制傳送的字節(jié)數(shù),判斷DMADMA是否結(jié)束,以及發(fā)出是否結(jié)束,以及發(fā)出DMADMA結(jié)束等信號(hào)。這些都是由硬件實(shí)現(xiàn)的。結(jié)束等信號(hào)。這些都是由硬件實(shí)現(xiàn)的。36DMADMA控制器必須有以下功能:控制器必須有以下功能:(1)(1)能向能向CPUCPU發(fā)出發(fā)出HOLDHOLD信號(hào);信號(hào);(2)(2)當(dāng)當(dāng)CPUCPU發(fā)出發(fā)出HLDAHLDA信號(hào)后,接管和控制總線,進(jìn)入信號(hào)后,接管和控制總線,進(jìn)入DMADMA方式;方式;(3)(3)發(fā)出地址信息,能對(duì)存儲(chǔ)器尋址以及能修改地址指發(fā)出地址信息,能對(duì)存儲(chǔ)器尋址以及能修改地址指針;針;(4)(4)能發(fā)出讀或?qū)懙瓤刂菩盘?hào);能發(fā)出讀或?qū)懙瓤刂菩盘?hào);(5)(5)能決定傳送的字節(jié)數(shù),判斷能決定傳送的字節(jié)數(shù),判斷DMADMA傳送是否結(jié)束;傳送是否結(jié)束;(6)(6)發(fā)出發(fā)出DMADMA結(jié)束信號(hào),使結(jié)束信號(hào),使CPUCPU恢復(fù)正常工作狀態(tài)。恢復(fù)正常工作狀態(tài)。通常通常DMADMA的工作流程如圖的工作流程如圖7-177-17所示。所示。3738能實(shí)現(xiàn)上述操作的能實(shí)現(xiàn)上述操作的DMADMA控制器的硬件方框圖如圖控制器的硬件方框圖如圖7-187-18所所示。示。當(dāng)外設(shè)把數(shù)據(jù)準(zhǔn)備好以后,發(fā)出一個(gè)選通脈沖使當(dāng)外設(shè)把數(shù)據(jù)準(zhǔn)備好以后,發(fā)出一個(gè)選通脈沖使DMADMA請(qǐng)請(qǐng)求觸發(fā)器置求觸發(fā)器置“1”1”,它一方面向控制,它一方面向控制/狀態(tài)端口發(fā)出準(zhǔn)備就緒狀態(tài)端口發(fā)出準(zhǔn)備就緒信號(hào),另一方面向信號(hào),另一方面向DMADMA控制器發(fā)出控制器發(fā)出DMADMA請(qǐng)求。于是請(qǐng)求。于是DMADMA控制器控制器向向CPUCPU發(fā)出發(fā)出HOLDHOLD信號(hào),當(dāng)信號(hào),當(dāng)CPUCPU在現(xiàn)行的機(jī)器周期結(jié)束后響應(yīng)發(fā)在現(xiàn)行的機(jī)器周期結(jié)束后響應(yīng)發(fā)出出HLDAHLDA信號(hào),于是信號(hào),于是DMADMA控制器就接管總線??刂破骶徒庸芸偩€。3940向地址總線發(fā)出地址信號(hào),在數(shù)據(jù)總線上給出數(shù)據(jù),并向地址總線發(fā)出地址信號(hào),在數(shù)據(jù)總線上給出數(shù)據(jù),并給出存儲(chǔ)器寫的命令,就可把由外設(shè)輸入的數(shù)據(jù)寫入存儲(chǔ)器。給出存儲(chǔ)器寫的命令,就可把由外設(shè)輸入的數(shù)據(jù)寫入存儲(chǔ)器。然后修改地址指針,修改計(jì)數(shù)器,檢查傳送是否結(jié)束,若未然后修改地址指針,修改計(jì)數(shù)器,檢查傳送是否結(jié)束,若未結(jié)束則循環(huán)直至整個(gè)數(shù)據(jù)傳送完畢。結(jié)束則循環(huán)直至整個(gè)數(shù)據(jù)傳送完畢。DMADMA工作過程波形圖如工作過程波形圖如圖圖7-197-19所示。所示。4142在整個(gè)數(shù)據(jù)傳送完后,在整個(gè)數(shù)據(jù)傳送完后,DMADMA控制器撤除總線請(qǐng)求信號(hào)控制器撤除總線請(qǐng)求信號(hào)(HOLD(HOLD變低變低),在下一個(gè),在下一個(gè)T T周期的上升沿,就使周期的上升沿,就使HLDAHLDA變低。變低。當(dāng)當(dāng)CPUCPU需要運(yùn)行別的周期時(shí),又取得對(duì)總線的控制。需要運(yùn)行別的周期時(shí),又取得對(duì)總線的控制。隨著大規(guī)模集成電路技術(shù)的發(fā)展,隨著大規(guī)模集成電路技術(shù)的發(fā)展,DMADMA傳送已不局限于傳送已不局限于存儲(chǔ)器與外設(shè)間的信息交換,而可以擴(kuò)展為在存儲(chǔ)器的兩個(gè)存儲(chǔ)器與外設(shè)間的信息交換,而可以擴(kuò)展為在存儲(chǔ)器的兩個(gè)區(qū)域之間,或兩種高速的外設(shè)之間進(jìn)行區(qū)域之間,或兩種高速的外設(shè)之間進(jìn)行DMADMA傳送,如圖傳送,如圖7-207-20所示。所示。43441.DMA1.DMA控制器的基本功能控制器的基本功能DMACDMAC是控制存儲(chǔ)器和外部設(shè)備之間直接高速地傳送數(shù)據(jù)是控制存儲(chǔ)器和外部設(shè)備之間直接高速地傳送數(shù)據(jù)的硬件電路,它應(yīng)能取代的硬件電路,它應(yīng)能取代CPUCPU,用硬件完成圖,用硬件完成圖7-177-17所示的各所示的各項(xiàng)功能。具體地說,項(xiàng)功能。具體地說,DMACDMAC應(yīng)具有如下功能:應(yīng)具有如下功能:(1)(1)能接收外設(shè)的請(qǐng)求,向能接收外設(shè)的請(qǐng)求,向CPUCPU發(fā)出發(fā)出DMADMA請(qǐng)求信號(hào);請(qǐng)求信號(hào);(2)(2)當(dāng)當(dāng)CPUCPU發(fā)出發(fā)出DMADMA響應(yīng)信號(hào)之后,接管對(duì)總線的控制,響應(yīng)信號(hào)之后,接管對(duì)總線的控制,進(jìn)入進(jìn)入DMADMA方式;方式;(3)(3)能尋址存儲(chǔ)器,即能輸出地址信息和修改地址;能尋址存儲(chǔ)器,即能輸出地址信息和修改地址;(4)(4)能向存儲(chǔ)器和外設(shè)發(fā)出相應(yīng)的讀能向存儲(chǔ)器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號(hào);寫控制信號(hào);(5)(5)能控制傳送的字節(jié)數(shù),判斷能控制傳送的字節(jié)數(shù),判斷DMADMA傳送是否結(jié)束;傳送是否結(jié)束;(6)(6)在在DMADMA傳送結(jié)束以后,能結(jié)束傳送結(jié)束以后,能結(jié)束DMADMA請(qǐng)求信號(hào),釋放總請(qǐng)求信號(hào),釋放總線,使線,使CPUCPU恢復(fù)正常工作?;謴?fù)正常工作。452.DMA2.DMA傳送方式傳送方式DMACDMAC一般都有兩種基本的一般都有兩種基本的DMADMA傳送方式:傳送方式:(1)(1)單字節(jié)方式:?jiǎn)巫止?jié)方式:每次每次DMADMA請(qǐng)求只傳送一個(gè)字節(jié)數(shù)據(jù),請(qǐng)求只傳送一個(gè)字節(jié)數(shù)據(jù),每傳送完一個(gè)字節(jié),都撤除每傳送完一個(gè)字節(jié),都撤除DMADMA請(qǐng)求信號(hào)釋放總線;請(qǐng)求信號(hào)釋放總線;(2)(2)字節(jié)字節(jié)(字符字符)組方式:組方式:每次每次DMADMA請(qǐng)求連續(xù)傳送一個(gè)數(shù)請(qǐng)求連續(xù)傳送一個(gè)數(shù)據(jù)塊,待規(guī)定長(zhǎng)度的數(shù)據(jù)塊傳送完了以后才撤除據(jù)塊,待規(guī)定長(zhǎng)度的數(shù)據(jù)塊傳送完了以后才撤除DMADMA請(qǐng)求釋請(qǐng)求釋放總線。放總線。在在DMADMA傳送中,為了使源和目的之間的數(shù)據(jù)傳送取得同傳送中,為了使源和目的之間的數(shù)據(jù)傳送取得同步,不同的步,不同的DMACDMAC在操作時(shí)都受到外設(shè)的請(qǐng)求信號(hào)或準(zhǔn)備就緒在操作時(shí)都受到外設(shè)的請(qǐng)求信號(hào)或準(zhǔn)備就緒信號(hào)信號(hào)READYREADY信號(hào)的限制。信號(hào)的限制。467.3 DMA 7.3 DMA 控控 制制 器器下面以下面以Intel 8237 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)在一個(gè)芯片中有四個(gè)獨(dú)立的在一個(gè)芯片中有四個(gè)獨(dú)立的DMADMA通道通道(8237(8237必須與一必須與一片片8 8位地址鎖存器如位地址鎖存器如82828282連用連用)。PCPC機(jī)系統(tǒng)占用了機(jī)系統(tǒng)占用了8237A8237A通道通道0 0、通道、通道2 2、通道、通道3 3,分別用于,分別用于刷新動(dòng)態(tài)存儲(chǔ)器、軟盤控制器與存儲(chǔ)器間交換數(shù)據(jù)、硬盤控刷新動(dòng)態(tài)存儲(chǔ)器、軟盤控制器與存儲(chǔ)器間交換數(shù)據(jù)、硬盤控制器與存儲(chǔ)器交換數(shù)據(jù),只有通道制器與存儲(chǔ)器交換數(shù)據(jù),只有通道1 1未使用,供用戶使用。未使用,供用戶使用。(2)(2)每一個(gè)通道的每一個(gè)通道的DMADMA請(qǐng)求都可以分別允許和禁止。請(qǐng)求都可以分別允許和禁止。(3)(3)每一個(gè)通道的每一個(gè)通道的DMADMA請(qǐng)求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可請(qǐng)求有不同的優(yōu)先權(quán),優(yōu)先權(quán)可以是固定的,也可以是循環(huán)的以是固定的,也可以是循環(huán)的(由編程決定由編程決定)。(4)(4)每一個(gè)通道一次傳送的最大長(zhǎng)度可達(dá)每一個(gè)通道一次傳送的最大長(zhǎng)度可達(dá)64KB64KB,可以在,可以在存儲(chǔ)器與外設(shè)間進(jìn)行數(shù)據(jù)傳送,也可以在存儲(chǔ)器的兩個(gè)區(qū)域存儲(chǔ)器與外設(shè)間進(jìn)行數(shù)據(jù)傳送,也可以在存儲(chǔ)器的兩個(gè)區(qū)域之間進(jìn)行傳送。之間進(jìn)行傳送。48(5)8237(5)8237的的DMADMA傳送有以下四種方式:傳送有以下四種方式:?jiǎn)巫止?jié)傳送方式;單字節(jié)傳送方式;數(shù)據(jù)塊傳送方式;數(shù)據(jù)塊傳送方式;請(qǐng)求傳送方式;請(qǐng)求傳送方式;級(jí)連方式。級(jí)連方式。在每一種方式下,都能接收外設(shè)的請(qǐng)求信號(hào)在每一種方式下,都能接收外設(shè)的請(qǐng)求信號(hào)DREQDREQ,向外,向外設(shè)發(fā)出響應(yīng)信號(hào)設(shè)發(fā)出響應(yīng)信號(hào)DACKDACK,向,向CPUCPU發(fā)出發(fā)出DMADMA請(qǐng)求信號(hào)請(qǐng)求信號(hào)HRQHRQ,當(dāng)接收,當(dāng)接收到到CPUCPU的響應(yīng)信號(hào)的響應(yīng)信號(hào)HLDAHLDA后就可以接管總線,進(jìn)行后就可以接管總線,進(jìn)行DMADMA傳送。每傳送。每傳送一個(gè)數(shù)據(jù),修改地址指針傳送一個(gè)數(shù)據(jù),修改地址指針(可以編程規(guī)定為增量修改或可以編程規(guī)定為增量修改或減量修改減量修改),字節(jié)數(shù)減,字節(jié)數(shù)減1 1,當(dāng)規(guī)定的傳送長(zhǎng)度,當(dāng)規(guī)定的傳送長(zhǎng)度(字節(jié)數(shù)字節(jié)數(shù))減到零減到零時(shí),會(huì)發(fā)出時(shí),會(huì)發(fā)出TCTC信號(hào)結(jié)束信號(hào)結(jié)束DMADMA傳送或重新初始化。傳送或重新初始化。49(6)(6)有一個(gè)結(jié)束處理的輸入信號(hào)有一個(gè)結(jié)束處理的輸入信號(hào)EOPEOP,允許外界用此輸,允許外界用此輸入端來結(jié)束入端來結(jié)束DMADMA傳送或重新初始化。傳送或重新初始化。(7)8237(7)8237可以級(jí)連,任意擴(kuò)展通道數(shù)。可以級(jí)連,任意擴(kuò)展通道數(shù)。507.3.2 82377.3.2 8237的結(jié)構(gòu)的結(jié)構(gòu)Intel 8237Intel 8237的方框圖如圖的方框圖如圖7-217-21所示。圖中的通道部分只所示。圖中的通道部分只畫出了一個(gè)通道的情況,即每個(gè)通道都有一個(gè)基地址寄存器畫出了一個(gè)通道的情況,即每個(gè)通道都有一個(gè)基地址寄存器(16(16位位),基字節(jié)數(shù)計(jì)數(shù)器,基字節(jié)數(shù)計(jì)數(shù)器(16(16位位),現(xiàn)行地址寄存器,現(xiàn)行地址寄存器(16(16位位)和和現(xiàn)行字節(jié)數(shù)計(jì)數(shù)器現(xiàn)行字節(jié)數(shù)計(jì)數(shù)器(16(16位位),每一個(gè)通道都有一個(gè),每一個(gè)通道都有一個(gè)6 6位的模式位的模式寄存器以控制不同的工作模式,所以,寄存器以控制不同的工作模式,所以,82378237的內(nèi)部寄存器的的內(nèi)部寄存器的類型和數(shù)量如表類型和數(shù)量如表7-17-1所示。所示。515282378237的結(jié)構(gòu)中包含了三個(gè)基本的控制邏輯塊:的結(jié)構(gòu)中包含了三個(gè)基本的控制邏輯塊:(1)(1)時(shí)序控制邏輯塊時(shí)序控制邏輯塊根據(jù)編程規(guī)定的根據(jù)編程規(guī)定的DMACDMAC的工作模式,產(chǎn)生包括的工作模式,產(chǎn)生包括DMADMA請(qǐng)求,請(qǐng)求,DMADMA傳送以及傳送以及DMADMA結(jié)束所需要的內(nèi)部時(shí)序和外部信號(hào)。結(jié)束所需要的內(nèi)部時(shí)序和外部信號(hào)。(2)(2)程序命令控制塊程序命令控制塊對(duì)在對(duì)在DMADMA請(qǐng)求服務(wù)之前請(qǐng)求服務(wù)之前CPUCPU編程時(shí)所給定的命令字和模式編程時(shí)所給定的命令字和模式控制字進(jìn)行譯碼,以確定控制字進(jìn)行譯碼,以確定DMADMA服務(wù)的類型。服務(wù)的類型。(3)(3)優(yōu)先權(quán)編碼邏輯優(yōu)先權(quán)編碼邏輯對(duì)同時(shí)有請(qǐng)求的通道進(jìn)行優(yōu)先權(quán)編碼,確定哪個(gè)通道的對(duì)同時(shí)有請(qǐng)求的通道進(jìn)行優(yōu)先權(quán)編碼,確定哪個(gè)通道的優(yōu)先權(quán)最高。在優(yōu)先權(quán)最高。在 82378237中,通道的優(yōu)先權(quán)可以是固定的,也中,通道的優(yōu)先權(quán)可以是固定的,也可以是旋轉(zhuǎn)的??梢允切D(zhuǎn)的。另外還有緩沖器。另外還有緩沖器。82378237的數(shù)據(jù)引線、地址引線都有三態(tài)的數(shù)據(jù)引線、地址引線都有三態(tài)緩沖器,因而可以接管和釋放總線。緩沖器,因而可以接管和釋放總線。537.3.3 82377.3.3 8237的工作周期的工作周期82378237在設(shè)計(jì)時(shí)規(guī)定它有兩種主要的工作周期,即空閑周在設(shè)計(jì)時(shí)規(guī)定它有兩種主要的工作周期,即空閑周期和有效周期。每一個(gè)周期又由若干個(gè)時(shí)鐘周期組成。期和有效周期。每一個(gè)周期又由若干個(gè)時(shí)鐘周期組成。1.1.空閑周期空閑周期當(dāng)當(dāng)82378237的任一通道在無(wú)請(qǐng)求時(shí)就進(jìn)入空閑周期的任一通道在無(wú)請(qǐng)求時(shí)就進(jìn)入空閑周期(Idle(Idle Cycle)Cycle)。在空閑周期,。在空閑周期,82378237始終執(zhí)行始終執(zhí)行S SI I狀態(tài),在每一個(gè)時(shí)鐘狀態(tài),在每一個(gè)時(shí)鐘周期都采樣通道的請(qǐng)求輸入線周期都采樣通道的請(qǐng)求輸入線DREQDREQ。只要無(wú)請(qǐng)求就始終停留。只要無(wú)請(qǐng)求就始終停留在在S SI I狀態(tài)。狀態(tài)。在在S SI I狀態(tài),可由狀態(tài),可由CPUCPU對(duì)對(duì)82378237編程或從編程或從82378237讀取狀態(tài)。讀取狀態(tài)。82378237在在S SI I狀態(tài)也始終采樣選片信號(hào)狀態(tài)也始終采樣選片信號(hào)CSCS,只要,只要CSCS信號(hào)變?yōu)橛行В盘?hào)變?yōu)橛行?,則則CPUCPU要對(duì)要對(duì)82378237進(jìn)行讀進(jìn)行讀/寫操作。寫操作。當(dāng)當(dāng)82378237采樣到采樣到CSCS為低為低(有效有效)而而HRQHRQ也為低也為低(無(wú)效無(wú)效),則進(jìn),則進(jìn)入程序狀態(tài),入程序狀態(tài),CPUCPU可以對(duì)可以對(duì)82378237的內(nèi)部寄存器進(jìn)行寫入操作,的內(nèi)部寄存器進(jìn)行寫入操作,實(shí)現(xiàn)對(duì)實(shí)現(xiàn)對(duì)82378237的編程或者改變的編程或者改變82378237的工作狀態(tài)(的工作狀態(tài)(82378237初始化)。初始化)。54在這種情況下,由控制信號(hào)在這種情況下,由控制信號(hào)IORIOR和和IOWIOW、地址信號(hào)、地址信號(hào)A3A3A0A0來選擇來選擇82378237內(nèi)部不同的寄存器。內(nèi)部不同的寄存器。由于由于82378237內(nèi)部的地址寄存器和字節(jié)數(shù)計(jì)數(shù)器都是內(nèi)部的地址寄存器和字節(jié)數(shù)計(jì)數(shù)器都是1616位的,位的,而數(shù)據(jù)線卻是而數(shù)據(jù)線卻是8 8位的,所以,在位的,所以,在82378237的內(nèi)部有一個(gè)觸發(fā)器稱的內(nèi)部有一個(gè)觸發(fā)器稱為高為高/低觸發(fā)器,由它來控制寫入低觸發(fā)器,由它來控制寫入1616位寄存器的高位寄存器的高8 8位還是低位還是低 8 8位。位。82378237還具有一些軟件命令,這些命令是通過對(duì)地址線還具有一些軟件命令,這些命令是通過對(duì)地址線A3A3A0A0和和IOWIOW、CSCS信號(hào)的譯碼來決定的,不使用數(shù)據(jù)總線。信號(hào)的譯碼來決定的,不使用數(shù)據(jù)總線。2.2.有效周期有效周期(Active Cycles)(Active Cycles)當(dāng)當(dāng)82378237在在S SI I狀態(tài)采樣到外設(shè)有請(qǐng)求狀態(tài)采樣到外設(shè)有請(qǐng)求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ù)的第一個(gè)狀態(tài),在這個(gè)狀態(tài)服務(wù)的第一個(gè)狀態(tài),在這個(gè)狀態(tài)82378237已經(jīng)接收了外設(shè)的請(qǐng)求,向已經(jīng)接收了外設(shè)的請(qǐng)求,向CPUCPU發(fā)出了發(fā)出了DMADMA請(qǐng)求信號(hào)請(qǐng)求信號(hào)HRQHRQ,但,但尚未收到尚未收到CPUCPU的的 DMADMA響應(yīng)信號(hào)響應(yīng)信號(hào)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 S2 2、S S3 3、S S4 4組成以完成數(shù)據(jù)傳送,若組成以完成數(shù)據(jù)傳送,若外設(shè)的數(shù)據(jù)傳送速度較慢,不能在外設(shè)的數(shù)據(jù)傳送速度較慢,不能在S S4 4之前完成,則可由之前完成,則可由ReadyReady信號(hào)線在信號(hào)線在S S2 2或或S S3 3與與S S4 4之間插入之間插入S SW W狀態(tài)。狀態(tài)。在存儲(chǔ)器與存儲(chǔ)器之間的傳送,需要完成從存儲(chǔ)器讀和在存儲(chǔ)器與存儲(chǔ)器之間的傳送,需要完成從存儲(chǔ)器讀和存儲(chǔ)器寫的操作,所以每一次傳送需要存儲(chǔ)器寫的操作,所以每一次傳送需要8 8個(gè)時(shí)鐘周期,在前個(gè)時(shí)鐘周期,在前4 4個(gè)周期個(gè)周期S S1111、S S1212、S S1313、S S1414完成從存儲(chǔ)器讀的操作,后完成從存儲(chǔ)器讀的操作,后4 4個(gè)周期個(gè)周期S S2121、S S2222、S S2323、S2S24 4完成存儲(chǔ)器寫操作。完成存儲(chǔ)器寫操作。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控制總線時(shí),控制總線時(shí),82378237作為一般作為一般I/OI/O接口,接口,A3A3A0A0為輸為輸入,作為選中入,作為選中8237A8237A內(nèi)部寄存器的地址選擇線。當(dāng)內(nèi)部寄存器的地址選擇線。當(dāng)8237A8237A控制控制總線時(shí),總線時(shí),A3A3A0A0為輸出,作為選中存儲(chǔ)器的低為輸出,作為選中存儲(chǔ)器的低4 4位地址。位地址。A7A7A4(40A4(40腳腳3737腳腳):低:低8 8位地址線的高位地址線的高4 4位,輸出,三位,輸出,三態(tài)。當(dāng)態(tài)。當(dāng)8237A8237A控制總線時(shí),控制總線時(shí),A7A7A4A4作為被訪問存儲(chǔ)器單元的作為被訪問存儲(chǔ)器單元的地址信號(hào)地址信號(hào)A7A7A4A4。57BD7BD7BD0(21BD0(21腳腳2323腳、腳、2626腳腳3030腳腳):8 8位數(shù)據(jù)線,雙向,三位數(shù)據(jù)線,雙向,三態(tài)。作用有三:態(tài)。作用有三:第一是當(dāng)?shù)谝皇钱?dāng)8237A8237A空閑,即空閑,即CPUCPU控制總線時(shí),控制總線時(shí),BD7BD7BD0BD0作為雙向作為雙向數(shù)據(jù)線,由數(shù)據(jù)線,由CPUCPU讀讀/寫寫8237A8237A內(nèi)部寄存器;內(nèi)部寄存器;第二是當(dāng)?shù)诙钱?dāng)8237A8237A控制總線時(shí),控制總線時(shí),BD7BD7BD0BD0輸出被訪問存儲(chǔ)器單元輸出被訪問存儲(chǔ)器單元的高的高8 8位地址信號(hào)位地址信號(hào)A15A15A8A8,并由,并由ADSTBADSTB信號(hào)將這些地址信息存信號(hào)將這些地址信息存入地址鎖存器。入地址鎖存器。第三是在進(jìn)行第三是在進(jìn)行DMADMA操作時(shí),讀周期經(jīng)操作時(shí),讀周期經(jīng)DB7DB7DB0DB0線把源存儲(chǔ)器的線把源存儲(chǔ)器的數(shù)據(jù)送入數(shù)據(jù)緩沖器保存,在寫周期再把數(shù)據(jù)緩沖器保存的數(shù)數(shù)據(jù)送入數(shù)據(jù)緩沖器保存,在寫周期再把數(shù)據(jù)緩沖器保存的數(shù)據(jù)經(jīng)據(jù)經(jīng)DB7DB7DB0DB0傳送到目的存儲(chǔ)器。傳送到目的存儲(chǔ)器。ADSTB(8ADSTB(8腳腳):地址選通信號(hào),輸出,高電平有效。當(dāng):地址選通信號(hào),輸出,高電平有效。當(dāng)ADSTBADSTB1 1時(shí),將保存在時(shí),將保存在8237A8237A緩沖器的高緩沖器的高8 8位地址信號(hào)通過位地址信號(hào)通過BD7BD7BD0BD0傳送傳送到片外地址鎖存器。到片外地址鎖存器。58 CSCS片選信號(hào)片選信號(hào)(11(11腳腳):輸入,低電平有效。當(dāng):輸入,低電平有效。當(dāng)8237A8237A空閑時(shí),空閑時(shí),僅作為一個(gè)僅作為一個(gè)I/OI/O設(shè)備時(shí),為設(shè)備時(shí),為8237A8237A的片選信號(hào)。當(dāng)該信號(hào)有效的片選信號(hào)。當(dāng)該信號(hào)有效時(shí),時(shí),CPUCPU向向8237A8237A寫入工作方式控制字、操作方式控制字,或?qū)懭牍ぷ鞣绞娇刂谱?、操作方式控制字,或讀入狀態(tài)寄存器中的內(nèi)容。讀入狀態(tài)寄存器中的內(nèi)容。IORIOR(1(1腳腳):I/OI/O讀信號(hào),雙向,三態(tài),低電平有效。當(dāng)讀信號(hào),雙向,三態(tài),低電平有效。當(dāng)CPUCPU控制總線時(shí),為輸入信號(hào),控制總線時(shí),為輸入信號(hào),CPUCPU讀讀8237A8237A內(nèi)部寄存器的狀態(tài)內(nèi)部寄存器的狀態(tài)信息;當(dāng)信息;當(dāng)8237A8237A控制總線時(shí),為輸出信號(hào),與配合實(shí)現(xiàn)控制總線時(shí),為輸出信號(hào),與配合實(shí)現(xiàn)DMADMA寫寫操作。操作。IOWIOW(2(2腳腳):I/O I/O寫信號(hào),雙向,三態(tài),低電平有效。當(dāng)寫信號(hào),雙向,三態(tài),低電平有效。當(dāng)CPUCPU控制總線時(shí),為輸入信號(hào),控制總線時(shí),為輸入信號(hào),CPUCPU利用它把數(shù)據(jù)寫入利用它把數(shù)據(jù)寫入8237A8237A內(nèi)內(nèi)部寄存器;當(dāng)部寄存器;當(dāng)8237A8237A控制總線時(shí),為輸出信號(hào),與配合實(shí)現(xiàn)控制總線時(shí),為輸出信號(hào),與配合實(shí)現(xiàn)DMADMA讀操作。讀操作。59CLK(12CLK(12腳腳):時(shí)鐘信號(hào),輸入。:時(shí)鐘信號(hào),輸入。8237A8237A的時(shí)鐘頻率為的時(shí)鐘頻率為3MHz3MHz,用,用于控制芯片內(nèi)部定時(shí)和數(shù)據(jù)傳送速率。于控制芯片內(nèi)部定時(shí)和數(shù)據(jù)傳送速率。RESET(2RESET(2腳腳):復(fù)位信號(hào),輸入,高電平有效。當(dāng)芯片被復(fù)位時(shí):復(fù)位信號(hào),輸入,高電平有效。當(dāng)芯片被復(fù)位時(shí),屏蔽寄存器被置,屏蔽寄存器被置1 1,其余寄存器置,其余寄存器置0 0,8237A8237A處于空閑狀態(tài),處于空閑狀態(tài),即即4 4個(gè)通道的個(gè)通道的DMADMA請(qǐng)求被禁止,僅作為一般請(qǐng)求被禁止,僅作為一般I/OI/O設(shè)備。設(shè)備。READY(6READY(6腳腳):準(zhǔn)備好信號(hào),輸入,高電平有效。當(dāng)進(jìn)行:準(zhǔn)備好信號(hào),輸入,高電平有效。當(dāng)進(jìn)行DMADMA操操作,存儲(chǔ)器或外部設(shè)備的速度較慢,來不及接收或發(fā)送數(shù)據(jù)時(shí)作,存儲(chǔ)器或外部設(shè)備的速度較慢,來不及接收或發(fā)送數(shù)據(jù)時(shí),外部電路使,外部電路使READY READY 為低電平,這時(shí)為低電平,這時(shí)DMADMA控制器會(huì)在總線傳送控制器會(huì)在總線傳送周期,自動(dòng)插入等待周期,直到周期,自動(dòng)插入等待周期,直到READYREADY變成高電平。變成高電平。60AEN(9AEN(9腳腳):地址允許信號(hào),輸出,高電平有效。訪問:地址允許信號(hào),輸出,高電平有效。訪問DMADMA時(shí)時(shí)AENAEN1 1,訪問外設(shè)時(shí),訪問外設(shè)時(shí)AENAEN0 0。當(dāng)。當(dāng)AENAEN1 1時(shí),它把外部地址鎖時(shí),它把外部地址鎖存器中的高存器中的高8 8位地址送入地址總線,與位地址送入地址總線,與8237A8237A芯片輸出的低芯片輸出的低8 8位位地址組成地址組成1616位地址。位地址。DREQ3DREQ3DREQ0(16DREQ0(16腳腳1919腳腳):DMADMA請(qǐng)求信號(hào),輸入,有效電平請(qǐng)求信號(hào),輸入,有效電平可由工作方式控制字確定。他們分別是連接到四個(gè)通道的外可由工作方式控制字確定。他們分別是連接到四個(gè)通道的外設(shè),向設(shè),向DMADMA控制器請(qǐng)求控制器請(qǐng)求DMADMA操作的請(qǐng)求信號(hào)。該信號(hào)要保持有操作的請(qǐng)求信號(hào)。該信號(hào)要保持有效電平一直到效電平一直到8237A8237A控制器作出控制