版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章輸入輸出及接口芯片的應(yīng)用5.1總線技術(shù)5.2I/O接口概述5.3中斷系統(tǒng)5.4定時(shí)與計(jì)數(shù)5.5并行接口5.6串行接口
5.1總線技術(shù)
PC機(jī)從其誕生以來就采用了總線結(jié)構(gòu)方式。自1970年美國DEC公司在PDP11/22小型計(jì)算機(jī)上采用Unibus總線以來,隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,各大公司相繼推出了各種標(biāo)準(zhǔn)的、非標(biāo)準(zhǔn)的總線,總線速度是制約計(jì)算機(jī)整體性能的最大因素。當(dāng)前總線結(jié)構(gòu)方式已經(jīng)成為微機(jī)性能的重要指標(biāo)之一。
5.1.1PC/XT總線1、總線的概念計(jì)算機(jī)系統(tǒng)中各模塊之間互連的鏈路叫做總線,它支持模塊之間的信息傳送。總線就是各種信號線的集合,是計(jì)算機(jī)各部件之間傳送數(shù)據(jù)、地址和控制信息的公共通路。從物理結(jié)構(gòu)來看,它是由一組導(dǎo)線和相關(guān)的控制、驅(qū)動電路組成。在微型計(jì)算機(jī)系統(tǒng)中有各式各樣的總線,總線常被作為一個(gè)獨(dú)立部件看待。2、PC/XT總線的構(gòu)成1)地址總線A0~A19:用來對系統(tǒng)存儲器或I/O接口進(jìn)行尋址。2)數(shù)據(jù)總線D0~D7:雙向,數(shù)據(jù)總線,用來在微處理器、存儲器和I/O接口之間傳送數(shù)據(jù)、控制命令或信息。3)控制線(21根)ALE:輸出,地址鎖存允許信號。該信號由8288總線控制器提供,用來鎖存CPU送出的地址信息,供其它的芯片或外設(shè)讀取。在I/O通道中.它與AEN配合作為CPU地址有效的指示。ANE:地址允許信號。該信號用來切斷CPU對總線的控制。允許在I/O通道中(即在I/O擴(kuò)展總線中)進(jìn)行DMA傳送。當(dāng)AEN為高電平(有效電平)時(shí),由DMA控制器控制地址總線和數(shù)據(jù)總線,并提供讀寫命令。MEMR*,MEMW*:輸出,內(nèi)存讀取、寫入信號。此信號在CPU啟動存儲器訪問總線周期時(shí),由總線控制器所驅(qū)動。IOR*,IOW*:輸出,I/O讀、寫信號。當(dāng)CPU需要向I/O接口讀取或?qū)懭霐?shù)據(jù)時(shí),相應(yīng)信號會變成低電平。
IRQ7~IRQ2:輸入,第2級至第7級硬件中斷請求輸入信號。這些信號是I/O接口向CPU發(fā)出的請求服務(wù)信號,其中IRQ2優(yōu)先級最高,IRQ7優(yōu)先級最低。中斷請求信號由IRQ信號的上升沿(由低至高的跳變)產(chǎn)生,它應(yīng)一直保持高電平,直到CPU響應(yīng)為止。DRQ3~DRQl:
DMA請求輸入信號。此信號用來表示外部設(shè)備要求進(jìn)入DMA周期。若某一外設(shè)或I/O接口具有高速傳輸能力且有大量數(shù)據(jù)要傳輸,希望與內(nèi)存直接進(jìn)行數(shù)據(jù)傳輸(即DMA),而不希望通過CPU時(shí),可啟動此號信。此信號直接進(jìn)入主板上的DMA控制器,由DMA控制器按優(yōu)先順序,決定讓哪個(gè)I/O接口傳輸數(shù)據(jù)。
DACK0~DACK3:DMA通道0~3的DMA響應(yīng)信號。此信號由DMA控制器發(fā)出,表示對應(yīng)的DRQ信號(DMA請求DRQ1~DRQ3)已被接受。4)狀態(tài)線(2根)5)輔助線(11根)3、時(shí)鐘周期、指令周期、總線周期1)時(shí)鐘周期:時(shí)鐘信號CLK的周期,是微處理器處理操作的最基本的時(shí)間單位(CPU的主頻)。2)指令周期:取出并執(zhí)行一條指令的時(shí)間。一般由若干個(gè)機(jī)器周期組成。機(jī)器周期:通常用內(nèi)存中讀取一個(gè)指令字的最短時(shí)間周期。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個(gè)或者兩個(gè)以上的機(jī)器周期。3)總線周期由于存儲器和I/O端口是掛接在總線上的,CPU對存儲器和I/O接口的訪問,是通過總線實(shí)現(xiàn)的。通常把CPU通過總線對微處理器外部(存儲器或I/O接口)進(jìn)行一次訪問所需時(shí)間稱為一個(gè)總線周期。一個(gè)總線周期一般包含4個(gè)時(shí)鐘周期,T1狀態(tài)、T2狀態(tài)、T3狀態(tài)和T4狀態(tài),必要時(shí),可在T3、T4間插入一個(gè)至數(shù)個(gè)Tw。T1狀態(tài)——輸出存儲器地址或I/O地址。T2狀態(tài)——輸出控制信號。T3和Tw狀態(tài)——總線操作持續(xù),并檢測READY以決定是否延長時(shí)序。T4狀態(tài)——完成數(shù)據(jù)傳送
5.1.2微機(jī)總線的標(biāo)準(zhǔn)和分類1、總線標(biāo)準(zhǔn)與性能指標(biāo)所謂總線標(biāo)準(zhǔn),可視為系統(tǒng)與各模塊、模塊與模塊之間一個(gè)互連的標(biāo)準(zhǔn)界面。這個(gè)界面對兩端的模塊都是透明的,即界面的任一方只需根據(jù)總線標(biāo)準(zhǔn)的要求完成自身一面接口的功能要求,而無需了解對方接口與總線的連接要求。因此,按總線標(biāo)準(zhǔn)設(shè)計(jì)的接口可視為通用接口。
目前流行的總線標(biāo)準(zhǔn)有:(1)ISA(IndustrialStandardArchitecture)總線,又稱AT總線,它采用獨(dú)立于CPU的總線時(shí)鐘,因此CPU可采用比總線頻率更高的時(shí)鐘,有利于CPU性能的提高。但I(xiàn)SA總線沒有支持總線仲裁的硬件邏輯,因此不支持多臺主設(shè)備系統(tǒng),且ISA上的所有數(shù)據(jù)的傳送必須通過CPU或DMA接口來管理,因此使CPU花費(fèi)了大量時(shí)間來控制與外部設(shè)備交換數(shù)據(jù)。ISA總線時(shí)鐘頻率為8MHz,最大傳輸率為16MB/s。2)EISA(ExtendedIndustrialStandardArchitecture)總線,是一種在ISA基礎(chǔ)上擴(kuò)充開放的總線標(biāo)準(zhǔn),它與ISA完全兼容,它從CPU中分離出了總線控制權(quán),是一種智能化的總線,能支持多總線主控和突發(fā)方式的傳輸。EISA總線的時(shí)鐘頻率為8MHz,最大傳輸率可達(dá)33MB/s,數(shù)據(jù)總線為32位,地址總線為32位,擴(kuò)充DMA訪問。3)PCI(PeripheralComponentInterconnect外部設(shè)備互連總線)是由Intel公司提供的總線標(biāo)準(zhǔn)。具體特點(diǎn):32位總線,擴(kuò)展支持64位總線,包括數(shù)據(jù)總線和地址總線;
33M總線時(shí)鐘,增強(qiáng)方式66M總線時(shí)鐘;支持多總線結(jié)構(gòu),在一條總線上,可多個(gè)CPU同時(shí)工作,共享總線資源;
5V、3.3V兩種信號電壓標(biāo)準(zhǔn)。
總線性能指標(biāo)1)總線寬度
總線寬度又稱為總線位寬指的是總線中數(shù)據(jù)總線的數(shù)量,用bit(位)表示,總線的位寬指的是總線能同時(shí)傳送的數(shù)據(jù)位數(shù),即我們常說的16位、32位、64位等總線寬度的概念。在工作頻率固定的條件下,總線的位寬越寬則總線每秒數(shù)據(jù)傳輸率越大,也即總線帶寬越寬。2)總線時(shí)鐘頻率總線時(shí)鐘是總線中各種信號的定時(shí)標(biāo)準(zhǔn),也稱為總線的工作頻率,以MHz為單位。它是指用于協(xié)調(diào)總線上的各種操作規(guī)程的時(shí)鐘信號的頻率。工作頻率越高則總線工作速度越快,也即總線帶寬越寬。一般來說,總線時(shí)鐘頻率越高,其單位時(shí)間內(nèi)數(shù)據(jù)傳輸量越大,但不完全成正比例關(guān)系。3)最大數(shù)據(jù)傳輸速率(帶寬bandwidth)。最大數(shù)據(jù)傳輸速率指的是在總線中每秒鐘傳輸?shù)淖畲笞止?jié)量,有時(shí)也被稱為帶寬(bandwidth),用MB/s表示,即每秒多少兆字節(jié)。總線數(shù)據(jù)傳輸速率=總線寬度*總線頻率/8在現(xiàn)代微機(jī)中,一般可做到一個(gè)總線時(shí)鐘周期完成一次數(shù)據(jù)傳輸,因此,總線的最大數(shù)據(jù)傳輸速率為總線寬度除以8(每次傳輸?shù)淖止?jié)數(shù))再乘以總線時(shí)鐘頻率。例如,PCI總線的寬度為64位,總線時(shí)鐘頻率為33.3MHz,則最大數(shù)據(jù)傳輸速率為64÷8×33.3=266MB/s。但有些總線采用了一些新技術(shù)(如在時(shí)鐘脈沖的上升沿和下降沿都選通等),使最大數(shù)據(jù)傳輸速率比上面的計(jì)算結(jié)果高??偩€是用來傳輸數(shù)據(jù)的,所采取的各項(xiàng)提高性能的措施,最終都要反映在傳輸速率上,所以在諸多指標(biāo)中最大數(shù)據(jù)傳輸速率是最重要的??偩€帶寬、總線位寬、總線工作時(shí)鐘頻率的關(guān)系舉個(gè)例子就很容易明白了。高速公路上的車流量取決于公路車道的數(shù)目和車輛行駛速度,車道越多、車速越快則車流量越大;總線帶寬就象是高速公路的車流量,總線位寬仿佛高速公路上的車道數(shù),總線時(shí)鐘工作頻率相當(dāng)于車速,總線位寬越寬、總線工作時(shí)鐘頻率越高則總線帶寬越大。
當(dāng)然,單方面提高總線的位寬或工作時(shí)鐘頻率都只能部分提高總線的帶寬,并容易達(dá)到各自的極限。只有兩者配合才能使總線的帶寬得到更大的提升。
1)按照總線傳遞的內(nèi)容分類:地址總線AB、數(shù)據(jù)總線DB、控制總線CB。2)按總線所處的位置可分為:
片內(nèi)總線:在CPU內(nèi)部,寄存器之間和算術(shù)邏輯部件ALU與控制部件之間傳輸數(shù)據(jù)所用的總線稱為片內(nèi)總線。(即芯片內(nèi)部的總線)又稱為內(nèi)部總線或內(nèi)總線。(InternalBus)
片外總線:CPU與內(nèi)存RAM、ROM和輸入/輸出設(shè)備接口之間進(jìn)行通訊的通路。把片外總線又稱為外部總線或外總線
(ExternalBus)。CPU通過總線實(shí)現(xiàn)程序取指令、內(nèi)存與外設(shè)的數(shù)據(jù)交換。2、總線的分類3)按照總線的結(jié)構(gòu)分類單總線結(jié)構(gòu):在這種結(jié)構(gòu)中,將CPU、主存和I/O設(shè)備都掛到一組總線上,形成單總線結(jié)構(gòu)的計(jì)算機(jī)。這種結(jié)構(gòu)最明顯的特點(diǎn)就是,當(dāng)I/O與主存交換信息時(shí),原則上不影響CPU的工作,CPU仍可繼續(xù)處理不訪問主存或I/O的操作,這就使CPU工作效率有所提高。但是,因?yàn)橹挥幸唤M總線,當(dāng)某一時(shí)刻各部件都要占用時(shí),就會出現(xiàn)爭用現(xiàn)象。
雙總線結(jié)構(gòu):在單總線基礎(chǔ)上,又單獨(dú)開辟一條CPU與主存之間的通路,叫存儲總線。這組總線速度高,只供主存與CPU之間傳輸信息。這樣既提高了傳輸效率,又減輕了系統(tǒng)總線的負(fù)擔(dān),還保留了I/O與存儲器交換信息時(shí)不經(jīng)過CPU的特點(diǎn)。5.1.3ISA總線5.1.4PCI總線5.2.1接口的概念與I/O接口計(jì)算機(jī)兩部件之間的界面稱之為接口。
接口的主要功能是:(1)數(shù)據(jù)緩沖及輸入、輸出(2)尋址功能(3)命令譯碼(4)同步、聯(lián)絡(luò)和控制功能5.2I/O接口概述1)I/O接口與I/O設(shè)備之間交換的信號通常有四種:數(shù)字量、模擬量、開關(guān)量、脈沖量。2)I/O接口與CPU之間交換的信息通常有三種:數(shù)據(jù)信息、狀態(tài)信息、控制信息。2、I/O接口的交換信號5.2.2I/O接口的典型結(jié)構(gòu)內(nèi)部結(jié)構(gòu)數(shù)據(jù)寄存器:存放外設(shè)與主機(jī)之間傳送的信息,在緩沖區(qū)可存放一批數(shù)據(jù)。狀態(tài)寄存器:存放外設(shè)或接口的狀態(tài)??刂疲睿┘拇嫫鳎捍娣趴刂仆庠O(shè)的信號或命令。注:同樣的二進(jìn)制代碼,在不同的寄存器中將有不同的作用。外部特性
接口電路的外部特性由其引出信號來體現(xiàn):
(1)面向處理器一側(cè)的信號(與CPU的連接):類似處理器總線或系統(tǒng)總線,主要處理地址譯碼。
(2)面向外設(shè)一側(cè)的信號(與外設(shè)連接):與外設(shè)有關(guān),但可以籠統(tǒng)地分成外設(shè)的數(shù)據(jù)信號、狀態(tài)信號和控制信號主要功能
(1)數(shù)據(jù)緩沖:匹配快速的處理器與相對慢速的外設(shè)的數(shù)據(jù)交換
(2)信號變換:把信號相互轉(zhuǎn)換為適合對方的形式CPU通過接口對外設(shè)進(jìn)行控制的方式有以下幾種:
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),工作效率很低。
5.2.4I/O數(shù)據(jù)傳輸?shù)目刂品绞?)中斷處理方式在這種方式下,CPU不再被動等待,而是可以執(zhí)行其他程序,一旦外設(shè)為數(shù)據(jù)交換準(zhǔn)備就緒,可以向CPU提出服務(wù)請求,CPU如果響應(yīng)該請求,便暫時(shí)停止當(dāng)前程序的執(zhí)行,轉(zhuǎn)去執(zhí)行與該請求對應(yīng)的服務(wù)程序,完成后,再繼續(xù)執(zhí)行原來被中斷的程序。
中斷處理方式的優(yōu)點(diǎn):為CPU省去了查詢外設(shè)狀態(tài)和等待外設(shè)就緒所花費(fèi)的時(shí)間;提高了CPU的工作效率,還滿足了外設(shè)的實(shí)時(shí)要求。
中斷處理方式的缺點(diǎn):需要為每個(gè)I/O設(shè)備分配一個(gè)中斷請求號和相應(yīng)的中斷服務(wù)程序;每傳送一個(gè)字符都要進(jìn)行中斷,啟動中斷控制器,還要保留和恢復(fù)現(xiàn)場以便能繼續(xù)原程序的執(zhí)行。3)DMA(直接存儲器存?。﹤魉头绞?/p>
DMA最明顯的一個(gè)特點(diǎn)是它不是用軟件而是采用一個(gè)專門的控制器來控制內(nèi)存與外設(shè)之間的數(shù)據(jù)交流,無須CPU介入,大大提高CPU的工作效率。在進(jìn)行DMA數(shù)據(jù)傳送之前,DMA控制器會向CPU申請總線控制權(quán)。5.3.1中斷概述5.3.28086/8088的中斷系統(tǒng)5.3.38259A可編程控制器5.3.48259的應(yīng)用5.3中斷系統(tǒng)中斷響應(yīng)的條件:①CPU應(yīng)工作在中斷方式(CPU開中斷,IF=1)②申請中斷的事件優(yōu)先級別到位③CPU執(zhí)行完當(dāng)前一條完整的指令以后作用:①提高CPU的工作效率②提高實(shí)時(shí)數(shù)據(jù)的處理時(shí)效③可以實(shí)現(xiàn)多任務(wù)多用戶管理5.3.1中斷概述中斷源:引起中斷的原因或來源。中斷源可分為兩大類:一類是來自CPU內(nèi)部,稱之為內(nèi)部中斷源;另一類來自于CPU外部。稱之為外部中斷源。中斷處理流程:保護(hù)斷點(diǎn);轉(zhuǎn)入中斷服務(wù)程序;返回?cái)帱c(diǎn)。1.中斷分類中斷特點(diǎn):矢量型中斷,有256個(gè)中斷矢量號(設(shè)備號)(0~255)5.3.28086/8088的中斷系統(tǒng)軟件中斷硬件中斷中斷矢量:是中斷處理子程序的入口地址,每個(gè)中斷類型對應(yīng)一個(gè)中斷矢量中斷矢量表:在內(nèi)存中,開辟一個(gè)區(qū)域存放中斷服務(wù)程序的入口地址的表。對于8086,這個(gè)區(qū)域的首地址00000H(固定)問題:已知中斷矢量號代碼,怎樣找到中斷服務(wù)程序的入口地址?(例5-4)2.中斷矢量和中斷矢量表例:鍵盤中斷的矢量號為09H,它的中斷服務(wù)程序入口地址為0BA9H:0125H,求它在中斷矢量表中的地址及相應(yīng)單元內(nèi)容解:鍵盤中斷對應(yīng)的中斷矢量表位于0000:0024H(09H×4=24H)開始的4單元這4個(gè)單元的內(nèi)容見表:1、8259A的內(nèi)部結(jié)構(gòu)及管腳分配5.3.38259可編程中斷控制器特點(diǎn):可編程、八級向量優(yōu)先中斷、級連、優(yōu)先權(quán)動態(tài)地改變。1)中斷請求寄存器(IRR)中斷請求IR7~I(xiàn)R0,當(dāng)某個(gè)為高電平時(shí),IRR相應(yīng)位置“1”。2)中斷服務(wù)寄存器(ISR)任何一級中斷被響應(yīng),執(zhí)行其中斷服務(wù)程序,ISR相應(yīng)位置“1”。多重中斷情況下,ISR中多位被同時(shí)置“1”。3)優(yōu)先權(quán)判別器(PR)當(dāng)IR7~
IR0中有多個(gè)中斷請求信號同時(shí)產(chǎn)生時(shí),PR判定哪個(gè)中斷請求具有最高優(yōu)先權(quán),并把它置入ISR的相應(yīng)位。4)中斷屏蔽寄存器(IMR)通過IMR可實(shí)現(xiàn)對各級中斷的有選擇的屏蔽。2、8259A的中斷處理順序①當(dāng)有一條或若干條中斷請求輸入線(IR0~IR7)上的中斷請求信號有效.則IRR的相應(yīng)位置1。②若中斷請求線中至少有一條是中斷未被屏蔽的,則8259A由INT引腳向CPU發(fā)出中斷請求信號INTR。③若CPU是處于開中斷狀態(tài),則在當(dāng)前指令執(zhí)行完以后。CPU用INTA信號作為對INTR的響應(yīng)。④8259A在接收到CPU發(fā)出的第一個(gè)INTA脈沖后,使最高優(yōu)先權(quán)的ISR位置并使相應(yīng)的IRR位復(fù)位。⑤在第二個(gè)中斷響應(yīng)總線周期中,CPU再輸出一個(gè)INTA脈沖,這時(shí)8259A就把剛才選定的中斷源所對應(yīng)的8位中斷類型碼放到數(shù)據(jù)總線上。CPU讀取該中斷類型碼并乘以4,就可以從中斷向量表中取出中斷服務(wù)程序的人口地址并轉(zhuǎn)去執(zhí)行。⑥若8259A工作在自動中斷結(jié)束AEOI方式。在第二個(gè)INTA脈沖結(jié)束時(shí),就會使中斷源所對應(yīng)的ISR中的相應(yīng)位復(fù)位。對于非自動中斷結(jié)束方式.則由CPU在中斷服務(wù)程序結(jié)束時(shí)向8259A寫入EOI命令,才能使ISR中的相應(yīng)位復(fù)位。3、8259A與總線的連接4、8259A編程8259A接收來自CPU的兩類命令字:初始化命令字ICW、操作命令字OCW。8259A屬于I/O接口芯片,向8259A寫入用OUT,讀取其狀態(tài)用IN。(1)8259A的初始化初始化:第一部分稱預(yù)置命令字ICW1~I(xiàn)CW4。預(yù)置命令字是要按規(guī)定順序?qū)懭?259A中的。預(yù)置命令字功能:
ICW1:8259A是單一式還是主從式;
ICW2:設(shè)置中斷類型碼的初始化命令字,必須寫到8259A的奇地址端口中;
ICW3:只有在系統(tǒng)中包含有多片8259A時(shí),ICW3才有效。而系統(tǒng)中是否有多片8259A由ICW1指示。ICW3是標(biāo)志主片/從片的初始化命令字,必須寫到8259A的奇地址端口中;
ICW4:完成中斷管理方式的設(shè)定。不是任何情況下都需要設(shè)置4個(gè)預(yù)命令,可根據(jù)8259A的使用情況而定。(1)ICW1芯片初始化命令字標(biāo)記:A0=0,D4=1D7D6D5D4D3×××D2D1D01LTIM0SNGLIC4習(xí)慣上填01-中斷請求電平觸發(fā)0-中斷請求邊沿觸發(fā)對8086系統(tǒng)總為01-單片,0-級聯(lián)1-設(shè)置ICW40-不設(shè)置A00(2)ICW2設(shè)置中斷類型碼初始化命令字,緊跟在ICW1之后,定義中斷類型碼的高5位,低3位由IRi確定。標(biāo)記:A0=1D7D6D5D4D3T7T6T5D2D1D0T4T3A10A9A8A01與用戶選擇類型碼有關(guān),選擇系統(tǒng)沒有占用的000—IR0001—IR1010—IR2011—IR3100—IR4101—IR5110—IR6111—IR7注:中斷類型碼一定是連續(xù)的!(3)ICW3
級聯(lián)方式初始化字,緊跟在ICW2之后,標(biāo)記:A0=1
自學(xué)(4)ICW4
對于8086/8088系統(tǒng)是必須設(shè)置的預(yù)置命令字方式控制初始化命令字,寫ICW4的標(biāo)記為A0=1P218例5-5:例:若8259A以兩片級聯(lián)方式管理15級中斷,從片INT接到主片的IR2上,主、從片的中斷請求采用邊緣觸發(fā)方式,選用完全嵌套、非緩沖方式。主片的中斷類型碼為8~0FH,從片的中斷類型碼為70H~77H,設(shè)主片的地址為20H,21H;從片的地址為22H,23H。請初始化8259A。;初始化主片MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL;初始化從片MOVAL,11HOUT22H,ALMOVAL,70HOUT23H,ALMOVAL,02HOUT23H,ALMOVAL,01HOUT23H,AL5.4.1定時(shí)與計(jì)數(shù)概述5.4.28253/8254可編程間隔定時(shí)器5.4定時(shí)與計(jì)數(shù)58如何實(shí)現(xiàn)定時(shí)?軟件方法:用一段程序?qū)崿F(xiàn)延時(shí)利用程序循環(huán)延遲指定的時(shí)間缺點(diǎn):CPU占用率?延時(shí)精度?兼容?硬件方法:定時(shí)/計(jì)數(shù)器電路利用脈沖計(jì)數(shù)在設(shè)定的時(shí)間輸出定時(shí)信號,靈活性較差?采用可編程定時(shí)器/計(jì)數(shù)器定時(shí)時(shí)間與計(jì)數(shù)值可由軟件來確定和改變,設(shè)定后與CPU并行工作,不占用CPU的時(shí)間。5.4.1定時(shí)與計(jì)數(shù)概述598253是一種可編程的計(jì)數(shù)器/定時(shí)器接口芯片。內(nèi)部有三個(gè)獨(dú)立的計(jì)數(shù)器,通過設(shè)置控制字,各計(jì)數(shù)器可以工作于不同方式。該芯片的最高計(jì)數(shù)頻率為2MHz,可用于產(chǎn)生各種定時(shí)波形,也可用于對外部事件計(jì)數(shù)??梢詫?shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于:系統(tǒng)時(shí)鐘DRAM刷新定時(shí)定時(shí)采樣實(shí)時(shí)控制脈沖的計(jì)數(shù)5.4.28253/8254可編程間隔定時(shí)器601.8253的外部引腳和內(nèi)部結(jié)構(gòu)數(shù)據(jù)線:寫控制字,讀寫計(jì)數(shù)器的計(jì)數(shù)值計(jì)數(shù)器0的時(shí)鐘輸入端計(jì)數(shù)器0的輸出端為低電平的時(shí)候,CPU將計(jì)數(shù)值寫入計(jì)數(shù)器或?qū)⒖刂谱謱懭肟刂谱旨拇嫫鳛榈碗娖降臅r(shí)候,CPU讀取所選計(jì)數(shù)器的內(nèi)容A1A0選中端口00計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211控制字寄存器計(jì)數(shù)器0的門控信號脈沖輸入端,控制計(jì)數(shù)(1)8253的外部引腳61編址部件0編址部件1編址部件2編址部件3(2)8253的內(nèi)部結(jié)構(gòu)62編程結(jié)構(gòu)計(jì)數(shù)器(3個(gè))——每個(gè)包括控制寄存器——存放控制命令字(只寫)占用4個(gè)地址—3個(gè)計(jì)數(shù)器,1個(gè)控制寄存器計(jì)數(shù)(初值)寄存器16位計(jì)數(shù)工作單元輸出鎖存器(減法)(兩個(gè)8位)(兩個(gè)8位)63設(shè)置8253的工作方式:此時(shí),全部控制邏輯電路復(fù)位,輸出OUT為初始狀態(tài)(高電平或低電平);設(shè)置計(jì)數(shù)初值到計(jì)數(shù)(初值)寄存器第一個(gè)CLK信號使初值寄存器的內(nèi)容置入計(jì)數(shù)工作單元以后每來一個(gè)CLK信號在CLK的上升沿時(shí),計(jì)數(shù)器對門控信號GATE進(jìn)行采樣,來決定工作狀態(tài)(計(jì)數(shù)、觸發(fā)、停止、重新置初值);在CLK的下降沿時(shí),計(jì)數(shù)器執(zhí)行部件從初值開始作減1計(jì)數(shù);其中0是最大初值,1是最小初值;若以二進(jìn)制數(shù)制計(jì)數(shù),則0相當(dāng)于216=65536;若以BCD碼數(shù)制計(jì)數(shù)時(shí),則0相當(dāng)于104=10000.減到0時(shí),OUT端輸出一特殊波形的信號(3)8253的工作原理64CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器高位地址A15-A28253共三組8253占用4個(gè)接口地址:
計(jì)數(shù)器0
計(jì)數(shù)器1
計(jì)數(shù)器2
控制寄存器(決定8253的基地址)2、8253與總線的連接65控制字格式SC1SC0RW1RW0M2M1M0BCD1--計(jì)數(shù)值為BCD碼格式0--計(jì)數(shù)值為二進(jìn)制格式M2M1M0
模式選擇
000模式0001模式1/10模式2/11模式3100模式4101模式500----對計(jì)數(shù)器進(jìn)行鎖存01----只讀/寫低8位字節(jié)10----只讀/寫高8位字節(jié)11----只讀/寫低8位字節(jié),
再讀/寫高8位字節(jié).00----選計(jì)數(shù)器001----選計(jì)數(shù)器110----選計(jì)數(shù)器211----無意義3、8253的編程設(shè)置8253的某一計(jì)數(shù)工作方式的編程只需兩個(gè)步驟:1)寫入控制字;2)寫入計(jì)數(shù)初值。例1:設(shè)地址總線上A7~A2=100101B時(shí),某8253的CS*有效,8253的A1和A0分別與地址總線的A1和A0相連。1)試確定該8253各端口的地址;2)如果控制字為00110110B,試確定該8253的設(shè)置。(1)設(shè)置計(jì)數(shù)器的工作方式例2:某8253的端口地址范圍為94H~97H,三個(gè)CLK端均輸入1MHz的時(shí)鐘脈沖,試分析下面的程序,確定計(jì)數(shù)器0和計(jì)數(shù)器1的工作方式及OUT端輸出的波形。MOVAL,00010100BOUT97H,ALMOVAL,0OUT94H,ALMOVAL,01010001BOUT97H,ALMOVAL,0OUT95H,AL有三種途徑可以讀取計(jì)數(shù)器當(dāng)前值:1)使用端口讀指令
INAL,XXXXXX01B2)使用鎖存命令D7D6選擇計(jì)數(shù)器,D5D4=00B。3)使用讀回命令(8254增加)(2)讀取計(jì)數(shù)器當(dāng)前值4、8253的工作方式(1)方式0:計(jì)數(shù)結(jié)束中斷(2)方式1:可由硬件重復(fù)觸發(fā)的單脈沖(3)方式2:序列脈沖發(fā)生器(4)方式3:方波發(fā)生器(5)方式4:軟件觸發(fā)選通脈沖(6)方式5:硬件觸發(fā)選通脈沖70工作方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷在GATE=1時(shí)寫入控制字,OUT端輸出低電平為起始電平,裝入計(jì)數(shù)初值n,開始計(jì)數(shù)。寫信號后沿()經(jīng)一個(gè)CLK()將n值裝入計(jì)數(shù)器。每經(jīng)過一個(gè)CLK,在CLK下降沿,計(jì)數(shù)器減1。n=0時(shí),計(jì)數(shù)結(jié)束,OUT由低電平變?yōu)楦唠娖剑衫迷撾娖阶兓駽PU發(fā)出中斷請求),并保持,不開始重新計(jì)數(shù)。只有寫入另一個(gè)計(jì)數(shù)值時(shí),開始新的計(jì)數(shù)。在GATE=0時(shí)停止計(jì)數(shù),直至GATE恢復(fù)高電平,再繼續(xù)計(jì)數(shù)71工作方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷(小結(jié))軟件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后OUT端變低電平,計(jì)數(shù)結(jié)束OUT輸出高電平。計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。OUT端輸出是一個(gè)約(n+1)*CLK寬度的負(fù)脈沖。計(jì)數(shù)過程中可隨時(shí)修改初值重新開始計(jì)數(shù)。72寫入控制字,OUT端輸出高電平為起始電平。裝入計(jì)數(shù)初值n后,必須等待GATE的上升沿來后才轉(zhuǎn)入計(jì)數(shù),這時(shí)OUT變低,開始計(jì)數(shù),每一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器值減1。計(jì)數(shù)到0,OUT變成高電平,負(fù)脈沖結(jié)束,脈沖寬度=tc×n(tc為時(shí)鐘周期)。在計(jì)數(shù)過程中,若GATE變低,不影響計(jì)數(shù)。方式1的時(shí)序圖(計(jì)數(shù)過程中GATE僅有一個(gè)上升沿)方式1:可由硬件重復(fù)觸發(fā)的單脈沖73在計(jì)數(shù)過程中,若再次產(chǎn)生GATE的上升沿觸發(fā),則要重新裝入n值,在再觸發(fā)脈沖上升沿之后的一個(gè)CLK脈沖的下降沿,計(jì)數(shù)器重新開始計(jì)數(shù)??梢酝ㄟ^該方法改變脈沖的寬度。方式1的時(shí)序圖(計(jì)數(shù)過程中GATE不止產(chǎn)生一個(gè)上升沿)方式1:可由硬件重復(fù)觸發(fā)的單脈沖74硬件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)開始OUT端變?yōu)榈碗娖剑?jì)數(shù)結(jié)束后又變高。門控信號GATE端的跳變觸發(fā)計(jì)數(shù),可重復(fù)觸發(fā)。若下一次GATE上升沿提前到達(dá),則OUT端負(fù)脈沖拉寬為兩次計(jì)數(shù)過程之和。計(jì)數(shù)過程中寫入新初值不影響本次計(jì)數(shù)。方式1:可由硬件重復(fù)觸發(fā)的單脈沖(小結(jié))75寫入控制字,OUT端輸出高電平為起始電平,裝入計(jì)數(shù)初值n,開始計(jì)數(shù)。每一個(gè)計(jì)數(shù)脈沖下降沿n減1,當(dāng)n減至1時(shí),OUT變低,n減為0時(shí),OUT變高,產(chǎn)生一個(gè)周期一樣寬的負(fù)脈沖。接著自動裝入n連續(xù)計(jì)數(shù),輸出頻率為與時(shí)鐘脈沖:fclk/n。計(jì)數(shù)過程中,允許重新裝入新的n值,下一個(gè)計(jì)數(shù)周期按新的n值計(jì)數(shù)。在GATE=1時(shí):方式2的時(shí)序圖方式2:序列脈沖發(fā)生器76計(jì)數(shù)過程中,若GATE=0,停止計(jì)數(shù),并強(qiáng)迫OUT輸出高電平,在GATE變?yōu)楦唠娖胶?,重新裝入n值,開始計(jì)數(shù)。方式2的時(shí)序圖(GATE電平改變)方式2:序列脈沖發(fā)生器77軟、硬件啟動,自動重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)到最后一個(gè)CLK時(shí)OUT輸出負(fù)脈沖,并連續(xù)重復(fù)此過程。GATE為計(jì)數(shù)的控制信號:GATE變低計(jì)數(shù)停止,再變高時(shí)的下一個(gè)CLK下降沿,從初值開始重新計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到1時(shí)),OUT端輸出一個(gè)CLK寬度的負(fù)脈沖。計(jì)數(shù)過程自動重復(fù)進(jìn)行。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式2:序列脈沖發(fā)生器(小結(jié))78方式3的時(shí)序圖(5)(4)(4)(5)輸出頻率為:fclk/n的方波。寫入控制字后,OUT端輸出低電平作為起始電平,裝入計(jì)數(shù)值n后,變?yōu)楦唠娖?。n為偶數(shù),每個(gè)時(shí)鐘脈沖下降沿n值減1,至n/2后,電平變?yōu)榈碗娖?,并繼續(xù)減1計(jì)數(shù)至0,然后改變OUT電平,重新裝入n,開始計(jì)數(shù)。n為奇數(shù),輸出高電平寬度為(n+1)/2,低電平寬度為(n-1)/2的方波。GATE=0
停止計(jì)數(shù),并強(qiáng)迫OUT輸出高電平,在GATE變高后,重新將n裝入,開始計(jì)數(shù)。注:GATE功能同方式2GATE=1工作方式3:方波頻率發(fā)生器79工作方式3:方波頻率發(fā)生器(小結(jié))軟、硬件啟動,自動重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,然后OUT連續(xù)輸出對稱方波:前N/2或(N+1)/2個(gè)CLK,OUT為高后N/2或(N-1)/2個(gè)CLK,OUT為低。計(jì)數(shù)過程中修改初值不影響本半輪計(jì)數(shù)過程其余的與方式2類似。80工作方式4:軟件觸發(fā)選通脈沖寫入控制字后,OUT端變?yōu)楦唠娖?,寫入初始值后,?jì)數(shù)器作減1計(jì)數(shù),OUT電平保持不變。計(jì)數(shù)器減至0時(shí),OUT端輸出一個(gè)脈沖周期的負(fù)脈沖,然后停止計(jì)數(shù),只有輸入新的計(jì)數(shù)值后,才能開始新的計(jì)數(shù)。計(jì)數(shù)過程中,若GATE變低電平,停止計(jì)數(shù),在其變高后,重新將n裝入,開始計(jì)數(shù)。方式4的時(shí)序圖(a.GATE一直為高電平b.GATE電平改變)81工作方式4:軟件觸發(fā)選通脈沖(小結(jié))軟件啟動,不自動重復(fù)計(jì)數(shù)。裝入初值后輸出端變高電平,計(jì)數(shù)結(jié)束輸出一個(gè)CLK寬度的負(fù)脈沖計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。82工作方式5:硬件觸發(fā)選通脈沖寫入控制字后,OUT端變?yōu)楦唠娖?,寫入初始值n后,必須等待GATE的上升沿觸發(fā)才轉(zhuǎn)入計(jì)數(shù)。計(jì)數(shù)器減至0時(shí),OUT端輸出一個(gè)脈沖周期的負(fù)脈沖。然后n值自動裝入計(jì)數(shù)器,但要等GATE的上升沿來后才再次開始計(jì)數(shù)。計(jì)數(shù)過程中,若GATE變低電平,不影響計(jì)數(shù),但其上升沿將使得n重新裝入計(jì)數(shù)器,開始計(jì)數(shù)。方式5的時(shí)序圖(a.GATE一直為高電平b.GATE電平改變)83工作方式5:硬件觸發(fā)選通脈沖硬件啟動,不自動重復(fù)計(jì)數(shù)。OUT端波形與方式4相同寫入初值時(shí),GATE端應(yīng)保持低電平。GATE每出現(xiàn)一次正脈沖,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)CLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。84在使用8253芯片時(shí),首先要對其進(jìn)行初始化編程。初始化編程包括寫入控制字和寫入計(jì)數(shù)值兩個(gè)步驟。第一步,寫入控制字。任一計(jì)數(shù)器的控制字都要從8253的控制口地址寫入,控制哪個(gè)計(jì)數(shù)器由控制字的D7D6位來決定。第二步,寫入計(jì)數(shù)初始值。計(jì)數(shù)初始值經(jīng)由各計(jì)數(shù)器的端口地址寫入。若控制字里規(guī)定只寫低八位,則寫入低八位,高8位自動置0若控制字里規(guī)定只寫高八位,則寫入高八位,低8位自動置0。若是16位計(jì)數(shù)值,則分兩次寫入,先寫入低8位,再寫入高八位。寫入順序:可按計(jì)數(shù)器分別寫入控制字和初值。也可先寫所有計(jì)數(shù)器控制字,再寫入它們的初值5、8253/8254的應(yīng)用書本P242例5-8:MOVDX,26BHMOVAL,00110000BOUTDX,ALMOVDX,268HMOVAL,00HOUTDX,ALMOVAL,40HOUTDX,AL2008.1-39;2007-38;2010-38868253小結(jié)包含3個(gè)16位計(jì)數(shù)器通道4個(gè)編址部件:計(jì)數(shù)器0/1/2和控制寄存器每個(gè)計(jì)數(shù)器通道工作前必須初始化:控制字和計(jì)數(shù)初值6種工作方式每種工作方式:啟動方式、輸出波形、是否可重復(fù)計(jì)數(shù)等各不相同1、8255A的外部引腳和內(nèi)部結(jié)構(gòu)1)引腳
5.5并行接口數(shù)據(jù)線:與CPU交換數(shù)據(jù)PC口PB口PA口地址選擇A1A000端口A01端口B10端口C11控制字寄存器2、8255A與總線的連接3、8255A的編程(1)設(shè)置工作方式和端口讀/寫(2)置位復(fù)位端口C應(yīng)用注意:PC口控制字雖然是對端口C操作,但應(yīng)寫入到控制口地址,而不是寫入到PC數(shù)據(jù)口。4、8255A的工作方式(1)方式0:基本輸入/輸出。在方式0下,A、B、C三個(gè)端口均用作輸入/輸出,這種輸入/輸出只是簡單的輸入/輸出,無聯(lián)絡(luò)信號。A口和B口在方式1輸入時(shí)的情況(2)方式1:帶選通的輸入/輸出1)方式1的輸入A口和B口在方式1輸出時(shí)的情況2)方式1的輸出方式2下的引腳定義(3)方式2:帶選通的雙向輸入/輸出例:如圖,設(shè)8255端口地址為2F80~2F83H,編程設(shè)置8255A組、B組均工作于方式0,A口輸出,B口輸出,C口高4位輸入,低4位輸出。然后,讀入開關(guān)K的狀態(tài),若K打開,則使發(fā)光二極管熄滅;若K閉合,則使發(fā)光二極管點(diǎn)亮。5.5.3LED顯示器接口1、工作原理2、1位LED數(shù)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量檢驗(yàn)員聘用合同格式
- 2024年度醫(yī)療器械代理注冊合同規(guī)范范本3篇
- 食品安全合同管理流程
- 2025年度五星級酒店VIP客戶住宿服務(wù)協(xié)議書3篇
- 能源檢測薪資結(jié)構(gòu)
- 語言培訓(xùn)中心外教勞動合同樣本
- 2025奧菱達(dá)電梯有限企業(yè)電梯部件供應(yīng)及維修服務(wù)協(xié)議3篇
- 施工成本鋼結(jié)構(gòu)安全協(xié)議
- 投資入伙協(xié)議書范本
- 2025年度口腔醫(yī)療市場營銷合作協(xié)議書3篇
- 班主任工作記錄手冊.doc
- 《工藝流程題的解題指導(dǎo)》教學(xué)設(shè)計(jì)(教案)
- 3.2熔化和凝固-人教版八年級上冊課件(21張PPT)pptx
- 2017衢州新城吾悅廣場開業(yè)安保方案
- 山東建設(shè)工程施工機(jī)械臺班單價(jià)表
- 平凡之路歌詞
- 整理富怡服裝CAD的鍵盤快捷鍵
- 人教版(PEP)小學(xué)英語六年級上冊各單元知識點(diǎn)歸納(三年級起點(diǎn))
- 工作分析案例
- 會議記錄模板
- 戴維斯在線認(rèn)知量表及其簡介
評論
0/150
提交評論