




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第八章接口技術(shù)2第八章接口技術(shù)8.1計(jì)(數(shù))(定)時(shí)器8.2并行傳輸及其接口8.3DMA傳輸和DMA控制器8.4串行傳輸及串行接口8.5模擬接口I/O接口可分為計(jì)時(shí)電路(計(jì)數(shù)器或定時(shí)器)、并行接口、串行接口、DMA控制器和模擬接口等。
3主要用于:周期時(shí)鐘產(chǎn)生串行傳輸波特率發(fā)生器,方波發(fā)生器,高速脈沖輸出(HSO)各種限時(shí)器(單穩(wěn)態(tài)電路、軟硬件看門狗電路)各種時(shí)間間隔,頻率和相位的測(cè)量;生成各種占空比的脈沖寬度調(diào)制(PWM)輸出。
8.1計(jì)數(shù)定時(shí)器48.1.1計(jì)時(shí)器的一般工作原理計(jì)數(shù)定時(shí)器實(shí)際上是一個(gè)計(jì)數(shù)器電路,其時(shí)鐘由一標(biāo)準(zhǔn)時(shí)鐘發(fā)生器提供,由它作為計(jì)時(shí)標(biāo)準(zhǔn)。所以,計(jì)時(shí)器可提供高精度的時(shí)間測(cè)量和作為高精度限時(shí)器。5圖8.1計(jì)時(shí)器的一般構(gòu)成
外部CLK定時(shí)計(jì)數(shù)68.1.2計(jì)時(shí)器的啟動(dòng)(觸發(fā))方式計(jì)數(shù)器的觸發(fā)方式是指“從什么時(shí)間開(kāi)始計(jì)時(shí)”的決定方式。定時(shí)器有內(nèi)(軟件)觸發(fā)和外(硬件)觸發(fā)兩種觸發(fā)方式。GATE門控信號(hào):使能端78.1.3計(jì)時(shí)器在計(jì)算機(jī)中的應(yīng)用(1)用作硬件延時(shí)器,可節(jié)約CPU時(shí)間。(2)用作周期中斷觸發(fā)源,可進(jìn)行刷新、時(shí)鐘、間隔控制等。(3)用作波特率發(fā)生器,方波發(fā)生器等固定波形的生成。(4)作可重復(fù)觸發(fā)的單穩(wěn)態(tài)電路
8
圖8.2限時(shí)器的原理波形
τ98.1.4計(jì)時(shí)器功能的改進(jìn):輸人捕獲和輸出比較
對(duì)計(jì)時(shí)器的改進(jìn),使它能更精確地測(cè)量事件發(fā)生的時(shí)間,這就是輸入捕獲和輸出比較功能。
101.輸入捕獲功能其工作原理是,當(dāng)計(jì)數(shù)器在某標(biāo)準(zhǔn)時(shí)鐘信號(hào)驅(qū)動(dòng)下不斷計(jì)數(shù)時(shí),若外部來(lái)了某信號(hào)的一個(gè)有效沿(上升或下降沿),就產(chǎn)生一個(gè)捕獲信號(hào),該信號(hào)把計(jì)數(shù)器的當(dāng)前值裝入捕獲寄存器,同時(shí)產(chǎn)生中斷信號(hào)。11
圖8.3計(jì)數(shù)器的輸入捕獲原理
122.比較輸出圖8.4比較器輸出原理138.1.5PWM輸出功能與直流馬達(dá)轉(zhuǎn)速控制
若把輸出比較功能作些改進(jìn),它可以變成另一種很有用的電路,即脈沖寬度調(diào)制輸出(PWM)。
14圖8.5PWM的工作原理158.1.6定時(shí)計(jì)數(shù)器芯片舉例定時(shí)與計(jì)數(shù)本質(zhì)上是一致的:定時(shí)的信號(hào)具有周期性,計(jì)數(shù)的信號(hào)具有隨機(jī)性。定時(shí):提供的時(shí)間基準(zhǔn)??煞譃閮?nèi)部、外部定時(shí)。計(jì)數(shù):
對(duì)脈沖的個(gè)數(shù)進(jìn)行累計(jì)。實(shí)現(xiàn)定時(shí)控制可分為三種方法:16(2)硬件定時(shí)采用中小規(guī)模IC構(gòu)成。
如555定時(shí)IC。不增加CPU負(fù)擔(dān),成本低,定時(shí)值不可改變。不能滿足精確度和靈活性的要求。(3)可編程硬件定時(shí)
8253:最高工作頻率2.6
MHz8254:最高工作頻率
10MHz
(1)軟件定時(shí)
通過(guò)軟件指令周期方法定時(shí),如執(zhí)行循環(huán)程序。增加CPU負(fù)擔(dān),通用性差,一般用于短延時(shí)。采用可編程定時(shí)/計(jì)數(shù)器完成,由編程軟件改變計(jì)數(shù)值。171.8253/8254芯片的對(duì)外引腳和內(nèi)部結(jié)構(gòu)圖8.6(a)8353/8254引腳18
圖8.6(b)8353/8254內(nèi)部結(jié)構(gòu)
CPU接口:
譯碼、操作外設(shè)接口:
時(shí)鐘信號(hào)、控制、輸出內(nèi)部邏輯三個(gè)計(jì)數(shù)器各自獨(dú)立19圖8.6(c)8353/8254每個(gè)計(jì)數(shù)通道邏輯框圖16位當(dāng)前計(jì)數(shù)值鎖存器OL16位減1計(jì)數(shù)器CE16位計(jì)數(shù)初值寄存器CROUT(減1至0時(shí))MSBLSB鎖存后讀出當(dāng)前值MSBLSB裝入/讀出初值&CLKGATE最大計(jì)數(shù)值為64K時(shí)鐘輸入門控信號(hào)計(jì)數(shù)器輸出DBDB(計(jì)數(shù)初值與CLK時(shí)鐘周期的積)CR:16位寫入[兩次]、清零CE:16位寫入、計(jì)數(shù)、輸出OL:16位先鎖存再讀出20(1)數(shù)據(jù)總線緩沖器:CPU向其輸出指令將控制字和計(jì)數(shù)值寫入內(nèi)部寄存器,亦可用輸入指令讀取其內(nèi)部的數(shù)據(jù)。(2)讀/寫邏輯:接收CPU的控制信號(hào)、片選信號(hào)及端口選擇或命令選擇信號(hào)。由讀寫邏輯控制各個(gè)操作,見(jiàn)下表所示。
WR:寫控制輸入信號(hào)
RD:讀控制輸入信號(hào)
CS:片選輸入信號(hào)
A1、A0:通道選擇信號(hào)21(3)控制寄存器:存放CPU送來(lái)的控制字,確定定時(shí)/計(jì)數(shù)
器的工作方式。(4)三個(gè)計(jì)數(shù)器:計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2。均為獨(dú)立的16位減法計(jì)數(shù)器,由控制字確定二、十進(jìn)制計(jì)數(shù),每個(gè)計(jì)數(shù)器有三個(gè)引腳:
CLK:時(shí)鐘輸入信號(hào)引腳,由脈沖/方波作基準(zhǔn)信號(hào)。
GATE:門控輸入信號(hào)引腳,低電平時(shí)關(guān)閉停止計(jì)數(shù),高電平允許減法計(jì)數(shù)。
OUT:計(jì)數(shù)器輸出信號(hào)。當(dāng)計(jì)數(shù)或定時(shí)結(jié)束時(shí),此引腳輸出一個(gè)控制信號(hào)。計(jì)數(shù)初值:N=fCLKi/fOUTi,在不同工作方式及定時(shí)/計(jì)數(shù)時(shí)的應(yīng)用不同。操作特征位時(shí)序D7D601000計(jì)數(shù)初值寫入0#計(jì)數(shù)器**無(wú)01001計(jì)數(shù)初值寫入1#計(jì)數(shù)器**無(wú)01010計(jì)數(shù)初值寫入2#計(jì)數(shù)器**無(wú)01011向控制字REG寫控制字00~10無(wú)寫“讀計(jì)數(shù)值/狀態(tài)”命令11無(wú)00100讀0#計(jì)數(shù)器當(dāng)前計(jì)數(shù)值無(wú)前一命令A(yù)1A0=11時(shí),D7D6為11且D5為0或D7D6為非11且D5D4為00時(shí),讀取的是當(dāng)前計(jì)數(shù)值;D7D6為11且D4為0讀取的是狀態(tài)。讀0#計(jì)數(shù)器狀態(tài)無(wú)00101讀1#計(jì)數(shù)器當(dāng)前計(jì)數(shù)值無(wú)讀1#計(jì)數(shù)器狀態(tài)無(wú)00110讀2#計(jì)數(shù)器當(dāng)前計(jì)數(shù)值無(wú)讀2#計(jì)數(shù)器狀態(tài)無(wú)00111無(wú)操作1****禁止訪問(wèn)011**無(wú)操作通道地址分配及操作CSWRRDA1A0★232.地址安排片內(nèi)地址(A1A0)操作內(nèi)容片內(nèi)地址(A1A0)操作內(nèi)容00通道0時(shí)間常數(shù)寫通道0時(shí)間狀態(tài)讀10通道2時(shí)間常數(shù)寫通道2時(shí)間狀態(tài)讀01通道1時(shí)間常數(shù)寫通道1時(shí)間狀態(tài)讀11寫命令字243.工作方式控制字(CW)8253/8254有六種不同用途的工作方式:方式0~方式5其工作方式擴(kuò)展字見(jiàn)P322圖8.7:D7D6D5D4D3D2D1D0計(jì)數(shù)器選擇00CH001CH110CH211無(wú)用讀/寫控制00鎖定當(dāng)前計(jì)數(shù)值01只讀寫計(jì)數(shù)器低字節(jié)10只讀寫計(jì)數(shù)器高字節(jié)11先讀寫計(jì)數(shù)器低字節(jié)后讀寫計(jì)數(shù)器高字節(jié)工作方式000方式0001方式1X10方式2X11方式3100方式4101方式5計(jì)數(shù)器制1BCD制0二進(jìn)制25(1)方式0:中斷信號(hào)發(fā)生器(設(shè)控制字CW=10H低字節(jié)計(jì)數(shù)初值LSB)GATE為高電平時(shí)允許計(jì)數(shù),下降暫停、低禁止、上升繼續(xù)計(jì)數(shù);寫入方式0控制字后,OUT信號(hào)變?yōu)榈碗娖?;WR有效(0電平)后的下一脈沖下降沿開(kāi)始減1計(jì)數(shù);當(dāng)初值減至0時(shí),OUT信號(hào)變?yōu)楦唠娖?。特點(diǎn):一次計(jì)數(shù);常用來(lái)產(chǎn)生計(jì)數(shù)結(jié)束時(shí)中斷。4.8253/8254的工作方式說(shuō)明3)4)2)26(2)方式1:?jiǎn)畏€(wěn)態(tài)負(fù)脈沖信號(hào)發(fā)生器(設(shè)控制字CW=12H)
(又稱:硬件可重觸發(fā)單穩(wěn))
特點(diǎn):一次計(jì)數(shù);
GATE上升重新計(jì)數(shù)、高與下降和低不影響計(jì)數(shù);
WR#寫[重寫]在下次GATE從0到1的跳變時(shí)有效;
OUT在寫入控制字后變高,開(kāi)始計(jì)數(shù)時(shí)變低、計(jì)數(shù)值為0時(shí)變高(N個(gè)時(shí)鐘周期的低)。27(3)方式2—頻率發(fā)生器(設(shè)控制字CW=14H
)
特點(diǎn):多次計(jì)數(shù);
GATE上升重新計(jì)數(shù)、高允許、下降停止、低禁止計(jì)數(shù);
WR#寫[重寫]在下次計(jì)數(shù)時(shí)有效;
OUT在計(jì)數(shù)值為1時(shí)輸出寬度為1個(gè)CLK的負(fù)脈沖(周期為N個(gè)時(shí)鐘周期,頻率為1/N的時(shí)鐘頻率,實(shí)際上是對(duì)CLK的N分頻)。28(4)方式3—方波發(fā)生器(設(shè)控制字CW=16H)
特點(diǎn):多次計(jì)數(shù);
GATE上升重新計(jì)數(shù)、高允許、下降停止、低禁止計(jì)數(shù);
WR#寫[重寫]在下次計(jì)數(shù)時(shí)有效;
OUT在寫入控制字后變高,計(jì)數(shù)開(kāi)始后,采用每脈沖計(jì)數(shù)減2:
當(dāng)計(jì)數(shù)初值為偶數(shù)n時(shí),計(jì)數(shù)到0時(shí)反向。脈沖寬度T×N/2,方波周期為
T×N。
當(dāng)計(jì)數(shù)初值為奇數(shù)n時(shí),OUT變高的第一個(gè)CLK減1后裝入CE,其余每個(gè)脈沖
計(jì)數(shù)減2。OUT正脈沖時(shí),計(jì)數(shù)到0的下一個(gè)CLK時(shí)OUT反向OUT正脈沖寬度為
T×(N+1)/2;OUT負(fù)脈沖時(shí)在計(jì)數(shù)到0時(shí)反向。負(fù)脈沖寬度為T×(N-1)/2,方波周期仍然是T×N。29
特點(diǎn):一次計(jì)數(shù);
GATE上升重新計(jì)數(shù)、高允許、下降停止、低禁止計(jì)數(shù);
WR#寫[重寫]會(huì)立即重新計(jì)數(shù)(軟件觸發(fā));
OUT在寫入控制字及計(jì)數(shù)當(dāng)中為高電平,計(jì)數(shù)值為0時(shí)輸出1個(gè)CLK的負(fù)脈沖。(5)方式4—軟件觸發(fā)的選通信號(hào)發(fā)生器(CW=18H)30(6)方式5硬件觸發(fā)的選通信號(hào)發(fā)生器(CW=1AH)
特點(diǎn):一次計(jì)數(shù);
GATE上升重新計(jì)數(shù)、高與下降和低不影響計(jì)數(shù);
WR#寫[重寫]在下次GATE從0到1的跳變時(shí)有效;
OUT在計(jì)數(shù)值為0時(shí)輸出1個(gè)CLK的負(fù)脈沖。
方式0方式1方式2方式3方式4方式5OUT輸出狀態(tài)寫入控制字后變0,計(jì)數(shù)結(jié)束變1,并維持至重寫控制字或計(jì)數(shù)初值寫入控制字后變1,GATE上升沿觸發(fā)變0,開(kāi)始計(jì)數(shù),計(jì)數(shù)結(jié)束變1寫入控制字后變1,計(jì)數(shù)到1變0,維持一個(gè)Tclk變1寫入控制字后變1,裝入初值且GATE=1則OUT變1,計(jì)數(shù)到變0,重裝初值繼續(xù)計(jì)數(shù),計(jì)數(shù)到則反向?qū)懭肟刂谱趾笞?,計(jì)數(shù)結(jié)束變0,維持一個(gè)Tclk變1寫入控制字后變1,GATE上升沿觸發(fā)開(kāi)始計(jì)數(shù),計(jì)數(shù)結(jié)束輸出一個(gè)CLK的負(fù)脈沖初值自動(dòng)重裝無(wú)無(wú)計(jì)數(shù)到0重裝根據(jù)初值奇偶分別重裝;無(wú)無(wú)計(jì)數(shù)過(guò)程中改變初值立即有效GATE觸發(fā)后有效計(jì)數(shù)到1或GATE觸發(fā)后有效計(jì)數(shù)結(jié)束或GATE觸發(fā)后有效立即有效GATE觸發(fā)后有效GATE0禁止計(jì)數(shù)無(wú)影響禁止計(jì)數(shù)禁止計(jì)數(shù)禁止計(jì)數(shù)無(wú)影響下降沿暫停計(jì)數(shù)無(wú)影響停止計(jì)數(shù)停止計(jì)數(shù)停止計(jì)數(shù)無(wú)影響上升沿繼續(xù)計(jì)數(shù)從初值開(kāi)始重新計(jì)數(shù)從初值開(kāi)始重新計(jì)數(shù)從初值開(kāi)始重新計(jì)數(shù)從初值開(kāi)始重新計(jì)數(shù)從初值開(kāi)始重新計(jì)數(shù)1允許計(jì)數(shù)無(wú)影響允許計(jì)數(shù)允許計(jì)數(shù)允許計(jì)數(shù)無(wú)影響32335.8253/8254應(yīng)用實(shí)例
特征位:D7D6=00~10、D5D4=01~11:
D7D6選擇計(jì)數(shù)器:00-T/C0;01-T/C1;10-T/C2
D5D4選擇讀/寫方式:01-只寫低字節(jié);10-只寫高字節(jié);11-先寫低字節(jié)再寫高字節(jié)(16位)
D3D2D1選擇工作方式:000~101六種工作方式。
D0選擇計(jì)數(shù)進(jìn)制:0-二進(jìn)制方式(0-FFFFH);1-BCD碼方式(0-9999)。
例:MOVAL,01110100B;T/C1,先低后高字節(jié),方式2,二進(jìn)制方式
OUT43H,AL;寫命令字,后面緊跟寫字[先低后高]操作指令MOVAX,XXXXH;見(jiàn)后面例子8253/8254初始化編程(1)一般原則寫入控制字:根據(jù)選定計(jì)數(shù)器、操作類型、方式選擇、計(jì)數(shù)制式,確定控制字。寫入對(duì)應(yīng)通道的計(jì)數(shù)初值。
(2)計(jì)數(shù)初值的計(jì)算
n=fCLKi/fOUTi
(a)不同通道的計(jì)數(shù)初值寫到不同地址中:
A1A0定時(shí)/計(jì)數(shù)器
00T/C001T/C110T/C2(b)每次寫入一個(gè)字節(jié);
(c)根據(jù)控制字定義,決定高、低字節(jié)寫入方法。
(d)初始值的范圍是:
二進(jìn)制為65536(0000H)、65535(FFFFH)…
~
1(0001H)。十進(jìn)制為10000(0000H)、9999(9999H)…
~1(0001H)。
對(duì)于小于256之?dāng)?shù),用低字節(jié)計(jì)數(shù);對(duì)于大于等于256之?dāng)?shù),分別用高、低字節(jié)計(jì)數(shù)。例:
T/C初始化
(1)寫工作方式控制字
(2)設(shè)置計(jì)數(shù)初值
MOVAL,01110101B;
T/C1,先低后高字節(jié),方式2,BCD
OUT
43H,AL;A1=1,A0=1
MOV
AX,2000H;
計(jì)數(shù)初值為2000H
OUT
41H,AL;A1=0,A0=1
MOVAL,AH
OUT
41H,AL;A1=0,A0=1
MOVAL,00010110B;
T/C0,僅低字節(jié),方式3,二進(jìn)制
OUT
43H,AL
OUT40H,50H;
A1=0,A0=0,計(jì)數(shù)初值為50H(80)
注意:(1)每個(gè)使用的T/C均要初始化;
(2)計(jì)數(shù)初值的設(shè)置與T/C的CLK密切相關(guān);
(3)計(jì)數(shù)初值的設(shè)置方法由控制字決定。36P324例:使用Intel8253:通道0用于外部事件計(jì)數(shù),每計(jì)滿100次通過(guò)中斷控制器8259A向CPU發(fā)出中斷請(qǐng)求;
通道1產(chǎn)生頻率為1KHz的方波,作為串行接口的時(shí)鐘信號(hào);
通道2產(chǎn)生標(biāo)準(zhǔn)定時(shí)時(shí)鐘,每秒通過(guò)8259A向CPU發(fā)出一次中斷請(qǐng)求信號(hào)。0E0H~0E3H388253的實(shí)驗(yàn)講解
見(jiàn)實(shí)驗(yàn)三8253定時(shí)器計(jì)數(shù)器.DOC398.2并行傳輸及其接口
并行傳輸有以下特點(diǎn):接口設(shè)計(jì)簡(jiǎn)單
傳輸距離短
并行接口分為簡(jiǎn)單接口(非選通接口)和選通接口兩種。
408.2.1簡(jiǎn)單并行口
1.簡(jiǎn)單輸出口
P327圖8.92.簡(jiǎn)單輸入口P327圖8.103.通用簡(jiǎn)單并行口
P327圖8.11(字節(jié)I/O口)4.位(控)I/O口418.2.2選通并行口及其聯(lián)絡(luò)1.異步互鎖聯(lián)絡(luò)P328422.脈沖聯(lián)絡(luò)P327圖8.13脈沖聯(lián)絡(luò)波形
433.混合聯(lián)絡(luò)
脈沖與電平信號(hào)混用,非互鎖聯(lián)絡(luò)。4.NRZ(不歸零)聯(lián)絡(luò)
減少聯(lián)絡(luò)信號(hào)的跳變次數(shù),以減少對(duì)數(shù)據(jù)
線上信號(hào)的干擾。
見(jiàn)P327圖8.1444圖8.15選通輸出的聯(lián)絡(luò)邏輯
8.2.3并行接口設(shè)計(jì)舉例G45圖8.16輸出聯(lián)絡(luò)波形(輸出)46圖8.17選通輸入的聯(lián)絡(luò)邏輯
RxBufferEmpty——DateAVailable47
圖8.18輸入聯(lián)絡(luò)波形
DAV488.2.4通用并行接口芯片舉例8255內(nèi)部主要部件8255具有2個(gè)獨(dú)立的8位I/O口(A組和B組,可作為選通口使用)和2個(gè)獨(dú)立的4位I/O(C組上半部和C組下半部,不能作為選通口),提供TTL兼容的并行接口。作為輸入時(shí)提供三態(tài)緩沖器功能,作為輸出時(shí)提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。(1)數(shù)據(jù)端口端口A:A口屬于A組,受A組控制電路控制,輸入輸出均具有八位數(shù)據(jù)緩沖和數(shù)據(jù)鎖存的功能,可設(shè)置為雙向的通信口。
端口B:B口屬于B組,受B組控制電路控制,僅有八位數(shù)據(jù)數(shù)據(jù)輸出鎖存及緩沖的功能,輸入則無(wú)鎖存功能。端口C:C口既可作為一個(gè)八位的數(shù)據(jù)端口作為輸入、輸出數(shù)據(jù)端口,又可分為兩個(gè)獨(dú)立的四位端口使用,但輸出有鎖存輸入無(wú)鎖存。作為兩個(gè)四位口(高、低半口)使用時(shí),分別受A組、B組控制器控制,C口可進(jìn)行位操作。
(2)A組、B組控制電路由設(shè)定8255的方式字決定8255的工作方式。8255的控制寄存器接收CPU輸出的方式字,可決定A、B兩組的工作方式,亦可對(duì)C端口進(jìn)行位操作(復(fù)位、置位),A組控制A口、C上(高)半口;B組控制B口、C下(低)半口。1、接口信號(hào)和內(nèi)部結(jié)構(gòu)外設(shè)接口信號(hào)引腳PA7~PA0:A口的8條引線PB7~PB0:B口的8條引線PC7~PC0:C口的8條引線數(shù)據(jù)總線信號(hào)引腳D7~D0:8位數(shù)據(jù)引線控制信號(hào)引腳RD讀、WR寫、CS片選引線RESET復(fù)位、A1、A0端口選擇引線電源引腳Vcc(+5V)、GND引線518255內(nèi)部結(jié)構(gòu)522、端口地址安排片內(nèi)地址(A1A0)操作內(nèi)容片內(nèi)地址(A1A0)操作內(nèi)容00寫口A數(shù)據(jù)(寫操作)讀口A數(shù)據(jù)(讀操作)10寫口C數(shù)據(jù)(寫操作)讀口C數(shù)據(jù)(讀操作)01寫口B數(shù)據(jù)(寫操作)讀口B數(shù)據(jù)(讀操作)11寫命令字讀操作無(wú)效注:口C讀出時(shí),某些位是被借用的口線的狀態(tài)寫口C時(shí),某些被借用位是控制位(如INTE中斷允許)
8255的端口與操作選擇表
A1A0RDWRCS操作
001010000111000A口內(nèi)容讀至數(shù)據(jù)總線B口內(nèi)容讀至數(shù)據(jù)總線C口內(nèi)容讀至數(shù)據(jù)總線
輸入00110101
111100000000數(shù)據(jù)總線內(nèi)容寫至A口數(shù)據(jù)總線內(nèi)容寫至B口數(shù)據(jù)總線內(nèi)容寫至C口DB內(nèi)容寫至控制寄存器輸出X1XX1XX01X11100端口輸出為高阻非法端口輸出為高阻禁止543、命令字(1)8255工作方式選擇控制字(寫,A1A0=11)方式0為基本的輸入輸出方式方式1為選通的輸入輸出方式方式2為雙向傳輸方式(2)端口C置位/復(fù)位控制字C口按位置/復(fù)位控制字(寫,A1A0=11)
可單獨(dú)對(duì)8255之C端口的8位進(jìn)行位操作●置/復(fù)位控制字必須寫入控制寄存器,即控制端口中4、8255的工作方式8255有三種工作方式:方式0、方式1、方式2
方式0為基本的輸入輸出方式方式1為選通的輸入輸出方式方式2為雙向傳輸方式A、B、C口均可工作在方式0
方式1適用于工作在A、B口(C口配合之)方式2僅用于A口(C口配合之),此時(shí)B口可設(shè)為方式0、方式157①方式0—
基本的輸入輸出方式方式0提供兩個(gè)8位口(A和B)和兩個(gè)4位口(PC7~PC4,PC3~PC0),任何一個(gè)口都可用做輸入或輸出(單向),由CPU用簡(jiǎn)單的I/O指令來(lái)進(jìn)行讀/寫。一般用于無(wú)條件傳送的場(chǎng)合,也可以用做查詢式傳送。習(xí)慣上將A口和B口作為數(shù)據(jù)口,將C口作為控制輸出和狀態(tài)輸入口。②方式1—
選通的輸入輸出方式
A口和B口可作為輸入或輸出端口使用,C口的某些位則作為控制或聯(lián)絡(luò)信號(hào),不同的端口要求C口與其配合的位不同。在方式1中C端口配合A端口和B端口有固定搭配關(guān)系。C端口中沒(méi)有使用的位可單獨(dú)定義為I/O使用。(a)A端口方式1輸入(b)B端口方式1輸入1、方式1輸入
當(dāng)8255的A端口和B端口均作為方式1輸入時(shí),C端口的6個(gè)位作為選通控制和聯(lián)絡(luò)信號(hào)。PC2、4為外設(shè)選通信號(hào);PC1、5為緩存器滿聯(lián)絡(luò)信號(hào);PC0、3為中斷請(qǐng)求信號(hào)。PC6、7作為I/O使用。若A、B口僅有一個(gè)作輸入使用,則C端口中沒(méi)有使用的位可單獨(dú)定義為I/O使用。59INTE為中斷允許位,對(duì)應(yīng)PC口寄存器(狀態(tài)字)的D4位(INTEA)和D2位(INTEB),可通過(guò)對(duì)PC口按位寫方法設(shè)置;PC2、PC4引腳作用:STB用作鎖存數(shù)據(jù)口數(shù)據(jù);中斷條件:STB#(引腳)=1(無(wú)效),IBF=1、INTE=1;PC6、7可作為數(shù)據(jù)線使用。60輸入組態(tài)下的操作時(shí)序★中斷方式如果INTE有效,8255將使INTR有效,申請(qǐng)中斷CPU向8255發(fā)讀信號(hào)RD,從8255端口讀數(shù)據(jù)中斷請(qǐng)求信號(hào)INTR變無(wú)效,然后IBF無(wú)效,外設(shè)可送下一個(gè)數(shù)據(jù)?!锊樵兎绞酵庠O(shè)把數(shù)據(jù)送到8255端口外設(shè)用選通信號(hào)STB把數(shù)據(jù)打入端口的輸入鎖存器輸入緩沖器滿信號(hào)IBF有效,CPU可查詢?cè)撔盘?hào) ̄ ̄ ̄ ̄61①②③④輸入組態(tài)下的操作時(shí)序622、方式1輸出(a)A端口方式1輸出(b)B端口方式1輸出當(dāng)8255的A端口和B端口作為方式1輸出時(shí),C端口的6個(gè)位作為選通控制和應(yīng)答信號(hào),剩余的PC4、5作為I/O使用。若A、B口僅有一個(gè)作輸出使用,則C端口中沒(méi)有使用的位可單獨(dú)定義為I/O使用。方式1輸出組態(tài)邏輯63
INTE為中斷允許位,對(duì)應(yīng)PC口寄存器(狀態(tài)字)的D6位(INTEA)和D2位(INTEB),可通過(guò)對(duì)PC口按位寫方
法設(shè)置;
PC2、PC6引腳作用:用作對(duì)OBF的回應(yīng);中斷條件:ACK(引腳)=1(無(wú)效),OBF=1(無(wú)效)、INTE=1;
PC4、5可作為數(shù)據(jù)線使用。64輸出組態(tài)下的時(shí)序①②③④輸出緩存器滿應(yīng)答響應(yīng)中斷請(qǐng)求寫信號(hào)③方式2--雙向數(shù)據(jù)傳輸方式僅限用于A端口。配合工作的C端口為PC3、4、5、6、7。C端口的其余位可作為I/O使用。具有方式1輸入和方式1輸出組合的特點(diǎn)。方式2下的組態(tài)邏輯例
若將A口工作于方式0作輸入,B口工作于方式1作輸出。PC3設(shè)成輸入,C口上半部輸出。設(shè)8255端口地址為60H-63H??刂谱譃椋?0010101B=95H初始化程序?yàn)椋?/p>
MOV AL,95H;方式選擇控制字
OUT 63H,AL;寫入控制寄存器方式1下8255狀態(tài)字中INTE位的置位和復(fù)位⊙若允許PA口輸入中斷請(qǐng)求MOVDX,203H;8255命令口MOVAL,00001001B;PC4=100,允許中斷請(qǐng)求
OUTDX,AL⊙若禁止PA口輸入中斷請(qǐng)求MOVDX,203H;8255命令口MOVAL,00001000B;置PC4=100,禁止中斷請(qǐng)求
OUTDX,AL⊙若允許PA口輸出中斷請(qǐng)求MOVDX,203H;8255命令口MOVAL,00001101B;置PC6=110,允許中斷請(qǐng)求
OUTDX,AL⊙若允許PB口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00000101B;置PC2=010,允許中斷請(qǐng)求
OUTDX,AL⊙若禁止PB口輸入中斷請(qǐng)求MOVDX,303H;8255命令口MOVAL,00000100B;置PC2=010,禁止中斷請(qǐng)求
OUTDX,AL⊙若允許PB口輸出中斷請(qǐng)求MOVDX,303H ;8255命令口MOVAL,00000101B;置PC2=010,允許中斷請(qǐng)求
OUTDX,AL
例:若A口工作于方式1作輸入,使用中斷傳送方式,B口工作于方式0作輸出,其余C口的位作為輸出。設(shè)8255端口地址為63H。編寫初始化程序片斷。
MOVAL,10110000B;A口方式1輸入,B口方式0輸出,其余
;C口位作為輸出
OUT63H,AL;方式選擇控制字寫入控制寄存器
MOVAL,00001001B;PC4=100,INTE=1OUT63H,AL;置/復(fù)位控制字寫入控制寄存器實(shí)驗(yàn)一:某應(yīng)用系統(tǒng)以8255A作為接口,采集一組開(kāi)關(guān)S7~S0
的狀態(tài),然后通過(guò)一組發(fā)光二極管LED7~LED0顯示開(kāi)關(guān)狀態(tài),(Si閉合,則對(duì)應(yīng)LEDi亮,Si斷開(kāi),則對(duì)應(yīng)的LEDi滅)電路連接如下圖,已知8255A、B兩組均工作在方式0。寫出8255工作方式控制字。寫出實(shí)現(xiàn)給定功能的匯編語(yǔ)言程序。71圖1PA口PC口72圖2PA口PC口73A口工作在方式0輸入,C口輸出,所以其控制字是10010000b=90H程序如下:;8255經(jīng)LS245(同相驅(qū)動(dòng)器)驅(qū)動(dòng),發(fā)光管共陽(yáng),所以反向顯示。DATASEGMENTDATAENDSSTACKSEGMENTSTACKSTADW50DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOVAL,90H;設(shè)置為A口輸入,C口輸出MOVDX,203H OUTDX,ALBG:MOVDX,200H;將A口狀態(tài)輸出
INAL,DX
MOVDX,202H OUTDX,AL JMPBGCODEENDSENDSTARTNOTAL;加此語(yǔ)句后開(kāi)關(guān)位置與顯示反相75例 下圖采用一個(gè)8255芯片和軟盤控制器相連,箭頭標(biāo)明了I/O的方向,根據(jù)該圖,試寫出8255的初始化程序。設(shè)8255端口地址為0300-0303H。圖8255用作軟盤基本接口
A口工作在方式2,PC4-PC7作應(yīng)答聯(lián)絡(luò)信號(hào)線,PC3用作A組中斷請(qǐng)求,B口和PC0-PC2作輸出,工作在方式0。工作方式控制字為:11XXX000B初始化程序?yàn)椋?/p>
MOV DX,303HMOV AL,0C0HOUT DX,ALMOV AL,00001001BOUT DX,AL ;PC4置位,開(kāi)放輸入中斷
MOV AL,00001101BOUT DX,AL ;PC6置位,開(kāi)放輸出中斷77三、8255作為打印機(jī)接口實(shí)例已知8255作為打印機(jī)接口,如下圖所示。8255工作在方式1作為打印機(jī)接口電路
CPU通過(guò)8255與打印機(jī)連接,打印前先檢查打印機(jī)的工作狀態(tài),當(dāng)BUSY=l時(shí)表示打印機(jī)忙,則等待,BUSY=0時(shí)表示不忙,這時(shí)CPU送數(shù)到A口并給打印機(jī)的STB端送一個(gè)負(fù)脈沖的打印選通信號(hào),使數(shù)據(jù)進(jìn)人打印機(jī)數(shù)據(jù)緩沖器。打印機(jī)處理完送入數(shù)據(jù)后向8255發(fā)送一個(gè)應(yīng)答信號(hào)ACK,這時(shí)又可繼續(xù)送下一個(gè)數(shù)據(jù),直到打印結(jié)束。有兩種傳送方法進(jìn)行打印,一種是查詢打印,一種是中斷打印。下面僅給出查詢打印方式的程序,中斷打印程序可自己編寫。在查詢方式中,只需檢測(cè)打印機(jī)的BUSY信號(hào)的高低電平即可決定是否打印。程序如下:
DATASEGMENT
PORTAEQU340HPORTBEQU341HPORTCEQU342HCTRLPEQU343H
PstringsDB“Thisisasampleofprinterinterfaceusing8255”
countEQU$-PstringsDATAENDSSTACKSEGMENTPARASTACK‘STACK’DB100DUP(?)STACKENDSCODESEGMENT
ASMMUSECS:CODE,DS:DATA,SS:STACKMAINPROCFAR
;PUSHDS;MOVAX,0
;PUSHAXMOVAX,DATAMOVDS,AXMOVAL,0A8H;8255方式選擇控制字10101000B(C上半口輸入PC4)MOVDX,CTRLP;控制端口OUTDX,AL;方式選擇控制字寫入控制口MOVCX,count;打印字符個(gè)數(shù)裝入計(jì)數(shù)器MOVBX,offsetPstringsLP1:MOV
AL,[BX]
MOVDX,PORTA
OUTDX,AL;送一個(gè)字符到8255的A口
MOVDX,PORTCLP2:INAL,DX;讀取C口狀態(tài)(準(zhǔn)備檢查BUSY狀態(tài))
ANDAL,00010000B;屏蔽無(wú)關(guān)位,取BUSY對(duì)應(yīng)的PC4JNZLP2;等待接收新數(shù)據(jù),BUSY=1等待,直到不忙
INCBX
LOOPLP1RETMAINENDPCODEENDSEND
MAIN如果采用中斷方式打印,則在中斷方式中,無(wú)需檢測(cè)打印機(jī)的BUSY狀態(tài),當(dāng)打印機(jī)處理完數(shù)據(jù)后會(huì)向8255發(fā)應(yīng)答信號(hào)ACK,在內(nèi)部中斷允許的情況下產(chǎn)生中斷請(qǐng)求信號(hào),這時(shí)CPU可以在中斷服務(wù)程序中向打印機(jī)發(fā)送打印數(shù)據(jù)。因此主程序中應(yīng)先對(duì)8255初始化(如前所述),然后允許INTEA內(nèi)部中斷,才可能使8255接收到ACK之后產(chǎn)生中斷請(qǐng)求信號(hào)。在中斷服務(wù)程序中注意保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng),服務(wù)程序的主體是送數(shù)到打印機(jī),中斷一次打印一個(gè)字符。在主程序設(shè)置好打印計(jì)數(shù)初值,中斷一次計(jì)數(shù)減1,直到字符全部打印完畢,關(guān)中斷結(jié)束整個(gè)程序。81例:并行接口8255A經(jīng)常用來(lái)作LED顯示器、鍵盤、打印機(jī)、A/D和D/A轉(zhuǎn)換器接口。下圖是8255A與七段代碼顯示器的接口電路。開(kāi)關(guān)設(shè)置的二進(jìn)制信息由8255A的B口輸入,經(jīng)程序轉(zhuǎn)換為對(duì)應(yīng)的七段LED的字形碼(段選碼)后,通過(guò)A口輸出并由七段LED顯示。試編制其控制程序。82關(guān)于七段I。ED顯示器的說(shuō)明:七段LED顯示器由8個(gè)發(fā)光二極管構(gòu)成,共有七段構(gòu)成顯示的數(shù)字與字符,每段分別稱為a,b,c,d,e,f,g,最高位dp表示顯示圓點(diǎn)(·),如下圖所示。七段LED顯示器電路結(jié)構(gòu)根據(jù)其內(nèi)部結(jié)構(gòu),LED顯示器有共陰極電路和共陽(yáng)極電路。該顯示器可顯示十六進(jìn)制數(shù)、部分英文字母及一些常用字符,其中十六進(jìn)制數(shù)的七段字形碼如表所示??煽闯龉碴帢O字形碼和共陽(yáng)極字形碼互為反碼。83解:根據(jù)電路可知,8255A工作于方式0,B口工作于輸入,A口工作于輸出,不使用聯(lián)絡(luò)信號(hào)。8255A的工作方式字為:1000X01XB(可設(shè)為82H)。根據(jù)譯碼器可知,8255A的口地址為:21CH~21FH。根據(jù)電路可知,七段LED為共陽(yáng)極電路,但B口輸出經(jīng)反向器驅(qū)動(dòng)后的字形碼和共陰極一樣。七段16個(gè)(0~F)數(shù)字、字符的字形碼表參看程序中SCODE定義的表。編寫控制程序的步驟如下:設(shè)置工作方式字;讀B口狀態(tài),得到有關(guān)開(kāi)關(guān)的信息;將得到的信息用查表法轉(zhuǎn)換為七段字形碼;七段字形碼送A口至LED顯示器顯示;延時(shí),使所顯示的信息顯示一段時(shí)間以便于觀察。按題意編寫的控制程序如下:84DATASEGMENTSCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE;DS:DATASTART:MOVAX,SEGDATAAMOVDS,AX
MOVDX,21FH;8255A方式控制字地址
MOVAL,82H;方式控制字為82HOUTDX,AL;寫入方式字
MOVAH,16;設(shè)置讀B口的狀態(tài)次數(shù)
PORTB:MOVDX,21DH;指向B口地址
INAL,DX;讀口B的狀態(tài)
ANDAL,0FH;判斷口B的狀態(tài)
MOVBX,OFFSETSCODE;BX指向字形碼表首地址
XLAT;查字形碼表,取出對(duì)應(yīng)的字形碼
MOVDX,21CH;指向A口地址
OUTDX,AL;將取出的字形碼送A口由LED顯示
MOVCX,8F00H;設(shè)置顯示延時(shí)常數(shù)
DELAY:LOOPDELAY;延時(shí)顯示時(shí)間(見(jiàn)實(shí)驗(yàn)指導(dǎo)P21)
DECAH;讀B口狀態(tài)次數(shù)減1JNZPORTB;次數(shù)不為0返回,繼續(xù)讀B口狀態(tài)
MOVAH,4CH;次數(shù)為0,程序中止
INT21HCODEENDSENDSTART思考:此程序運(yùn)行最終結(jié)果?(125ms×16=2s)85并行接口一般稱為Centronics接口,現(xiàn)在也稱IEEE1284,最早由CentronicsDataComputerCorporation公司在60年代中期制定。Centronics公司當(dāng)初是為點(diǎn)陣行式打印機(jī)設(shè)計(jì)的并行接口,1981年被IBM公司采用,后來(lái)成為IBMPC計(jì)算機(jī)的標(biāo)準(zhǔn)配置。它采用了當(dāng)時(shí)已成為主流的TTL電平,每次單向并行傳輸1字節(jié)(8-bit)數(shù)據(jù),速度高于當(dāng)時(shí)的串行接口(每次只能傳輸1bit),獲得廣泛應(yīng)用,成為打印機(jī)的接口標(biāo)準(zhǔn)。868.2.5三線聯(lián)絡(luò)舉例
—CENTRONICS打印接口圖8.27CENTRONICS打印機(jī)的聯(lián)絡(luò)
87圖8.28聯(lián)絡(luò)波形0.5us①②③88898.2.6IEEE-488總線及其三線聯(lián)絡(luò)
IEEE-488總線的最大特點(diǎn)是可以實(shí)現(xiàn)一發(fā)多收的傳輸。為此,它使用三線聯(lián)絡(luò)規(guī)程,以保證這種傳輸?shù)目煽繉?shí)現(xiàn)。又稱為可編程儀表總線(GPIB)*圖8.29IEEE-488的三線聯(lián)絡(luò)
918.3DMA傳輸和DMA控制器本節(jié)將介紹DMA控制器(DMAC)的分類、構(gòu)成、工作原理及應(yīng)用舉例。928.3.1
DMA傳輸及DMA控制器1.DMA傳輸原理:在存儲(chǔ)器與外設(shè)接口間的直接數(shù)據(jù)傳輸2.DMAC的功能:兩重功能:一方面它可以作為從設(shè)備,它的工作要受CPU的管理。
另一方面它可以作為主設(shè)備,DMAC具有總線主設(shè)備(MASTER)的功能。
938.3.2
DMA控制器的分類按通用性來(lái)分,有專用DMAC和通用DMAC專用DMAC:為某個(gè)特定外設(shè)專門設(shè)計(jì)通用DMAC:可用于任何外設(shè)的I/O傳輸94圖8.30專用DMAC的工作原理
總線請(qǐng)求總線響應(yīng)I/O接口的DMAREQ是在DMAC/IO接口內(nèi)部產(chǎn)生的,若該請(qǐng)求優(yōu)先,就向CPU發(fā)出總線請(qǐng)求BR。CPU對(duì)該信號(hào)的響應(yīng)是發(fā)出BA(總線響應(yīng)),并釋放總線。DMAC獲得總線后,開(kāi)始使用總線進(jìn)行DMA傳輸:若是輸出,就從存儲(chǔ)器單元讀取數(shù)據(jù)到I/O接口的輸出數(shù)據(jù)寄存器;若是輸入,就把I/O接口輸入數(shù)據(jù)寄存器的數(shù)據(jù)寫入指定的存儲(chǔ)器單元。如沒(méi)有數(shù)據(jù)要繼續(xù)傳輸,DMAC就釋放總線。可見(jiàn),專用DMAC的DMA傳輸中,總線上只有對(duì)存儲(chǔ)器的操作周期,且一個(gè)總線周期實(shí)現(xiàn)一次DMA傳輸。而對(duì)I/O的操作是在DMAC/IO接口內(nèi)部完成的。95
圖8.31通用DMAC的工作原理通用DMAC可用于任何外設(shè)的I/O傳輸,只要把該I/O接口的傳輸請(qǐng)求接到DMAC的DREQ輸入即可,如上圖所示。而在CPU對(duì)DMAC初始化過(guò)程中,告訴它所控制的通用DMAC,可實(shí)現(xiàn)存儲(chǔ)器到I/O、I/O到存儲(chǔ)器、存儲(chǔ)器到存儲(chǔ)器、I/O到I/O的傳輸。96
圖8.32雙地址DMAC的傳送過(guò)程
雙地址DMAC的內(nèi)部含有獨(dú)立的可編程的源口和目的口。任一口可以是存儲(chǔ)口或I/O口,且對(duì)這兩個(gè)口都是顯尋址。這樣,DMAC和CPU對(duì)這些口的訪問(wèn)是完全一樣的。因此它們可共用同一套(存儲(chǔ)器和I/O)地址澤碼器,所以接口電路簡(jiǎn)單。但一次DMA傳送需要兩個(gè)總線周期:讀源口數(shù)據(jù)到DMAC內(nèi)暫存,再把暫存的數(shù)據(jù)寫到目的口。97圖8.33單地址DMAC傳輸?shù)脑?/p>
單地址DMAC的內(nèi)部只有一個(gè)口,即存儲(chǔ)器口。在DMA傳輸期間,DMAC同時(shí)發(fā)出存儲(chǔ)器訪問(wèn)和I/O訪問(wèn)命令,存儲(chǔ)器和I/O間的傳送在一個(gè)總線周期內(nèi)完成,如上圖所示,它對(duì)存儲(chǔ)口的訪問(wèn)和CPU一樣,是顯尋址,而對(duì)I/O目采用隱尋址,即不給出I/O口的地址,只給出一條信號(hào)線DACK。I/O接口要用這條線來(lái)選中特定I/O接口的特定寄存器——數(shù)據(jù)寄存器。98圖8.34單地址DMAC傳輸?shù)?/p>
I/O接口設(shè)計(jì)/CS信號(hào)的形成包括CPU訪問(wèn)和DMA訪問(wèn)兩部分:CPU訪問(wèn)是地址訪問(wèn),要由地址線上I/O地址的高位譯碼得出。而DMA訪問(wèn)是單線(/DACKi)選中。且DMA訪問(wèn)時(shí),應(yīng)禁止I/O地址譯碼(此時(shí)地址線上是存儲(chǔ)器地址)。
RS是I/O接口內(nèi)的寄存器選擇線。CPU訪問(wèn)時(shí),是I/O地址的低位線;而DMA訪問(wèn)時(shí),是選中特定的數(shù)據(jù)寄存器。所以,這兩種寄存器選擇信號(hào)要經(jīng)過(guò)多路轉(zhuǎn)換電路(復(fù)用器)來(lái)切換。單地址DMAC有很多優(yōu)點(diǎn):在進(jìn)行DMA傳輸時(shí),一次傳輸只需要一個(gè)總線周期,即讀源口和寫目的口是在同一總線周期內(nèi)完成的,它把源口數(shù)據(jù)直接寫到目的口(見(jiàn)圖8.
33)。直接傳輸只與數(shù)據(jù)總線寬度有關(guān),而與DMAC的數(shù)據(jù)總線寬度無(wú)關(guān)。因此,8位DMAC(如8237)可以實(shí)現(xiàn)8位/16位/32位/64位的DMA傳輸。一般來(lái)說(shuō),單地址DMAC比雙地址DMAC簡(jiǎn)單,一片DMAC內(nèi)可容納2個(gè)至4個(gè)DMA通道。99
圖8.35單地址DMAC管理8255A選通輸出SA9A8A7A6A5A4A3A2A1A001000010XX108H~10BH系統(tǒng)地址線系統(tǒng)數(shù)據(jù)線1008.3.3源口及目的口的構(gòu)成
起始地址寄存器:保存起始地址值(CR)
地址計(jì)數(shù)器:隨傳輸變化塊長(zhǎng)寄存器:數(shù)據(jù)塊的大?。⊿R)
塊計(jì)數(shù)器:指示剩余的數(shù)據(jù)傳輸數(shù)(SR)
1018.3.4DMAC的工作類型和DMA傳輸方式1.DMAC的工作類型:MM,MI/O,I/OI/O2.DMA傳輸方式(1)連續(xù)傳送(continuous)或稱塊傳送
(2)單次傳送(single)(3)按需傳送(ondemand/burst)1028.3.5DMA請(qǐng)求的生成方式(1)內(nèi)部請(qǐng)求:內(nèi)部觸發(fā)或軟件請(qǐng)求(MM)
(2)外部請(qǐng)求:外部設(shè)備請(qǐng)求DMA傳輸(
MI/O,I/OI/O)其觸發(fā)方式分為沿觸發(fā)和電平觸發(fā)
1038.3.6DMAC的時(shí)序控制能力DMA傳輸期間,DMAC作為總線主設(shè)備,它應(yīng)具備CPU關(guān)于總線傳輸控制器的一切功能。一些DMAC還具有總線周期控制能力。
有的DMAC還有命令長(zhǎng)度控制能力
1048.3.7DMAC的塊鏈接能力1.自動(dòng)重裝入能力(無(wú)需CPU干預(yù),可變塊需設(shè)置)2.較強(qiáng)的塊鏈接能力(1)數(shù)組鏈鏈接:P344圖8.37所示(順序)(2)環(huán)鏈鏈接:P345圖8.38所示(跳轉(zhuǎn))1058.3.8DMAC的中斷源DMAC一般具有塊結(jié)束中斷能力。這是它作為傳輸控制器的基本能力。該事件出現(xiàn)時(shí),應(yīng)請(qǐng)求CPU給出下一個(gè)DMA傳送參數(shù),實(shí)現(xiàn)不間斷的傳輸。
106*8.3.9DMA控制器芯片舉例1.8237接口信號(hào)與內(nèi)部結(jié)構(gòu)1078237內(nèi)部邏輯框圖1088237的引腳功能說(shuō)明(1)時(shí)序和控制邏輯:
CLK時(shí)鐘
CS片選
RESET復(fù)位
READY就緒
AEN地址允許
ADSTB地址選通輸出
MEMR存儲(chǔ)器讀輸出
MEMW存儲(chǔ)器寫輸出
IOR外設(shè)讀
IOW外設(shè)寫
EOP過(guò)程結(jié)束109(2)優(yōu)先編碼邏輯:
DREQ3~0四個(gè)通道請(qǐng)求信號(hào)
HRQ總線請(qǐng)求輸出信號(hào)
HLDA總線保持響應(yīng)輸出信號(hào)
DACK3~0四個(gè)通道DMA應(yīng)答信號(hào)(3)程序命令控制邏輯:A3A2A1A0讀操作寫操作1000讀狀態(tài)寄存器寫命令寄存器1001無(wú)效寫請(qǐng)求寄存器1010無(wú)效寫單個(gè)通道屏蔽1011無(wú)效寫方式寄存器1100無(wú)效清除先/后寄存器1101讀暫存寄存器主清除(復(fù)位芯片)1110無(wú)效清除主屏蔽寄存器1111無(wú)效寫主屏蔽寄存器110(4)數(shù)據(jù)地址緩沖器:
A3~A0低4位地址線(三態(tài)雙向輸入/輸出)
A7~A4高4位地址線(三態(tài)輸出)
DB0~DB78位雙向數(shù)據(jù)線8237的特點(diǎn)①具有4個(gè)獨(dú)立的DMA通道,每個(gè)通道都可獨(dú)立地進(jìn)行初始化。②每個(gè)通道的DMA請(qǐng)求都可以被允許或禁止。③每個(gè)通道的DMA有不同的優(yōu)先級(jí),既可以是固定優(yōu)先級(jí),也可以是循環(huán)優(yōu)先級(jí)。④每個(gè)通道進(jìn)行一次傳送的最大字節(jié)數(shù)為64K。⑤提供4種傳送方式:?jiǎn)巫止?jié)傳送方式、數(shù)據(jù)塊傳送方式、請(qǐng)求傳送方式和級(jí)聯(lián)傳送方式。⑥時(shí)鐘頻率可從0到5MHz。⑦在5MHz的時(shí)鐘頻率下傳送速率高達(dá)1.6MB/s。1128237內(nèi)部寄存器的功能及格式
一、內(nèi)部寄存器的主要功能1132.主要性能1)、單字節(jié)傳輸方式2)、塊傳輸方式3)、請(qǐng)求傳輸方式4)、級(jí)聯(lián)方式1143.存儲(chǔ)器和I/O地址的生成8237A只有16位地址線,為單地址DMAC,對(duì)I/O設(shè)備采用隱尋址,用DACK代替CS及地址譯碼器。對(duì)20位、24位、32位的地址總線,需DMA頁(yè)面寄存器產(chǎn)生高位地址。P349圖8.42為PC系列DMAC的地址生成P349圖8.43為頁(yè)面寄存器工作原理1154.命令和狀態(tài)寄存器每一個(gè)通道有四個(gè)寄存器和各通道共用寄存器1.通道工作方式控制寄存器
1162.全局命令控制寄存器
1173.屏蔽寄存器
4.單個(gè)通道屏蔽寄存器
1185.通道軟件請(qǐng)求寄存器
1197.主清除命令和清除先/后觸發(fā)器命令
主清除命令與RESET功能相同清除先/后觸發(fā)器命令:對(duì)16位的寄存器,觸發(fā)器為0,操作為低字節(jié);觸發(fā)器為1,則操作為高字節(jié)。6.通道狀態(tài)狀態(tài)寄存器1208237主要寄存器的端口地址分配P350表8.4121
8237編程的一般步驟1)發(fā)送主清除命令2)寫入基地址和當(dāng)前字節(jié)數(shù)寄存器3)寫入基字節(jié)數(shù)和當(dāng)前字節(jié)數(shù)寄存器4)寫入模式寄存器5)寫入屏蔽寄存器6)寫入控制寄存器----硬件:由通道的DREQ啟動(dòng)DMA傳送7)寫入請(qǐng)求寄存器----軟件:寫入指定的通道8237DMA控制器的編程及應(yīng)用軟命令1)清先/后觸發(fā)器軟命令MOV AL,0XXH ;0XXH為AL中任意值OUT 0CH,AL ;先/后觸發(fā)器被清“0”2)總清除軟命令MOVAL,0XXH ;0XXH為AL中任意值OUT 0DH,AL ;寫入總清端口,執(zhí)行總清除命令3)清屏蔽寄存器軟命令。MOVAL,0XXH;0XXH為AL中任意值OUT0EH,AL ;寫入清屏蔽寄存器端口DMA控制器的讀寫時(shí)序
DMA空閑周期SIDMA過(guò)渡狀態(tài)S0DMA操作周期(S1、S2、S3、S4)
8237內(nèi)部狀態(tài)變化流程124DMA編程和應(yīng)用舉例
8237的初始化編程◆初始化編程的步驟:①命令字寫入控制寄存器②屏蔽字寫入屏蔽寄存器③方式字寫入方式寄存器④清“0”先/后觸發(fā)器⑤寫入地址寄存器字節(jié)寄存器⑥解除屏蔽⑦寫入請(qǐng)求寄存器1268237的應(yīng)用舉例
1.8237DMAC的級(jí)聯(lián)1272.如何擴(kuò)展82C37ADMAC的尋址空間128
3.應(yīng)用舉例現(xiàn)假設(shè)在級(jí)聯(lián)的8237的主片通道1,將內(nèi)存其始地址為80000H的280H字節(jié)的內(nèi)容直接輸出到外部設(shè)備。
MOV AL,4 ;命令字,禁止8237工作
OUT 08,AL ;寫命令寄存器
MOV AL,0 OUT 0CH,AL ;清除先/后觸發(fā)器
OUT 02,AL ;寫低位地址
OUT 02,AL ;寫高位地址
MOV AL,8 ;頁(yè)面地址為8OUT 83H,AL;寫頁(yè)面寄存器
MOV AX,280H;傳輸字節(jié)數(shù)
DEC AXOUT 03,AL;寫字節(jié)數(shù)低位
MOV AL,AH OUT 03,AL ;寫字節(jié)數(shù)高位
MOV AL,49H ;模式字:單字節(jié)讀,地址加1 OUT 0BH,ALMOVAL,40H ;命令字:DACK和DREQ低有效
OUT 08H,AL ;正常時(shí)序,固定優(yōu)先權(quán)
MOVAL,01 ;清除通道1屏蔽
OUT 0AH,ALWAITF: IN AL,08 ;讀通道1狀態(tài)
AND AL,02 ;傳輸完成否
JZ WAITF ;沒(méi)完成則等待
MOVAL,05;完成后屏蔽通道1 OUT 0A,AL
……
1318.4串行傳輸及串行接口
8.4.1串行傳輸?shù)膽?yīng)用串行傳輸是位串行、字節(jié)串行的傳輸方式。適合遠(yuǎn)距離傳輸,可減少傳輸線路的硬件投資費(fèi)用。(Modem)除了遠(yuǎn)距離傳輸外,隨著設(shè)備的小型化,管腳和布線所占面積的比例越來(lái)越大,出現(xiàn)了各種交換信息的串行總線標(biāo)準(zhǔn)。
串行異步通信標(biāo)準(zhǔn)接口常用的有RS-232C、RS-485及20mA電流環(huán)等,應(yīng)用最廣的是RS-232C標(biāo)準(zhǔn)接口串行通信系統(tǒng)傳輸結(jié)構(gòu)數(shù)據(jù)終端設(shè)備DTE——數(shù)據(jù)源和目的地?cái)?shù)據(jù)通信設(shè)備DCE——使數(shù)據(jù)符合線路要求1338.4.2串行傳輸需要解決的問(wèn)題1.同步:位同步、字節(jié)同步、數(shù)據(jù)塊同步2.差錯(cuò)控制:檢驗(yàn)、糾錯(cuò)(奇偶、循環(huán)冗余)3.通信協(xié)議(規(guī)程):規(guī)定了通信鏈路的建立和解除、命令和響應(yīng)以及出錯(cuò)時(shí)的恢復(fù)等各種約定。是雙方保證可靠通信時(shí)必須遵守的協(xié)議。1348.4.3串行傳輸?shù)男畔⒏袷?.異步格式所謂異步是指兩個(gè)字符(字節(jié))的對(duì)應(yīng)瞬間的時(shí)間間隔是“不等長(zhǎng)”的,即,字符間隔是可變的,波形如圖8.50所示。135
圖8.50起止式異步傳輸信息格式
高電平為傳號(hào)電平,低電平為空號(hào)電平。傳輸數(shù)據(jù)時(shí)低位在前,高位在后。傳輸方向1、接收部分2、發(fā)送部分D7D0THR低位到高位串行移位到SOUT引腳輸出……接收移位寄存器發(fā)送移位寄存器RBR低位到高位從SIN引腳串行移位進(jìn)來(lái)D7D0CPU來(lái)的8位數(shù)據(jù)并行進(jìn)入THR8位數(shù)據(jù)并行輸出至CPU
發(fā)送保持寄存器THR接收緩沖寄存器RBR1371382.同步格式同步傳輸?shù)男畔⒏袷接腥缦聨追N:(1)外同步格式(2)內(nèi)同步格式1398.4.4串行接口標(biāo)準(zhǔn)
1.電流環(huán)標(biāo)準(zhǔn)早期應(yīng)用于電傳打字機(jī)的遠(yuǎn)距離傳輸標(biāo)準(zhǔn),采用20mA電流的有或無(wú)表示二進(jìn)制信息,在發(fā)、接端采用光電耦合,具有隔離度好、抗干擾能力強(qiáng)的特點(diǎn),但傳輸效率不高。1402.RS-232標(biāo)準(zhǔn)RS-232C接口采用的是負(fù)邏輯,其邏輯電平與TTL電平不一樣,不能兼容。因此,為了實(shí)現(xiàn)與TTL電路的連接,必須進(jìn)行電平轉(zhuǎn)換。
對(duì)于數(shù)據(jù)線:邏輯“1”(MARK)=-3V~-15V, 邏輯“0”(SPACE)=+3V~
+15V對(duì)于控制信號(hào):接通狀態(tài)(ON)即信號(hào)有效的電平=+3V~15V
斷開(kāi)狀態(tài)(OUT)即信號(hào)無(wú)效的電平=-3Ⅴ~
-15V。TTL-EIA電平轉(zhuǎn)換:141
目前可以使用新型電平轉(zhuǎn)換芯片MAX232和MAX232A(高速)其內(nèi)置雙組RS-232C發(fā)送/接收器,實(shí)現(xiàn)TTL電平與RS-232C電平雙向轉(zhuǎn)換。1429針D型插座引腳引腳名稱含義1CD載波檢測(cè)(輸入)2RXD接收數(shù)據(jù)線(輸入)3TXD發(fā)送數(shù)據(jù)線(輸出)4DTRDTE就緒(輸出)--應(yīng)答信號(hào)5GNG信號(hào)地6DSRDCE就緒(輸入)7RTS請(qǐng)求發(fā)送(輸出)8CTS清除發(fā)送(輸入)9RI振鈴指示(輸入)143連接器DB-9、DB-25插座144共模噪聲干擾對(duì)串行傳輸?shù)挠绊懀?/p>
RS-232C由于在發(fā)送器與接收器之間有公共信號(hào)地,不可能使用雙端信號(hào),因此共模噪聲很容易引入信號(hào)系統(tǒng)中,且噪聲幅度可高達(dá)好幾伏,這是迫使RS-232C使用較高傳輸電壓的主要原因。另一個(gè)原因是為了補(bǔ)償傳輸線上的信號(hào)衰減和沿線附加電平的影響。RS-232的局限RS-232C采用單端驅(qū)動(dòng)、單端接收的單端雙極性電路標(biāo)準(zhǔn)。僅用一條線路傳輸一種信號(hào),根據(jù)該信號(hào)線上電平相對(duì)于公共的信號(hào)地電平的大小來(lái)決定邏輯的“1”和“0”。對(duì)于多條信號(hào)線來(lái)講,它們的地線是公共的,這種共地傳輸方式,抗干擾能力很差。盡管采用電平轉(zhuǎn)換器來(lái)提高信號(hào)傳輸電平,但在較長(zhǎng)距離時(shí),由于電壓損失,仍不可避免錯(cuò)誤。當(dāng)信號(hào)穿過(guò)電磁干擾環(huán)境時(shí),也可能因附加的干擾信號(hào)電平使發(fā)送的“0”變?yōu)椤?”或“1”變?yōu)椤?”。故其信號(hào)波特率不能過(guò)高,僅限在20Kb/s以下,且距離不大于15m。1463.RS-485標(biāo)準(zhǔn)
RS-485接口標(biāo)準(zhǔn)是一種平衡傳輸方式的串行接口標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)的電氣特性對(duì)邏輯電平的定義是根據(jù)兩條傳輸線之間的電位差值來(lái)決定的,當(dāng)AA‘線的電平比BB'線的電平高200mⅤ時(shí)表示邏輯“1”,當(dāng)AA'線的電平比BB'線的電平低200mV時(shí)表示邏輯“0”。
RS-485標(biāo)準(zhǔn)允許在電路中可有32個(gè)發(fā)送器和32個(gè)接收器。允許一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備,負(fù)載設(shè)備可以是驅(qū)動(dòng)發(fā)送器、接收器或收發(fā)器組合單元。
RS-485的共線電路結(jié)構(gòu)是在一對(duì)平衡傳輸線的兩端都配置終端電阻,其發(fā)送器、接收器和組合收發(fā)器可掛在平衡傳輸線上的任何位置,實(shí)現(xiàn)在數(shù)據(jù)傳輸中多個(gè)驅(qū)動(dòng)器和接收器共用同一傳輸線的多點(diǎn)應(yīng)用。
由于RS-485標(biāo)準(zhǔn)采用差動(dòng)發(fā)送/接收,因此共模抑制比高、抗干擾能力強(qiáng),傳輸速率高,最大傳輸速率可達(dá)10Mb/s(傳送15m),傳輸信號(hào)的擺幅小(200mV),傳送距離遠(yuǎn),采用雙絞線,在不用MODEM的情況下,當(dāng)100Kb/s的傳輸速率時(shí),可傳送的距離為1.2km。148*8.4.5串行接口芯片舉例常見(jiàn)的UART主要有INTEL8250、PC16450和PC16550。此外,還有帶更大緩沖的UART,稱為PC16650和PC16750。其中16550與8250完全兼容,本節(jié)以INTEL8250為例介紹。PC微機(jī)異步通信適配器是微機(jī)與微機(jī)、微機(jī)與MODEM及微機(jī)與外設(shè)之間進(jìn)行異步通信的接口。其核心是UART,即通用異步收發(fā)器。
1498250的接口信號(hào)和內(nèi)部結(jié)構(gòu)INS8250外部引腳150(1)時(shí)鐘與電源信號(hào)XTAL1晶振基準(zhǔn)時(shí)鐘輸入端XTAL2晶振基準(zhǔn)時(shí)鐘輸入端Vcc
電源+5V端GND接地端(2)雙向數(shù)據(jù)信號(hào)線D7~D0八位數(shù)據(jù)信號(hào)線(與系統(tǒng)總線連接)(3)輸入信號(hào)引線CS0,CS1和
CS2片選線,片選條件是‘與’關(guān)系A(chǔ)DS地址選通線(鎖存片選和內(nèi)部寄存器選擇)DISTR和DISTR數(shù)據(jù)輸入選通。(讀寄存器允許)
DOSTR和DOSTR數(shù)據(jù)輸出選通。(寫寄存器允許)
A0,A1和A2內(nèi)部寄存器選擇。
MR主復(fù)位輸入。
RCLK接收時(shí)鐘輸入。可和BAUDOUT相接SIN串行數(shù)據(jù)輸入。
CTS清除發(fā)送,輸入線。
DSR數(shù)據(jù)設(shè)備就緒,輸入線
RLSD接收線路信號(hào)檢測(cè),輸入線。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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河南許昌市公安局招聘230人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(全優(yōu))
- 2025春季中國(guó)電信實(shí)習(xí)生招聘考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解(突破訓(xùn)練)
- 2025廣東揭陽(yáng)市揭西縣招聘衛(wèi)生健康事業(yè)單位47人考前自測(cè)高頻考點(diǎn)模擬試題及一套答案詳解
- 2025黑龍江雞西市社會(huì)治安綜合治理中心招聘公益性崗位就業(yè)人員1人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(有一套)
- 2025廣東東菀市社衛(wèi)中心招聘納入崗位管理編制外7人模擬試卷附答案詳解(黃金題型)
- 悲憫情懷課件
- 2026興業(yè)銀行蘭州分行校園招聘考試參考題庫(kù)及答案解析
- 2025北京市公開(kāi)遴選和公開(kāi)選調(diào)公務(wù)員195人考試參考題庫(kù)及答案解析
- 2025年蕪湖安徽工程大學(xué)高層次人才招聘60人考前自測(cè)高頻考點(diǎn)模擬試題完整答案詳解
- 2025廣西河池市計(jì)量測(cè)試研究所招聘工作人員2人考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(全優(yōu))
- 基于《中國(guó)高考評(píng)價(jià)體系》下的2023年高考物理命題趨勢(shì)及復(fù)習(xí)備考策略
- LY/T 1145-1993松香包裝桶
- GB/T 9114-2000突面帶頸螺紋鋼制管法蘭
- 領(lǐng)導(dǎo)干部要學(xué)點(diǎn)哲學(xué)
- GB/T 17245-1998成年人人體質(zhì)心
- 華為公司校園招聘?jìng)€(gè)人簡(jiǎn)歷標(biāo)準(zhǔn)版
- 學(xué)校結(jié)核病防控培訓(xùn)課件
- 【精品】部編版五年級(jí)上冊(cè)道德與法治全冊(cè)課時(shí)練(一課一練)(含答案)
- DBJ50T 043-2016 工程勘察規(guī)范
- 八年級(jí)美術(shù)下冊(cè)《弘揚(yáng)真善美》優(yōu)質(zhì)課件
- 《流行病學(xué)》第十六章 分子流行病學(xué)
評(píng)論
0/150
提交評(píng)論