![計(jì)算機(jī)接口技術(shù)解析課件_第1頁](http://file4.renrendoc.com/view/b8aeebe69711728a7c87550a8c7e1670/b8aeebe69711728a7c87550a8c7e16701.gif)
![計(jì)算機(jī)接口技術(shù)解析課件_第2頁](http://file4.renrendoc.com/view/b8aeebe69711728a7c87550a8c7e1670/b8aeebe69711728a7c87550a8c7e16702.gif)
![計(jì)算機(jī)接口技術(shù)解析課件_第3頁](http://file4.renrendoc.com/view/b8aeebe69711728a7c87550a8c7e1670/b8aeebe69711728a7c87550a8c7e16703.gif)
![計(jì)算機(jī)接口技術(shù)解析課件_第4頁](http://file4.renrendoc.com/view/b8aeebe69711728a7c87550a8c7e1670/b8aeebe69711728a7c87550a8c7e16704.gif)
![計(jì)算機(jī)接口技術(shù)解析課件_第5頁](http://file4.renrendoc.com/view/b8aeebe69711728a7c87550a8c7e1670/b8aeebe69711728a7c87550a8c7e16705.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)接口技術(shù)解析計(jì)算機(jī)接口技術(shù)解析什么是接口? CPU與外部設(shè)備、存儲(chǔ)器的連接和數(shù)據(jù)交換都需要通過接口設(shè)備來實(shí)現(xiàn),前者被稱為I/O接口,而后者則被稱為存儲(chǔ)器接口。存儲(chǔ)器通常在CPU的同步控制下工作,接口電路比較簡單;而I/O設(shè)備品種繁多,其相應(yīng)的接口電路也各不相同,因此,習(xí)慣上說到接口只是指I/O接口。什么是接口? CPU與外部設(shè)備、存儲(chǔ)器的連接和數(shù)據(jù)交換都需要計(jì)算機(jī)外圍設(shè)備很多I/O接口的功能是負(fù)責(zé)實(shí)現(xiàn)CPU通過系統(tǒng)總線把I/O電路和外圍設(shè)備聯(lián)系在一起計(jì)算機(jī)外圍設(shè)備很多I/O接口的功能為什么需要接口?速度不匹配:I/O設(shè)備的工作速度要比CPU慢許多,而且由于種類的不 同,他們之間的速度差異
2、也很大,例如硬盤的傳輸速度就要比打印機(jī)快出很多。時(shí)序不匹配:各個(gè)I/O設(shè)備都有自己的定時(shí)控制電路,以自己的速度傳輸數(shù)據(jù),無法與CPU的時(shí)序取得統(tǒng)一。信息格式不匹配:不同的I/O設(shè)備存儲(chǔ)和處理信息的格式不同串行和并行兩種;二進(jìn)制格式、ACSII編碼和BCD編碼等。信息類型不匹配:不同IO設(shè)備采用的信號(hào)類型不同,有些是數(shù)字信號(hào),而有些是模擬信號(hào),因此所采用的處理方式也不同。為什么需要接口?速度不匹配:接口的原理圖數(shù)據(jù)總線地址總線控制總線?標(biāo)準(zhǔn)非標(biāo)準(zhǔn)轉(zhuǎn)換接口的原理圖數(shù)據(jù)總線?標(biāo)準(zhǔn)非標(biāo)準(zhǔn)轉(zhuǎn)換鼠標(biāo)相關(guān)內(nèi)容分析通過分析我們所熟悉的鼠標(biāo)與計(jì)算機(jī)的接口,了解計(jì)算機(jī)接口技術(shù)所包含的內(nèi)容鼠標(biāo)相關(guān)內(nèi)容分析通過分析我
3、們所熟悉的鼠標(biāo)與計(jì)算機(jī)的接口,了解鼠標(biāo)與計(jì)算機(jī)連接Mouse 與 Computer連接有兩種方式:1.有線連接2.無線連接無線通信方式包括藍(lán)牙、Wi-Fi (IEEE 802.11)、Infrared (IrDA)、ZigBee (IEEE 802.15.4)等等多個(gè)無線技術(shù)標(biāo)準(zhǔn),但對(duì)于當(dāng)前主流無線鼠標(biāo)而言,僅有27Mhz、2.4G和藍(lán)牙無線鼠標(biāo)共三類。 有線鼠標(biāo)按接口類型可分為串行鼠標(biāo)、PS/2鼠標(biāo)、總線鼠標(biāo)、USB鼠標(biāo)(多為光電鼠標(biāo))四種 機(jī)械鼠標(biāo)光電鼠標(biāo)鼠標(biāo)與計(jì)算機(jī)連接Mouse 與 Computer連接無線通信以PS/2鼠標(biāo)為例計(jì)算機(jī)接口以PS/2鼠標(biāo)為例計(jì)算機(jī)接口PS/2接口針定義P
4、S/2接口針定義鼠標(biāo)功能介紹鼠標(biāo)發(fā)送的信息(以三鍵鼠標(biāo)為例):X、Y坐標(biāo)信息【相對(duì)坐標(biāo):1】左右按鍵信息【Left:21;Right:22】滾輪信息【相對(duì)坐標(biāo): 1 】鼠標(biāo)功能介紹鼠標(biāo)發(fā)送的信息(以三鍵鼠標(biāo)為例):需要我們回答的問題PS/2只有2根線與數(shù)據(jù)有關(guān),而所傳遞的信息需要8位(或者更多)信息,PS/2如何傳遞信息?我們?cè)谶@里稱之為串行通訊;CPU(8088為例)所接收的是8位數(shù)據(jù)信息,需要8根線,而PS/2只有2根線,如何將2根線的信息轉(zhuǎn)換為8根線的信息傳送給CPU?(串并轉(zhuǎn)換)需要我們回答的問題PS/2只有2根線與數(shù)據(jù)有關(guān),而所傳遞的信需要我們回答的問題CPU如何區(qū)分是鼠標(biāo)設(shè)備信息而
5、不是其他設(shè)備(如鍵盤)的信息?(端口地址)CPU如何知道Mouse移動(dòng)了?CPU實(shí)時(shí)讀鼠標(biāo)信息;(查詢方式)CPU正常工作,只有當(dāng)鼠標(biāo)移動(dòng)或者按鍵被按下時(shí)才接收鼠標(biāo)信息;(中斷方式)CPU與Mouse的上述兩種方式,哪種最佳?需要我們回答的問題CPU如何區(qū)分是鼠標(biāo)設(shè)備信息而不是其他設(shè)備接口需要考慮的問題數(shù)據(jù)通信的方式有幾種?計(jì)算機(jī)如何對(duì)I/O接口進(jìn)行編址?計(jì)算機(jī)對(duì)外設(shè)接口的控制方式有幾種?分別是什么?如何管理和操作的?到目前為止,典型的I/O接口方式有哪些?各有什么特點(diǎn)?如何進(jìn)行硬件連接?如何進(jìn)行軟件編程?接口標(biāo)準(zhǔn)有哪些?標(biāo)準(zhǔn)包含的內(nèi)容是什么?如何應(yīng)用標(biāo)準(zhǔn)?接口需要考慮的問題數(shù)據(jù)通信的方式有幾
6、種?數(shù)據(jù)通訊相關(guān)概念數(shù)據(jù)通訊相關(guān)概念數(shù)據(jù)通信系統(tǒng)的主要技術(shù)指標(biāo)數(shù)據(jù)傳輸速率誤碼率信道帶寬信道容量數(shù)據(jù)通信系統(tǒng)的主要技術(shù)指標(biāo)數(shù)據(jù)傳輸速率1.數(shù)據(jù)傳輸速率 數(shù)據(jù)傳輸速率有兩種度量單位:波持率和比持率。波特率又稱為波形速率或碼元速率指數(shù)據(jù)通信系統(tǒng)中,線路上每秒傳送的波形個(gè)數(shù)。具單位是波特(band)。比特率又稱為信息速率反映一個(gè)數(shù)據(jù)通信系統(tǒng)每秒所傳輸?shù)亩M(jìn)制位數(shù),單位是每秒比特(位),以bit/s或bps表示。注意:這里是小b bbit代表是數(shù)據(jù)傳輸?shù)娜萘?,而一般在存?chǔ)數(shù)據(jù)的時(shí)候使用的是大BB=byte1.數(shù)據(jù)傳輸速率 數(shù)據(jù)傳輸速率有兩種度量單位:波持率和2.誤碼率誤碼率是衡量通信系統(tǒng)線路質(zhì)量的一個(gè)
7、重要參數(shù)。它的定義為:二進(jìn)制符號(hào)在傳輸系統(tǒng)中被傳錯(cuò)的概率,近似等于被傳錯(cuò)的二進(jìn)制符號(hào)數(shù)與所傳二進(jìn)制符號(hào)總數(shù)的比值。計(jì)算機(jī)網(wǎng)絡(luò)通信系統(tǒng)中,要求誤碼率低于10-9。2.誤碼率誤碼率是衡量通信系統(tǒng)線路質(zhì)量的一個(gè)重要參數(shù)。它的定3.信道帶寬信道帶寬(Bandwidth)是指信道所能傳送的信號(hào)的頻率寬度,也就是可傳送信號(hào)的最高頻率與最低頻率之差。例如,一條傳輸線可以接受從300 Hz到3000 Hz的頻率,則在這條傳輸線上傳送頻率的帶寬就是2700 Hz。信道的帶寬由傳輸介質(zhì)、接口部件、傳輸協(xié)議以及傳輸信息的特性等因素所決定。它在一定程度上體現(xiàn)了信道的傳輸性能,是衡量傳輸系統(tǒng)的一個(gè)重要指標(biāo)。信道的容量、
8、傳輸速率和抗干擾性等均與帶寬有密切的聯(lián)系。通常,信道的帶寬大,信道的容量也大,其傳輸速率相應(yīng)也高。3.信道帶寬信道帶寬(Bandwidth)4.信道容量信道容量是衡量一個(gè)信道傳輸數(shù)字信號(hào)的重要參數(shù),信道容量是指單位時(shí)間內(nèi)信道上所能傳輸數(shù)據(jù)的最大容量,單位是bps信道容量和傳輸速率之間應(yīng)滿足以下關(guān)系:信道容量傳輸速率,否則高的傳輸速率在低信道上傳輸,其傳輸速率受信道容量所限制,肯定難以達(dá)到原有的指標(biāo)。4.信道容量信道容量在計(jì)算機(jī)領(lǐng)域中有兩種數(shù)據(jù)通信方式:串行通信和并行通信。并行通信:數(shù)據(jù)在多條并行1位寬的傳輸線上同時(shí)由源傳送到目的。以1字節(jié)的數(shù)據(jù)為例,在并行傳送中,1字節(jié)的數(shù)據(jù)通過8條并行傳輸線
9、同時(shí)由源傳送到目的。串行通信:數(shù)據(jù)在單條1位寬的傳輸線上,一位一位地按順序分時(shí)傳送。以1字節(jié)為例,在串行傳送中,1字節(jié)的數(shù)據(jù)要通過一條傳輸 線分8次由低位到高位按順序一位一位地傳送。源目的0 1 1 0 1 0 1 0源目的在計(jì)算機(jī)領(lǐng)域中有兩種數(shù)據(jù)通信方式:串行通信和并行通信。源目串并行隱喻并行通訊串行通訊串并行隱喻并行通訊串行通訊串行通信和并行通信比較距離:并行近距離傳送(通常小于30米)串行遠(yuǎn)距離傳送(幾米數(shù)千公里)速度:傳統(tǒng)觀念:并行快得多。最新觀念:很難說,跟帶寬有關(guān)。設(shè)備費(fèi)用:對(duì)遠(yuǎn)距離通信而言,串行通信的費(fèi)用顯然會(huì)低得多。另一方面串行通信還可利用現(xiàn)有的電話網(wǎng)絡(luò)來實(shí)現(xiàn)遠(yuǎn)程通信,降低了通
10、信費(fèi)用。串行通信和并行通信比較距離:典型的并行通訊應(yīng)用CPU與存儲(chǔ)器之間通訊計(jì)算機(jī)板卡:ISAEISAPCIPCI ExpressAGP典型的并行通訊應(yīng)用CPU與存儲(chǔ)器之間通訊典型的串行通訊應(yīng)用RS232RS485RS422USBEtherNet 網(wǎng)絡(luò)典型的串行通訊應(yīng)用RS232數(shù)據(jù)傳輸同步技術(shù)在數(shù)據(jù)通信中,通信雙方收發(fā)數(shù)據(jù)序列必須在時(shí)間上取得一致,這樣才能保證接收的數(shù)據(jù)與發(fā)送的數(shù)據(jù)一致,這就是數(shù)據(jù)通信中的同步。如果不采用數(shù)據(jù)傳輸?shù)耐郊夹g(shù)則有可能產(chǎn)生數(shù)據(jù)傳輸?shù)恼`差。在計(jì)算機(jī)網(wǎng)絡(luò)中,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)耐郊夹g(shù)有以下兩種方法:同步通信和異步通信。同步傳輸方式異步傳輸方式數(shù)據(jù)傳輸同步技術(shù)在數(shù)據(jù)通信中,
11、通信雙方收發(fā)數(shù)據(jù)序列必須在時(shí)間1.同步傳輸方式同步通信就是使接收端接收的每一位數(shù)據(jù)塊或一組字符都要和發(fā)送端準(zhǔn)確地保持同步,在時(shí)間軸上,每個(gè)數(shù)據(jù)碼字占據(jù)等長的固定時(shí)間間隔,碼字之間一般不得留有空隙,前后碼字接連傳送,中間沒有間斷時(shí)間。收發(fā)雙方不僅保持著碼元(位)同步關(guān)系,而且保持著碼字(群)同步關(guān)系。如果在某一期間確實(shí)無數(shù)據(jù)可發(fā),則需用某一種無意義碼字或位同步序列進(jìn)行填充,以便始終保持不變的數(shù)據(jù)串格式和同步關(guān)系。否則,在下一串?dāng)?shù)據(jù)發(fā)送之前,必須發(fā)送同步序列(一般是在開始使用同步字符SYN“01101000”表示或一個(gè)同步字節(jié)“01111110”表示,并且在結(jié)束時(shí)使用同步字符或同步字節(jié)),以完成數(shù)
12、據(jù)的同步傳輸過程1.同步傳輸方式同步通信就是使接收端接收的每一位數(shù)據(jù)塊或一組2.異步傳輸方式所謂異步傳輸又稱起止式傳輸。即指發(fā)送者和接收者之間不需要合作。發(fā)送者可以在任何時(shí)候發(fā)送數(shù)據(jù),只要被發(fā)送的數(shù)據(jù)已經(jīng)是可以發(fā)送的狀態(tài)的話。接收者則只要數(shù)據(jù)到達(dá),就可以接受數(shù)據(jù)。它在每一個(gè)被傳輸?shù)淖址那啊⒑蟾髟黾右晃黄鹗嘉?、一位停止位,用起始位和停止位來指示被傳輸字符的開始和結(jié)束,在接收端,去除起、止位,中間就是被傳輸?shù)淖址_@種傳輸技術(shù)由于增加了很多附加的起、止信號(hào),因此傳輸效率不高,異步通信傳輸方式2.異步傳輸方式所謂異步傳輸又稱起止式傳輸。計(jì)算機(jī)對(duì)I/O接口編址方式計(jì)算機(jī)對(duì)I/O接口編址方式CPU如何
13、訪問接口電路?CPU如何訪問存儲(chǔ)器?通過地址總線確定要訪問的存儲(chǔ)單元;通過數(shù)據(jù)總線讀寫存儲(chǔ)單元的數(shù)據(jù)信息;通過控制總線協(xié)調(diào)CPU與存儲(chǔ)器的讀寫任務(wù)。CPU如何訪問接口電路?通過地址總線確定要訪問的I/O設(shè)備;通過數(shù)據(jù)總線讀寫I/O設(shè)備的數(shù)據(jù)信息;通過控制總線協(xié)調(diào)CPU與I/O設(shè)備的讀寫任務(wù)。CPU如何訪問接口電路?CPU如何訪問存儲(chǔ)器?馮.諾依曼結(jié)構(gòu)馮.諾依曼結(jié)構(gòu)如何定義I/O設(shè)備的地址?分析I/O信息的類型:數(shù)據(jù)、命令、狀態(tài)。傳送這三類信息的通道分別稱為:數(shù)據(jù)端口(I/O)命令端口(O)狀態(tài)端口(I)不同外設(shè)具有的端口數(shù)各不相同,計(jì)算機(jī)中為每一個(gè)端口都賦予一個(gè)惟一編號(hào)稱為端口地址(或端口號(hào))
14、。 與存儲(chǔ)器統(tǒng)一編制(存儲(chǔ)器映像編址)。存儲(chǔ)器和I/O端口共用統(tǒng)一的地址空間。獨(dú)立編址(專用的I/O端口編址)存儲(chǔ)器和I/O端口在兩個(gè)獨(dú)立的地址空間中如何定義I/O設(shè)備的地址?分析I/O信息的類型:存儲(chǔ)器映像編址優(yōu)點(diǎn):不需要專用的I/O指令,任何對(duì)存儲(chǔ)器數(shù)據(jù)進(jìn)行操作的指令都可用于I/O端口的數(shù)據(jù)操作,程序設(shè)計(jì)比較靈活;由于I/O端口的地址空間是內(nèi)存空間的一部分,這樣,I/O端口的地址空間可大可小,從而使外設(shè)的數(shù)量幾乎不受限制;缺點(diǎn):I/O端口占用了內(nèi)存空間的一部分,影響了系統(tǒng)的內(nèi)存容量;訪問I/O端口也要同訪問內(nèi)存一樣,由于內(nèi)存地址較長,導(dǎo)致執(zhí)行時(shí)間增加;CPU的尋址方式都可以照常使用,如:M
15、OV AX,DS:2000H如果DS*16+2000HF0000H則訪問I/O設(shè)備;否則,訪問存儲(chǔ)器存儲(chǔ)器映像編址優(yōu)點(diǎn):CPU的尋址方式都可以照常使用,如果DS優(yōu)點(diǎn):I/O端口的地址碼較短,譯碼電路簡單,存儲(chǔ)器同I/O端口的操作指令不同,程序比較清晰;存儲(chǔ)器和I/O端口的控制結(jié)構(gòu)相互獨(dú)立,可以分別設(shè)計(jì);缺點(diǎn):需要有專用的I/O指令,程序設(shè)計(jì)的靈活性較差;專用的I/O端口編址優(yōu)點(diǎn):專用的I/O端口編址8086/8088的編址方式采用I/O獨(dú)立編址方式(但地址線與存儲(chǔ)器共用) 地址線上的地址信號(hào)用IO/#M來區(qū)分:IO/#M=1時(shí)為I/O地址 I/O操作只使用20根地址線中的16根:A15A0 可
16、尋址的I/O端口數(shù)為64K(65536)個(gè) I/O地址范圍為0FFFFH IBM PC只使用了1024個(gè)I/O地址(03FFH) 另設(shè)訪問I/O設(shè)備指令:IN、OUT指令MOV AX,DS:2000H 時(shí)CPU產(chǎn)生MEMR信號(hào)IN AX,DX 時(shí)CPU產(chǎn)生IOR、AEN信號(hào)(DX中存端口地址)8086/8088的編址方式采用I/O獨(dú)立編址方式(但地址線計(jì)算機(jī)接口控制方式計(jì)算機(jī)接口控制方式接口的控制方式外部設(shè)備的速度比CPU的速度要慢很多,換句話說:CPU和I/O設(shè)備的速度不配合,怎么辦?程序查詢方式中斷處理方式DMA(直接存儲(chǔ)器存?。﹤魉头绞浇涌诘目刂品绞酵獠吭O(shè)備的速度比CPU的速度要慢很多,
17、1.程序查詢方式這種方式下,CPU通過I/O指令詢問指定外設(shè)當(dāng)前的狀態(tài),如果外設(shè)準(zhǔn)備就緒,則進(jìn)行數(shù)據(jù)的輸入或輸出,否則CPU等待,循環(huán)查詢。這種方式的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,只需要少量的硬件電路即可,缺點(diǎn)是由于CPU的速度遠(yuǎn)遠(yuǎn)高于外設(shè),因此通常處于等待狀態(tài),工作效率很低。1.程序查詢方式這種方式下,CPU通過I/O指令詢問指定外設(shè)2.中斷處理方式在這種方式下,CPU不再被動(dòng)等待,而是可以執(zhí)行其他程序,一旦外設(shè)為數(shù)據(jù)交換準(zhǔn)備就緒,可以向CPU提出服務(wù)請(qǐng)求,CPU如果響應(yīng)該請(qǐng)求,便暫時(shí)停止當(dāng)前程序的執(zhí)行,轉(zhuǎn)去執(zhí)行與該請(qǐng)求對(duì)應(yīng)的服務(wù)程序,完成后,再繼續(xù)執(zhí)行原來被中斷的程序。中斷處理方式的優(yōu)點(diǎn)是顯而易見的:它
18、不但為CPU省去了查詢外設(shè)狀態(tài)和等待外設(shè)就緒所花費(fèi)的時(shí)間,提高了CPU的工作效率,還滿足了外設(shè)的實(shí)時(shí)要求。但需要為每個(gè)IO設(shè)備分配一個(gè)中斷請(qǐng)求號(hào)和相應(yīng)的中斷服務(wù)程序還需要一個(gè)中斷控制器(IO接口芯片)管理IO設(shè)備提出的中斷請(qǐng)求,例如設(shè)置中斷屏蔽、中斷請(qǐng)求優(yōu)先級(jí)等。中斷處理方式的缺點(diǎn):每傳送一個(gè)字符都要進(jìn)行中斷,啟動(dòng)中斷控制器,還要保留和恢復(fù)現(xiàn)場以便能繼續(xù)原程序的執(zhí)行,花費(fèi)的工作量很大,這樣如果需要大量數(shù)據(jù)交換,系統(tǒng)的性能會(huì)很低。2.中斷處理方式在這種方式下,CPU不再被動(dòng)等待,而是可以執(zhí)2.1 什么是中斷?中斷(Interrupt)是一種操作,它使CPU中止正在執(zhí)行的程序,而轉(zhuǎn)入稱為中斷處理程
19、序(Interrupt Handler)(或稱中斷服務(wù)程序Interrupt Service,或稱中斷例程Interrupt Routine)的程序。當(dāng)中斷處理程序執(zhí)行完后,CPU接著執(zhí)行被中斷的程序(相對(duì)于中斷處理程序來說,被中斷的程序稱為主程序)。為了實(shí)現(xiàn)中斷功能而設(shè)置的硬件和軟件系統(tǒng)稱為中斷系統(tǒng)。二個(gè)概念:1.正在執(zhí)行的程序2.中斷服務(wù)程序2.1 什么是中斷?中斷(Interrupt)是一種操作中斷事件2005年11月13日中國石油吉林石化公司爆炸事故發(fā)生后,監(jiān)測發(fā)現(xiàn)苯類污染物流入第二松花江,造成水質(zhì)污染。苯類污染物是對(duì)人體健康有危害的有機(jī)物。中斷事件2005年11月13日中國石油吉林石
20、化公司爆炸事故發(fā)中斷隱喻-1假設(shè)我們正在上課,有什么會(huì)打擾我們上課這個(gè)正常的進(jìn)程?有的同學(xué)來晚了;手機(jī)突然響起;領(lǐng)導(dǎo)來檢查;突然停電了;發(fā)生火災(zāi);放聲地震;上述任何一件事情的發(fā)生都可能導(dǎo)致教師的上課因故被打斷。我們稱這些事件為中斷源中斷隱喻-1假設(shè)我們正在上課,有什么會(huì)打擾我們上課這個(gè)正常的中斷隱喻-2對(duì)于如此眾多的中斷源,我們?cè)撊绾翁幚恚靠梢苑譃閮深悾和k?、火?zāi)、地震等,我們沒有辦法!對(duì)于學(xué)生來晚、手機(jī)響、領(lǐng)導(dǎo)來檢查我們還有兩種解決方案:教師不予理睬依然固我地講課教師停止講課,批評(píng)學(xué)生或者迎接領(lǐng)導(dǎo)所以,我們將所有的中斷源分為兩類:不可屏蔽中斷(NonMask Interrupt)可屏蔽中斷(
21、Maskable Interrupt)中斷隱喻-2對(duì)于如此眾多的中斷源,我們?cè)撊绾翁幚??可以分為兩中斷隱喻-3對(duì)于可屏蔽的中斷源,還有一種情況要考慮:如果教師對(duì)于學(xué)生來晚很難接受,就會(huì)停下來對(duì)來晚的學(xué)生進(jìn)行批評(píng);上述情況可以理解為:教師正常的程序是上課,但是因?yàn)橛型瑢W(xué)來晚,停止上課,去批評(píng)學(xué)生,進(jìn)入了一個(gè)“批評(píng)學(xué)生”的中斷服務(wù)程序。教師正在批評(píng)學(xué)生的時(shí)候,領(lǐng)導(dǎo)來檢查,教師此時(shí)需要進(jìn)行一個(gè)決策:是繼續(xù)批評(píng)學(xué)生,還是和領(lǐng)導(dǎo)打聲招呼?如果教師認(rèn)為領(lǐng)導(dǎo)更重要,他會(huì)選擇放棄批評(píng)學(xué)生,進(jìn)而進(jìn)入另一個(gè)中斷服務(wù)程序“和領(lǐng)導(dǎo)打招呼”。換句話說:在執(zhí)行中斷服務(wù)程序時(shí),又來一個(gè)中斷,而且后來的中斷的級(jí)別比前一個(gè)中斷
22、的級(jí)別高,停下現(xiàn)在的中斷服務(wù),跳去執(zhí)行更高級(jí)別的中斷。這個(gè)分析中,我們看到了兩個(gè)概念:中斷是有級(jí)別的;中斷應(yīng)該可以嵌套。中斷隱喻-3對(duì)于可屏蔽的中斷源,還有一種情況要考慮:中斷隱喻-總結(jié)中斷什么時(shí)候來,不確定:中斷是隨機(jī)的;中斷源的種類會(huì)很多;-中斷源中斷源有的必須響應(yīng),有的卻可以不予理睬;-中斷屏蔽眾多的中斷源是有級(jí)別的,必須劃出級(jí)別來;-中斷級(jí)別中斷根據(jù)級(jí)別是可以嵌套的;- 中斷嵌套中斷隱喻-總結(jié)中斷什么時(shí)候來,不確定:中斷是隨機(jī)的;中斷源 概念:引起中斷的原因或發(fā)出中斷請(qǐng)求的來源,稱為中斷源,中斷源種類:通用的I/O設(shè)備。如鍵盤、打印機(jī)等。數(shù)據(jù)通道中斷源。如磁盤、磁帶、光盤等設(shè)備。實(shí)時(shí)時(shí)
23、種(RTC)。故障源。如電源掉電、存儲(chǔ)器出錯(cuò)、運(yùn)算溢出等。軟件設(shè)置的中斷源。如中斷指令I(lǐng)NT產(chǎn)生的中斷。為調(diào)試程序而設(shè)置的中斷源。如斷點(diǎn)中斷、單步中斷。根據(jù)中斷源的性質(zhì),可以分為硬件中斷和軟件中斷。硬件中斷源產(chǎn)生一個(gè)硬件請(qǐng)求信號(hào),該信號(hào)連接到CPU的INTR或NMI引腳,使CPU執(zhí)行中斷處理。硬件中斷又稱為外部中斷。軟件中斷源是CPU根據(jù)指令(如INT指令)或內(nèi)部狀態(tài)(如運(yùn)算溢出、單步標(biāo)志TF)產(chǎn)生的中斷又稱為內(nèi)部中斷。中斷源 概念:中斷的優(yōu)先權(quán)(優(yōu)先級(jí))-1多個(gè)設(shè)備使用中斷方式與CPU交換數(shù)據(jù)時(shí),需解決優(yōu)先級(jí)問題。CPU對(duì)中斷的優(yōu)先權(quán)處理的一般原則是:不同級(jí)的中斷請(qǐng)求同時(shí)發(fā)生時(shí),先處理優(yōu)先級(jí)
24、高的請(qǐng)求。當(dāng)CPU正在處理低優(yōu)先級(jí)中斷的過程中,又出現(xiàn)優(yōu)先級(jí)高的請(qǐng)求,則CPU暫停低優(yōu)先級(jí)中斷的處理, 而優(yōu)先處理高優(yōu)先級(jí)的中斷,當(dāng)高優(yōu)先級(jí)中斷處理完后,再接著處理低優(yōu)先級(jí)中斷。這種情況稱為多重中斷或中斷嵌套。當(dāng)CPU正在處理某優(yōu)先級(jí)中斷的過程中,出現(xiàn)優(yōu)先級(jí)低的請(qǐng)求,則CPU在處理完該中斷后再響應(yīng)新的請(qǐng)求。中斷優(yōu)先級(jí)相同的請(qǐng)求同時(shí)發(fā)生時(shí),按預(yù)先規(guī)定的次序逐個(gè)處理。中斷的優(yōu)先權(quán)(優(yōu)先級(jí))-1多個(gè)設(shè)備使用中斷方式與CPU交換數(shù)中斷的優(yōu)先權(quán)(優(yōu)先級(jí))-2CPU處理中斷優(yōu)先級(jí)的方法:軟件查詢方式硬件排隊(duì)方式鏈?zhǔn)脚抨?duì)電路優(yōu)先權(quán)編碼集成芯片中斷的優(yōu)先權(quán)(優(yōu)先級(jí))-2CPU處理中斷優(yōu)先級(jí)的方法:軟件查詢方式
25、.軟件查詢方式 軟件查詢方式要借助簡單的硬件電路。把多個(gè)設(shè)備的中斷請(qǐng)求信號(hào)相或作為向CPU的請(qǐng)求信號(hào), 任意外設(shè)有中斷請(qǐng)求時(shí),都可以向CPU發(fā)出INTR信號(hào)。同時(shí),設(shè)計(jì)一個(gè)狀態(tài)寄存器,其中每一位標(biāo)識(shí)一個(gè)設(shè)備的請(qǐng)求情況(如,有請(qǐng)求時(shí),對(duì)應(yīng)位置1)。CPU在中斷處理程序中,讀入狀態(tài)寄存器的值,然后逐位檢查它們的狀態(tài)。若發(fā)現(xiàn)某位有中斷請(qǐng)求,就轉(zhuǎn)入相應(yīng)的中斷處理程序。設(shè)中斷優(yōu)先級(jí)排列為:電源故障磁盤磁帶CRT紙帶輸入紙帶穿孔鍵盤打印機(jī)軟件查詢方式.軟件查詢方式 設(shè)中斷優(yōu)先級(jí)排列為:鏈?zhǔn)脚抨?duì)電路-菊花鏈法在每個(gè)外設(shè)對(duì)應(yīng)的接口電路上連接一個(gè)邏輯電路,這些邏輯電路構(gòu)成一個(gè)鏈,稱為菊花鏈。當(dāng)某個(gè)或幾個(gè)外設(shè)請(qǐng)求
26、中斷時(shí),優(yōu)先級(jí)排隊(duì)電路設(shè)置中斷(F/F),并向CPU發(fā)出INTR信號(hào),CPU響應(yīng)中斷時(shí)發(fā)出INTA信號(hào)。INTA信號(hào)只能傳送到排隊(duì)電路的前面,因此排隊(duì)電路前面的外設(shè)獲得允許信號(hào)(圖中的中斷輸出),送出中斷類型碼。排隊(duì)電路后面的外設(shè)收不到INTA信號(hào)。因此,接口在菊花鏈中的位置,決定了其優(yōu)先級(jí),越靠近排隊(duì)電路前面的外設(shè),優(yōu)先級(jí)越高。鏈?zhǔn)脚抨?duì)電路-菊花鏈法在每個(gè)外設(shè)對(duì)應(yīng)的接口電路上連接一個(gè)邏輯優(yōu)先級(jí)編碼集成芯片在微機(jī)中,典型地使用可編程中斷控制器Intel 8259管理多個(gè)外設(shè)的中斷請(qǐng)求。在中斷控制器內(nèi)部,有一個(gè)優(yōu)先權(quán)編碼排隊(duì)電路8條中斷輸入線的任意一條請(qǐng)求信號(hào),經(jīng)8到3優(yōu)先權(quán)編碼器5產(chǎn)生三位二進(jìn)
27、制編碼A2A1A0,優(yōu)先權(quán)最高的請(qǐng)求編碼為111,優(yōu)先權(quán)最低的請(qǐng)求編碼為000。若有多個(gè)請(qǐng)求線同時(shí)請(qǐng)求,編碼器僅輸出優(yōu)先權(quán)最高的編碼。當(dāng)CPU尚未處理任何中斷時(shí),優(yōu)先權(quán)失效信號(hào)為1,此時(shí),任意請(qǐng)求線有請(qǐng)求時(shí),均可以經(jīng)“或門7”、與門2”、“或門3”向CPU申請(qǐng)中斷,且該中斷的編碼經(jīng)過CPU數(shù)據(jù)總線送至優(yōu)先權(quán)寄存器6。 優(yōu)先權(quán)寄存器中總是存放著當(dāng)前正在處理的中斷的編碼(B2B1B0)。當(dāng)出現(xiàn)新的請(qǐng)求時(shí),新請(qǐng)求的編碼A2A1A0送到比較器,只有當(dāng)新請(qǐng)求的優(yōu)先級(jí)A2A1A0大于正在處理的中斷的編碼B2B1B0時(shí),比較器輸出1,經(jīng)“與門1”、“或門3”向CPU申請(qǐng)中斷,同時(shí),新中斷的編碼經(jīng)過CPU數(shù)據(jù)
28、總線送至“優(yōu)先權(quán)寄存器6”。優(yōu)先級(jí)編碼集成芯片在微機(jī)中,典型地使用可編程中斷控制器Int8086/8088中斷系統(tǒng)1.8086/8088如何管理中斷?2.硬件電路如何設(shè)計(jì)?3.如何實(shí)現(xiàn)中斷編程?4.中斷如何調(diào)試?8086/8088中斷系統(tǒng)1.8086/8088如何管理中斷8086/8088對(duì)中斷的支持8086/8088的硬件支持8086/8088的軟件管理NMI:Non Maskable InterruptINTR: Maskable InterruptINTA:Interrupt Acknowledge8086/8088對(duì)中斷的支持8086/8088的硬件支持N8086/8088中斷系統(tǒng)80
29、86/8088可管理256個(gè)中斷源包括:非屏蔽中斷可屏蔽中斷NMI引入,1個(gè),不受IF的屏蔽INTR引入,多個(gè),受IF的屏蔽CPU根據(jù)軟件中的某條指令或者軟件對(duì)標(biāo)志寄存器中的設(shè)置而產(chǎn)生的硬件中斷軟件中斷(外部中斷)(內(nèi)部中斷)8086/8088中斷系統(tǒng)8086/8088可管理256個(gè)中8086/8088中斷系統(tǒng)CPU的FLAG寄存器中有一位IF,該位不控制NMI和軟件中斷。當(dāng)IF置0時(shí),所有外部可屏蔽中斷被禁止;當(dāng)IF置1時(shí),所有外部可屏蔽中斷被允許。匯編語言對(duì)該位的操作指令:CLI:關(guān)中斷STI:開中斷C語言對(duì)該位的操作命令:Enable():開中斷Disable():關(guān)中斷8086/808
30、8中斷系統(tǒng)CPU的FLAG寄存器中有一位IF8086/8088中斷系統(tǒng)256個(gè)中斷如何管理?對(duì)計(jì)算機(jī)而言,中斷一旦來,CPU將自動(dòng)響應(yīng)中斷,即CPU自動(dòng)跳轉(zhuǎn)到中斷服務(wù)程序處,開始執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序必須預(yù)先編寫好,并放置在CPU所知道的地方,以方便CPU的自動(dòng)跳轉(zhuǎn)。計(jì)算機(jī)需要一套管理機(jī)制,自動(dòng)管理中斷服務(wù)。8086/8088設(shè)置了一個(gè)中斷向量表,以矢量的形式來管理256個(gè)中斷。中斷向量表固定放置在以00000H開始的內(nèi)存中,占據(jù)內(nèi)存1K字節(jié),即每個(gè)中斷占4Bytes,我們稱之為中斷向量。每個(gè)中斷有一個(gè)號(hào)碼(0255),稱之為中斷號(hào)。8086/8088中斷系統(tǒng)256個(gè)中斷如何管理?80
31、86/8088中斷向量表8086/8088中斷向量表 8086/8088的中斷優(yōu)先級(jí)別中斷源優(yōu)先級(jí)除法錯(cuò)、INT n,INTO最高NMIINTR單步(陷阱)最低 8086/8088的中斷優(yōu)先級(jí)別中斷源優(yōu)先級(jí)除法錯(cuò)、INT707中斷向量在內(nèi)存中的安排4bytes非為兩部分1.低地址存IP2.高地址存CS里面存的是地址,中斷服務(wù)程序的入口地址707中斷向量在8086/8088中斷系統(tǒng)中斷矢量表范圍: 00000H 003FFH(1KB)每一個(gè)中斷服務(wù)程序的入口地址占四個(gè)字節(jié)單元(2564=1024B),高字節(jié)放的是段地址(CS),低字節(jié)放的是偏移地址(IP)每個(gè)中斷源對(duì)應(yīng)一個(gè)中斷服務(wù)程序,每一個(gè)中
32、斷服務(wù)程序都有固定的入口地址中斷矢量號(hào)N中斷矢量表的地址中斷矢量表中斷服務(wù)程序的入口 地址(CS,IP) 48086/8088中斷系統(tǒng)中斷矢量表范圍: 00000H 例: 鍵盤中斷的矢量號(hào)為09H,它的中斷服務(wù)程序入口地址為0BA9H:0125H,求它在中斷矢量表中的地址及相應(yīng)單元內(nèi)容 解:鍵盤中斷對(duì)應(yīng)的中斷矢量表位于0000:0024H (09H4=24H)開始的4單元,這4個(gè)單元的內(nèi)容見表:例: 鍵盤中斷的矢量號(hào)為09H,它的中斷服務(wù)程序入口地址為08086/8088中斷系統(tǒng)問題1:中斷向量表中存的是中斷服務(wù)程序的入口地址假設(shè)已經(jīng)編好一個(gè)中斷服務(wù)程序,放在0024:1200H為起始地址的內(nèi)
33、存中,如何將0024:1200H這個(gè)地址放到中斷向量表中?問題2:CPU如果接收到了一個(gè)中斷請(qǐng)求,如何自動(dòng)執(zhí)行?問題3:很顯然外設(shè)不僅要給CPU一個(gè)INTR信號(hào),還需要給出中斷向量號(hào),如何給出?8086/8088中斷系統(tǒng)問題1:問題1:設(shè)置中斷向量有兩個(gè)方法:方法1:假設(shè)0024:1200H是中斷4的服務(wù)程序入口地址,你需要將指針指到0000:0010H處,然后分別將0024H、1200H寫到0000:0010H0000:0014H中,但這種操作方法需要對(duì)計(jì)算機(jī)有清晰的概念,否則容易出錯(cuò)。方法2:匯編語言和高級(jí)語言分別有指令可以設(shè)置中斷向量表。以C語言為例。問題1:設(shè)置中斷向量有兩個(gè)方法:問題
34、1:設(shè)置中斷向量先編寫中斷服務(wù)程序:void interrupt yourisr() disable(); /*關(guān)中斷*/ /* Body of ISR Goes Here */ oldhandler(); /*舊的中斷服務(wù)程序*/ outportb(0 x20h,0 x20h); /*中斷返回指令 IRET*/ enable(); /*開中斷*/問題1:設(shè)置中斷向量先編寫中斷服務(wù)程序:問題1:設(shè)置中斷向量主程序#include #define INTN0 0 x0Bvoid interrupt (*oldhandler)(); /*定義函數(shù)指針變量*/void main(void) oldh
35、andler = getvect (INTNO); /*獲得0 x0B號(hào)中斷向量,保存在oldhandler變量中*/ setvect (INTNO, yourisr); /*將你的中斷服務(wù)程序的入口地址設(shè)置在0 x0B中斷向量中,當(dāng)0 x0B號(hào)中斷來時(shí),CPU自動(dòng)跳轉(zhuǎn)到你的服務(wù)程序yourisr中*/ outportb (0 x21h, (inportb (0 x21h)&0 xF7h); /* Set Card Port to Generate Interrupts */ /* Body of Program Goes Here */ /* Reset Card Port as to St
36、op Generating Interrupts */ outportb (0 x21h, (inportb (0 x21h)|0 x08h); setvect (INTNO, oldhandler);問題1:設(shè)置中斷向量主程序#include 問題2:CPU響應(yīng)中斷過程CPU響應(yīng)中斷需要幾個(gè)條件:IF=1,中斷允許;匯編語言每條指令執(zhí)行完畢后檢測中斷信號(hào);(1)從數(shù)據(jù)總線上讀取中斷矢量號(hào),將其存入內(nèi)部暫存器(2)將標(biāo)志寄存器FR的值進(jìn)棧(PUSHF)(3)把FR的中斷允許標(biāo)志IF和單步標(biāo)志TF清零(4)將斷點(diǎn)保護(hù)到堆棧中(PUSH CS;PUSH IP) 斷點(diǎn):是指響應(yīng)中斷時(shí),主程序中當(dāng)前指
37、令下面的一條指令的地址,包括CS和IP的值(5)依據(jù)獲得的中斷矢量號(hào),到內(nèi)存中斷矢量表中找到中斷矢量,再依據(jù)該中斷矢量轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序問題2:CPU響應(yīng)中斷過程CPU響應(yīng)中斷需要幾個(gè)條件:(1)中斷服務(wù)(處理)子程序的結(jié)構(gòu)模式現(xiàn)場保護(hù),既通過一系列進(jìn)棧指令保護(hù)中斷現(xiàn)場,如保護(hù)CPU各寄存器的值用指令設(shè)置中斷允許標(biāo)志IF開中斷,以允許級(jí)別更高的中斷進(jìn)入中斷處理的具體內(nèi)容現(xiàn)場恢復(fù)中斷返回指令I(lǐng)RET,目的將堆棧中保護(hù)的斷點(diǎn)值和標(biāo)志值分別裝入IP、CS和標(biāo)志寄存器中中斷服務(wù)(處理)子程序的結(jié)構(gòu)模式現(xiàn)場保護(hù),既通過一系列進(jìn)棧指8086/8088CPU的中斷處理過程當(dāng)前指令結(jié)束,采樣中斷源?內(nèi)部中
38、斷?NMI中斷?INTR中斷?TF=1?執(zhí)行下一條指令I(lǐng)F=1?內(nèi)部獲取中斷類型碼內(nèi)部獲取中斷類型碼從外部獲取中斷類型碼標(biāo)志寄存器FR入棧TEMP = TF清除TF、IFCS、IP入棧形成中斷服務(wù)程序入口有NMI中斷?TEMP=1?執(zhí)行中斷服務(wù)程序CS、IP出棧標(biāo)志寄存器FR出棧轉(zhuǎn)入NMI中斷服務(wù)轉(zhuǎn)入單步中斷服務(wù)YNYYYNNNYNNNNYY8086/8088CPU的中斷處理過程當(dāng)前指令結(jié)束,內(nèi)部中斷CPU進(jìn)入中斷響應(yīng),F(xiàn)R入棧,將TF送入暫存器TEMP,然后清除IF和TF。清除IF將保護(hù)本中斷服務(wù)過程不被可屏蔽中斷打斷,清除TF是保護(hù)中斷服務(wù)程序的連續(xù)執(zhí)行。在中斷返回時(shí),隨著FR的恢復(fù),IF
39、、TF隨之恢復(fù);NMI引腳上的請(qǐng)求需要立即處理,因此在進(jìn)入任何中斷服務(wù)程序之前先安排測試NMI上是否有中斷請(qǐng)求,有,則再次保護(hù)現(xiàn)場和斷點(diǎn),進(jìn)入NMI中斷服務(wù),從而保證NMI實(shí)際上擁有最高優(yōu)先權(quán)。如果當(dāng)前執(zhí)行的就是NMI中斷服務(wù)程序,則不會(huì)再次轉(zhuǎn)入;在執(zhí)行任何中斷服務(wù)前,若沒有NMI請(qǐng)求,則接著查看暫存器TEMP狀態(tài),若TEMP1,則中斷前CPU已處于單步工作,與NMI相同,重新保護(hù)現(xiàn)場和斷點(diǎn),轉(zhuǎn)入單步中斷服務(wù)程序;若TEMP0,則中斷前為非單步工作,無需執(zhí)行單步中斷。如果當(dāng)前執(zhí)行的就是單步中斷服務(wù)程序,則不會(huì)再次轉(zhuǎn)入;如果在中斷服務(wù)程序中設(shè)置了開中斷指令,使IF=1,則在中斷服務(wù)過程中可以再次
40、響應(yīng)優(yōu)先權(quán)級(jí)別高的可屏蔽中斷,實(shí)現(xiàn)中斷嵌套;CPU進(jìn)入中斷響應(yīng),F(xiàn)R入棧,將TF送入暫存器TEMP,然后問題3:中斷接口電路8259A8259A是中斷接口芯片,負(fù)責(zé)接收外設(shè)的信號(hào),并產(chǎn)生INTR信號(hào)給CPU,同時(shí)給出中斷向量號(hào)。問題3:中斷接口電路8259A8259A是中斷接口芯片,負(fù)責(zé)8259A的功能圖8259A是專門為了對(duì)8085A和8086/8088進(jìn)行中斷控制而設(shè)計(jì)的芯片,它是可以用程序控制的中斷控制器。8259A能管理8級(jí)向量優(yōu)先級(jí)中斷。在不增加其他電路的情況下,最多可以級(jí)聯(lián)成64級(jí)的向量優(yōu)級(jí)中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設(shè)定是在初始化時(shí)通過軟件進(jìn)
41、行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對(duì)8259A芯片進(jìn)行初始化編程的狀態(tài)。8259A的功能圖8259A是專門為了對(duì)8085A和80868259A隱喻CPU就相當(dāng)于一個(gè)公司的老總,而8259A芯片就相當(dāng)于這個(gè)老總的秘書?,F(xiàn)在有很多人想見老總,但老總正在打電話,于是交由秘書先行接待。每個(gè)想見老總的人都需要把自己的名片交給秘書,秘書首先看看名片,有沒有老總明確表示不愿見到的人,如果沒有就把它放到一個(gè)盒子里面。這時(shí)老總的電話還沒打完,但不停的有人遞上名片求見老總,秘書就把符合要求的名片全放在盒子里了。老總打完電話了,探出頭來問秘書
42、:有人想見我嗎?這時(shí),秘書就從盒子里挑選一個(gè)級(jí)別最高的,并把他的名片交給老總。 8259A隱喻CPU就相當(dāng)于一個(gè)公司的老總,而8259A芯片8259A外形及管腳定義8259使用說明8259A外形及管腳定義8259使用說明CPU與8259A接口電路原理圖CPU與8259A接口電路原理圖計(jì)算機(jī)接口技術(shù)解析3.DMA處理方式DMA最明顯的一個(gè)特點(diǎn)是它不是用軟件而是采用一個(gè)專門的控制器來控制內(nèi)存與外設(shè)之間的數(shù)據(jù)交流,無須CPU介入,大大提高CPU的工作效率。在進(jìn)行DMA數(shù)據(jù)傳送之前,DMA控制器會(huì)向CPU申請(qǐng)總線控制權(quán),CPU如果允許,則將控制權(quán)交出,因此,在數(shù)據(jù)交換時(shí),總線控制權(quán)由DMA控制器掌握,
43、在傳輸結(jié)束后,DMA控制器將總線控制權(quán)交還給CPU。3.DMA處理方式DMA最明顯的一個(gè)特點(diǎn)是它不是用軟件而是采DMA(Directory Memory Access)直接內(nèi)存存取3.DMA技術(shù)76DMA(Directory Memory Access)3.主要內(nèi)容DMA 傳送的特點(diǎn)DMA 傳送的過程DMA 傳送的方式3.13.23.377DMA 控制器3.4DMA 系統(tǒng)3.5DMA 傳送的應(yīng)用3.6主要內(nèi)容DMA 傳送的特點(diǎn)DMA 傳送的過程DMA 傳送的方DMADMA (Direct Memory Access):讓存儲(chǔ)器與高速外設(shè)直接進(jìn)行數(shù)據(jù)交換而無需CPU的干預(yù)。特點(diǎn)DMA傳送期間,D
44、MA控制器(DMAC)接管了CPU對(duì)總線的控制權(quán)。DMA方式中,內(nèi)存地址的修改、傳送結(jié)束的判斷都由硬件電路實(shí)現(xiàn)。即:用硬件控制代替了軟件控制。DMA控制器是實(shí)現(xiàn)DMA傳送的核心器件。783.1 DMA傳送的特點(diǎn)DMA803.1 DMA傳送的特點(diǎn)應(yīng)用場合DMA方式主要用于高速大批量傳輸數(shù)據(jù)的場合。如:硬盤和軟盤外設(shè);快速通信通道;多處理機(jī)和多程序數(shù)據(jù)塊傳送;圖像處理中向CRC屏幕傳送數(shù)據(jù);快速數(shù)據(jù)采集;DRAM的刷新操作。793.1 DMA傳送的特點(diǎn)應(yīng)用場合813.1 DMA傳送的特點(diǎn)3.2 DMA傳送的過程803.2 DMA傳送的過程825個(gè)階段初始化階段813.2 DMA傳送的過程 要傳送的
45、數(shù)據(jù)字節(jié)數(shù) 數(shù)據(jù)在存儲(chǔ)器中的起始地址 傳送方向 DMAC的通道號(hào) DMAC 5個(gè)階段833.2 DMA傳送的過程 要傳送的數(shù)據(jù)字節(jié)數(shù) 申請(qǐng)階段當(dāng)外設(shè)有DMA需求,并且已準(zhǔn)備就緒,則向DMA控制器發(fā)出DMA請(qǐng)求信號(hào)DREQ。DMA控制器接收到DMA請(qǐng)求信號(hào)后,向CPU發(fā)出總線請(qǐng)求信號(hào)HRQ。該信號(hào)連接到CPU的HOLD信號(hào)。823.2 DMA傳送的過程 外部設(shè)備 DMAC DREQ CPU HRQ申請(qǐng)階段843.2 DMA傳送的過程 外部設(shè)備 DMAC 響應(yīng)階段CPU收到DMA的HRQ請(qǐng)求后,若允許DMA傳輸,則在當(dāng)前總線周期結(jié)束后,釋放總線控制權(quán),并向DMAC發(fā)HLDA信號(hào),通知其CPU已交出
46、總線。833.2 DMA傳送的過程CPU檢測HRQHRQ有效且LOCK無效CPU交出總線CPU向DMAC發(fā)HLDAYNDMAC成為總線主控者 響應(yīng)階段853.2 DMA傳送的過程CPU檢測HRQHRQ有數(shù)據(jù)傳送階段DMA控制器獲得總線的控制權(quán),向外設(shè)發(fā)送應(yīng)答信號(hào)DACK,通知外設(shè)可以進(jìn)行DMA傳輸了。DMA控制器送出地址信號(hào)和控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存的數(shù)據(jù)傳輸。843.2 DMA傳送的過程 外部設(shè)備 DMAC 存儲(chǔ)器 DACK地址信號(hào)讀寫信號(hào)數(shù)據(jù)傳送階段863.2 DMA傳送的過程 外部設(shè)備 DMAC傳送結(jié)束階段DMAC向外設(shè)發(fā)送EOP信號(hào),外設(shè)撤銷DREQ請(qǐng)求,同時(shí)HRQ和HLDA信號(hào)變?yōu)闊o
47、效,DMAC釋放總線,CPU重獲總線控制權(quán)。853.2 DMA傳送的過程CPU重獲總線控制權(quán)DMAC向外設(shè)發(fā)EOP信號(hào)外設(shè)撤消DREQ信號(hào)HRQ和HLDA變?yōu)闊o效DMAC交出總線控制權(quán)傳送結(jié)束階段873.2 DMA傳送的過程CPU重獲總線控制權(quán)DMA的傳送類型數(shù)據(jù)傳送:把源地址的數(shù)據(jù)傳送到目的地址去。DMA讀:把數(shù)據(jù)由存儲(chǔ)器傳送到外設(shè)。DMA寫:把外設(shè)輸入的數(shù)據(jù)寫入存儲(chǔ)器。存儲(chǔ)器與存儲(chǔ)器之間的傳遞。讀/寫操作均是針對(duì)存儲(chǔ)器而言。數(shù)據(jù)校驗(yàn):對(duì)數(shù)據(jù)塊內(nèi)的每個(gè)字節(jié)進(jìn)行校驗(yàn)。數(shù)據(jù)檢索:在指定的內(nèi)存區(qū)域內(nèi)查找某個(gè)關(guān)鍵字節(jié)或某幾個(gè)關(guān)鍵數(shù)據(jù)位是否存在,如果查到了,就停止檢索。863.3 DMA傳送的方式DM
48、A的傳送類型883.3 DMA傳送的方式DMA的傳送方式按照每次DMA操作所操作的字節(jié)數(shù),可分為:單字節(jié)傳送方式數(shù)據(jù)塊傳送方式請(qǐng)求傳送方式級(jí)聯(lián)傳輸方式873.3 DMA傳送的方式DMA的傳送方式893.3 DMA傳送的方式單字節(jié)傳送方式每次傳送一個(gè)字節(jié),然后釋放總線控制權(quán)。傳送下一個(gè)字節(jié)時(shí),重新申請(qǐng)使用總線。特點(diǎn)CPU在每個(gè)DMA周期結(jié)束后立即控制總線。對(duì)系統(tǒng)影響不大。CPU和DMAC輪流控制系統(tǒng)總線,傳輸效率低。883.3 DMA傳送的方式允許 DMADMAC發(fā)總線請(qǐng)求CPU響應(yīng)DMA放棄總線DMAC控制傳一個(gè)字節(jié)放棄總線中斷請(qǐng)求NDMA放棄總線NYYDMA請(qǐng)求?塊結(jié)束否?單字節(jié)傳送方式90
49、3.3 DMA傳送的方式允許 DMADMA數(shù)據(jù)塊傳送方式只要DMA一啟動(dòng),DMAC始終占用總線,直到數(shù)據(jù)傳送結(jié)束,或外部強(qiáng)制停止,才交出總線控制權(quán)。特點(diǎn)效率高。DMA傳輸期間CPU長時(shí)間不能控制總線。若一次傳輸?shù)臄?shù)據(jù)較多,對(duì)系統(tǒng)會(huì)有一定響應(yīng)。893.3 DMA傳送的方式允許 DMADMAC發(fā)總線請(qǐng)求CPU 響應(yīng) DMA放棄總線DMAC控制傳一個(gè)字節(jié)放棄總線中斷請(qǐng)求YNDMA請(qǐng)求?塊結(jié)束?數(shù)據(jù)塊傳送方式913.3 DMA傳送的方式允許 DMADMA請(qǐng)求傳送方式當(dāng)外部有DMA請(qǐng)求時(shí)DMAC才占用總線。當(dāng)DMA請(qǐng)求無效,或操作結(jié)束,或由外部送來結(jié)束信號(hào)EOP,DMAC都會(huì)釋放總線,把總線控制權(quán)交還C
50、PU。具體實(shí)現(xiàn):每傳完一個(gè)字節(jié),DMAC都會(huì)檢測外設(shè)的DREQ請(qǐng)求。若DREQ無效,則馬上停止DMA傳輸,將總線控制權(quán)交給CPU。特點(diǎn)實(shí)現(xiàn)靈活,DMA操作可由外設(shè)用DREQ信號(hào)控制發(fā)送過程。903.3 DMA傳送的方式請(qǐng)求傳送方式923.3 DMA傳送的方式913.3 DMA傳送的方式允許DMADMAC發(fā)出總線請(qǐng)求CPU響應(yīng)DMA放棄總線DMAC控制傳一個(gè)字節(jié)放棄總線中斷請(qǐng)求YY放棄總線NNYDMA請(qǐng)求?塊結(jié)束?DMA請(qǐng)求?N933.3 DMA傳送的方式允許DMADMAC發(fā)出總線請(qǐng)求C級(jí)聯(lián)傳送方式將多個(gè)DMAC連在一起,一個(gè)為主,其余為從。從片收到外設(shè)的DMA請(qǐng)求后,不是向CPU申請(qǐng)總線,而是
51、向主片申請(qǐng),再由主片向CPU申請(qǐng)。923.3 DMA傳送的方式級(jí)聯(lián)傳送方式943.3 DMA傳送的方式DMA控制器的2種狀態(tài)主動(dòng)工作態(tài) 在主動(dòng)工作狀態(tài)下,DMAC取代處理器CPU,獲得了對(duì)系統(tǒng)總線的控制權(quán),成為系統(tǒng)總線的主控者,向存儲(chǔ)器和外設(shè)發(fā)號(hào)施令。被動(dòng)工作態(tài) 在被動(dòng)工作狀態(tài)下,DMAC接受CPU對(duì)它的控制和指揮。例如:對(duì)DMAC進(jìn)行初始化編程以及從DMAC讀取狀態(tài)等。933.4 DMA控制器DMA控制器的2種狀態(tài)953.4 DMA控制器DMAC與CPU間總線控制權(quán)的轉(zhuǎn)移兩組聯(lián)絡(luò)信號(hào)實(shí)現(xiàn)總線控制權(quán)的轉(zhuǎn)移 943.4 DMA控制器DMAC與CPU間總線控制權(quán)的轉(zhuǎn)移963.4 DMA控制器DMA
52、控制器8237A-5 的基本特點(diǎn)8237A-5是一個(gè)高性能通用可編程DMAC。具有4個(gè)獨(dú)立的通道,通過級(jí)聯(lián)方式進(jìn)行擴(kuò)充。最多可擴(kuò)展4個(gè)從片,即16個(gè)DMA通道。每個(gè)通道可傳輸?shù)淖畲髷?shù)據(jù)塊均為64KB。可實(shí)現(xiàn)內(nèi)存到外設(shè)、外設(shè)到內(nèi)存以及內(nèi)存到內(nèi)存之間的高速數(shù)據(jù)傳輸,最高數(shù)據(jù)傳輸速率可達(dá)1.6MB/s。具有多種控制方式和操作類型。953.4 DMA控制器DMA控制器8237A-5 的基本特點(diǎn)973.4 DMA控制8237A-5外部特性概況 40引腳上列直插封裝。引腳說明963.4 DMA控制器8237A-5外部特性983.4 DMA控制器(1) 請(qǐng)求與應(yīng)答信號(hào)DREQ3 DREQ0:DMA通道請(qǐng)求輸
53、入信號(hào)(由外設(shè)提供)。有效電平可高可低,由程序選定。 優(yōu)先級(jí):DREQ0最高, DREQ3最低。HRQ:8237A-5向CPU發(fā)出的總線請(qǐng)求信號(hào),高電平有效。HLDA:CPU發(fā)給8237A-5的總線請(qǐng)求響應(yīng)信號(hào)。高電平有效。有效時(shí)表示CPU已讓出總線。DACK3 DACK0:DMA響應(yīng)輸出信號(hào)(外接外設(shè))。有效電平可高可低,由程序選定。 8237A-5在同一個(gè)時(shí)間,只能有一個(gè)DACK應(yīng)答信號(hào)有效。973.4 DMA控制器 外部設(shè)備 DMAC DREQ CPU HRQHLDADACK(1) 請(qǐng)求與應(yīng)答信號(hào)993.4 DMA控制器 外部設(shè)備 (2) 地址信號(hào)線A3 A0:地址線,雙向三態(tài)。被動(dòng)狀態(tài)
54、下,為輸入,作為CPU對(duì)8237A-5內(nèi)部的16個(gè)寄存器與計(jì)數(shù)器尋址之用。主動(dòng)狀態(tài)下,為輸出,作為20位存儲(chǔ)器地址的最低4位。A7 A4:地址線,單向。主動(dòng)狀態(tài)下,為輸出。作為訪問20位存儲(chǔ)器地址低8位中的高4位。983.4 DMA控制器 (2) 地址信號(hào)線1003.4 DMA控制器 (3) 數(shù)據(jù)信號(hào)DB7 DB0:地址數(shù)據(jù)復(fù)用線,雙向三態(tài)。被動(dòng)狀態(tài)下,為雙向數(shù)據(jù)線。用于CPU對(duì)8237A進(jìn)行初始化,或DMA傳輸結(jié)束后傳送狀態(tài)。主動(dòng)狀態(tài)下,分時(shí)復(fù)用作為訪問存儲(chǔ)器的高8位地址線和數(shù)據(jù)線。在存儲(chǔ)器到存儲(chǔ)器傳送方式中,作為數(shù)據(jù)的輸入輸出端。993.4 DMA控制器 (3) 數(shù)據(jù)信號(hào)1013.4 DM
55、A控制器 (4) 控制信號(hào)CS:片選信號(hào),低有效。被動(dòng)狀態(tài)下用于CPU對(duì)8237的尋址。CLK:控制芯片內(nèi)部操作和數(shù)據(jù)傳輸。RESET:輸入信號(hào),復(fù)位8237A。IOR/IOW:讀寫控制信號(hào)。被動(dòng)狀態(tài)下,為輸入。用于CPU向DMAC寫命令或初始化參數(shù),或CPU讀取8237A內(nèi)部寄存器狀態(tài)。主動(dòng)狀態(tài)下,為輸出。對(duì)外設(shè)進(jìn)行讀寫。MEMR/MEMW:存儲(chǔ)器讀/寫信號(hào),單向輸出。當(dāng)8237A為主動(dòng)工作狀態(tài)時(shí),對(duì)存儲(chǔ)器進(jìn)行讀寫。1003.4 DMA控制器 (4) 控制信號(hào)1023.4 DMA控制器ADSTB:地址選通信號(hào),輸出。在主動(dòng)狀態(tài)下,DB0 DB7作為高8位地址線時(shí),ADSTB是把這8位地址鎖存
56、到地址鎖存器的輸入選通信號(hào)。高電平允許輸入,低電平鎖存。AEN:地址允許,輸出。是高8位地址鎖存器輸出允許信號(hào)。READY:準(zhǔn)備就緒信號(hào),輸入,高電平有效。在主動(dòng)工作狀態(tài)下,控制總線周期的長度,與慢速設(shè)備同步。EOP:過程結(jié)束信號(hào),雙向。DMA傳送過程結(jié)束,則從EOP輸出一個(gè)低有效脈沖。若從EOP輸入低脈沖信號(hào),則表明外部強(qiáng)制結(jié)束DMA傳送。1013.4 DMA控制器ADSTB:地址選通信號(hào),輸出。在主動(dòng)狀態(tài)下,DB0 D8237A-5內(nèi)部結(jié)構(gòu)4個(gè)DMA通道和一個(gè)公共控制部分。每個(gè)DMA通道包括:基本地址寄存器、當(dāng)前地址寄存器基字節(jié)寄存器、當(dāng)前字節(jié)計(jì)數(shù)器公共控制部分:工作方式寄存器、命令寄存器
57、、狀態(tài)寄存器請(qǐng)求寄存器、屏蔽寄存器、暫存寄存器1023.4 DMA控制器8237A-5內(nèi)部結(jié)構(gòu)1043.4 DMA控制器1033.4 DMA控制器1053.4 DMA控制器8237A-5 DMA通道內(nèi)部寄存器1043.4 DMA控制器基地址寄存器(只寫)16位寄存器。用來存放DMA傳送的內(nèi)存起始地址。初始化時(shí)由CPU寫入,先寫低字節(jié),后寫高字節(jié)。在DMA傳輸過程中,基址寄存器的內(nèi)容保持不變。自動(dòng)預(yù)置時(shí),將它的內(nèi)容裝入當(dāng)前地址寄存器。當(dāng)前地址寄存器(可讀可寫)16位寄存器,用來存放DMA傳送的當(dāng)前內(nèi)存地址值。每次DMA傳送后,其值自動(dòng)增(減)1。其初值與基址寄存器相同,由CPU同時(shí)一并寫入。自動(dòng)
58、預(yù)置時(shí),傳輸結(jié)束后(EOP信號(hào))其值重置為基地址。8237A-5 DMA通道內(nèi)部寄存器1063.4 DMA控制基字節(jié)寄存器(只寫)16位寄存器。用來存放DMA傳送的總字節(jié)數(shù) (傳N個(gè)字節(jié)時(shí)字節(jié)總數(shù)應(yīng)為N-1)。初始化時(shí)由CPU寫入,先寫低字節(jié),后寫高字節(jié)。在DMA傳輸過程中,其保持不變。自動(dòng)預(yù)置時(shí),將它的內(nèi)容重新裝入當(dāng)前字節(jié)寄存器。當(dāng)前字節(jié)計(jì)數(shù)器(可讀可寫)16位寄存器,用來存放DMA傳送過程中沒有傳送完的字節(jié)數(shù)減1。每次傳送后該寄存器的值自動(dòng)減1。若減到-1,則數(shù)據(jù)塊傳輸結(jié)束,EOP有效。其初值與基字節(jié)寄存器相同,由CPU同時(shí)一并寫入。自動(dòng)預(yù)置時(shí),傳輸結(jié)束后(EOP信號(hào))其值重置為基字節(jié)數(shù)。
59、1053.4 DMA控制器基字節(jié)寄存器(只寫)1073.4 DMA控制器8237A-5 DMA通道公用寄存器(1) 工作方式寄存器 (只寫)1063.4 DMA控制器8237A-5 DMA通道公用寄存器1083.4 DMA控制D7、D6:設(shè)置工作方式。D5:指出每次DMA傳輸后地址寄存器的內(nèi)容是增1還是減1,它決定了在內(nèi)存中存儲(chǔ)數(shù)據(jù)或讀取數(shù)據(jù)的順序。D4:為1時(shí)對(duì)DMA進(jìn)行自動(dòng)預(yù)置。自動(dòng)預(yù)置時(shí),當(dāng)完成一個(gè)DMA操作,EOP出現(xiàn)負(fù)脈沖,當(dāng)前地址寄存器和當(dāng)前字節(jié)寄存器會(huì)從基地址寄存器和基字節(jié)計(jì)數(shù)器中重新取得初值,從而為下一次數(shù)據(jù)傳輸做好準(zhǔn)備。D3D2:設(shè)置數(shù)據(jù)傳輸類型。針對(duì)存儲(chǔ)器而言。D1D0:選
60、擇通道號(hào)。1073.4 DMA控制器D7、D6:設(shè)置工作方式。1093.4 DMA控制器例:PC系列軟盤讀寫操作選擇DMA通道2,單字節(jié)傳送,地址增1,不用自動(dòng)預(yù)置,其寫、讀、校驗(yàn)操作的方式字分別如下:寫操作:01000110 = 46H。讀操作:01001010 = 4AH。校驗(yàn)操作:01000010 = 42H。1083.4 DMA控制器例:PC系列軟盤讀寫操作選擇DMA通道2,單字節(jié)傳送,地址增 (2) 命令寄存器(只寫)1093.4 DMA控制器 (2) 命令寄存器(只寫)1113.4 DMA控制器D7、D6:決定DREQ和DACK的有效電平。D5:滯后寫和擴(kuò)展寫D5=1:滯后寫,表示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年承德道路貨運(yùn)從業(yè)資格證模擬考試
- 現(xiàn)代經(jīng)濟(jì)下的行業(yè)市場風(fēng)險(xiǎn)評(píng)估與預(yù)測
- 現(xiàn)代物流行業(yè)的人才需求與培養(yǎng)策略
- 現(xiàn)代廠區(qū)安全規(guī)劃與管理
- 物流行業(yè)經(jīng)濟(jì)型服務(wù)網(wǎng)絡(luò)的構(gòu)建與優(yōu)化
- 現(xiàn)代服務(wù)業(yè)的國際化發(fā)展趨勢(shì)與挑戰(zhàn)
- 生產(chǎn)質(zhì)量管理體系在電機(jī)控制器中的應(yīng)用
- 現(xiàn)代企業(yè)品牌建設(shè)的重要性與策略
- 環(huán)境設(shè)計(jì)中復(fù)合材料的優(yōu)勢(shì)與施工要點(diǎn)
- 用技術(shù)展現(xiàn)您的商業(yè)理念與戰(zhàn)略
- 臨床用血管理培訓(xùn)
- 介入手術(shù)室護(hù)理風(fēng)險(xiǎn)
- 小學(xué)一年級(jí)數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 春季安全行車教育培訓(xùn)
- 2024年6月第3套英語六級(jí)真題
- 2024年江蘇省公務(wù)員錄用考試《行測》題(A類)
- 2024年10月時(shí)政100題(附答案)
- 江蘇省無錫市2024年中考數(shù)學(xué)試卷(含答案)
- 2024年保密知識(shí)測試試題及答案(奪冠)
- 北師大版八年級(jí)下冊(cè)因式分解(分組分解法)100題及答案
- 湖南2024年湖南省衛(wèi)生健康委直屬事業(yè)單位招聘276人筆試歷年典型考題及考點(diǎn)附答案解析
評(píng)論
0/150
提交評(píng)論