大學(xué)《接口與通信》第4章2課件_第1頁
大學(xué)《接口與通信》第4章2課件_第2頁
大學(xué)《接口與通信》第4章2課件_第3頁
大學(xué)《接口與通信》第4章2課件_第4頁
大學(xué)《接口與通信》第4章2課件_第5頁
已閱讀5頁,還剩135頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

§4.3Intel8250

可編程異步通訊接口

§4.3Intel8250

可編程異步通訊接口

14.3.18250的基本性能指標(biāo)①完全雙工、雙緩沖器發(fā)送和接收器的異步通信接口電路。②異步傳送:5~8位字符,時(shí)鐘頻率為通訊波特率的16倍。③通信波特率:50~9,600。④停止位可編程選擇為1、1.5和2位,可編程產(chǎn)生終止字符。⑤可編程選擇奇偶校驗(yàn)方式:奇校驗(yàn)、偶校驗(yàn)。⑥出錯(cuò)檢測——具有奇偶、溢出、幀錯(cuò)誤等檢測電路。⑦片內(nèi)具有優(yōu)先權(quán)中斷控制邏輯,具有很強(qiáng)的中斷控制能力。4.3.18250的基本性能指標(biāo)①完全雙工、雙緩沖器發(fā)送和24.3.28250的功能結(jié)構(gòu)4.3.28250的功能結(jié)構(gòu)34.3.2.1發(fā)送與接收部分⑴發(fā)送器發(fā)送器接收到發(fā)送數(shù)據(jù)后,將發(fā)送數(shù)據(jù)保存在數(shù)據(jù)發(fā)送緩沖器(THR)中。當(dāng)發(fā)送移位寄存器沒有正在發(fā)送的數(shù)據(jù)時(shí),8250把待發(fā)送數(shù)據(jù)由發(fā)送緩沖器傳送到移位寄存器(TSR),按照編程指定的參數(shù)(包括數(shù)據(jù)格式和波特率等),加入起始位、奇偶校驗(yàn)位和停止位,從8250的串行數(shù)據(jù)輸出端(SOUT)移位輸出,輸出的順序?yàn)樽址牡臀辉谇?、高位在后?.3.2.1發(fā)送與接收部分⑴發(fā)送器4當(dāng)將THR中的數(shù)據(jù)傳送至TSR以后,THR“空”狀態(tài)位置位或通過中斷邏輯發(fā)出中斷申請(qǐng),要求CPU傳送下一個(gè)字符。當(dāng)CPU向THR寫入一個(gè)字符后,THR“空”狀態(tài)位復(fù)位并清除中斷請(qǐng)求。當(dāng)在TSR中的字符移位輸出完后,8250再次把THR中的字符,傳送至TSR,開始下一個(gè)字符的傳送過程。另外,發(fā)送器的另一個(gè)功能是能發(fā)送終止符(BreakCharacter)。終止符是由在通信線上的連續(xù)的低電平組成,用來通知接收方終止完全雙工通信中通信。當(dāng)將THR中的數(shù)據(jù)傳送至TSR以后,THR“空”狀態(tài)位置位或5⑵接收器接收移位寄存器(RSR)對(duì)數(shù)據(jù)輸入端(SIN)輸入的串行數(shù)據(jù)進(jìn)行移位接收。在接收時(shí),首先要搜索起始位,使用16倍波特率的數(shù)據(jù)接收時(shí)鐘(RCLK)采樣傳送電路上的輸入信號(hào)。當(dāng)輸入信號(hào)由高電平變低后,連續(xù)測試8個(gè)RCLK時(shí)鐘周期,若采樣到的都是低電平,則確認(rèn)為起始位,否則認(rèn)為是傳輸線上的干擾。確認(rèn)起始位后,每隔16個(gè)RCLK時(shí)鐘周期對(duì)SIN輸入的數(shù)據(jù)位進(jìn)行采樣,直到規(guī)定的數(shù)據(jù)格式結(jié)束。⑵接收器6RSR接收完一個(gè)字符后,接收控制電路按規(guī)定的數(shù)據(jù)格式進(jìn)行奇偶校驗(yàn),如果沒有錯(cuò)誤自動(dòng)刪除起始位、奇偶校驗(yàn)位和停止位,把串行輸入的數(shù)據(jù)移位轉(zhuǎn)換成并行數(shù)據(jù)送人接收緩沖寄存器(RBR),使接收數(shù)據(jù)“可用位”置位,并通過中斷控制電路發(fā)出讀取數(shù)據(jù)中斷請(qǐng)求。對(duì)RBR的讀取,使接收數(shù)據(jù)“可用位”復(fù)位,清除中斷請(qǐng)求。在上述過程中接收器繼續(xù)接收字符。接收時(shí),如果發(fā)現(xiàn)接收數(shù)據(jù)出現(xiàn)奇偶校驗(yàn)錯(cuò)(PE)、數(shù)據(jù)格式錯(cuò)——幀錯(cuò)誤(FE)、接收數(shù)據(jù)時(shí)發(fā)生溢出錯(cuò)(OE),即上一個(gè)保存在RBR中的數(shù)據(jù)尚未被讀取,下一個(gè)接收的數(shù)據(jù)準(zhǔn)備送至RBR中、接收到終止信號(hào)(BI),都置位狀態(tài)寄存器中的相應(yīng)位,并通過中斷控制邏輯發(fā)出中斷請(qǐng)求,要求處理。RSR接收完一個(gè)字符后,接收控制電路按規(guī)定的數(shù)據(jù)格式進(jìn)行奇偶74.3.2.2通信控制和狀態(tài)寄存器4.3.2.2通信控制和狀態(tài)寄存器8通過對(duì)LCR寫入控制信息,確定通信的字符格式(包括字符長度、停止位的個(gè)數(shù)、奇偶校驗(yàn)設(shè)置)。也可以使LCR的第6位置“1”迫使8250輸出終止符。LCR的最高位是一種特殊用途,在8250內(nèi)部有10個(gè)寄存器,但8250只有三條地址線(A2~A0)來尋址內(nèi)部寄存器,最多只能尋址8個(gè)內(nèi)部寄存器,所以,存在有兩組寄存器要共用同一個(gè)地址,LCR的最高位DLAB作為另一個(gè)尋址依據(jù),來區(qū)分是尋址哪一組寄存器。通過對(duì)LCR寫入控制信息,確定通信的字符格式(包括字符長度、9LSR提供串行數(shù)據(jù)發(fā)送和接收時(shí)的狀態(tài),供CPU讀取和處理。CPU不僅可以對(duì)LSR實(shí)行讀出,也可以對(duì)其寫入(除第6位以外),供系統(tǒng)自檢時(shí)使用。LSR提供串行數(shù)據(jù)發(fā)送和接收時(shí)的狀態(tài),供CPU讀取和處理。C104.3.2.3波特率發(fā)生控制電路8250使用頻率1.8432MHz作為基準(zhǔn)時(shí)鐘輸入信號(hào)。需用分頻方法產(chǎn)生所需的波特率。8250傳送或接收串行數(shù)據(jù)時(shí),使用的時(shí)鐘信號(hào)頻率是數(shù)據(jù)傳送波特率的16倍。當(dāng)8250工作于不同的波特率時(shí),所使用的分頻系數(shù)也是不同的,在8250內(nèi)部有兩個(gè)保存分頻系數(shù)的寄存器稱為除數(shù)鎖存器。4.3.2.3波特率發(fā)生控制電路8250使用頻11波特率與除數(shù)寄存器的值之間的關(guān)系如表4-6示。

波特率與除數(shù)寄存器的值之間的關(guān)系如表4-6示。12大學(xué)《接口與通信》第4章2課件134.3.2.4調(diào)制解調(diào)控制部分D2/D3=1時(shí),引腳OUT1/OUT2=04.3.2.4調(diào)制解調(diào)控制部分D2/D314大學(xué)《接口與通信》第4章2課件154.3.2.5中斷控制1.中斷識(shí)別寄存器(IIR)當(dāng)接收數(shù)據(jù)錯(cuò)、接收緩沖寄存器滿、發(fā)送緩沖器空以及應(yīng)答聯(lián)絡(luò)的輸入控制信號(hào)的狀態(tài)變化等有一種或多種出現(xiàn)時(shí),在允許中斷的情況下,可通過讀中斷識(shí)別寄存器識(shí)別是何種事件引起中斷。4.3.2.5中斷控制1.中16大學(xué)《接口與通信》第4章2課件17有選擇地設(shè)置中斷允許位,可以改變8250內(nèi)部的中斷控制機(jī)構(gòu)。有選擇地設(shè)置中斷允許位,可以改變8250內(nèi)部的中斷控制機(jī)構(gòu)。184.3.2.68250內(nèi)部寄存器的尋址8250內(nèi)部有上述的10個(gè)可訪問的寄存器,都是通過8250的引腳A2~A0來訪問。存在有兩個(gè)端口地址由兩個(gè)寄存器共用的情況,這就要求引入另一個(gè)信號(hào)區(qū)別共用同一地址的寄存器。完成上述功能的選擇信號(hào)是8250中的通信線路控制寄存器最高位,即除數(shù)鎖存器訪問位(DLAB)來識(shí)別。參見表4-8。4.3.2.68250內(nèi)部寄存器的尋址82519表4-8用于8250內(nèi)部寄存器選擇地址表表4-8用于8250內(nèi)部寄存器選擇地址表204.3.38250的引腳4.3.38250的引腳214.3.3.1與系統(tǒng)相連接部分⑴數(shù)據(jù)線D0~D7(雙向、三態(tài)、高電平有效,引腳1~8)CPU與8250之間的信息通過這些數(shù)據(jù)線傳送。具體包括:對(duì)8250的編程信息;從8250的有關(guān)寄存器中讀取的狀態(tài);通過8250發(fā)送的數(shù)據(jù);8250接收的數(shù)據(jù);4.3.3.1與系統(tǒng)相連接部分22數(shù)據(jù)輸入選通脈沖DISTR、DISTR:兩者中只要有一個(gè)有效,就允許從8250讀取狀態(tài)信息或數(shù)據(jù)。即只需用兩個(gè)信號(hào)中的一個(gè)信號(hào)作為選通控制信號(hào),另一個(gè)可以固定為無效。數(shù)據(jù)輸出選通脈沖DOSTR、DOSTR:情況與數(shù)據(jù)輸入選通脈沖相似。⑵數(shù)據(jù)選通線數(shù)據(jù)輸入選通脈沖DISTR、DISTR:兩者中只要有一個(gè)有23驅(qū)動(dòng)器禁止信號(hào)DDIS(輸出):每當(dāng)CPU從8250讀取信息時(shí),DDIS變?yōu)榈碗娖健]敵龈唠娖綍r(shí),用來禁止外部的收發(fā)器繼續(xù)往PC機(jī)發(fā)送數(shù)據(jù)。⑶地址線A0~A2(輸入):這三條引線一般與系統(tǒng)地址總線相連,CPU用這三個(gè)信息來尋址8250內(nèi)部不同的寄存器。⑷選片控制信號(hào)CS0、CS1、CS2:三個(gè)選片控制信號(hào),必須三個(gè)信號(hào)都有效時(shí)8250才能正常工作。一般用CPU訪問外設(shè)控制線和高位地址組成選片信號(hào)。驅(qū)動(dòng)器禁止信號(hào)DDIS(輸出):每當(dāng)CPU從8250讀取信息24⑸地址選通脈沖ADS(輸入):其有效時(shí),鎖存地址(A0、Al、A2)和選片信號(hào)(CS0、CS1、CS2)。⑹主復(fù)位信號(hào)MR(輸入):該信號(hào)連接到系統(tǒng)的復(fù)位信號(hào)。當(dāng)其有效時(shí),清除所有寄存器(除了接收緩沖器、發(fā)送緩沖器和除數(shù)鎖存器外)和8250的控制邏輯以及有關(guān)的輸出信號(hào),如表4-9所示。⑸地址選通脈沖ADS(輸入):其有效時(shí),鎖存地址(A0、Al25大學(xué)《接口與通信》第4章2課件264.3.3.2與通信設(shè)備相連部分⑴外部時(shí)鐘輸人/輸出XTAL1、XTAL2(引腳16、17):這兩個(gè)引腳把串行通信的主定時(shí)基準(zhǔn)信號(hào)(晶體振蕩器或時(shí)鐘信號(hào))接到8250。⑵接收時(shí)鐘RCLK(輸入、引腳9):從這個(gè)引腳向8250輸人16×波特率的接收器時(shí)鐘。⑶BOUNDOUT波特率輸出(輸出、引腳15):是8250輸出的一個(gè)時(shí)鐘信號(hào),其頻率是8250的主振頻率除以除數(shù)鎖存器的值,即為16×波特率。通??捎迷撔盘?hào)作為接收器時(shí)鐘,所以常把它連至RCLK輸入端。4.3.3.2與通信設(shè)備相連部分⑴外部時(shí)鐘輸27⑷串行數(shù)據(jù)輸入信號(hào)SIN(輸入):由通信設(shè)備(外設(shè)或調(diào)制解調(diào)器)送來的串行的輸人數(shù)據(jù)。⑸串行數(shù)據(jù)輸出信號(hào)SOUT(輸出):8250發(fā)送給通信設(shè)備(外設(shè)或調(diào)制解調(diào)器)的串行輸出數(shù)據(jù)。⑹數(shù)據(jù)終端準(zhǔn)備就緒DTR(輸出):可由CPU使調(diào)制解調(diào)控制寄存器的位0(DTR位)置“1”而輸出有效(低電平),主復(fù)位信號(hào)MR把它置為高電平。通常情況下,當(dāng)8250已準(zhǔn)備好通信,這有效信號(hào)用以通知通信設(shè)備或調(diào)制解調(diào)器。⑷串行數(shù)據(jù)輸入信號(hào)SIN(輸入):由通信設(shè)備(外設(shè)或調(diào)制解調(diào)28⑺發(fā)送請(qǐng)求RTS(輸出):當(dāng)8250已準(zhǔn)備好通信,使RTS輸出有效信號(hào)以通知通信設(shè)備。此信號(hào)可由CPU使調(diào)制解調(diào)控制寄存器的位1(RTS位)置“1”而輸出有效(低電平),主復(fù)位信號(hào)把它置為高電平。⑻允許發(fā)送CTS(輸入):當(dāng)調(diào)制解調(diào)器作好了通信準(zhǔn)備時(shí),向8250輸入有效的CTS信號(hào),通知8250開始發(fā)送。它的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第4位得到。調(diào)制解調(diào)器狀態(tài)寄存器的位0,指示自最后一次讀操作以來,CTS的輸入狀態(tài)是否發(fā)生變化。如果編程允許調(diào)制解調(diào)器狀態(tài)中斷,CTS狀態(tài)的變化就產(chǎn)生中斷請(qǐng)求。⑺發(fā)送請(qǐng)求RTS(輸出):當(dāng)8250已準(zhǔn)備好通信,使RTS輸29⑼數(shù)據(jù)設(shè)備準(zhǔn)備就緒DSR(輸入):當(dāng)調(diào)制解調(diào)器或通信設(shè)備已準(zhǔn)備好建立通信環(huán)路(鏈)準(zhǔn)備與8250傳送數(shù)據(jù)時(shí),就向8250輸送有效的DSR信號(hào)。它的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第5位得到,此寄存器的第1位指示了自上次讀操作后此信號(hào)是否發(fā)生了變化。若允許調(diào)制解調(diào)器狀態(tài)中斷的話,DSR狀態(tài)的變化就產(chǎn)生中斷請(qǐng)求。⑽接收線路檢測RLSD和振鈴指示RI(輸入):它們?yōu)榈碗娖?有效)時(shí),表示通信設(shè)備已檢測到數(shù)據(jù)串(RLSD)或收到了振鈴信號(hào)(RI)。它們的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第7、6位得到,此寄存器的第3、2位分別表示自上一次讀操作以后這些信號(hào)是否發(fā)生了變化。若允許調(diào)制解調(diào)器狀態(tài)中斷,這兩信號(hào)中的任意一個(gè)狀態(tài)發(fā)生變化,都將產(chǎn)生中斷請(qǐng)求。⑼數(shù)據(jù)設(shè)備準(zhǔn)備就緒DSR(輸入):當(dāng)調(diào)制解調(diào)器或通信設(shè)備已準(zhǔn)30⑾中斷請(qǐng)求信號(hào)INTRPT(輸出):8250內(nèi)部的中斷申請(qǐng)?jiān)慈我粋€(gè)未被屏蔽源有請(qǐng)求時(shí),INTRPT輸出高電平。適當(dāng)?shù)闹袛喾?wù)和主復(fù)位信號(hào)使INTRPT處于低電平。⑿輸出信號(hào)OUT1、OUT2(輸出):是兩個(gè)編程控制的輸出??蓪?duì)調(diào)制解調(diào)器控制寄存器的第2位和第3位編程使其輸出有效信號(hào)。主復(fù)位信號(hào)使這兩者處在高電平。⒀選片輸出CSOUT(輸出):當(dāng)8250的三個(gè)選片輸入端CS0、CS1和CS2都有效時(shí),此引腳輸出高電平,此時(shí)才能開始數(shù)據(jù)傳送。⑾中斷請(qǐng)求信號(hào)INTRPT(輸出):8250內(nèi)部的中斷申請(qǐng)?jiān)?1§4.3.48250的初始化編程編程主要步驟是:①確定波特率:設(shè)置除數(shù)鎖存器的分頻值。為了能對(duì)除數(shù)鎖存器寫入,要先使通信線路控制寄存器的D7=1。②設(shè)置通信的數(shù)據(jù)格式:通過對(duì)通信線路控制寄存器編程實(shí)現(xiàn),而且要使它的D7=0,以便接下來對(duì)接收和發(fā)送緩沖器以及中斷允許寄存器進(jìn)行操作。③如果使用中斷,則設(shè)置中斷允許寄存器的狀態(tài)。若不使用中斷,這個(gè)寄存器可設(shè)置成0?!?.3.48250的初始化編程編程主32④設(shè)置調(diào)制解調(diào)器控制寄存器:通常,這寄存器設(shè)定的值為03H,使8250輸出DTR和RTS這兩個(gè)調(diào)制解調(diào)器控制信號(hào)。如果系統(tǒng)中不使用這兩個(gè)信號(hào),這樣的設(shè)置也不會(huì)帶來問題。如果使用中斷,OUT2位應(yīng)設(shè)置為“1”,這樣8250產(chǎn)生的中斷信號(hào)可以通過系統(tǒng)總線送給8259中斷控制器。④設(shè)置調(diào)制解調(diào)器控制寄存器:通常,這寄存器設(shè)定的值為03H,33大學(xué)《接口與通信》第4章2課件34大學(xué)《接口與通信》第4章2課件35下面舉一個(gè)例子:要求以9600波特率進(jìn)行異步通信,每字符的數(shù)據(jù)位7位,2個(gè)停止位,奇校驗(yàn),允許所有中斷。下面給出了采用8086匯編編寫的8250初始化部分程序。;BIOS分配異步通信的端口地址為3F8H~3FFH下面舉一個(gè)例子:要求以9600波特率進(jìn)行異步通信,每字符的數(shù)36MOVAL,80HMOVDX,3FBHOUTDX,AL ;使通信線控制寄存器最高位置1MOVAL,0CHMOVDX,3F8HOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,AL ;對(duì)除數(shù)鎖存器置初值MOVAL,80H37MOVAL,00001110B;設(shè)置數(shù)據(jù)格式為7位/字符兩個(gè)停止位,奇校驗(yàn)MOVDX,3FBHOUTDX,ALMOVAL,0FH ;允許所有中斷MOVDX,3F9HOUTDX,ALMOVAL,OBH;OUT2、DTR、RTS信號(hào)有效MOVDX,3FCHOUTDX,ALMOVAL,00001110B;設(shè)置數(shù)據(jù)格式為7位/字符兩38§4.3.5INS8250應(yīng)用編程1、查詢方式發(fā)送初始化8250讀LSRD5=1?發(fā)送一個(gè)字符發(fā)完?結(jié)束YYNN2、查詢方式接收初始化8250讀LSRD0=1?接收一個(gè)字符收完?結(jié)束YYNN有錯(cuò)?NY錯(cuò)誤處理發(fā)送寄存器接收數(shù)據(jù)就緒§4.3.5INS8250應(yīng)用編程1、查詢方式39大學(xué)《接口與通信》第4章2課件403、中斷方式通信程序設(shè)計(jì)1)中斷通信方式初始化

修改中斷向量:按使用的端口COM1或COM2,接管中斷0CH或中斷0BH(保存原中斷向量,將新的中斷向量替換上去,注意程序結(jié)束時(shí)恢復(fù)原中斷向量)。確定通信協(xié)議:設(shè)置波特率及數(shù)據(jù)傳輸格式。

確定INS8250操作方式:設(shè)置中斷允許寄存器相應(yīng)位的允許或禁止,并設(shè)允許向量中斷模式(置MCR的D3=1)。

開放通信中斷:對(duì)8259A中斷控制器的屏蔽寄存器編程(OCW1),允許中斷IRQ4或IRQ3。中斷通信方式有查詢中斷和向量中斷兩種方式。3、中斷方式通信程序設(shè)計(jì)1)中斷通信方式初始化修改中斷向41DATA SEGMENT‘DATA’ INT_SEGDW? INT_OFFDW?DATA ENDS ……mov al,0ch ;取原OCH中斷向量mov ah,35h int 21hmov INT_OFF,bx ;將返回的向量ES:BX保存在雙字mov bx,es ;變量INT中mov INT_SEG,bx cli;修改中斷向量前關(guān)中斷mov al,0chmov ah,25h mov dx,SEGINSEV ;DS:DX指向中斷向量,其中mov ds,dx ;DS指向段地址mov dx,OFFSETINSEV ;DX指向偏移量int 21hDATA SEGMENT‘DATA’cli42mov dx,3fbh ;線路控制寄存器LCR地址

out dx,80h ;置DLAB=1mov dx,3f8h ;低位除數(shù)寄存器DLL地址out dx,0ch ;寫9600波特率的除數(shù)低8位inc dx ;高位除數(shù)寄存器DLH地址out dx,00h ;寫9600波特率的除數(shù)高8位mov dx,3fbh ;線路控制寄存器LCR地址mov al,00011011b;偶校驗(yàn)、1位停止位、8位數(shù)據(jù)位out dx,al mov dx,3fch ;MODEM控制寄存器MCR地址out dx,08h ;OUT2位置1,打開COM1中斷mov dx,3f9h ;中斷允許寄存器地址out dx,03h ;允許收/發(fā)中斷in al,21h ;讀8259A的IMRand al,efh out 21h,al ;開放IRQ4中斷sti……mov dx,3fbh ;線路控制寄存器LCR地址 mov 43

D5D4D3D2D1D0WLS0WLS1PENSTBEPSSPSBDLAB字符長度選擇00——5位01——6位10——7位11——8位停止位選擇0——1位1——1.5位(D1D0=00)2位(D1D0<>00)奇偶校驗(yàn)允許奇偶校驗(yàn)選擇11——偶校驗(yàn)01——奇校驗(yàn)附加奇偶標(biāo)志位選擇0——不附加1——附加1位中止設(shè)置1—中止0—正常除數(shù)寄存器訪問允許0——禁止1——允許8250中的通信線路控制寄存器D7D6D5D4D3D2D1D0D5D4D3D2442)通信中斷服務(wù)程序首先讀中斷識(shí)別寄存器IIR,判斷中斷源,然后轉(zhuǎn)向?qū)?yīng)的處理子過程(程序)。判斷中斷源應(yīng)該按照中斷優(yōu)先級(jí)別次序進(jìn)行。

當(dāng)中斷識(shí)別寄存器D2D1=11時(shí),表明接收出錯(cuò)中斷,需要再讀取線路狀態(tài)寄存器,分析錯(cuò)誤原因,再進(jìn)行錯(cuò)誤處理。

可能出現(xiàn)多個(gè)中斷源同時(shí)引發(fā)中斷。因此,每處理完一種中斷源后,應(yīng)繼續(xù)讀取中斷識(shí)別寄存器,檢測D0是否為“0”,當(dāng)D0=0時(shí),表明還有未決中斷,應(yīng)該繼續(xù)分析中斷源并進(jìn)行中斷處理。

中斷程序返回的條件是中斷識(shí)別寄存器的D0=1。2)通信中斷服務(wù)程序首先讀中斷識(shí)別寄存器IIR,判斷中斷45§4.4Intel8251A可編程通信接口4.4.18251的性能指標(biāo)①可用于串行通訊的同步和異步傳送。②同步傳送:5~8位/字符,內(nèi)部或外部同步,可自動(dòng)插入同步字符。③異步傳送:5~8位/字符,時(shí)鐘速率為通信波特率的1、16或64倍。④可產(chǎn)生終止字符(BreakCharacter);可產(chǎn)生1、1.5或2個(gè)位的停止位。自動(dòng)檢測和處理終止字符。⑤可檢查假的啟動(dòng)位?!?.4Intel8251A可編程通信接口4.4.46⑥波特率:異步傳送的最大波特率為19.2K;同步傳送的最大波特率64K。⑦完全雙工,發(fā)送和接收雙緩沖器。⑧出錯(cuò)檢測——具有奇偶、溢出、幀錯(cuò)誤等檢測電路。⑥波特率:異步傳送的最大波特率為19.2K;同步傳送的最大波474.4.28251的功能結(jié)構(gòu)4.4.28251的功能結(jié)構(gòu)48大學(xué)《接口與通信》第4章2課件49⑶I/O控制⑶I/O控制504.4.38251的接口信號(hào)命令,狀態(tài)/數(shù)據(jù)同步檢測信號(hào)數(shù)據(jù)終端準(zhǔn)備好數(shù)據(jù)裝置準(zhǔn)備好請(qǐng)求傳送允許傳送接收器時(shí)鐘發(fā)送器時(shí)鐘4.4.38251的接口信號(hào)命令,狀態(tài)/514.4.48251的編程8251是一個(gè)可編程的多功能通信接口。使用時(shí)必須對(duì)它進(jìn)行初始化編程,確定8251的具體工作方式。例如:規(guī)定工作于同步還是異步方式;傳送的波特率;字符格式等等。初始化編程必須在系統(tǒng)復(fù)位以后,啟動(dòng)8251工作以前進(jìn)行。正確寫控制字的順序如圖所示。4.4.48251的編程8251是一個(gè)可編程的多功能通信接52大學(xué)《接口與通信》第4章2課件53工作方式字格式工作方式字格式54在同步方式時(shí),緊跟在方式指令后面的是由程序輸入的同步字符。同步字符用與方式指令類似的方法由CPU發(fā)送給8251的。在輸入同步字符后,或在異步方式時(shí),在方式選擇指令后應(yīng)由CPU發(fā)送工作命令指令。命令指令直接使8251處于規(guī)定的工作狀態(tài)。以準(zhǔn)備接收或發(fā)送數(shù)據(jù)。命令字格式如圖4-29在同步方式時(shí),緊跟在方式指令后面的是由程序輸入的同步字符。55RXESBRKERRTSTXENDTRIREHRXESBRKERRTSTXENDTRIREH允許發(fā)送“1”允許“0”不允許數(shù)據(jù)終端就緒:“1”使DTR輸出為低允許接收“1”允許“0”不允許送間隔字符“1”使TXD為低“0”正常工作出錯(cuò)標(biāo)志復(fù)位:“1”使PE、OE、TE標(biāo)志復(fù)位請(qǐng)求發(fā)送:“1”使RTS輸出變低內(nèi)部復(fù)位:“1”使芯片回到方式指令狀態(tài)進(jìn)入搜索態(tài):“1”使開始搜索同步字符D7

D6D5D4D3D2D1D0RXESBRKERRTSTXENDTRIREHRXESBRK56對(duì)8251的工作狀態(tài),CPU可通過I/O讀操作把8251的狀態(tài)字讀人CPU,用以控制CPU與8251之間的數(shù)據(jù)交換。在讀狀態(tài)字時(shí),C/D端為“1”。狀態(tài)字格式如圖4-30所示。對(duì)8251的工作狀態(tài),CPU可通過I/O讀操作把8251的狀57它只要數(shù)據(jù)緩沖器空就置位;而引腳TxRDY只能當(dāng)條件:數(shù)據(jù)緩沖器空·CTS·TxEN成立時(shí),才置位。它只要數(shù)據(jù)緩沖器空就置位;而引腳TxRDY只能當(dāng)條件:數(shù)據(jù)緩58§4.4.58251應(yīng)用舉例例4-2:8251工作在異步方式,波特率速度系數(shù)為64,字符長度為7位,偶校驗(yàn)。方式控制字為11111011B即0FBH。用命令字使8251發(fā)送允許,接收允許,使錯(cuò)誤位復(fù)位,則命令字為00010101B即15H。設(shè)備端口號(hào)為0F1H(C/D=1)和0F0H(C/D=0),則在主程序的初始化程序?yàn)椋骸?.4.58251應(yīng)用舉例例4-2:59MOVAL,0FBH;方式控制字OUT0F1H,ALMOVAL,15H;工作命令字OUT0F1H,AL于是8251做好了準(zhǔn)備,能接收和發(fā)送數(shù)據(jù)。如果由于發(fā)送或接收而產(chǎn)生中斷請(qǐng)求,則引起CPU中斷,于是CPU進(jìn)人中斷服務(wù)程序。其中斷服務(wù)程序?yàn)椋篗OVAL,0FBH;方式控制字60INT:PUSHAXPUSHBXINAL,0FlHRCRAL,1;TxRDY=1轉(zhuǎn)至發(fā)送JCSISPRCRAL,1JCRISP;RxRDY=1轉(zhuǎn)至接收REN:POPBXMOVAL,20H;發(fā)EOI命令OUT20H,ALPOPAXSTIRETIINT:PUSHAX61RISP:;接收數(shù)據(jù)子程序INAL,0F1H;先檢查有無錯(cuò)誤ANDAL,38HJNZERRSPP;有錯(cuò),轉(zhuǎn)至出錯(cuò)處理于程序INAL,0F0HMOVCL,ALJMPRENSISP:;發(fā)送數(shù)據(jù)子程序MOVAL,BL;要輸出的數(shù)據(jù)在BL中OUT0F0H,ALJMPRENRISP:62§4.5IEEE1394它支持不經(jīng)集線器的點(diǎn)對(duì)點(diǎn)連接,最多允許63個(gè)相同速度的設(shè)備連接到同一總線上,最多允許1023條總線相互連接。支持點(diǎn)對(duì)點(diǎn)連接,所以各連接節(jié)點(diǎn)上設(shè)備都是在相同位點(diǎn),也就相當(dāng)局域網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的“對(duì)等網(wǎng)”一樣。是一種與平臺(tái)無關(guān)的串行通信協(xié)議?!?.5IEEE1394它631987年Apple發(fā)布了第一個(gè)完整規(guī)范,IEEE(電氣與電子工程師協(xié)會(huì))于1995年正式制定該總線標(biāo)準(zhǔn)。IEEE1394的數(shù)據(jù)傳輸速率(支持100Mbps、200Mbps和400Mbps)相當(dāng)快,因此又叫它“高速串行總線”、“火線”(FireWire)。與當(dāng)時(shí)的USB1.0總線速度(傳輸速率為12Mbps)相比,IEEE1394的速度顯然要高出很多。1987年Apple發(fā)布了第一個(gè)完整規(guī)范,IEEE(電氣與電64§4.5.1概述IEEE1394標(biāo)準(zhǔn)的特點(diǎn):①高速的數(shù)據(jù)傳送。是目前主流總線中速度最快的串行總線。支持100Mbps、200Mbps和400Mbps的數(shù)據(jù)傳輸率。而目前主流的USB1.1規(guī)格的數(shù)據(jù)傳輸率僅為12Mbps。新的USB2.0標(biāo)準(zhǔn)的傳輸速率可達(dá)到480Mbps,但是IEEE1394新標(biāo)準(zhǔn)b版本中能夠?qū)崿F(xiàn)G位(最高為1.6Gbps)傳輸速率?!?.5.1概述IEEE1394標(biāo)準(zhǔn)的特點(diǎn)65②高度的實(shí)時(shí)性,支持異步傳送和等時(shí)傳送兩種模式。而等時(shí)傳送模式專用于實(shí)時(shí)地傳送視頻和音頻數(shù)據(jù)。③高自由度連接/拓?fù)浣Y(jié)構(gòu):允許接點(diǎn)菊花鏈(NodeDaisyChain)和接點(diǎn)分枝,實(shí)現(xiàn)混合連接。同時(shí),通過協(xié)議時(shí)序優(yōu)化(ProtocolTimingOptimization)還可實(shí)現(xiàn)更高效率的網(wǎng)絡(luò)結(jié)構(gòu)。用一線串珠方式的連接,最多連接16臺(tái)設(shè)備;采取混合連接能實(shí)現(xiàn)額定的63臺(tái)設(shè)備連接。②高度的實(shí)時(shí)性,支持異步傳送和等時(shí)傳送兩種模式。而等時(shí)傳送模66圖4-34IEEE1394菊花鏈結(jié)構(gòu)示意圖圖4-34IEEE1394菊花鏈結(jié)構(gòu)示意圖67④支持帶電插拔/即插即用。⑤傳輸距離長:允許兩結(jié)點(diǎn)間的距離最大為4.5米。新的標(biāo)準(zhǔn)可以實(shí)現(xiàn)100米范圍內(nèi)的設(shè)備互連。⑥對(duì)等支持:兩臺(tái)設(shè)備無需連接到個(gè)人計(jì)算機(jī),即可實(shí)現(xiàn)共連??梢园雅鋫銲EEE1394端口的數(shù)字照相機(jī)直接連接到其它支持IEEE1394的設(shè)備上。⑦支持同、異步傳輸:互聯(lián)網(wǎng)絡(luò)中所傳輸?shù)囊曨l數(shù)據(jù)不間斷,就必須保證數(shù)據(jù)帶寬的穩(wěn)定,異步傳輸方式是無法實(shí)現(xiàn)的。采取同步傳輸方式就可以保證在傳輸過程中帶寬的穩(wěn)定。④支持帶電插拔/即插即用。68IEEE1394標(biāo)準(zhǔn)接口結(jié)構(gòu)的所有資源都是以統(tǒng)一存儲(chǔ)編址形式用存儲(chǔ)變換(Memory-Maps)方式識(shí)別,實(shí)現(xiàn)資源配置和管理。它向系統(tǒng)各設(shè)備發(fā)送數(shù)據(jù)時(shí),各設(shè)備就像內(nèi)存的存儲(chǔ)單元一樣,進(jìn)行從CPU到內(nèi)存的直接傳送。4.6.2IEEE1394的組成(自學(xué))4.6.3IEEE1394的數(shù)據(jù)傳輸模式4.6.4USB和IEEE1394的異同IEEE1394標(biāo)準(zhǔn)接口結(jié)構(gòu)的所有資源都是以統(tǒng)一存儲(chǔ)編址形691、每一個(gè)成功者都有一個(gè)開始。勇于開始,才能找到成功的路。12月-2212月-22Sunday,December18,20222、成功源于不懈的努力,人生最大的敵人是自己怯懦。04:04:0704:04:0704:0412/18/20224:04:07AM3、每天只看目標(biāo),別老想障礙。12月-2204:04:0704:04Dec-2218-Dec-224、寧愿辛苦一陣子,不要辛苦一輩子。04:04:0704:04:0704:04Sunday,December18,20225、積極向上的心態(tài),是成功者的最基本要素。12月-2212月-2204:04:0704:04:07December18,20226、生活總會(huì)給你另一個(gè)機(jī)會(huì),這個(gè)機(jī)會(huì)叫明天。18十二月20224:04:07上午04:04:0712月-227、人生就像騎單車,想保持平衡就得往前走。十二月224:04上午12月-2204:04December18,20228、業(yè)余生活要有意義,不要越軌。2022/12/184:04:0704:04:0718December20229、我們必須在失敗中尋找勝利,在絕望中尋求希望。4:04:07上午4:04上午04:04:0712月-2210、一個(gè)人的夢(mèng)想也許不值錢,但一個(gè)人的努力很值錢。12/18/20224:04:07AM04:04:0718-12月-2211、在真實(shí)的生命里,每樁偉業(yè)都由信心開始,并由信心跨出第一步。12/18/20224:04AM12/18/20224:04AM12月-2212月-22謝謝大家1、每一個(gè)成功者都有一個(gè)開始。勇于開始,才能找到成功的路。170§4.3Intel8250

可編程異步通訊接口

§4.3Intel8250

可編程異步通訊接口

714.3.18250的基本性能指標(biāo)①完全雙工、雙緩沖器發(fā)送和接收器的異步通信接口電路。②異步傳送:5~8位字符,時(shí)鐘頻率為通訊波特率的16倍。③通信波特率:50~9,600。④停止位可編程選擇為1、1.5和2位,可編程產(chǎn)生終止字符。⑤可編程選擇奇偶校驗(yàn)方式:奇校驗(yàn)、偶校驗(yàn)。⑥出錯(cuò)檢測——具有奇偶、溢出、幀錯(cuò)誤等檢測電路。⑦片內(nèi)具有優(yōu)先權(quán)中斷控制邏輯,具有很強(qiáng)的中斷控制能力。4.3.18250的基本性能指標(biāo)①完全雙工、雙緩沖器發(fā)送和724.3.28250的功能結(jié)構(gòu)4.3.28250的功能結(jié)構(gòu)734.3.2.1發(fā)送與接收部分⑴發(fā)送器發(fā)送器接收到發(fā)送數(shù)據(jù)后,將發(fā)送數(shù)據(jù)保存在數(shù)據(jù)發(fā)送緩沖器(THR)中。當(dāng)發(fā)送移位寄存器沒有正在發(fā)送的數(shù)據(jù)時(shí),8250把待發(fā)送數(shù)據(jù)由發(fā)送緩沖器傳送到移位寄存器(TSR),按照編程指定的參數(shù)(包括數(shù)據(jù)格式和波特率等),加入起始位、奇偶校驗(yàn)位和停止位,從8250的串行數(shù)據(jù)輸出端(SOUT)移位輸出,輸出的順序?yàn)樽址牡臀辉谇?、高位在后?.3.2.1發(fā)送與接收部分⑴發(fā)送器74當(dāng)將THR中的數(shù)據(jù)傳送至TSR以后,THR“空”狀態(tài)位置位或通過中斷邏輯發(fā)出中斷申請(qǐng),要求CPU傳送下一個(gè)字符。當(dāng)CPU向THR寫入一個(gè)字符后,THR“空”狀態(tài)位復(fù)位并清除中斷請(qǐng)求。當(dāng)在TSR中的字符移位輸出完后,8250再次把THR中的字符,傳送至TSR,開始下一個(gè)字符的傳送過程。另外,發(fā)送器的另一個(gè)功能是能發(fā)送終止符(BreakCharacter)。終止符是由在通信線上的連續(xù)的低電平組成,用來通知接收方終止完全雙工通信中通信。當(dāng)將THR中的數(shù)據(jù)傳送至TSR以后,THR“空”狀態(tài)位置位或75⑵接收器接收移位寄存器(RSR)對(duì)數(shù)據(jù)輸入端(SIN)輸入的串行數(shù)據(jù)進(jìn)行移位接收。在接收時(shí),首先要搜索起始位,使用16倍波特率的數(shù)據(jù)接收時(shí)鐘(RCLK)采樣傳送電路上的輸入信號(hào)。當(dāng)輸入信號(hào)由高電平變低后,連續(xù)測試8個(gè)RCLK時(shí)鐘周期,若采樣到的都是低電平,則確認(rèn)為起始位,否則認(rèn)為是傳輸線上的干擾。確認(rèn)起始位后,每隔16個(gè)RCLK時(shí)鐘周期對(duì)SIN輸入的數(shù)據(jù)位進(jìn)行采樣,直到規(guī)定的數(shù)據(jù)格式結(jié)束。⑵接收器76RSR接收完一個(gè)字符后,接收控制電路按規(guī)定的數(shù)據(jù)格式進(jìn)行奇偶校驗(yàn),如果沒有錯(cuò)誤自動(dòng)刪除起始位、奇偶校驗(yàn)位和停止位,把串行輸入的數(shù)據(jù)移位轉(zhuǎn)換成并行數(shù)據(jù)送人接收緩沖寄存器(RBR),使接收數(shù)據(jù)“可用位”置位,并通過中斷控制電路發(fā)出讀取數(shù)據(jù)中斷請(qǐng)求。對(duì)RBR的讀取,使接收數(shù)據(jù)“可用位”復(fù)位,清除中斷請(qǐng)求。在上述過程中接收器繼續(xù)接收字符。接收時(shí),如果發(fā)現(xiàn)接收數(shù)據(jù)出現(xiàn)奇偶校驗(yàn)錯(cuò)(PE)、數(shù)據(jù)格式錯(cuò)——幀錯(cuò)誤(FE)、接收數(shù)據(jù)時(shí)發(fā)生溢出錯(cuò)(OE),即上一個(gè)保存在RBR中的數(shù)據(jù)尚未被讀取,下一個(gè)接收的數(shù)據(jù)準(zhǔn)備送至RBR中、接收到終止信號(hào)(BI),都置位狀態(tài)寄存器中的相應(yīng)位,并通過中斷控制邏輯發(fā)出中斷請(qǐng)求,要求處理。RSR接收完一個(gè)字符后,接收控制電路按規(guī)定的數(shù)據(jù)格式進(jìn)行奇偶774.3.2.2通信控制和狀態(tài)寄存器4.3.2.2通信控制和狀態(tài)寄存器78通過對(duì)LCR寫入控制信息,確定通信的字符格式(包括字符長度、停止位的個(gè)數(shù)、奇偶校驗(yàn)設(shè)置)。也可以使LCR的第6位置“1”迫使8250輸出終止符。LCR的最高位是一種特殊用途,在8250內(nèi)部有10個(gè)寄存器,但8250只有三條地址線(A2~A0)來尋址內(nèi)部寄存器,最多只能尋址8個(gè)內(nèi)部寄存器,所以,存在有兩組寄存器要共用同一個(gè)地址,LCR的最高位DLAB作為另一個(gè)尋址依據(jù),來區(qū)分是尋址哪一組寄存器。通過對(duì)LCR寫入控制信息,確定通信的字符格式(包括字符長度、79LSR提供串行數(shù)據(jù)發(fā)送和接收時(shí)的狀態(tài),供CPU讀取和處理。CPU不僅可以對(duì)LSR實(shí)行讀出,也可以對(duì)其寫入(除第6位以外),供系統(tǒng)自檢時(shí)使用。LSR提供串行數(shù)據(jù)發(fā)送和接收時(shí)的狀態(tài),供CPU讀取和處理。C804.3.2.3波特率發(fā)生控制電路8250使用頻率1.8432MHz作為基準(zhǔn)時(shí)鐘輸入信號(hào)。需用分頻方法產(chǎn)生所需的波特率。8250傳送或接收串行數(shù)據(jù)時(shí),使用的時(shí)鐘信號(hào)頻率是數(shù)據(jù)傳送波特率的16倍。當(dāng)8250工作于不同的波特率時(shí),所使用的分頻系數(shù)也是不同的,在8250內(nèi)部有兩個(gè)保存分頻系數(shù)的寄存器稱為除數(shù)鎖存器。4.3.2.3波特率發(fā)生控制電路8250使用頻81波特率與除數(shù)寄存器的值之間的關(guān)系如表4-6示。

波特率與除數(shù)寄存器的值之間的關(guān)系如表4-6示。82大學(xué)《接口與通信》第4章2課件834.3.2.4調(diào)制解調(diào)控制部分D2/D3=1時(shí),引腳OUT1/OUT2=04.3.2.4調(diào)制解調(diào)控制部分D2/D384大學(xué)《接口與通信》第4章2課件854.3.2.5中斷控制1.中斷識(shí)別寄存器(IIR)當(dāng)接收數(shù)據(jù)錯(cuò)、接收緩沖寄存器滿、發(fā)送緩沖器空以及應(yīng)答聯(lián)絡(luò)的輸入控制信號(hào)的狀態(tài)變化等有一種或多種出現(xiàn)時(shí),在允許中斷的情況下,可通過讀中斷識(shí)別寄存器識(shí)別是何種事件引起中斷。4.3.2.5中斷控制1.中86大學(xué)《接口與通信》第4章2課件87有選擇地設(shè)置中斷允許位,可以改變8250內(nèi)部的中斷控制機(jī)構(gòu)。有選擇地設(shè)置中斷允許位,可以改變8250內(nèi)部的中斷控制機(jī)構(gòu)。884.3.2.68250內(nèi)部寄存器的尋址8250內(nèi)部有上述的10個(gè)可訪問的寄存器,都是通過8250的引腳A2~A0來訪問。存在有兩個(gè)端口地址由兩個(gè)寄存器共用的情況,這就要求引入另一個(gè)信號(hào)區(qū)別共用同一地址的寄存器。完成上述功能的選擇信號(hào)是8250中的通信線路控制寄存器最高位,即除數(shù)鎖存器訪問位(DLAB)來識(shí)別。參見表4-8。4.3.2.68250內(nèi)部寄存器的尋址82589表4-8用于8250內(nèi)部寄存器選擇地址表表4-8用于8250內(nèi)部寄存器選擇地址表904.3.38250的引腳4.3.38250的引腳914.3.3.1與系統(tǒng)相連接部分⑴數(shù)據(jù)線D0~D7(雙向、三態(tài)、高電平有效,引腳1~8)CPU與8250之間的信息通過這些數(shù)據(jù)線傳送。具體包括:對(duì)8250的編程信息;從8250的有關(guān)寄存器中讀取的狀態(tài);通過8250發(fā)送的數(shù)據(jù);8250接收的數(shù)據(jù);4.3.3.1與系統(tǒng)相連接部分92數(shù)據(jù)輸入選通脈沖DISTR、DISTR:兩者中只要有一個(gè)有效,就允許從8250讀取狀態(tài)信息或數(shù)據(jù)。即只需用兩個(gè)信號(hào)中的一個(gè)信號(hào)作為選通控制信號(hào),另一個(gè)可以固定為無效。數(shù)據(jù)輸出選通脈沖DOSTR、DOSTR:情況與數(shù)據(jù)輸入選通脈沖相似。⑵數(shù)據(jù)選通線數(shù)據(jù)輸入選通脈沖DISTR、DISTR:兩者中只要有一個(gè)有93驅(qū)動(dòng)器禁止信號(hào)DDIS(輸出):每當(dāng)CPU從8250讀取信息時(shí),DDIS變?yōu)榈碗娖?。輸出高電平時(shí),用來禁止外部的收發(fā)器繼續(xù)往PC機(jī)發(fā)送數(shù)據(jù)。⑶地址線A0~A2(輸入):這三條引線一般與系統(tǒng)地址總線相連,CPU用這三個(gè)信息來尋址8250內(nèi)部不同的寄存器。⑷選片控制信號(hào)CS0、CS1、CS2:三個(gè)選片控制信號(hào),必須三個(gè)信號(hào)都有效時(shí)8250才能正常工作。一般用CPU訪問外設(shè)控制線和高位地址組成選片信號(hào)。驅(qū)動(dòng)器禁止信號(hào)DDIS(輸出):每當(dāng)CPU從8250讀取信息94⑸地址選通脈沖ADS(輸入):其有效時(shí),鎖存地址(A0、Al、A2)和選片信號(hào)(CS0、CS1、CS2)。⑹主復(fù)位信號(hào)MR(輸入):該信號(hào)連接到系統(tǒng)的復(fù)位信號(hào)。當(dāng)其有效時(shí),清除所有寄存器(除了接收緩沖器、發(fā)送緩沖器和除數(shù)鎖存器外)和8250的控制邏輯以及有關(guān)的輸出信號(hào),如表4-9所示。⑸地址選通脈沖ADS(輸入):其有效時(shí),鎖存地址(A0、Al95大學(xué)《接口與通信》第4章2課件964.3.3.2與通信設(shè)備相連部分⑴外部時(shí)鐘輸人/輸出XTAL1、XTAL2(引腳16、17):這兩個(gè)引腳把串行通信的主定時(shí)基準(zhǔn)信號(hào)(晶體振蕩器或時(shí)鐘信號(hào))接到8250。⑵接收時(shí)鐘RCLK(輸入、引腳9):從這個(gè)引腳向8250輸人16×波特率的接收器時(shí)鐘。⑶BOUNDOUT波特率輸出(輸出、引腳15):是8250輸出的一個(gè)時(shí)鐘信號(hào),其頻率是8250的主振頻率除以除數(shù)鎖存器的值,即為16×波特率。通常可用該信號(hào)作為接收器時(shí)鐘,所以常把它連至RCLK輸入端。4.3.3.2與通信設(shè)備相連部分⑴外部時(shí)鐘輸97⑷串行數(shù)據(jù)輸入信號(hào)SIN(輸入):由通信設(shè)備(外設(shè)或調(diào)制解調(diào)器)送來的串行的輸人數(shù)據(jù)。⑸串行數(shù)據(jù)輸出信號(hào)SOUT(輸出):8250發(fā)送給通信設(shè)備(外設(shè)或調(diào)制解調(diào)器)的串行輸出數(shù)據(jù)。⑹數(shù)據(jù)終端準(zhǔn)備就緒DTR(輸出):可由CPU使調(diào)制解調(diào)控制寄存器的位0(DTR位)置“1”而輸出有效(低電平),主復(fù)位信號(hào)MR把它置為高電平。通常情況下,當(dāng)8250已準(zhǔn)備好通信,這有效信號(hào)用以通知通信設(shè)備或調(diào)制解調(diào)器。⑷串行數(shù)據(jù)輸入信號(hào)SIN(輸入):由通信設(shè)備(外設(shè)或調(diào)制解調(diào)98⑺發(fā)送請(qǐng)求RTS(輸出):當(dāng)8250已準(zhǔn)備好通信,使RTS輸出有效信號(hào)以通知通信設(shè)備。此信號(hào)可由CPU使調(diào)制解調(diào)控制寄存器的位1(RTS位)置“1”而輸出有效(低電平),主復(fù)位信號(hào)把它置為高電平。⑻允許發(fā)送CTS(輸入):當(dāng)調(diào)制解調(diào)器作好了通信準(zhǔn)備時(shí),向8250輸入有效的CTS信號(hào),通知8250開始發(fā)送。它的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第4位得到。調(diào)制解調(diào)器狀態(tài)寄存器的位0,指示自最后一次讀操作以來,CTS的輸入狀態(tài)是否發(fā)生變化。如果編程允許調(diào)制解調(diào)器狀態(tài)中斷,CTS狀態(tài)的變化就產(chǎn)生中斷請(qǐng)求。⑺發(fā)送請(qǐng)求RTS(輸出):當(dāng)8250已準(zhǔn)備好通信,使RTS輸99⑼數(shù)據(jù)設(shè)備準(zhǔn)備就緒DSR(輸入):當(dāng)調(diào)制解調(diào)器或通信設(shè)備已準(zhǔn)備好建立通信環(huán)路(鏈)準(zhǔn)備與8250傳送數(shù)據(jù)時(shí),就向8250輸送有效的DSR信號(hào)。它的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第5位得到,此寄存器的第1位指示了自上次讀操作后此信號(hào)是否發(fā)生了變化。若允許調(diào)制解調(diào)器狀態(tài)中斷的話,DSR狀態(tài)的變化就產(chǎn)生中斷請(qǐng)求。⑽接收線路檢測RLSD和振鈴指示RI(輸入):它們?yōu)榈碗娖?有效)時(shí),表示通信設(shè)備已檢測到數(shù)據(jù)串(RLSD)或收到了振鈴信號(hào)(RI)。它們的狀態(tài)可由讀調(diào)制解調(diào)狀態(tài)寄存器的第7、6位得到,此寄存器的第3、2位分別表示自上一次讀操作以后這些信號(hào)是否發(fā)生了變化。若允許調(diào)制解調(diào)器狀態(tài)中斷,這兩信號(hào)中的任意一個(gè)狀態(tài)發(fā)生變化,都將產(chǎn)生中斷請(qǐng)求。⑼數(shù)據(jù)設(shè)備準(zhǔn)備就緒DSR(輸入):當(dāng)調(diào)制解調(diào)器或通信設(shè)備已準(zhǔn)100⑾中斷請(qǐng)求信號(hào)INTRPT(輸出):8250內(nèi)部的中斷申請(qǐng)?jiān)慈我粋€(gè)未被屏蔽源有請(qǐng)求時(shí),INTRPT輸出高電平。適當(dāng)?shù)闹袛喾?wù)和主復(fù)位信號(hào)使INTRPT處于低電平。⑿輸出信號(hào)OUT1、OUT2(輸出):是兩個(gè)編程控制的輸出??蓪?duì)調(diào)制解調(diào)器控制寄存器的第2位和第3位編程使其輸出有效信號(hào)。主復(fù)位信號(hào)使這兩者處在高電平。⒀選片輸出CSOUT(輸出):當(dāng)8250的三個(gè)選片輸入端CS0、CS1和CS2都有效時(shí),此引腳輸出高電平,此時(shí)才能開始數(shù)據(jù)傳送。⑾中斷請(qǐng)求信號(hào)INTRPT(輸出):8250內(nèi)部的中斷申請(qǐng)?jiān)?01§4.3.48250的初始化編程編程主要步驟是:①確定波特率:設(shè)置除數(shù)鎖存器的分頻值。為了能對(duì)除數(shù)鎖存器寫入,要先使通信線路控制寄存器的D7=1。②設(shè)置通信的數(shù)據(jù)格式:通過對(duì)通信線路控制寄存器編程實(shí)現(xiàn),而且要使它的D7=0,以便接下來對(duì)接收和發(fā)送緩沖器以及中斷允許寄存器進(jìn)行操作。③如果使用中斷,則設(shè)置中斷允許寄存器的狀態(tài)。若不使用中斷,這個(gè)寄存器可設(shè)置成0。§4.3.48250的初始化編程編程主102④設(shè)置調(diào)制解調(diào)器控制寄存器:通常,這寄存器設(shè)定的值為03H,使8250輸出DTR和RTS這兩個(gè)調(diào)制解調(diào)器控制信號(hào)。如果系統(tǒng)中不使用這兩個(gè)信號(hào),這樣的設(shè)置也不會(huì)帶來問題。如果使用中斷,OUT2位應(yīng)設(shè)置為“1”,這樣8250產(chǎn)生的中斷信號(hào)可以通過系統(tǒng)總線送給8259中斷控制器。④設(shè)置調(diào)制解調(diào)器控制寄存器:通常,這寄存器設(shè)定的值為03H,103大學(xué)《接口與通信》第4章2課件104大學(xué)《接口與通信》第4章2課件105下面舉一個(gè)例子:要求以9600波特率進(jìn)行異步通信,每字符的數(shù)據(jù)位7位,2個(gè)停止位,奇校驗(yàn),允許所有中斷。下面給出了采用8086匯編編寫的8250初始化部分程序。;BIOS分配異步通信的端口地址為3F8H~3FFH下面舉一個(gè)例子:要求以9600波特率進(jìn)行異步通信,每字符的數(shù)106MOVAL,80HMOVDX,3FBHOUTDX,AL ;使通信線控制寄存器最高位置1MOVAL,0CHMOVDX,3F8HOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,AL ;對(duì)除數(shù)鎖存器置初值MOVAL,80H107MOVAL,00001110B;設(shè)置數(shù)據(jù)格式為7位/字符兩個(gè)停止位,奇校驗(yàn)MOVDX,3FBHOUTDX,ALMOVAL,0FH ;允許所有中斷MOVDX,3F9HOUTDX,ALMOVAL,OBH;OUT2、DTR、RTS信號(hào)有效MOVDX,3FCHOUTDX,ALMOVAL,00001110B;設(shè)置數(shù)據(jù)格式為7位/字符兩108§4.3.5INS8250應(yīng)用編程1、查詢方式發(fā)送初始化8250讀LSRD5=1?發(fā)送一個(gè)字符發(fā)完?結(jié)束YYNN2、查詢方式接收初始化8250讀LSRD0=1?接收一個(gè)字符收完?結(jié)束YYNN有錯(cuò)?NY錯(cuò)誤處理發(fā)送寄存器接收數(shù)據(jù)就緒§4.3.5INS8250應(yīng)用編程1、查詢方式109大學(xué)《接口與通信》第4章2課件1103、中斷方式通信程序設(shè)計(jì)1)中斷通信方式初始化

修改中斷向量:按使用的端口COM1或COM2,接管中斷0CH或中斷0BH(保存原中斷向量,將新的中斷向量替換上去,注意程序結(jié)束時(shí)恢復(fù)原中斷向量)。確定通信協(xié)議:設(shè)置波特率及數(shù)據(jù)傳輸格式。

確定INS8250操作方式:設(shè)置中斷允許寄存器相應(yīng)位的允許或禁止,并設(shè)允許向量中斷模式(置MCR的D3=1)。

開放通信中斷:對(duì)8259A中斷控制器的屏蔽寄存器編程(OCW1),允許中斷IRQ4或IRQ3。中斷通信方式有查詢中斷和向量中斷兩種方式。3、中斷方式通信程序設(shè)計(jì)1)中斷通信方式初始化修改中斷向111DATA SEGMENT‘DATA’ INT_SEGDW? INT_OFFDW?DATA ENDS ……mov al,0ch ;取原OCH中斷向量mov ah,35h int 21hmov INT_OFF,bx ;將返回的向量ES:BX保存在雙字mov bx,es ;變量INT中mov INT_SEG,bx cli;修改中斷向量前關(guān)中斷mov al,0chmov ah,25h mov dx,SEGINSEV ;DS:DX指向中斷向量,其中mov ds,dx ;DS指向段地址mov dx,OFFSETINSEV ;DX指向偏移量int 21hDATA SEGMENT‘DATA’cli112mov dx,3fbh ;線路控制寄存器LCR地址

out dx,80h ;置DLAB=1mov dx,3f8h ;低位除數(shù)寄存器DLL地址out dx,0ch ;寫9600波特率的除數(shù)低8位inc dx ;高位除數(shù)寄存器DLH地址out dx,00h ;寫9600波特率的除數(shù)高8位mov dx,3fbh ;線路控制寄存器LCR地址mov al,00011011b;偶校驗(yàn)、1位停止位、8位數(shù)據(jù)位out dx,al mov dx,3fch ;MODEM控制寄存器MCR地址out dx,08h ;OUT2位置1,打開COM1中斷mov dx,3f9h ;中斷允許寄存器地址out dx,03h ;允許收/發(fā)中斷in al,21h ;讀8259A的IMRand al,efh out 21h,al ;開放IRQ4中斷sti……mov dx,3fbh ;線路控制寄存器LCR地址 mov 113

D5D4D3D2D1D0WLS0WLS1PENSTBEPSSPSBDLAB字符長度選擇00——5位01——6位10——7位11——8位停止位選擇0——1位1——1.5位(D1D0=00)2位(D1D0<>00)奇偶校驗(yàn)允許奇偶校驗(yàn)選擇11——偶校驗(yàn)01——奇校驗(yàn)附加奇偶標(biāo)志位選擇0——不附加1——附加1位中止設(shè)置1—中止0—正常除數(shù)寄存器訪問允許0——禁止1——允許8250中的通信線路控制寄存器D7D6D5D4D3D2D1D0D5D4D3D21142)通信中斷服務(wù)程序首先讀中斷識(shí)別寄存器IIR,判斷中斷源,然后轉(zhuǎn)向?qū)?yīng)的處理子過程(程序)。判斷中斷源應(yīng)該按照中斷優(yōu)先級(jí)別次序進(jìn)行。

當(dāng)中斷識(shí)別寄存器D2D1=11時(shí),表明接收出錯(cuò)中斷,需要再讀取線路狀態(tài)寄存器,分析錯(cuò)誤原因,再進(jìn)行錯(cuò)誤處理。

可能出現(xiàn)多個(gè)中斷源同時(shí)引發(fā)中斷。因此,每處理完一種中斷源后,應(yīng)繼續(xù)讀取中斷識(shí)別寄存器,檢測D0是否為“0”,當(dāng)D0=0時(shí),表明還有未決中斷,應(yīng)該繼續(xù)分析中斷源并進(jìn)行中斷處理。

中斷程序返回的條件是中斷識(shí)別寄存器的D0=1。2)通信中斷服務(wù)程序首先讀中斷識(shí)別寄存器IIR,判斷中斷115§4.4Intel8251A可編程通信接口4.4.18251的性能指標(biāo)①可用于串行通訊的同步和異步傳送。②同步傳送:5~8位/字符,內(nèi)部或外部同步,可自動(dòng)插入同步字符。③異步傳送:5~8位/字符,時(shí)鐘速率為通信波特率的1、16或64倍。④可產(chǎn)生終止字符(BreakCharacter);可產(chǎn)生1、1.5或2個(gè)位的停止位。自動(dòng)檢測和處理終止字符。⑤可檢查假的啟動(dòng)位?!?.4Intel8251A可編程通信接口4.4.116⑥波特率:異步傳送的最大波特率為19.2K;同步傳送的最大波特率64K。⑦完全雙工,發(fā)送和接收雙緩沖器。⑧出錯(cuò)檢測——具有奇偶、溢出、幀錯(cuò)誤等檢測電路。⑥波特率:異步傳送的最大波特率為19.2K;同步傳送的最大波1174.4.28251的功能結(jié)構(gòu)4.4.28251的功能結(jié)構(gòu)118大學(xué)《接口與通信》第4章2課件119⑶I/O控制⑶I/O控制1204.4.38251的接口信號(hào)命令,狀態(tài)/數(shù)據(jù)同步檢測信號(hào)數(shù)據(jù)終端準(zhǔn)備好數(shù)據(jù)裝置準(zhǔn)備好請(qǐng)求傳送允許傳送接收器時(shí)鐘發(fā)送器時(shí)鐘4.4.38251的接口信號(hào)命令,狀態(tài)/1214.4.48251的編程8251是一個(gè)可編程的多功能通信接口。使用時(shí)必須對(duì)它進(jìn)行初始化編程,確定8251的具體工作方式。例如:規(guī)定工作于同步還是異步方式;傳送的波特率;字符格式等等。初始化編程必須在系統(tǒng)復(fù)位以后,啟動(dòng)8251工作以前進(jìn)行。正確寫控制字的順序如圖所示。4.4.48251的編程8251是一個(gè)可編程的多功能通信接122大學(xué)《接口與通信》第4章2課件123工作方式字格式工作方式字格式124在同步方式時(shí),緊跟在方式指令后面的是由程序輸入的同步字符。同步字符用與方式指令類似的方法由CPU發(fā)送給8251的。在輸入同步字符后,或在異步方式時(shí),在方式選擇指令后應(yīng)由CPU發(fā)送工作命令指令。命令指令直接使8251處于規(guī)定的工作狀態(tài)。以準(zhǔn)備接收或發(fā)送數(shù)據(jù)。命令字格式如圖4-29在同步方式時(shí),緊跟在方式指令后面的是由程序輸入的同步字符。125RXESBRKERRTSTXENDTRIREHRXESBRKERRTSTXENDTRIREH允許發(fā)送“1”允許“0”不允許數(shù)據(jù)終端就緒:“1”使DTR輸出為低允許接收“1”允許“0”不允許送間隔字符“1”使TXD為低“0”正常工作出錯(cuò)標(biāo)志復(fù)位:“1”使PE、OE、TE標(biāo)志復(fù)位請(qǐng)求發(fā)送:“1”使RTS輸出變低內(nèi)部復(fù)位:“1”使芯片回到方式指令狀態(tài)進(jìn)入搜索態(tài):“1”使開始搜索同步字符D7

D6D5D4D3D2D1D0RXESBRKERRTSTXENDTRIREHRXESBRK126對(duì)8251的工作狀態(tài),CPU可通過I/O讀操作把8251的狀態(tài)字讀人CPU,用以控制CPU與8251之間的數(shù)據(jù)交換。在讀狀態(tài)字時(shí),C/D端為“1”。狀態(tài)字格式如圖4-30所示。對(duì)8251的工作狀態(tài),CPU可通過I/O讀操作把8251的狀127它只要數(shù)據(jù)緩沖器空就置位;而引腳TxRDY只能當(dāng)條件:數(shù)據(jù)緩沖器空·CTS·TxEN成立時(shí),才置位。它只要數(shù)據(jù)緩沖器空就置位;而引腳TxRDY只能當(dāng)條件:數(shù)據(jù)緩128§4.4.58251應(yīng)用舉例例4-2:8251工作在異步方式,波特率速度系數(shù)為64,字符長度為7位,偶校驗(yàn)。方式控制字為11111011B即0FBH。用命令字使8251發(fā)送允許,接收允許,使錯(cuò)誤位復(fù)位,則命令字為00010101B即15H。設(shè)備端口號(hào)為0F1H(C/D=1)和0F0H(C/D=0),則在主程序的初始化程序?yàn)椋骸?.4.58251應(yīng)用舉例例4-2:129MOVAL,0FBH;方式控制字OUT0F1H,ALMOVAL,15H;工作命令字OUT0F1H,AL于是8251做好了準(zhǔn)備,能接收和發(fā)送數(shù)據(jù)。如果由于發(fā)送或接收而產(chǎn)生中斷請(qǐng)求,則引起CPU中斷,于是CPU進(jìn)人中斷服務(wù)程序。其中斷服務(wù)程序?yàn)椋篗OVAL,0FBH;方式控制字130INT:PUSHAXPUSHBXINAL,0FlHRCRAL,1;TxRDY=1轉(zhuǎn)至發(fā)送JCSISPRCRAL,1JCRISP;RxRDY=1轉(zhuǎn)至接收REN:POPBXMOVAL,20H;發(fā)EOI命令OUT20H,ALPOPAXSTIRETIINT:PUSHAX131RISP:

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論