第4章4547接口技術_第1頁
第4章4547接口技術_第2頁
第4章4547接口技術_第3頁
第4章4547接口技術_第4頁
第4章4547接口技術_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、定時信號的需求

在計算機系統(tǒng)中,經(jīng)常要用到定時信號,比如:在許多個人計算機中,動態(tài)存儲器的刷新定時;系統(tǒng)日歷時鐘的計時;喇叭的聲源;都是用定時信號來產(chǎn)生的。在計算機實時控制與處理系統(tǒng)中,計算機需要每隔一段時間采樣一次,再對采樣的數(shù)據(jù)處理、控制,也要用到定時信號。計數(shù)與定時本質(zhì)就是計數(shù),計數(shù)脈沖為周期性脈沖,可以實現(xiàn)定時功能。4.5

計數(shù)/定時及其控制芯片8253A§4.5.1

定時/計數(shù)技術2014/072、定時和計數(shù)的實現(xiàn)方法DELAY:

MOVDX,1000

TIME:

DECDX

JNETIME定時信號的產(chǎn)生有兩種方式:

1)軟件方法——延時子程序2)不可編程的硬件定時——單穩(wěn)態(tài)延時電路或計數(shù)電路。實現(xiàn)延時或定時器件容易老化,導致定時不準(RC決定脈沖寬度)。3)可編程的硬件定時——用定時/計數(shù)器(簡單的軟件控制,產(chǎn)生準確的時間延遲)。

主要思路:計數(shù)器/定時器開始工作,此時CPU不必過問它的工作,而可以去作別的工作。計數(shù)器/定時器計數(shù)或定時達到確定值時,可以自動產(chǎn)生一個輸出。2014/07定時/計數(shù)器的核心是一個自動加1或減1的計數(shù)器。11111111例:計數(shù)器為8位,設初值為1111111111111110111111011111110011111011000000100000000100000000

經(jīng)過255個輸入脈沖后,計數(shù)器值減到0,產(chǎn)生一個輸出信號,表示計數(shù)結束。外部輸入脈沖的周期是固定的,計數(shù)的初值,決定定時時間,即計數(shù)器輸出時間;外部輸入脈沖的周期是隨機的,停止計數(shù)后,查看計數(shù)器的計數(shù)值。開啟停止2014/07§4.5.2

8253A內(nèi)部結構和引腳1.8253的主要功能:①3個獨立的16位減1計數(shù)器通道;②每個計數(shù)器都可以單獨使用,采用二進制或BCD;③計數(shù)器的計數(shù)速率可達2MHz,最高達2.6MHz;④每個通道有6種工作方式,可由程序設置和改變;⑤輸入/輸出與TTL兼容。2014/0700HFEH8位控制寄存器:控制計數(shù)器的工作方式;16位計數(shù)初值寄存器:裝計數(shù)初值;16位計數(shù)執(zhí)行部件:執(zhí)行減1操作;16位輸出鎖存器:需要讀取當前計數(shù)值時,將當前執(zhí)行計數(shù)器中的值鎖存進該存儲器后讀取。對其寫入控制字對其寫入計數(shù)初值讀取了解當前狀態(tài)00HFFH00HFDH00HFCH00HFCH2014/07a.向8253寫入確定工作方式的命令。b.向8253計數(shù)器寄存器裝入計數(shù)值。c.讀出8253計數(shù)值。

8253A由數(shù)據(jù)總線緩沖存儲器、讀/寫控制電路、控制字寄存器及3個獨立的計數(shù)通道組成。計數(shù)器0號計數(shù)器1號計數(shù)器2號a.CS—片選信號。b.RD—CPU讀取計數(shù)器的當前值。c.WR—向8253寫控制字或計數(shù)初值。d.A1A0—端口選擇信號。2014/07

3個獨立通道,每個通道內(nèi)有16位減1計數(shù)器,每來一個計數(shù)脈沖計數(shù)器減1,在OUT端輸出一個計數(shù)結束信號,每個通道內(nèi)有一個計數(shù)鎖存器,可以鎖住當前計數(shù)值,供CPU查詢。計數(shù)脈沖計數(shù)器:計數(shù)脈沖由CLK引腳輸入,計數(shù)周期可不固定,計數(shù)脈沖來自外部。定時器:計數(shù)脈沖要求來自系統(tǒng)的主時鐘,周期固定,CLK最高計數(shù)頻率為2.6MHz。定時計數(shù)值=定時時間時鐘脈沖的周期1、8253與外設的接口2014/072、8253與CPU的接口a.向8253寫入確定工作方式的命令。b.向8253計數(shù)器寄存器裝入計數(shù)值。c.讀出8253計數(shù)值。1)數(shù)據(jù)總線緩沖器2)讀寫控制電路a.CS—片選信號。b.RD—CPU讀取計數(shù)器的當前值。c.WR—向8253寫控制字或計數(shù)初值。d.A1A0—端口選擇信號。2014/072014/07引腳信號D7~D0

數(shù)據(jù)總線(雙向)RD

讀輸入WR寫輸入A0,A1

內(nèi)部寄存器地址CS

片選CLK輸入脈沖(計數(shù)脈沖)GATE

門控信號輸入

(控制計數(shù)器工作的外部信號,為低時,禁止計數(shù)器工作)OUT

輸出引腳(計數(shù)為0,

OUT有輸出波形,

由工作方式?jīng)Q定)2014/07用來存放CPU寫入8253的方式選擇控制字。§4.5.3

8253A控制字及工作方式2014/07

1、8253的控制命令在8253的初始化編程中,由CPU向8253的控制寄存器輸出一個控制字,用來選擇計數(shù)器,設定工作方式和計數(shù)格式。

2、8253的設置初值命令控制字寫入8253后,設置初值命令,所謂設置初值就是設置計數(shù)的初始值,其初始值可以是8位的,也可以是16位,則要用兩條輸出指令完成計數(shù)初值決定,先送低字節(jié),后送高字節(jié)?!?.5.48253A初始化編程2014/07例1:設8253端口地址為40H~43H,通道0工作于方式0,用二進制計數(shù),其初始值為4。其初始化程序:

MOVAL,10H;控制字(0001000B)

OUT43H,AL;寫入控制寄存器

MOVAL,4;計數(shù)初值,只送低8位

OUT40H,AL;初值送通道02014/07鎖存命令是配合CPU讀計數(shù)器當前值而設置的。在讀計數(shù)值時,必須先用鎖存命令,將當前計數(shù)值在輸出鎖存器中鎖定,由CPU讀取。③.8253的鎖存命令

注意:當CPU將鎖定值用輸入指令在讀走時,鎖存器自動失鎖,又跟隨減法計數(shù)器工作,在鎖存和讀出計數(shù)值的過程中,不影響計數(shù)進行。2014/078253A有6種工作方式,基本原則:①控制字寫8253,控制邏輯復位,OUT進入初始態(tài)。②裝入計數(shù)初值后,經(jīng)過一個時鐘周期,計數(shù)器工作,下降沿計數(shù)器減1計數(shù)。初值最大值是0:

二進制計數(shù)=216;BCD計數(shù)=104

③一般情況下,CLK上升沿,采樣門控信號。門控信號觸發(fā)方式電平觸發(fā)方式邊沿觸發(fā)方式(在每個時鐘脈沖的上升沿采樣邊沿觸發(fā)器,檢測是否被外部門控脈沖觸發(fā)過)§4.5.58253A的工作方式2014/071.計數(shù)過程由軟件啟動,每設置一次初值,只啟動一次計數(shù)過程;2.寫入控制字后,OUT初態(tài)為低,在計數(shù)過程中一直保持為低電平,當計數(shù)器減到0時,OUT立即變成高電平。①.工作方式0—計數(shù)結束中斷2014/073.

門控GATE為1,正常計數(shù),門控為0,計數(shù)暫停,其計數(shù)值保持不變,再為1,接著前次繼續(xù)計數(shù);計數(shù)暫停,保持不變2014/07立即有效4.

計數(shù)中,改變初值立即有效,即重新寫入初值時停止計數(shù);當寫完初值后,在CLK的下降沿,開始新的計數(shù)初值計數(shù)。2014/07門控觸發(fā)初態(tài)為高開始計數(shù)后輸出N個CLK寬度的低電平1.計數(shù)器只能由門控脈沖GATE的上升沿啟動,即計數(shù)器只能由硬件啟動,不能用軟件啟動;②.工作方式1—可編程單脈沖發(fā)生器2014/072.

寫入控制字后,OUT初態(tài)為高電平,GATE啟動后,獲得N個CLK的低電平;計數(shù)到0,再次由外部觸發(fā)啟動,重新自動賦值計數(shù)2014/073.計數(shù)輸出時,改變計數(shù)初值不影響本次計數(shù);只有GATE為高后,才以新的計數(shù)初值計數(shù),即計數(shù)值是下次有效的。2014/071.計數(shù)器既可用軟件啟動,又可用硬件啟動;2.

寫入控制字后,OUT初態(tài)為高電平,裝入初值后開始計數(shù)(軟件啟動);計數(shù)到1,輸出1個低電平信號;輸出(N-1)個高電平。(周期重復)③.工作方式2—速率發(fā)生器2014/073.當OUT為高,若GATE為0,停止計數(shù)。直到GATE出現(xiàn)上升沿,計數(shù)器重新開始計數(shù)輸出(硬件啟動);2014/074.

當OUT為高,改變計數(shù)初值,對正在進行的計數(shù)過程沒有影響。改變計數(shù)是下次有效的。2014/071.

與方式2類似,輸出信號為方波,周期為N個CLK。若初值N為偶數(shù),輸出N/2個CLK高電平,N/2個CLK低電平;若N為奇數(shù),(N+1)/2個高電平,(N-1)/2個低電平。N=4,方波④.工作方式3—方波發(fā)生器2014/07(N-1)/2,低電平N=5,奇數(shù)(N+1)/2,高電平2014/072.GATE為0停止計數(shù),GATE上升沿重新啟動計數(shù)周期;2014/073.

重新寫入初值,本次OUT不受影響,下一周期按新值輸出。計數(shù)值下次有效。2014/071.計數(shù)由軟件啟動,每設置一次初值,只啟動一次計數(shù)過程;2.寫入控制字后,OUT初態(tài)為高,計數(shù)過程中一直保持為高電平;當計數(shù)器減到0時,輸出為一個CLK的低電平,接著又為高電平。⑤.工作方式4—軟件觸發(fā)方式2014/073.

門控GATE為1,正常計數(shù),門控為0,計數(shù)停止,再為1,重新從計數(shù)初值開始計數(shù)。2014/074.

計數(shù)中,改變初值立即有效,即重新寫入初值時停止計數(shù);當寫完初值后,在CLK的下降沿處,開始以新的計數(shù)初值計數(shù)。2014/07門控觸發(fā)開始計數(shù)后輸出1個CLK低電平1.

計數(shù)器只能由門控脈沖GATE的上升沿啟動,即計數(shù)器只能由硬件啟動,不能用軟件啟動;⑥.工作方式5—硬件觸發(fā)方式2014/072.OUT初態(tài)為高電平;GATE啟動后,減1計數(shù),計數(shù)到0,OUT出現(xiàn)一個CLK的負脈沖,又變?yōu)楦唠娖健?.在計數(shù)中,若GATE為上升沿,則計數(shù)器重新觸發(fā),即在下一個時鐘周期開始計數(shù);2014/07重裝下次有效4.改變計數(shù)初值不影響本次計數(shù),只有在GATE信號后才重新開始以新的計數(shù)初值計數(shù),即計數(shù)值是下次有效的。2014/07在6種方式中,只有方式0,在寫入控制字后OUT為低,其余都是OUT為高做初態(tài);方式1與方式5,在寫入計數(shù)值后,需GATE的上升沿才開始計數(shù)——硬啟動;方式0與方式4,寫入初值后,需GATE的高電平軟啟動,改變初值立即有效;計數(shù)器減到0后并不是停止不動,定時方式(方式2與方式3)為重裝計數(shù)初值。方式2與方式3是定時方式(周期信號),其他為計數(shù)方式(一次計數(shù)結束);方式4與方式5,計數(shù)到0,OUT出現(xiàn)一個CLK的負脈沖,然后變?yōu)楦唠娖健?偨Y:2014/07

所謂串行通信就是使數(shù)據(jù)一位一位的進行傳輸而實現(xiàn)的通信,串行通信具有傳輸線少,成本低的優(yōu)點,適合于遠距離傳輸,速度慢。計算機計算機或外設串行通信4.6

串行通信及其控制芯片8251A§4.6.1

串行通信基礎知識2014/07 按照數(shù)據(jù)流的方向,串行通信分成三種方式:單工:只能單方向傳送信息。如鍵盤與主機之間。半雙工:可以雙向傳送信息;由于通過同一個通道傳送信息,所以同一時刻只能單向傳送;全雙工:采用兩條通道,可以同時發(fā)送和接收信息。如計算機之間的通信。TR(a)單工TR(c)全雙工RTTT(b)半雙工RR1、串行通信數(shù)據(jù)傳輸方式2014/072、串行通信的數(shù)據(jù)格式分類串行通信的兩種基本方式:異步串行通信

異步串行通信協(xié)議同步串行通信

同步串行通信協(xié)議異步通信和同步通信必須共同遵守的協(xié)定:

發(fā)送方和接收方必須具有相同的數(shù)據(jù)傳送格式(同步或異步)、起始標志、結束標志、校驗標志、通信速率等。1)異步通信方式:以字符/字節(jié)為單位傳送,通信雙方需約定協(xié)議(格式,速率等)。2014/07a.數(shù)據(jù)的格式——數(shù)據(jù)傳送時,必須有1位起始位(‘0’),結束有(1/1.5)/2個停止位(‘1’)。01b.校驗位奇校驗:字符加上校驗位有奇數(shù)個1;偶校驗:字符加上校驗位有偶數(shù)個1。校驗位產(chǎn)生和檢查由串行通信控制器內(nèi)部自動產(chǎn)生,停止位也是由硬件自動產(chǎn)生的。(偶數(shù)個錯誤不能檢測)。2014/07

將許多字符組成一個信息組(稱為幀),字符一個接一個地傳輸。在每幀的開始處加上同步字符,沒有信息傳輸時,填上空字符,同步傳輸不允許字符與字符之間有間隙。同步字符數(shù)據(jù)CRC1CRC2一幀(單同步)同步字符同步字符數(shù)據(jù)CRC1CRC2(雙同步)一幀2)同步通信方式利用同步字(SYN)獲得雙方的同步信息,數(shù)據(jù)之間無間隔符(數(shù)據(jù)流),所以傳輸速率較高。2014/07異步串行通信和同步串行通信特點:異步串行通信同步串行通信在通信的數(shù)據(jù)流中,字符間異步,字符內(nèi)各位間同步。在通信的數(shù)據(jù)流中,字符與字符之間以及字符內(nèi)部的位與位之間都必須保持同步。信息傳送單位(1幀數(shù)據(jù))為1個字符,即1幀數(shù)據(jù)中只包括1個字符的有效數(shù)據(jù)。字符與字符之間通信沒有嚴格定時要求。信息傳送單位(1幀數(shù)據(jù))為數(shù)據(jù)塊(字符塊),即1幀數(shù)據(jù)中包括1個或多個字符的有效數(shù)據(jù)。2014/073、串行通信時鐘與波特率1)發(fā)送脈沖和接收脈沖

發(fā)送方要靠發(fā)送脈沖(移位脈沖)將數(shù)據(jù)移出,經(jīng)TXD引腳→對方。

接收方要靠接收脈沖(移位脈沖)將數(shù)據(jù)接入,經(jīng)RXD引腳→串口。2014/072)檢測脈沖

接收方需對發(fā)送方發(fā)來的數(shù)據(jù)位進行檢測,以決定是‘0’,還是‘1’。通常檢測脈沖是移位脈沖的16和64倍(常選16)。檢測脈沖的上升沿采樣RxD線,每當連續(xù)采樣RxD線上8個低電平(起始位之半)后,便確認對方發(fā)送的是起始位,認為下一位送來的應是數(shù)據(jù)位。此后,便每隔16個檢測脈沖連續(xù)采樣RxD線三次,按三中取二的原則確定采到的數(shù)據(jù)位是0還是1,作為輸入數(shù)據(jù)。2014/073)波特率(bps)例:數(shù)據(jù)傳送速率為120字符/秒,每幀包括10位數(shù)據(jù),則波特率為:120×10=1200位/秒=1200bps

常用的異步通信的波特率的值為:150、300、600、1200、2400、4800、9600、14400、28800。衡量數(shù)據(jù)在線路上傳輸速率的單位。指每秒鐘傳輸?shù)亩M制位數(shù),以位/秒(b/s)表示。也稱為數(shù)據(jù)位率(b/s)。2014/07§4.6.2

8251A內(nèi)部結構及引腳功能可用于同步和異步傳送。同步傳送:58bit/字符,內(nèi)部或外部同步,可自動插入同步字符。異步傳送:58bit/字符,時鐘頻率為通信波特率的1,16或64倍。可產(chǎn)生終止字符(1,1.5或2位停止位),可檢查假啟動位,自動檢測和處理終止字符。波特率:DC19.2Kb/s(異步),DC64Kb/s(同步)全雙工,雙緩沖發(fā)送和接收器。具有奇偶、溢出和幀錯誤等檢測電路。與Intel8080,8085,8086及8088CPU兼容。2014/07數(shù)據(jù)總線緩沖器D7~D8串→并轉換接收緩沖器RXDRESETCLK讀/寫控制邏輯電路C/DRDWRCS調(diào)制/解調(diào)控制電路DSRDTRCTSRTS內(nèi)部總線發(fā)送緩沖器并→串轉換TXD接收控制電路RXRDYRXCSYNDET發(fā)送控制電路TXCTXEMPTXRDY2014/071、與外設接口一部分是發(fā)送數(shù)據(jù),另一部分是接收數(shù)據(jù)部分,都包含緩沖器和控制電路,脈沖控制下將數(shù)據(jù)進行串/并轉換。2、調(diào)制/解調(diào)控制電路用來簡化8251A和調(diào)制解調(diào)器的連接,提供了一組通用的控制信號,使得8251A可以直接和調(diào)制解調(diào)器連接。2014/071)數(shù)據(jù)總線緩沖器:三態(tài)雙向8位緩沖器,它使8251A與系統(tǒng)數(shù)據(jù)總線相連接。3、與CPU接口2)讀/寫控制邏輯電路:用來配合數(shù)據(jù)總線緩沖器工作。寫信號WR:有效時將來自CPU的數(shù)據(jù)和控制字寫入8251A;讀信號RD:有效時將數(shù)據(jù)或狀態(tài)字從8251A送往數(shù)據(jù)總線;C/D信號:將此信號和讀/寫信號合起來通知8251A,當前讀/寫的是數(shù)據(jù)還是控制字、狀態(tài)字;時鐘信號CLK:完成8251A的內(nèi)部定時;復位信號RESET:使8251A處于空閑狀態(tài)。2014/07

操作說明

0

0

1

0CPU從8251A讀數(shù)據(jù)

0

1

1

0CPU從8251A讀狀態(tài)字

0

0

0

1CPU寫數(shù)據(jù)到8251A

0

1

0

1CPU寫命令到8251A

1

X

X

XUSART總線浮空(無操作)2014/07譯碼D7~D0M/IOCSABA0C/DRDRDWRWRTXRDYTXERXRDYSYNDETRESET80868251A外設(MODEM)DTRDSRRXDCTSRTSTXDCLKTXC計數(shù)器/定時器RXC2014/074、MODEM控制信號

DTR—DTE準備好(輸出,低電平有效),CPU通過命令可使之有效,通知外部設備,CPU已準備就緒。DSR—DCE準備好(輸入,低電平有效),表示當前外設已經(jīng)準備好。CPU通過讀取狀態(tài)寄存器的D7位來實現(xiàn)對信號的檢測。RTS—請求發(fā)送信號(輸出,低電平有效),CPU可以通過編程命令使變其為有效電平,通知DCE,CPU已準備發(fā)送數(shù)據(jù)。CTS—清除請求發(fā)送(輸入,低電平有效),是對RTS的響應信號,當其有效時8251A才能執(zhí)行發(fā)送數(shù)據(jù)操作。2014/075、發(fā)送器有關信號TXD—發(fā)送數(shù)據(jù)。CPU送往8251A的并行數(shù)據(jù)被轉變?yōu)榇袛?shù)據(jù)后,通過TXD送往外TXRDY—發(fā)送器準備好信號,高電平有效。有效時表示發(fā)送緩沖器空,CPU可以向芯片送入新數(shù)據(jù)。若為中斷方式,則作為中斷請求信號;若為查詢方式,可作聯(lián)絡信號。TXE—發(fā)送器空信號,高電平有效,用來表示此時8251A發(fā)送器中沒有要發(fā)送的字符;當CPU送入一個字符時被復位。TxC—發(fā)送時鐘,控制8251A發(fā)送字符的速度。異步時:為數(shù)據(jù)速率的1、16或64倍;同步時與數(shù)據(jù)速率相同。2014/074.接收器有關信號RXD—接收外設送來的串行數(shù)據(jù),數(shù)據(jù)進入8251A后被轉變?yōu)椴⑿袛?shù)據(jù)送到數(shù)據(jù)總線緩沖器。RXRDY—接收器準備好信號,高電平有效,表示已從外設接收到一個字符,正等待CPU取走。中斷方式時,作為中斷請求信號;查詢方式時,用來作為聯(lián)絡信號。SYNDET—同步和終止信號。工作在同步方式時用做同步檢測端(檢測到同步字符,則SYNDET便變?yōu)楦唠娖剑?;異步時用做終止檢測輸出。RxC—接收時鐘,控制8251A接收字符的速度。時鐘速率規(guī)定與TxC相同,一般將TxC和RxC連在一起,用同一時鐘源。2014/078251A編程命令:方式控制字:指定通信方式、數(shù)據(jù)格式。命令控制字:指定某種操作(如發(fā)送、接收)或處于某種狀態(tài)(如DTR),以便發(fā)送/接收數(shù)據(jù)。狀態(tài)字:確定8251當前內(nèi)部狀態(tài)?!?.6.3

8251A控制字及工作方式1、方式控制字確定8251A的工作方式、校驗方式、波特率和數(shù)據(jù)位數(shù)等。2014/07D7D6D5D4D3D2D1D0工作方式及波特率選擇00:同步方式01:異步方式,波特率系數(shù)=110:異步方式,波特率系數(shù)=1611:異步方式,波特率系數(shù)=6400:5位01:6位10:7位11:8位X0:無奇偶校驗位01:奇校驗11:偶校驗設定停止位的位數(shù)01:1位停止位10:1.5位停止位11:2位停止位設定同步方式00:內(nèi)同步,2個同步字符10:內(nèi)同步,1個同步字符X1:外同步若為異步方式(D1,D0≠00)若為同步方式(D1,D0=00)奇偶校驗方式設定異步方式字符位數(shù)選擇2014/07TxEN(TransmitEnable):發(fā)送允許,D0=1,允許進行并/串轉換并發(fā)送;D0=0禁止發(fā)送。DTR(DataTerminalReady):數(shù)據(jù)終端就緒,D1=1,置/DTR引腳有效0電平;D1=0,置/DTR無效。RxE(ReceiveEnable):接收允許,D2=1允許CPU讀數(shù)據(jù)輸入緩沖器的內(nèi)容;D2=0,禁止接收。EHIRRTSERSBRKRXEDTRTXEND7D6D5D4D3D2D1D02、命令控制字2014/07SBRK(SendBreakcharacter):發(fā)中止字符,D3=1,迫使TxD引腳發(fā)空號;D3=0,正常操作.ER(ErrorReset):錯誤標志復位,D4=1,使錯誤標志PE、OE、FE復位;RTS(RequestToSend):請求發(fā)送,D5=1,迫使/RTS引腳為有效電平。IR(InternalReset):內(nèi)部復位,D6=1,重新開始設置模式寄存器,即回到初始化編程階段;D6=0正常進行。EH(EnterHuntmode):進入搜索同步字符模式,D7=1,搜索同步字符。2014/07DSRSYNDETFEOEPETXERXRDYTXRDYD7D6D5D4D3D2D1D03、狀態(tài)字PE(ParityError):奇/偶校驗錯。D3=1,有奇/偶校驗錯;D3=0無奇/偶校驗錯。OE(OverrunError):數(shù)據(jù)覆蓋錯,接收移位寄存器將數(shù)據(jù)輸入緩沖器中尚未被CPU讀取的數(shù)據(jù)覆蓋而產(chǎn)生的錯誤,D4=1,產(chǎn)生數(shù)據(jù)覆蓋。FE(FramingError):幀出錯,檢測不到幀停止位的錯誤,僅用于異步幀方式,D5=1時產(chǎn)生幀錯誤。SYNDET:內(nèi)同步字符檢測位,D6=1:檢測到同步字符;D6=0:未檢測到同步字符。DSR:數(shù)據(jù)設備準備好。由DSR引腳信號設置。D7=1,DSR引腳信號有效低電平。DSR狀態(tài)位與/DSR引腳信號狀態(tài)相反。2014/07§4.6.4

8251A的初始化是同步方式?輸出通信方式選擇命令字兩個同步字符?復位?傳送完?輸出工作命令字傳送數(shù)據(jù)輸出第一個同步字符是否否否復位操作是輸出第二個同步字符是否是2014/074.7可編程DMA控制器8237ADMA控制器的基本功能:

(1)可編程設定DMA的傳輸模式、所訪問的內(nèi)存地址及其字節(jié)數(shù)。(2)對I/O設備的DMA請求可編程地進行屏蔽或允許,當有多個I/O設備同時請求時,還要進行優(yōu)先級排隊。(3)向CPU轉達DMA請求,提出總線請求信號。(4)接收CPU的總線響應信號,并接管總線控制權。(5)在傳送過程中進行存儲器的地址修改和字節(jié)計數(shù)。在傳送完要求的字節(jié)數(shù)后,發(fā)出結束信號,撤銷總線請求,于是CPU收回總線的控制權,繼續(xù)執(zhí)行指令。2014/07§4.7.1

8237A的內(nèi)部結構及引腳功能2014/071、與外設接口(1)8237A中有4個獨立的DMA通道,但需要與一片8位地址鎖存器(如8282)配合使用。(2)每一個通道的DMA請求都可以分別被允許和禁止。(3)每一個通道的DMA請求有不同的優(yōu)先權,優(yōu)先權可以是固定的,也可以是旋轉的。

DMA請求線DREQ0~DREQ3,由請求傳送數(shù)據(jù)的外部設備輸入,高電平有效;~DMA認可線,由8237A取得總線控制權后向發(fā)出請求的外部設備輸出,低電平有效。實際上,它是DREQ的回答信號。2014/072、與CPU的接口1)數(shù)據(jù)總線緩沖存儲器一個雙向三態(tài)8位緩沖存儲器,是與系統(tǒng)數(shù)據(jù)總線的接口。當8237A處于從屬狀態(tài)時,CPU通過這個緩沖存儲器對8237A進行讀/寫操作。當8237A處于主控狀態(tài)時,在DMA周期內(nèi),8237A將所選通道的地址寄存器的高8位地址碼(A15~A8)經(jīng)過這個緩沖存儲器鎖存到8282中,然后該緩沖存儲器將處于浮空狀態(tài)。2014/07DB0~DB7:數(shù)據(jù)線。用于8237A與微處理器進行數(shù)據(jù)交換。A0~A3:地址線。用以選擇芯片內(nèi)部寄存器。CS*:片選。低有效時,微處理器與8237A通過數(shù)據(jù)線通信,主要完成對8237A的編程。IOR*:I/O讀。讀取8237A內(nèi)部寄存器。IOW*:I/O寫。寫入8237A內(nèi)部寄存器。CLK:時鐘。控制芯片內(nèi)部操作和數(shù)據(jù)傳輸。RESET:復位。使8237A處于初始狀態(tài)。2014/072)讀/寫邏輯部件

8237A可處于兩種不同的工作狀態(tài),在8237A未取得總線控制權以前,CPU處于主控狀態(tài),而8237A處于從屬狀態(tài);一旦8237A取得總線控制權后,8237A便上升為主控狀態(tài),完全在8237A控制下完成存儲器和外設之間的數(shù)據(jù)傳送功能,CPU不再參與數(shù)據(jù)傳送的操作。當8237A處于從屬狀態(tài)時,用來接收由CPU輸入的讀/寫控制信號和端口地址等信息;當8237A處于主控狀態(tài)時,通過它發(fā)出讀/寫控制信號和地址信息。2014/07DB0~DB7:數(shù)據(jù)線。用于8237A與微處理器進行數(shù)據(jù)交換。A0~A3:地址線。用以選擇芯片內(nèi)部寄存器。CS*:片選。低有效時,微處理器與8237A通過數(shù)據(jù)線通信,主要完成對8237A的編程。IOR*:I/O讀。讀取8237A內(nèi)部寄存器。IOW*:I/O寫。寫入8237A內(nèi)部寄存器。CLK:時鐘??刂菩酒瑑?nèi)部操作和數(shù)據(jù)傳輸。RESET:復位。使8237A處于初始狀態(tài)。2014/073)控制邏輯部件

控制邏輯部件主要用來向CPU發(fā)出總線請求,得到CPU認可后,8237A進入主控狀態(tài),并發(fā)出各種控制信號。A4~A7:地址線。輸出高4位存儲器地址。MEMR*:存儲器讀。有效將數(shù)據(jù)從存儲器讀出MEMW*:存儲器寫。有效將數(shù)據(jù)寫入存儲器2014/07HRQ:總線請求。8237A輸出有效的HRQ高電平,向CPU申請使用系統(tǒng)總線。HLDA:總線響應。8237A接受來自CPU的響應信號HLDA,取得了總線的控制權。ADSTB:地址選通。DMA傳送開始時,輸出高有效,把在DB0~DB7上輸出的高8位地址鎖存在外部鎖存器中。AEN:地址允許。輸出高有效,將鎖存的高8位地址送入系統(tǒng)總線,與芯片此時輸出的低8位地址組成16位存儲器地址。READY:準備好。DMA傳送的S3下降沿檢測到為低時,插入等待狀態(tài)Sw,直到READY為高才進入第4個時鐘周期S4。EOP*:過程結束。DMA傳送過程結束,輸出一個低有效脈沖。外部輸入低脈沖信號,則終結DMA傳送。2014/07

§4.7.2

8237A工作時序8237A采樣到外設有DMA請求,就脫離空閑周期進入有效周期。8237A作為系統(tǒng)的主控芯片,控制DMA傳送操作。DMA傳送借用系統(tǒng)總線完成,其控制信號以及工作時序類似CPU總線周期。進入DMA傳送時序2014/07空閑狀態(tài)SI準備狀態(tài)S0工作狀態(tài)S1、S2、S3、Sw、S4S1狀態(tài)——輸出16位存儲器地址AEN輸出高電平,表示DMA傳送S2狀態(tài)——輸出DMA響應信號和控制信號DMA讀:MEMR*和IOW*有效DMA寫:IOR*和MEMW*有效S3和Sw狀態(tài)——檢測數(shù)據(jù)傳送是否能夠完成,決定是否插入等待狀態(tài)SwS4狀態(tài)——完成數(shù)據(jù)傳送2014/071、單字節(jié)傳送方式2、數(shù)據(jù)塊傳送方式3、請求傳送方式4、級聯(lián)傳送方式§4.7.3

8237A工作方式2014/07§4.7.4

8237A的寄存器組

4個DMA通道結構完全相同。一個基地址寄存器(16位)基字節(jié)計數(shù)器(16位)當前地址寄存器(16位)當前字節(jié)計數(shù)器(16位)工作方式寄存器(8位)2014/071、DMA通道0~通道3

16位寄存器,用來保存DMA傳送當前數(shù)據(jù)的地址,每次傳送后,這個寄存器的值自動加1或減1。該寄存器由CPU來寫入或讀出。a.當前地址寄存器b.當前字節(jié)計數(shù)器

16位的寄存器,其低14位(C13~C0)用來保存DMA傳送的剩余字節(jié)數(shù),每次傳送后,這個計數(shù)器的值減1

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論