




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 MCS-51單片機的輸入/輸出與中斷 計算機基本輸入/輸出接口概述 計算機在實際應用中,程序、數(shù)據(jù)或從現(xiàn)場采集到的各種信號要通過輸入設備送到計算機中去處理。計算機處理后的結果或各種控制信號要輸出到輸出裝置或執(zhí)行機構,以便顯示、打印或實現(xiàn)各種控制動作。常用的輸入裝置有鍵盤和各種現(xiàn)場采集裝置;輸出裝置有打印機、顯示器和現(xiàn)場執(zhí)行機構。 輸入通道(前向通道):被測對象與單片機聯(lián)系的信號通道。包括傳感器或敏感元件、通道結構、信號調節(jié)、A/D轉換、電源的配置、抗干擾等。 輸出通道(后向通道):單片機與被控對象聯(lián)系的信號通道。包括功率驅動、干擾的抑制、D/A轉換等。 輸入/輸出通道簡介 計算機與外圍
2、設備間傳送三種信息:數(shù)據(jù)信息、狀態(tài)信息和控制信息。如計算機與打印機接口時,首先計算機將待打印的字符代碼(數(shù)據(jù)信息)送入電路鎖存,同時通過I/O電路送出控制信息啟動打印機接收字符代碼并打印一行字符。打印完后,打印機要通過I/O電路向計算機發(fā)出打印機“空閑”的狀態(tài)信息,要求計算機再次輸出數(shù)據(jù)。 5定義 I/O接口是位于系統(tǒng)與外設之間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務的邏輯電路。即:把外設連接到總線上的一組邏輯電路的總稱。實現(xiàn)外設與主機之間的信息交換。 PC機系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路 不同I/O設備對應I/O接口不同。I/O接口受CPU控制,I/O設備受I/O
3、接口控制。為增加通用性,I/O接口電路通常均具有可編程功能。微機系統(tǒng)的應用與外設接口的設計、選用和連接。I/O設備種類:有電子式、機械式及其它各種形式。速度差異:有秒級、毫秒級、微秒級信號類型:有數(shù)字量、模擬量、開關量。數(shù)據(jù)的格式有串行、并行等。因此,外圍設備一般不能與計算機直接相連,必須通過專門的中介電路接口,才能與CPU進行信息交換。I/O接口要解決的問題速度匹配(Buffer)信號電平和驅動能力(電平轉換器、驅動器) 信號形式匹配(A/D、D/A) 信息格式(字節(jié)流、塊、數(shù)據(jù)包、幀) 時序匹配(定時關系)總線隔離(三態(tài)門)數(shù)據(jù)緩沖功能 緩解接口與CPU工作速度的差異,通過接口中數(shù)據(jù)緩沖寄
4、存器和鎖存器實現(xiàn).聯(lián)絡功能 通過接口中狀態(tài)寄存器,了解外設的工作狀態(tài).尋址功能(I/O地址譯碼與設備選擇) 把選中的與總線相接,未選中的與總線隔離(高阻態(tài))數(shù)據(jù)轉換功能(信號電平與類型的轉換) 形式、格式、電平、功率、碼制等轉換.中斷管理功能 通過接口中設置的中斷控制器,實現(xiàn)中斷I/O方式下數(shù)據(jù)傳送。 I/O接口的功能I/O接口電路的分類按通用性分:專用接口、通用接口。專用接口:CRT顯示控制器、鍵盤、軟盤、DMA控制器等。通用接口:ISA、PCI接口,串口、并口、USB接口等。按可編程分:可編程接口、不可編程接口可編程接口:在不改動硬件的情況下,用戶只要修改初始化程序就可以改變接口工作方式。
5、接口靈活性、可擴充性好??删幊探涌陔娐芬每删幊探涌谛酒O計。常用可編程接口有并口8255、8253,串口8250、8251,中斷8259等。按與外設數(shù)據(jù)傳送方式分:并行I/O接口、串行I/O接口。I/O接口:用于連接CPU與I/O設備的所有接口統(tǒng)稱為I/O接口。 某些通用集成電路芯片可以用作I/O接口,如74LS373、74LS165等。更大量的I/O接口芯片是專門為計算機設計的,如ADC0809、MAX232、8279等。I/O接口電路應有以下功能:1)數(shù)據(jù)緩沖:2)信號變換: 3)電平轉換: 4)傳送控制命令和狀態(tài)信息: 12I/O接口的主要功能:同解決的問題速度匹配(Buffer)信號
6、電平和驅動能力(電平轉換器、驅動器) 信號形式匹配(A/D、D/A) 信息格式(字節(jié)流、塊、數(shù)據(jù)包、幀) 時序匹配(定時關系)總線隔離(三態(tài)門)14I/O接口與I/O設備15簡單的輸入接口舉例接口電路圖如下:83FCH83FFH譯碼器16鎖存器:由D觸發(fā)器構成通常一個器件包含8個D觸發(fā)器常用芯片:(教材圖5.5、圖5.6)74LS27374LS374(具有三態(tài)輸出的鎖存器,內(nèi)部結構見圖5.8)應用例子:發(fā)光二極管接口簡單的輸出接口舉例譯碼器=1=1.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#74LS273R輸入/輸出的編址方式 1I/O接口與存儲器統(tǒng)一編址2I/O接口單獨編址18
7、數(shù)據(jù)傳送方式程序控制下的數(shù)據(jù)傳送通過CPU執(zhí)行程序中的I/O指令來完成傳送,又分為:無條件傳送、查詢傳送、中斷傳送直接存儲器存?。―MA)傳送請求由外設向DMA控制器(DMAC)提出,后者向CPU申請總線,最后DMAC利用系統(tǒng)總線來完成外設和存儲器間的數(shù)據(jù)傳送I/O處理機CPU委托專門的I/O處理機來管理外設,完成傳送和相應的數(shù)據(jù)處理19 通常分類的I/O傳送方式 主機與外設之間數(shù)據(jù)傳送的控制方式有以下四種:無條件傳送查詢式傳送中斷方式傳送直接存儲器存取(DMA, Direct Memory Access) 輸入/輸出的工作方式1、無條件傳送方式2、查詢傳送方式3中斷傳送方式4.直接數(shù)據(jù)信道傳
8、送(DMA)方式21無條件傳送方式適用于外設總是處于準備好狀態(tài)以下外設可采用無條件傳送方式:開關發(fā)光器件(如發(fā)光二極管、7段數(shù)碼管、燈泡等)繼電器步進電機優(yōu)點:軟件及硬件接口簡單缺點:僅適用于簡單外設,適應范圍較窄傳送流程接口實例22例:無條件輸入MOV DX, 288HINAL, DX0288H23例:無條件輸入MOV DX, 288HINAL, DX74LS244+5V10K x 8G1 G2CSRD:D7D0K0K724例:無條件輸出MOV DX, 288HMOV AL, BXOUT DX, AL0288H25例:無條件輸出MOV DX, 288HMOV AL, BXOUT DX, AL
9、+5V74LS373300 x 8LE OECSWR:D7D0 圖5-3 查詢方式輸入接口電路 P0.7 P0.0 8051 ALE地址鎖存器三態(tài)緩沖器數(shù)據(jù)鎖存器Q RD D C1A71D0 輸 入 裝 置8位數(shù)據(jù)VCC選通A3圖54如何編程讀取輸入裝置數(shù)據(jù) MOV R0,#0FEH ;指向狀態(tài)端口TEST: MOVX A,R0 ;讀取狀態(tài)信息 JNB ACC.0,TEST ;輸入裝置準備好嗎? ;D0=0繼續(xù)等待 DEC R0 ;數(shù)據(jù)準備好,指向數(shù)據(jù)端口MOVX A,R0;讀入數(shù)據(jù)MCS-51系列單片機輸入/輸出端口控制MCS-51系列單片機輸入/輸出概述 MCS-51系列單片機有4個8位雙
10、向并行輸入/輸出(I/O)端口:P0、P1、P2和P3,共32位,P0口為三態(tài)雙向口,可驅動8個TTL電路,P1、P2、P3口為準雙向口(作為輸入時,口線被拉成高電平)。 此四個端口都可以做為單獨的輸入或輸出使用,即每一支I/O腳位都可以做輸入用,也可以做為輸出使用。當做為輸出時,則每一只管腳可位編程輸出高電平“1”或低電平“0”驅動外部電路。 實際應用中,P0口用于輸出外部存儲器的低8位地址,并分時復用作為與外部存儲器連接的數(shù)據(jù)總線口;P2口用于輸出高8位地址;P3口常用于特殊功能寄存器。只有P1口是留給用戶使用的基本I/O口,供用戶使用。MCS-51單片機輸入輸出(I/O)端口編程 P1口
11、既可以做輸入端口又可以做輸出端口。在我們所用的實驗板中,P1口通過反向驅動電路ULN2019控制數(shù)碼管工作。 試根據(jù)實驗板I/O控制端口原理圖,設計通過89S51單片機的P1口控制二極管發(fā)光(要求用軟件延時使其產(chǎn)生動態(tài)效果)。根據(jù)硬件原理,通過P1口可控制發(fā)光二極管及蜂鳴器工作。I/O口控制原理圖如圖5-5所示。硬件電路分析:圖中反向驅動放大器ULN2019接發(fā)光二極管陰極,發(fā)光二極管陽極通過限流電阻接+5V電源(限流電阻的計算應以發(fā)光二極管亮度滿足要求即可。電流小,亮度不夠;電流大,耗電、影響二極管壽命,一般二極管電流為15mA左右)。J2為3列8行排針,排針的1、4、7、10、13、16、
12、19接ULN2019的輸入,3、6、9、12、15、18、21、24為排針的中間引腳,2、5、8、11、14、17、20、23接89S51的P1口。要由編程控制發(fā)光二極管發(fā)光,ULN2019必須輸出低電平,而ULN2019的輸入必須接89S51的P1口,才能通過軟件編程控制二極管發(fā)光,所以應借助短路環(huán)將J2中的(1、2)、(4、5)、(7、8)、(10、11)、(19、20)短接。將J15中的(1、2)、(4、5)用短路環(huán)短接。硬件電路檢測。線路接好后,用萬用表電阻檔檢測89S51的P10、P11、P12、P13、P14、P15、P16是否與ULN2019的輸入1、2、3、4、5、6、7接通。
13、若接通,硬件電路連接正常,若不通,應檢查線路硬件故障,直至接通為止(注意:不能測P10、P11、P12、P13與ULN2019的輸出端)軟件編程分析:1)通過置位指令或字節(jié)傳送指令使P10P16輸出為“1”時,通過ULN2019輸出為“0”,則LED亮、蜂鳴器叫;當P1口輸出為“0”時,LED熄滅、蜂鳴器停。2)要讓二極管發(fā)光,必使P1端口為高電平 SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4SETB P1.5SETB P1.6或 MOV P1,#7FH軟件延時子程序:入口參數(shù)R7、 R6, 出口:參數(shù) 無DELAY:MOVR7,#0FH;
14、2usDELA0:MOVR6,#20H;2usDELA1:NOP;1usDJNZ R6,DELA1;2usDJNZ R7,DELA0;2usRET;2us軟件延時子程序的執(zhí)行時間計算:晶振選12MHZ 2+2+(1+2)*32+2*15+2=1504 us若需要其它的延時時間可在上述程序中再加循環(huán)層或減少循環(huán)層。37接口電路的內(nèi)部結構1、 接口硬件數(shù)據(jù)線控制線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器(or 三態(tài)門)數(shù)據(jù)輸出寄存器(鎖存器)狀態(tài)寄存器(or 三態(tài)門)命令寄存器譯碼電路控制邏輯接外設接主機38 接口功能CPU與外設主要有數(shù)據(jù)、狀態(tài)和控制信息需要相互交換,從應用角度看內(nèi)部: 數(shù)據(jù)寄存器(端口
15、地址) 保存外設給CPU和CPU發(fā)往外設的數(shù)據(jù) 狀態(tài)寄存器(端口地址) 保存外設或接口電路的狀態(tài) 控制寄存器(端口地址) 保存CPU給外設或接口電路的命令 (4)接口電路可含有多個端口地址39CPU側引腳信號:外設側引腳信號:數(shù)據(jù)信號:接口緩沖寄存器與外設間的數(shù)據(jù)交換;狀態(tài)信號:外設工作狀態(tài)送給接口的狀態(tài)寄存器;控制信號:接口的內(nèi)部控制邏輯控制外設工作的控制信號和同步信號。地址信號:選擇I/O接口中的不同寄存器;數(shù)據(jù)信號:命令或數(shù)據(jù)寫入到相應寄存器,或者從相關寄存器讀取數(shù)據(jù)或狀態(tài);控制信號:控制命令的執(zhí)行、時序、信號同步和片選;狀態(tài)信號:接口的部分工作狀態(tài)信號。內(nèi)部控制邏輯: 根據(jù)控制寄存器、
16、狀態(tài)寄存器、總線控制信號及外設狀態(tài)信號控制I/O接口的工作。40常見接口插槽PS2鼠標PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口顯示器接口13941394a麥克風/音箱/線入接口串行口412、 接口軟件(設備驅動程序) 初始化程序:設置接口工作方式及初始條件。 傳送方式處理程序:CPU針對不同的I/O設備采用不同的處理方式。如設置中斷向量等。 主控程序:完成接口任務的程序。 程序終止與退出程序:對接口電路硬件保護及操作系統(tǒng)中數(shù)據(jù)恢復。 輔助程序:提供人-機對話手段。423、接口電路芯片的分類 接口電路通常采用中大規(guī)模、超大規(guī)模集成電路接口芯片:通用接口芯片支持通用的數(shù)據(jù)I
17、/O和控制的接口芯片如:并行接口芯片、串行接口芯片等。面向外設的專用接口芯片針對某種外設設計接口如:顯示接口電路、磁盤驅動接口電路等。 面向微機系統(tǒng)的專用接口芯片與CPU和系統(tǒng)配套使用,以增強其總體功能如:8259A、8237、8253、8251、8255等。434、可編程接口許多接口電路具有多種功能和工作方式,可以通過編程的方式設定。接口電路需要與系統(tǒng)物理連接,及編寫接口軟件。接口軟件:1、初始化程序段:設定芯片工作方式等2、數(shù)據(jù)交換程序段:管理、控制、驅動外設,負責外設和系統(tǒng)間信息交換。44I/O端口的編址接口電路占用的I/O端口的編址可分為兩種方式I/O端口單獨編址I/O地址空間獨立于存
18、儲地址空間如INTER系列80X86I/O端口與存儲器統(tǒng)一編址它們共享一個地址空間如MCS-51系列單片機45I/O端口單獨編址優(yōu)點:I/O端口的地址空間獨立控制和地址譯碼電路相對簡單專門的I/O指令使程序清晰易讀缺點:I/O指令沒有存儲器指令豐富內(nèi)存空間I/O空間FFFFF0FFFF注:80 x86采用I/O端口獨立編址:46I/O端口與存儲器統(tǒng)一編址優(yōu)點:不需要設計專門的I/O指令I/O數(shù)據(jù)存取與存儲器數(shù)據(jù)存取同樣缺點:I/O端口占用存儲器地址空間程序易讀性差(不易分清訪內(nèi)存、訪問外設)內(nèi)存部分I/O部分存儲器空間00000FFFFF47I/O地址的譯碼I/O地址的譯碼方法與存儲器地址的譯
19、碼方法一樣,但有它的特點:部分譯碼時,通常是中間地址線不連接部分譯碼也有最低地址線不連接的情況每個接口電路通常只占用幾個I/O地址,這時可以利用基本邏輯門電路進行地址譯碼除采用譯碼器、門電路進行譯碼外,I/O地址譯碼還經(jīng)常采用可編程邏輯器件PLD為了給系統(tǒng)一定的選擇余地,有些接口電路利用比較器、開關或跨接器等進行多組I/O地址的譯碼給幾個譯碼實例48邏輯門電路進行I/O地址譯碼A9A8A7A6A5A2A4A3AENA1A074LS033E7H49I/O接口綜合應用例子根據(jù)開關狀態(tài)在7段數(shù)碼管上顯示數(shù)字或符號共陽極7段數(shù)碼管結構見教材圖5.10用74LS273作為輸出接口,把數(shù)據(jù)送到7段數(shù)碼管7
20、4LS273的地址假設為F0H用74LS244作為輸入口,讀入開關K0K3的狀態(tài)74LS244的地址假設為F1H當開關的狀態(tài)分別為00001111時,在7段數(shù)碼管上對應顯示0F(7段碼表見下頁)50 7段碼.gfedcba形狀符號7段碼.gfedcba形狀符號01110001F00000111701111001E01111101601011110D01101101500111001C01100110401111100B01001111301110111A01011011201100111900000110101111111800111111051O1 I1O2 I2O3 I3O4 I4#E1K
21、0K3+5VGG2AG2BCBA174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP74068個反相器74LS273Rx8174LS138D0D7IOW#IOR#Y0Y1F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼電路52查詢傳送方式適用于外設并不總是準備好,而且對傳送速率、傳送效率要求不高的場合。CPU在與外設交換數(shù)據(jù)前必須詢問外設狀態(tài):“準備好沒有?”對外設的要求:應提供設備狀態(tài)信息對接口的要求:需要提供狀態(tài)端口優(yōu)點:軟件比較簡單
22、缺點:CPU效率低,數(shù)據(jù)傳送的實時性差, 速度較慢流程圖53查詢方式的流程圖超時?READY?與外設進行數(shù)據(jù)交換超時錯讀入并測試外設狀態(tài)YNYN傳送完?防止死循環(huán)復位計時器NY注:多個外設時,查詢流程見教材圖5.15PK54DMA傳送方式 無條件傳送、查詢傳送、中斷傳送這幾種方式都是通過CPU執(zhí)行程序實現(xiàn)的,占用了CPU資源,傳送速度慢(實際上是軟件傳送方式,最大速度約為幾十KB/秒)。為了實現(xiàn)高速外設與內(nèi)存之間的數(shù)據(jù)交換,可采用直接存儲器存取方式(DMA)。DMA傳送方式通常用來高速傳送大批量的數(shù)據(jù)塊。如: 硬盤和軟盤I/O;多處理機和多程序數(shù)據(jù)塊傳送;在圖像處理中,對CRT屏幕送數(shù)據(jù);快速
23、數(shù)據(jù)采集;DRAM的刷新操作。快速通信通道I/O; 55 DMA傳送: 外設 內(nèi)存外設直接與存儲器進行數(shù)據(jù)交換 ,CPU不再擔當數(shù)據(jù)傳送的任務,而由DMA控制器控制總線(DMAC)進行數(shù)據(jù)傳送。(CPU要放棄總線控制權),內(nèi)存/外設的地址和讀寫控制信號均由DMAC提供。優(yōu)點:數(shù)據(jù)傳輸由DMA硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設之間交換,可以達到很高的傳輸速率(可達幾MB/秒)56幾個基本概念總線控制權、mater、slaveDMAC編程周期:slaveDMAC控制總線進行數(shù)據(jù)傳輸周期:masterDMA的數(shù)據(jù)傳輸形式:基本的:MEMI/O擴充的:MEMMEM I/O I/O57DMAC控制數(shù)據(jù)傳送
24、 外設發(fā)出DMA請求 DMAC向CPU申請總線 CPU完成當前總線周期后響應,并釋放總線控制權 DMAC得到總線控制權,并發(fā)出DMA響應信號 由DMAC發(fā)出各種控制信號,控制外設與存儲器之 間的數(shù)據(jù)傳送 數(shù)據(jù)傳送完后,DMAC撤銷HOLD信號 CPU釋放HLDA信號,并重新控制總線系統(tǒng)總線CPUDMAC存儲器外設接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMR58DMAC的工作過程1)當外設準備好,可以進行DMA傳送時,外設向DMA控制器發(fā)出“DMA傳送請求”信號(DRQ);2)DMA控制器收到請求后,向C
25、PU發(fā)出“總線請求”信號HOLD,表示希望占用總線;3)CPU在完成當前總線周期后會立即對HOLD信號進行響應。響應包括兩個動作:一是CPU將數(shù)據(jù)總線、地址總線和相應的控制信號線均置為高阻態(tài),由此放棄對總線的控制權。另一方面,CPU向DMA控制器發(fā)出“總線響應”信號(HLDA)。4)DMA控制器收到HLDA信號后,就開始控制總線,并向外設發(fā)出DMA響應信號DACK;595)DMA控制器送出地址信號和相應的控制信號,實現(xiàn)外設與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送;例如,向I/O接口發(fā)出讀信號,同時往地址總線上發(fā)出存儲器的地址和存儲器寫信號和AEN信號,即可從外設向內(nèi)存?zhèn)魉鸵粋€字節(jié)。6)DMA控制器
26、自動修改地址和字節(jié)計數(shù)器,并判斷是否需要重復傳送操作。當規(guī)定的數(shù)據(jù)傳送完后,DMA控制器就撤銷發(fā)往CPU的HOLD信號。CPU檢測到HOLD失效后,緊接著撤銷HLDA信號,并在下一時鐘周期重新開始控制總線。 DMA通道 工作過程60 DMA的三種傳送方式:連續(xù)傳送(塊傳送)DMAC申請到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。單次傳送(每次傳送一個字節(jié))每個DMA周期只傳送一個字節(jié)就立即釋放總線。按需傳送(猝發(fā)傳送)只要I/O接口的數(shù)據(jù)緩沖可用,就進行傳送。 (注:I/O接口需要有一定大小的FIFO緩沖)61數(shù)據(jù)塊傳送YN允許DMADMA請求?DMAC請求總線CPU響
27、應, DMAC獲總線控制權DMA傳送一個字節(jié)塊結束?地址增量,計數(shù)器減量DMAC釋放總線YN62每次傳送一個字節(jié)NYN允許DMADMAC請求總線CPU響應, DMAC獲總線控制權DMA傳送一個數(shù)據(jù)塊結束?釋放總線至少一個總線周期地址增量,計數(shù)器減量DMAC釋放總線Y測試I/O的DREQ DMA請求?63按需傳送NYCPU響應, DMAC獲總線控制權DMA傳送一個字節(jié)塊結束?測試I/O的DREQ 有效?地址增量,計數(shù)器減量釋放總線,請求中斷無效,釋放總線允許DMADMA請求?DMAC請求總線YNYN64可編程DMA控制器8237A8237A是Intel86系列微處理器的配套芯片,可用來接管CPU
28、對總線的控制權,在存儲器與高速外設之間建立直接進行數(shù)據(jù)塊傳送的高速通路。8237A必須與一個8位鎖存器(8212或其他代用芯片)配套使用,才可形成完整的4通道DMA控制器。各通道可分別完成3種不同的操作:(1) DMA讀讀存儲器送外設。(2) DMA寫讀外設寫存儲器。65 (3) DMA校驗:通道不傳送數(shù)據(jù),僅完成校驗。任一通道進入DMA校驗方式時,不產(chǎn)生對存儲器和I/O設備的讀/寫控制信號,但是仍保持對系統(tǒng)總線的控制權,并且每一個DMA周期都將響應外部設備的DMA請求,發(fā)出DACKi信號,外設可使用這一響應信號對所得到的數(shù)據(jù)進行某種校驗操作,因此,DMA校驗操作并不是由8237A本身完成的。
29、 8237A可處于兩種不同的工作狀態(tài),在8237A未取得總線控制權以前,CPU處于主控狀態(tài),而8237A處于從屬狀態(tài),一旦8237A取得總線控制權后,8237A便上升為主控狀態(tài),完全在8237A控制下完成存儲器和外設之間的數(shù)據(jù)傳送功能,CPU不再參與數(shù)據(jù)傳送的操作。668237A芯片內(nèi)部結構 8237A可編程DMA控制器由數(shù)據(jù)總線緩沖存儲器、讀寫邏輯部件、工作方式寄存器、狀態(tài)寄存器、優(yōu)先選擇邏輯及四個DMA通道組成,內(nèi)部結構如圖5.25所示。8237A芯片有40條引腳,采用雙列直插式封裝,其引腳信號功能如圖5.26所示。67圖5.2568圖5.26691. DMA通道0通道3 作為8237A芯
30、片的主體是4個結構完全相同的DMA通道。每個通道內(nèi)包含兩個16位寄存器,它們是地址寄存器和終點計數(shù)寄存器,前者用來存放進行DMA操作的存儲器區(qū)域的首地址的偏移地址值;后者的低14位(D13D0)用來存放要求傳送的字節(jié)數(shù)n-1,n為本次DMA操作所需要執(zhí)行的DMA周期數(shù),因此,一個數(shù)據(jù)塊的最大容量為214=16KB。 在任何DMA操作周期內(nèi),這2位不允許修改,但是可在各個數(shù)據(jù)塊傳送之間進行修改。這就是說,一旦被定義,任何一個通道的DMA寫、DMA讀或DMA校驗操作就一直進行到整個數(shù)據(jù)塊操作完成為止。70 每個通道各有一條DMA請求線和一條DMA認可線。DMA請求線DRQ0DRQ3,由請求傳送數(shù)據(jù)
31、的外部設備輸入,高電平有效;DMA認可線DACK0DACK3,由8237A取得總線控制權后向發(fā)出請求的外部設備輸出,低電平有效,它實際上是DRQi的回答信號。2. 數(shù)據(jù)總線緩沖存儲器 這是一個雙向三態(tài)8位緩沖存儲器,是與系統(tǒng)數(shù)據(jù)總線的接口,當8237A處于從屬狀態(tài)時,CPU通過這個緩沖存儲器對8237A進行讀/寫操作。當8237A處于主控狀態(tài)時,在DMA周期內(nèi),8237A將所選通道的地址寄存器的高8位地址碼(A15A8)經(jīng)過這個緩沖存儲器鎖存到8212鎖存器中,然后該緩沖存儲器將處于浮空狀態(tài)。713. 讀/寫邏輯部件 當8237A處于從屬狀態(tài)時,用來接收由CPU輸入的讀/寫控制信號和端口地址等
32、信息;當8237A處于主控狀態(tài)時,通過它發(fā)出讀/寫控制信號和地址信息。 (1) I/OR讀信號,雙向三態(tài),低電平有效。當8237A處于從屬狀態(tài)時, I/OR為輸入線,是CPU向8237A發(fā)出的讀命令,可讀取8237A中某個通道內(nèi)某個寄存器的內(nèi)容。 當8237A處于主控狀態(tài)時, I/OR為輸出線,是8237A向外部設備發(fā)出的讀命令,可從外部設備中讀取數(shù)據(jù)。(2) I/OW輸入/輸出寫控制信號,雙向、三態(tài),低電平有效。72 當8237A處于從屬狀態(tài)時, I/OW為輸入線,是CPU向8237A發(fā)出的寫命令,可向8237A寫入控制字或通道數(shù)據(jù)。 當8237A處于主控狀態(tài)時, I/OW為輸出線,是823
33、7A向外部設備發(fā)出的寫命令,可向外部設備寫入數(shù)據(jù)。(3) A3A0輸入/輸出地址線。 當8237A處于從屬狀態(tài)時,這是由CPU向8237A輸入的低4位地址碼,用來尋址8237A中的某個端口。當8237A處于主控狀態(tài)時,這是8237A向存儲器輸出的低4位地址碼。73(4) CS:選片信號,輸入,低電平有效。 當8237A處于從屬狀態(tài)時,由高位地址碼(A15A2)譯碼得到對8237A的片選信號。 當8237A處于主控狀態(tài)時,CS被自動禁止,以免8237A正在執(zhí)行DMA傳送期間重新被選。(5) CLK:時鐘輸入,用來確定8237A的工作速率。(6) RESET:復位信號,由外部輸入,高電平有效。RE
34、SET有效時,清除所有寄存器的內(nèi)容,控制線浮空,禁止DMA操作,復位之后,必須重新初始化,8237A才能工作。744. 控制邏輯部件 控制邏輯部件主要用來向CPU發(fā)出總線請求,得到CPU認可進入主控狀態(tài)后,由它發(fā)出各種控制信號。(1) HRQ(hold request)保持請求信號,向CPU輸出,高電平有效。 當任一通道收到外部設備的DMA請求時,8237A立即向CPU發(fā)出HRQ,表示要求使用總線。(2) HLDA(hold acknowledge)保持響應信號,由CPU輸入,高電平有效。 CPU收到HRQ信號,待當前總線周期執(zhí)行完,向8237A回送HLDA信號,表示將總線控制權交給8237A
35、,此后,8237A進入主控狀態(tài),可開始DMA操作。75(3) READY:準備就緒信號,輸入,高電平有效。 8237A在主控狀態(tài)下進行DMA的操作過程中,若存儲器或外部設備來不及完全讀/寫操作,要求延長讀/寫操作周期時,可使READY線無效,8237A將在DMA周期中增設等待周期,直到READY有效為止。(4) MEMR和MEMW:讀/寫存儲器控制信號,三態(tài)輸出,低電平有效。 這是8237A處于主控狀態(tài)時,向存儲器輸出的讀/寫控制信號。當MEMR有效時,必然I/OW有效,完成從存儲器向外部設備的數(shù)據(jù)傳送。反之,MEMW有效時,必然I/OR有效,完成讀外部設備寫存儲器的數(shù)據(jù)傳送。76(5) A7
36、A4地址輸出線。 8237A處于主控狀態(tài)時,在DMA周期中通過這條線輸出的是16條存儲器地址的A7A4位。(6) TC(terminal count)終點計數(shù)信號,輸出,高電平有效。 當所選通道的終點計數(shù)寄存器中的計數(shù)值為0時,TC輸出有效,表示當前正在傳送的是最后一個數(shù)據(jù)字節(jié),可用來通知外設結束數(shù)據(jù)傳送操作,使DRQi信號無效。(7) MARK(modulo 128 MARK)模128標記,輸出,高電平有效。 MARK有效可用來通知被選的外部設備,當前是上一次輸出MARK有效后的第128個DMA周期。77 MARK總是在距數(shù)據(jù)塊結束每隔128周期產(chǎn)生。至于第一個MARK距數(shù)據(jù)塊開始是多少周期
37、,取決于數(shù)據(jù)塊的長度。如果數(shù)據(jù)塊總字節(jié)數(shù)能被128整除,那么MARK可用來供外部設備記錄已傳送的字節(jié)數(shù)。(8) ADSTB地址選通信號,輸出,高電平有效。 ADSTB有效,表示8237A輸出的存儲器地址的高8位(A15A8)從雙向數(shù)據(jù)總線(D7D0)鎖存到8212鎖存器,用作8212STB的選通信號。(9) AEN地址允許信號,輸出,高電平有效。 AEN有效,表示在上述傳送地址過程中,它用作8212的選擇信號DS2,同時可用它去封鎖CPU使用低8位數(shù)據(jù)總線和控制總線。785. 工作方式寄存器及狀態(tài)寄存器 工作方式寄存器是一個8位只可寫寄存器,由CPU對8237A初始化時寫入,用來定義8237A
38、中各通道的工作方式。狀態(tài)寄存器是一個8位只可讀寄存器,用來描述當前各通道所處的狀態(tài)。(1) 工作方式寄存器: 其各位的定義如圖5.27所示。79圖5.2780 低4位中任一位置“1”,表示相應通道被啟動投入操作。 RP(rotating priority)位是優(yōu)先權旋轉位。若RP=0,表示各通道的請求具有固定的優(yōu)先權級別,通道0具有最高優(yōu)先級(6級),通道3具有最低優(yōu)先級(3級),其他通道的優(yōu)先級類推。若RP=1,表示采用旋轉優(yōu)先權策略,總是使剛剛結束操作的通道具有最低優(yōu)先級,把最高優(yōu)先級賦給原來比它低一級的中斷。 顯然,采用旋轉優(yōu)先權方式,可防止優(yōu)先級別高的通道長時間獨占DMA傳送數(shù)據(jù),而使
39、連接在各個通道上的外設對于DMA資源具有基本上相同的使用概率。81 EW(extened write)位是寫擴展位。EW=1,表示將寫存儲器信號MEMW和寫I/O設備信號I/OW提前有效,收到該寫信號的存儲器或外設應提前使READY信號有效,以免8237A在DMA周期內(nèi)插入不必要的SW等待狀態(tài)。 TCS(TC stop)位是終點計數(shù)停止位。TCS=1,即終點計數(shù)TC有效時,該通道便結束DMA操作,如果要求該通道繼續(xù)傳送別的數(shù)據(jù)塊,必須重新啟動。TCS=0,即TC有效時,并不復位相應通道,表示該通道傳送的數(shù)據(jù)還未結束,可繼續(xù)傳送下一數(shù)據(jù)塊,而不需要重新啟動該通道,或者是由外部設備停止發(fā)出DMA請
40、求來結束DMA操作。82 AL(auto load)位是自動裝入位。當AL=1時,允許通道2連續(xù)傳送多個重復數(shù)據(jù)塊或者傳送相互鏈接的多個不同數(shù)據(jù)塊。 這種情況下,需要使用兩個通道。系統(tǒng)規(guī)定使用通道2和通道3來完成。如果是傳送相互鏈接的數(shù)據(jù)塊,初始化時應將第1個數(shù)據(jù)塊的參數(shù)(存儲器起始地址、終點計數(shù)值和DMA傳送方式)置入通道2的有關寄存器中,而將第2個數(shù)據(jù)塊的參數(shù)置入通道3中,并使通道2的TCS位置“0”,待通道2傳送完第1個數(shù)據(jù)塊時,并不結束通道2的操作,而是在修改周期內(nèi),將通道3中存放的參數(shù)傳送給通道2,于是通道2可繼續(xù)傳送第2個數(shù)據(jù)塊。如果還有第3個數(shù)據(jù)塊需要繼續(xù)傳送,則應將第3個數(shù)據(jù)塊
41、的參數(shù)置入通道3暫存。這樣,通道2可連續(xù)傳送多個不同的數(shù)據(jù)塊。83如果需要通道2傳送的是多個重復的數(shù)據(jù)塊,則只要AL=1,將數(shù)據(jù)塊參數(shù)同時對通道2和通道3進行初始化即可。于是通過通道2傳送的將是多個相同的數(shù)據(jù)塊。在上述操作過程中,通道3實際上是作為通道2的緩沖存儲器使用,而并不需要啟動通道3投入操作。(2) 狀態(tài)寄存器: 其各位定義如圖5.28所示。84圖5.2885 TC3TC0是各通道的終點計數(shù)位,用來標志相應通道當前是否達到終點計數(shù)狀態(tài)。當某個通道進入數(shù)據(jù)塊的最后一個DMA周期,即終點計數(shù)器的計數(shù)值為0時,相應的TCi狀態(tài)位被置“1”,并且一直保持到該通道被復位或CPU讀完狀態(tài)寄存器為止
42、。顯然,TC3TC0中任何一位置“1”時,終止計數(shù)端TC將輸出有效,待這最后一個DMA周期結束。是否要將相應通道復位,則取決于工作方式寄存器中終點計數(shù)停止位(TCS)是否置“1”。 UP是修改標志位,它是專為通道2連續(xù)傳送多個數(shù)據(jù)塊而設置的。UP=1,表示當前處于修改周期,即數(shù)據(jù)塊的最后一個DMA周期,當自動裝入位AL=1時,表示在修改周期內(nèi)將通道3中暫存的參數(shù)86 置入通道2中,于是通道2可以繼續(xù)傳送下一個數(shù)據(jù)塊。在通道2傳送下一數(shù)據(jù)塊的第一個DMA周期內(nèi),又可將新的參數(shù)置入通道3中。修改標志只在修改周期內(nèi)有效。878237A芯片的通道操作過程8237ADMA操作周期時序圖如圖5.29所示。
43、圖5.29888237A處于從屬狀態(tài)時保持為空閑狀態(tài)S1。當任一通道檢測到一個DMA請求時,8237A將在下一個S1狀態(tài)時向CPU發(fā)出總線請求信號HRQ,于是8237A進入準備狀態(tài)S0。CPU在當前總線周期結束時,向8237A回送總線認可信號HLDA,將總線控制權交給8237A,8237A開始進入主控狀態(tài)。DMA周期從S1狀態(tài)開始,至少包含4個狀態(tài)S1S4,必要時可在S3和S4之間插入SW。在S1狀態(tài)期間,通過數(shù)據(jù)總線D7D0將高位地址線鎖存到8212鎖存器中,低8位地址直接從A7A0輸出,形成訪問存儲器的16位地址碼,到S3狀態(tài)期間發(fā)出讀存儲器(MEMR)或讀外設(I/OR)命令可將需要傳送
44、的數(shù)據(jù)讀出,在隨后產(chǎn)生的寫外設(I/OW)或寫存儲器(MEMW)命令控制下可完成傳送一89個數(shù)據(jù)字節(jié)的功能,需要傳送多少個字節(jié),就需要執(zhí)行多少個這樣的DMA周期。待整個數(shù)據(jù)塊傳送結束,在最后一個DMA周期的S4狀態(tài)上升沿,8237A的總線請求HRQ將無效,CPU將HLDA置成無效,收回總線控制權,8237A重新回到空閑狀態(tài)S1。 8237A在每一個DMA周期的S4狀態(tài)查詢DRQi如果同時有多個DRQi有效,8237A將為優(yōu)先級最高的通道服務,而且允許高級的請求打斷低級的請求而被優(yōu)先服務。只要較低優(yōu)先級的通道能保持它的請求有效,待較高優(yōu)先級的通道傳送結束,控制將自動轉到較低優(yōu)先級的通道去服務。8
45、237A的整個操作流程可用圖5.30來描述。90圖5.30918237A控制器的編程及應用8237A共包含4個通道,每個通道占用2個端口地址,再加上工作方式寄存器和狀態(tài)寄存器合用一個端口,因此整個8237A芯片共包含9個端口地址,可用最低4位地址碼(A3A0)來對它們尋址。高位地址碼(A15A4)經(jīng)譯碼后,可用來形成8237A的片選信號,使CS有效,與I/OW,I/OR和地址碼A3配合可完成對有關寄存器的讀寫操作。某8086微機系統(tǒng)中,利用8237A DMA控制器的0通道為某臺外設與存儲器之間構成直接數(shù)據(jù)傳送通道的系統(tǒng)配置結構如圖5.31所示。92圖5.3193中斷傳送方式CPU無需查詢外設狀
46、態(tài),外設在需要進行數(shù)據(jù)傳送時才中斷CPU正在進行的工作,讓CPU來為其服務。即CPU 與外設并行工作,有請求時才去傳輸數(shù)據(jù),從而大大提高了CPU的利用率。優(yōu)點:CPU效率高,實時性好,速度快。缺點:程序編制較為復雜。 須保護斷點、保護現(xiàn)場等。94 中斷傳送方式斷點CPU:主程序中斷服務程序中斷請求處理外設事件繼續(xù)執(zhí)行返回斷點 CPU在執(zhí)行程序中,被內(nèi)部或外部的事件所打斷,轉去執(zhí)行一段預先安排好的中斷服務程序;服務結束后,又返回原來的斷點,繼續(xù)執(zhí)行原來的程序傳送流程95 中斷系統(tǒng)其他功能: 支持多中斷源和多種中斷源。 支持中斷屏蔽處理。 支持中斷嵌套處理。 支持中斷優(yōu)先級修改。 支持中斷結束方式
47、選擇。中斷處理的隱操作:程序狀態(tài)及程序斷點地址的進棧及出棧。96中斷傳送與接口中斷傳送是一種效率更高的程序傳送方式進行傳送的中斷服務程序是預先設計好的中斷請求是外設隨機向CPU提出的CPU對請求的檢測是有規(guī)律的:一般是在每條指令的最后一個時鐘周期采樣中斷請求輸入引腳中斷除了在輸入和輸出方面的應用,中斷還有著非常廣泛的應用97中斷傳送與接口D0D7+5V8D鎖存器8位三態(tài)緩沖器三態(tài)緩沖器RQ 譯碼 288H中斷向量號D0D7INTRD輸入設備中斷允許觸發(fā)器A0A15中斷請求觸發(fā)器IORINTASTB計算機中的中斷請求與控制 1、CPU中斷請求與控制 當CPU正在處理某件事情時,發(fā)生了更緊急的事件
48、請求CPU處理,此時,CPU暫停當前工作,轉去處理緊急事件即響應中斷服務程序。中斷服務程序處理完后,CPU回到原工作地點繼續(xù)原來的工作,這一過程稱為中斷。如圖5-6所示圖5-6 中斷響應過程2、中斷的優(yōu)點 1)計算機與其他設備多任務同時工作、分時操作,提高了計算機的利用率;2)實時處理控制系統(tǒng)中的各種信息,提高了計算機的靈活性;3)使計算機及時處理故障等突發(fā)事件,提高了可靠性。圖5-6 中斷系統(tǒng)的結構框圖中斷系統(tǒng)有五個中斷源外部中斷源1)INT0(入口地址0003H) ,外部中斷0。由P3.2端口線引入,低電平或下降沿引起。2) INT1 (入口地址0013H) ,外部中斷1。由P3.3端口線
49、引入,低電平或下降沿引起。內(nèi)部中斷源3)T0 (入口地址000BH):定時/計數(shù)器0中斷,由T0回零溢出引起。4)T1 (入口地址001BH) :定時/計數(shù)器1中斷,由T1回零溢出引起。5)TI/RI (入口地址0023H) :串行I/O中斷,完成一幀字符發(fā)送/接收引起。中斷控制所涉及的寄存器1、 定時控制寄存器TCON 每一種工作方式的啟動、計數(shù)、停止及溢出標志由TCON控制。定時器控制字TCON的格式如下:TF0TR0IE1IT1IE0IT0TR1TF1D5D4D3D2D1D0D6 D7外部中斷1的觸發(fā)工作方式外部中斷1的中斷請求標志位定時器0、1的啟動及定時時間到標志位外部中斷0的中斷請
50、求標志位外部中斷0的觸發(fā)工作方式觸發(fā)方式:邊沿觸發(fā)、電平觸發(fā)IT0=1 INT0為邊沿觸發(fā)IT0=0,INT0為電平觸發(fā)IT1=1 INT1為邊沿觸發(fā)IT1=0,INT1為電平觸發(fā)IE0=0, INT0無中斷請求IE1=0, INT1無中斷請求IE0=1, INT0有中斷請求IE1=1, INT1有中斷請求根據(jù)硬件設計軟件設置(1)邊沿(跳變)觸發(fā)方式: 根據(jù)具體硬件電路設計, 在P3.2管腳有一由高到低電平變化, 看邊沿觸發(fā)的電平變化。5V0V軟件置位 IT0 SETB IT0機器周期機器周期CPU 響應外部中斷的過程: CPU檢測到INT0電平由高到低變化時,自動置位IE0=1,并響應外部
51、中斷0的申請,首先自動清除IE0(即使IE0=0),并到外部中斷0的入口地址:0003H執(zhí)行中斷服務程序。(2)電平觸發(fā)方式:電平觸發(fā)方式,看圖硬件電路設計,軟件 CLR IT00VCPU 響應中斷為止2、中斷允許寄存器IE(A8H) IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8HAFH。IE控制CPU對中斷源總的開放或禁止以及每個中斷源是否允許中斷。其格式如圖所示。3、SCON串行口寄存器 SCON串行口寄存器的位狀態(tài)鎖存發(fā)送TI、接收RI中斷標志TIRI用于串行通訊TI(SCON.1):串行口發(fā)送中斷標志位。當CPU將一個數(shù)據(jù)寫入串行口發(fā)送緩沖區(qū)SBUF時,就啟動發(fā)送。每發(fā)送完
52、一個串行幀,由硬件置位TI。此時,若ES=1、EA=1(中斷允許),CPU響應串口發(fā)送中斷服務。若EA、ES某一個不為1,則不允許中斷,此時只能通過查詢方式判斷發(fā)送結束。RI(SCON.0):串行口接收中斷標志位。當允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位,若EA=1、ES=1,CPU響應串口接收中斷服務。若EA、ES某一個不為1,則不允許中斷,此時只能通過查詢方式判斷接收結束。4、中斷優(yōu)先寄存器IP(B8H) IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8HBFH,IP用來鎖存各中斷源優(yōu)先級的控制位,其格式如圖所示。 中斷優(yōu)先級順序最高 最低 INT0 T0 INT1
53、 T1 串行口中斷優(yōu)先原則A)幾個中斷同時請求時,響應高優(yōu)先級。B)正在處理低級中斷時,有高級請求即停止低級中斷,響應高級中斷。C)正在進行的中斷不響應同級或低級中斷。中斷響應過程單片機在每個機器周期的S5P2期間,順序采樣每個中斷源,CPU在下一個機器周期S6期間按優(yōu)先級順序查詢中斷標志,如查詢到某個中斷標志為1,將在再下一個機器周期S1期間按優(yōu)先級進行中斷處理。中斷得到響應后自動清除中斷標志,由硬件自動生成一條長調用指令LCALL addr16將程序計數(shù)器PC內(nèi)容壓入堆棧保護,然后將對應的中斷入口地址裝入程序計數(shù)器PC,使程序轉向中斷矢量地址單元中去執(zhí)行相應的中斷服務程序。 P1P2S1機器周期機器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2響應中斷請求的條件1)CPU開中斷
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務課題申報書范文
- 課題申報書高校
- 申報課題的項目書
- 人文社科研究課題申報書
- 畜牧養(yǎng)殖課題申報書
- 課題申報書項目內(nèi)容
- 課題申報書人員分工
- 婦科課題立項申報書
- 橫向科研課題申報書
- 單縣新房購房合同范例
- 戰(zhàn)傷并發(fā)癥的護理
- 事業(yè)單位工作人員退休(職)登記表
- 2024解析:第十章 浮力綜合應用-基礎練(解析版)
- 【MOOC】社會調查與研究方法-北京大學 中國大學慕課MOOC答案
- 汽車維護課件 1.3 舉升機的使用
- 醫(yī)院培訓課件:《民法典》“醫(yī)療損害責任”逐條解讀
- 自身免疫性腦炎護理常規(guī)
- 《信息技術基礎》高職全套教學課件
- GB/T 19077-2024粒度分析激光衍射法
- 露天礦山開采施工組織方案
- 北京市西城區(qū)2022-2023學年高三上學期1月期末考試歷史試題 附答案
評論
0/150
提交評論