微機原理 第七章 串行通信接口技術(shù)_第1頁
微機原理 第七章 串行通信接口技術(shù)_第2頁
微機原理 第七章 串行通信接口技術(shù)_第3頁
微機原理 第七章 串行通信接口技術(shù)_第4頁
微機原理 第七章 串行通信接口技術(shù)_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、可編程串行通信接口芯片可編程串行通信接口芯片8251A在串行通信時,收發(fā)雙方要解決的問題在串行通信時,收發(fā)雙方要解決的問題: :n以何種速率進行數(shù)據(jù)的發(fā)送和接收(以何種速率進行數(shù)據(jù)的發(fā)送和接收(波特率波特率)n采用何種數(shù)據(jù)格式(采用何種數(shù)據(jù)格式(幀格式幀格式)n接收方如何得知一批數(shù)據(jù)的開始和結(jié)束(接收方如何得知一批數(shù)據(jù)的開始和結(jié)束(幀同步幀同步)n接收方如何從位流中正確地采樣到位數(shù)據(jù)(接收方如何從位流中正確地采樣到位數(shù)據(jù)(位同步位同步)n接收方如何判斷收到數(shù)據(jù)的正確性(接收方如何判斷收到數(shù)據(jù)的正確性(數(shù)據(jù)校驗數(shù)據(jù)校驗)n收發(fā)出錯時如何處理(收發(fā)出錯時如何處理(出錯處理出錯處理)串行通信的基本概

2、念串行通信的基本概念全雙工方式全雙工方式站站A站站B站站A站站B站站A站站B半雙工方式半雙工方式單工方式單工方式1. 數(shù)據(jù)傳送方向數(shù)據(jù)傳送方向2. 串行通信的兩種基本方式串行通信的兩種基本方式(1)異步通信及其協(xié)議)異步通信及其協(xié)議所謂的異步通信,是指通信中兩個字符的時間間所謂的異步通信,是指通信中兩個字符的時間間隔是不固定的,而同一字符中的相鄰代碼間時間隔是不固定的,而同一字符中的相鄰代碼間時間間隔是固定的間隔是固定的n串行異步通信以字符為單位進行傳輸,用串行異步通信以字符為單位進行傳輸,用起始位表示字符的開始,用停止位表示字起始位表示字符的開始,用停止位表示字符結(jié)束,其通信協(xié)議是符結(jié)束,其

3、通信協(xié)議是起止式異步通信協(xié)起止式異步通信協(xié)議議n串行通信時的數(shù)據(jù)、控制和狀態(tài)信息都使串行通信時的數(shù)據(jù)、控制和狀態(tài)信息都使用同一根信號線傳送用同一根信號線傳送n收發(fā)雙方必須遵守共同的通信協(xié)議(通信收發(fā)雙方必須遵守共同的通信協(xié)議(通信規(guī)程),才能解決傳送速率、信息格式、規(guī)程),才能解決傳送速率、信息格式、位同步、字符同步、數(shù)據(jù)校驗等問題位同步、字符同步、數(shù)據(jù)校驗等問題(2)同步通信及其協(xié)議)同步通信及其協(xié)議同步通信以一個數(shù)據(jù)塊為傳輸單位,每個數(shù)據(jù)塊附同步通信以一個數(shù)據(jù)塊為傳輸單位,每個數(shù)據(jù)塊附加加1個或個或2個同步字符,最后以校驗字符結(jié)束個同步字符,最后以校驗字符結(jié)束 同步通信協(xié)議有多種,常用的有

4、面向比特的高級數(shù)據(jù)鏈路同步通信協(xié)議有多種,常用的有面向比特的高級數(shù)據(jù)鏈路控制協(xié)議控制協(xié)議HDLC(High-Level Data Link Control)。)。IBM系列系列微機中常用的同步數(shù)據(jù)鏈路控制協(xié)議微機中常用的同步數(shù)據(jù)鏈路控制協(xié)議SDLC(Synchronous Data Link Control)則是)則是HDLC的子集的子集n同步通信的特點是不僅字符內(nèi)部保持同步通信的特點是不僅字符內(nèi)部保持“同同步步”,而且字符與字符之間也是同步的。,而且字符與字符之間也是同步的。n在這種通信方式下,收在這種通信方式下,收/發(fā)雙方必須建立準(zhǔn)確發(fā)雙方必須建立準(zhǔn)確的位定時信號,也就是收的位定時信號,也

5、就是收/發(fā)時鐘的頻率必須發(fā)時鐘的頻率必須嚴(yán)格地一致。嚴(yán)格地一致。n每個字符不增加任何附加位,而是連續(xù)發(fā)送每個字符不增加任何附加位,而是連續(xù)發(fā)送3. 波特率與收波特率與收/發(fā)時鐘發(fā)時鐘n串行傳輸速率也稱串行傳輸速率也稱波特率波特率(Baud Rate)n每秒傳輸?shù)亩M制位數(shù)每秒傳輸?shù)亩M制位數(shù)bpsn字符中每個二進制位持續(xù)的時間長度都一樣,為數(shù)據(jù)字符中每個二進制位持續(xù)的時間長度都一樣,為數(shù)據(jù)傳輸速率的倒數(shù)傳輸速率的倒數(shù)(1)串行傳輸速率)串行傳輸速率字符速率與波特率兩者關(guān)系字符速率與波特率兩者關(guān)系 字符速率:每秒鐘傳輸?shù)淖址麛?shù)。字符速率:每秒鐘傳輸?shù)淖址麛?shù)。波特率:指單位時間內(nèi)傳送二進制數(shù)據(jù)的波

6、特率:指單位時間內(nèi)傳送二進制數(shù)據(jù)的位數(shù)。單位為:位數(shù)。單位為:b/s例例: : 異步傳輸過程異步傳輸過程 設(shè)每個字符對應(yīng)設(shè)每個字符對應(yīng)1 1個起始位、個起始位、7 7個信息位、個信息位、1 1個個奇偶校驗位和奇偶校驗位和1 1個停止位,如果波特率為個停止位,如果波特率為1200bps1200bps,那么,每秒鐘能傳輸?shù)淖畲笞址麛?shù)為那么,每秒鐘能傳輸?shù)淖畲笞址麛?shù)為1200/101200/10120120個個例例2:2:同步傳輸同步傳輸 用用1200bps1200bps的波特率工作,用的波特率工作,用4 4個同步字個同步字符作為信息幀頭部,但不用奇偶校驗,那符作為信息幀頭部,但不用奇偶校驗,那么

7、, 傳 輸么 , 傳 輸 1 0 01 0 0 個 字 符 所 用 的 時 間 為個 字 符 所 用 的 時 間 為7(100+4)/12007(100+4)/12000.6067s0.6067s,這就是說,每,這就是說,每秒鐘能傳輸?shù)淖址麛?shù)可達到秒鐘能傳輸?shù)淖址麛?shù)可達到100/0.6067100/0.6067165165個。個??梢?,可見,在同樣的傳輸率下,同步傳輸時在同樣的傳輸率下,同步傳輸時實際字符傳輸率要比異步傳輸時高實際字符傳輸率要比異步傳輸時高。 (2) 發(fā)送發(fā)送/接收時鐘接收時鐘發(fā)送發(fā)送/接收時鐘頻率與接收時鐘頻率與波特率之間的關(guān)系為:波特率之間的關(guān)系為:發(fā)送發(fā)送/接收時鐘頻率接

8、收時鐘頻率=n 發(fā)送發(fā)送/接收接收波特率波特率例:要求傳輸速率為例:要求傳輸速率為1200 bps當(dāng)選擇當(dāng)選擇n=16時,時,表明一位數(shù)字信號中有表明一位數(shù)字信號中有16個時個時鐘脈沖,故發(fā)送鐘脈沖,故發(fā)送/接收時鐘頻率為:接收時鐘頻率為: 1200 16=19.2kHz其中其中n稱為波特因子,一般稱為波特因子,一般n=1,16,32,64 n調(diào)制和解調(diào)調(diào)制和解調(diào) 長距離通信時,常需要利用電話線路,它的頻帶則只有長距離通信時,常需要利用電話線路,它的頻帶則只有300Hz300Hz3400Hz3400Hz。為了通過電話線路傳輸數(shù)字信號,必須先。為了通過電話線路傳輸數(shù)字信號,必須先把數(shù)字信號轉(zhuǎn)換為

9、適合在電話線路上傳送的模擬信號,這就把數(shù)字信號轉(zhuǎn)換為適合在電話線路上傳送的模擬信號,這就是調(diào)制;經(jīng)過電話線路傳輸后,在接收端再將模擬信號轉(zhuǎn)換是調(diào)制;經(jīng)過電話線路傳輸后,在接收端再將模擬信號轉(zhuǎn)換為數(shù)字信號,這就是解調(diào)。為數(shù)字信號,這就是解調(diào)。 n調(diào)制方法調(diào)制方法 : 移頻鍵控(移頻鍵控(FSKFSK) 移相鍵控移相鍵控PSK PSK 振幅鍵控(振幅鍵控(ASKASK)4. 信號的調(diào)制解調(diào)信號的調(diào)制解調(diào)nRS-232CRS-232C信號定義的說明信號定義的說明 RS-232CRS-232C的的2525個插腳僅定義個插腳僅定義2222個。在微機通信個。在微機通信中,通常使用的中,通常使用的RS-23

10、2CRS-232C接口信號只有接口信號只有9 9根引腳根引腳(P299,P299,圖圖7-377-37)5. RS232C接口接口nRS-232CRS-232C總線的電氣規(guī)范總線的電氣規(guī)范nRS-232CRS-232C標(biāo)準(zhǔn)與標(biāo)準(zhǔn)與TTL標(biāo)準(zhǔn)之間的轉(zhuǎn)換標(biāo)準(zhǔn)之間的轉(zhuǎn)換常用于將常用于將TTLTTL電平轉(zhuǎn)換為電平轉(zhuǎn)換為RS-232CRS-232C電平的芯片,除電平的芯片,除MC1488MC1488外外還有還有7518875188,7515075150等;用于將等;用于將RS-232CRS-232C電平轉(zhuǎn)換為電平轉(zhuǎn)換為TTLTTL電電平,除平,除MC1489MC1489外,還有外,還有751897518

11、9,7515475154等等nRS-232CRS-232C的應(yīng)用的應(yīng)用n使用使用MODEMMODEM連接連接n直接連接直接連接n三線連接三線連接n計算機通常使用計算機通常使用UART來實現(xiàn)數(shù)據(jù)的串來實現(xiàn)數(shù)據(jù)的串/并和并和并并/串轉(zhuǎn)換串轉(zhuǎn)換nUART的基本原理(的基本原理(P301,圖圖7-39、7-40)nUART的工作過程的工作過程n常用的錯誤標(biāo)志常用的錯誤標(biāo)志n奇偶校驗錯奇偶校驗錯n幀錯誤幀錯誤n溢出(丟失)錯誤溢出(丟失)錯誤6. 通用異步收發(fā)器通用異步收發(fā)器(UART)可編程異步通信接口可編程異步通信接口INS82508250的基本功能:的基本功能:n全雙工、雙緩沖器接收和發(fā)送全雙工、

12、雙緩沖器接收和發(fā)送n15種波特率,種波特率,50-9600bpsn可編程的異步通信格式可編程的異步通信格式n提供奇偶、溢出和幀校驗等錯誤檢測提供奇偶、溢出和幀校驗等錯誤檢測n片內(nèi)具有優(yōu)先權(quán)中斷控制邏輯片內(nèi)具有優(yōu)先權(quán)中斷控制邏輯8250的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)8250芯片引腳定義與功能芯片引腳定義與功能(1)面向CPU一側(cè)的引腳(1)n數(shù)據(jù)線數(shù)據(jù)線D7 D0 :在:在CPU與與8250之間交換信息之間交換信息n地址線地址線A0A2:尋址:尋址8250內(nèi)部寄存器內(nèi)部寄存器n片選線:片選線:8250設(shè)計了設(shè)計了3個片選輸入信號個片選輸入信號CS0、CS1、CS2*和一個片選輸出信號和一個片選輸出信號CS

13、OUT。3個片個片選輸入都有效時,才選中選輸入都有效時,才選中8250芯片,同時芯片,同時CSOUT輸出高電平有效。輸出高電平有效。n地址選通信號地址選通信號ADS*:當(dāng)該信號低有效時,鎖存:當(dāng)該信號低有效時,鎖存上述地址線和片選線的輸入狀態(tài),保證讀寫期間上述地址線和片選線的輸入狀態(tài),保證讀寫期間的地址穩(wěn)定的地址穩(wěn)定(1)處理器接口引腳(2)n讀控制線讀控制線n數(shù)據(jù)輸入選通數(shù)據(jù)輸入選通DISTR(高有效)和(高有效)和DISTR*(低有效)(低有效)有一個信號有效,有一個信號有效,CPU從從8250內(nèi)部寄存器讀出數(shù)據(jù)內(nèi)部寄存器讀出數(shù)據(jù)n相當(dāng)于相當(dāng)于I/O讀信號讀信號n寫控制線寫控制線n數(shù)據(jù)輸出

14、選通數(shù)據(jù)輸出選通DOSTR(高有效)和(高有效)和DOSTR*(低有(低有效)有一個有效,效)有一個有效,CPU就將數(shù)據(jù)寫入就將數(shù)據(jù)寫入8250內(nèi)部寄存器內(nèi)部寄存器n相當(dāng)于相當(dāng)于I/O寫信號寫信號n8250讀寫控制信號有兩對,每對信號作用完全相讀寫控制信號有兩對,每對信號作用完全相同,只不過有效電平不同而己同,只不過有效電平不同而己(1)處理器接口引腳(3)n驅(qū)動器禁止信號驅(qū)動器禁止信號DDIS:CPU從從8250讀取數(shù)讀取數(shù)據(jù)時,據(jù)時,DDIS引腳輸出低電平,用來禁止外引腳輸出低電平,用來禁止外部收發(fā)器對系統(tǒng)總線的驅(qū)動;其它時間,部收發(fā)器對系統(tǒng)總線的驅(qū)動;其它時間,DDIS為高電平為高電平n

15、主復(fù)位線主復(fù)位線MR:硬件復(fù)位信號:硬件復(fù)位信號RESETn中斷請求線中斷請求線INTRPT:8250有有4級共級共10個中個中斷源,當(dāng)任一個未被屏蔽的中斷源有請求斷源,當(dāng)任一個未被屏蔽的中斷源有請求時,時,INTRPT輸出高電平向輸出高電平向CPU請求中斷請求中斷(2)面向外設(shè)引腳信號8250數(shù)據(jù)裝置準(zhǔn)備好數(shù)據(jù)裝置準(zhǔn)備好DSR*數(shù)據(jù)終端準(zhǔn)備好數(shù)據(jù)終端準(zhǔn)備好DTR*發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)SOUT接收數(shù)據(jù)接收數(shù)據(jù)SIN請求發(fā)送請求發(fā)送RTS*允許發(fā)送允許發(fā)送CTS*信號地信號地GND載波檢測載波檢測RLSD*振鈴指示振鈴指示RI*(3)時鐘信號n時鐘輸入引腳時鐘輸入引腳XTAL1:8250的基準(zhǔn)工作時

16、鐘的基準(zhǔn)工作時鐘n時鐘輸出引腳時鐘輸出引腳XTAL2:基準(zhǔn)時鐘信號的輸出端基準(zhǔn)時鐘信號的輸出端n波特率輸出引腳波特率輸出引腳BAUDOUT*:基準(zhǔn)時鐘經(jīng):基準(zhǔn)時鐘經(jīng)8250內(nèi)部波特率發(fā)生器分頻后產(chǎn)生發(fā)送時鐘,為波特內(nèi)部波特率發(fā)生器分頻后產(chǎn)生發(fā)送時鐘,為波特率率16倍倍n接收時鐘引腳接收時鐘引腳RCLK:接收外部提供的接收時鐘接收外部提供的接收時鐘信號;若采用發(fā)送時鐘作為接收時鐘,則只要將信號;若采用發(fā)送時鐘作為接收時鐘,則只要將RCLK引腳和引腳和BAUDOUT*引腳直接相連引腳直接相連(4)輸出線nOUT1*和和OUT2*:n兩個一般用途的輸出信號兩個一般用途的輸出信號n由調(diào)制解調(diào)器控制寄存

17、器的由調(diào)制解調(diào)器控制寄存器的D2和和D3使其輸出使其輸出低電平有效信號低電平有效信號n復(fù)位使其恢復(fù)為高復(fù)位使其恢復(fù)為高8250的寄存器及編程方法的寄存器及編程方法n8250內(nèi)部有內(nèi)部有10個個可訪問的寄存器,除數(shù)可訪問的寄存器,除數(shù)寄存器是寄存器是16位的,占用兩個連續(xù)的位的,占用兩個連續(xù)的8位端位端口口n內(nèi)部寄存器用引腳內(nèi)部寄存器用引腳A0A2來尋址;同時還來尋址;同時還要利用通信線路控制寄存器的最高位,即要利用通信線路控制寄存器的最高位,即除數(shù)寄存器訪問位除數(shù)寄存器訪問位DLAB的的0和和1兩種狀態(tài),兩種狀態(tài),來區(qū)別公用來區(qū)別公用1個端口地址所訪問的兩個寄個端口地址所訪問的兩個寄存器存器8

18、250內(nèi)部寄存器端口地址適配器地址適配器地址DLAB A2A1A0訪問寄存器名稱訪問寄存器名稱3F8H00 0 0接收數(shù)據(jù)寄存器(讀)接收數(shù)據(jù)寄存器(讀)發(fā)送保持寄存器(寫)發(fā)送保持寄存器(寫)3F9H 00 0 1中斷允許寄存器中斷允許寄存器3F8H 10 0 0波特率除數(shù)鎖存寄存器(低字節(jié))波特率除數(shù)鎖存寄存器(低字節(jié))3F9H 10 0 1波特率除數(shù)鎖存寄存器(高字節(jié))波特率除數(shù)鎖存寄存器(高字節(jié))3FAH 0 1 0中斷識別寄存器中斷識別寄存器3FBH 0 1 1線路控制寄存器線路控制寄存器3FCH 1 0 0MODEM控制寄存器控制寄存器3FDH 1 0 1線路狀態(tài)寄存器線路狀態(tài)寄存

19、器3FEH 1 1 0MODEM狀態(tài)寄存器狀態(tài)寄存器(1) 發(fā)送保持寄存器THR(3F8H) :“寫寫”包含將要串行發(fā)送的并行數(shù)據(jù)包含將要串行發(fā)送的并行數(shù)據(jù) CPU發(fā)送保持寄存器發(fā)送保持寄存器發(fā)送移位寄存器發(fā)送移位寄存器同步控制同步控制8250SOUT(1) 接收緩沖寄存器RBR (3F8H) :“讀讀”存放串行接收后轉(zhuǎn)換成并行的數(shù)據(jù)存放串行接收后轉(zhuǎn)換成并行的數(shù)據(jù)CPU接收緩沖寄存器接收緩沖寄存器接收移位寄存器接收移位寄存器同步控制同步控制8250SIN(2)波特率除數(shù)寄存器BRD(3F8H,3F9H)除數(shù)寄存器保存設(shè)定的分頻系數(shù)除數(shù)寄存器保存設(shè)定的分頻系數(shù)BRD基準(zhǔn)時鐘頻率基準(zhǔn)時鐘頻率(16

20、波特率)波特率)起起 始始 位位時鐘時鐘(RCLK)數(shù)據(jù)線數(shù)據(jù)線(SIN)T16 T16 T8 T例:計算波特率為例:計算波特率為1200bps1200bps的波特率除的波特率除數(shù)。數(shù)。當(dāng)使用當(dāng)使用UARTUART的內(nèi)部時鐘為的內(nèi)部時鐘為1.8432MHz1.8432MHz時(或由外部通過時(或由外部通過XTALXTAL1 1引腳輸入),引腳輸入),BRD=1843200/BRD=1843200/(161612001200)=0060H=0060H(3) 通信線路控制寄存器LCR(3FBH)DLABD6 D5 D4 D3D2D1 D0寄存器選擇寄存器選擇0 正常值正常值1 除數(shù)寄存器除數(shù)寄存器

21、中止字符中止字符0 無作用無作用1 發(fā)送中止字發(fā)送中止字符符校驗位設(shè)置校驗位設(shè)置0 無校驗無校驗位位001 設(shè)置奇校設(shè)置奇校驗驗011 設(shè)置偶校驗設(shè)置偶校驗101 校驗位為校驗位為1111 校驗位為校驗位為0停止位個數(shù)停止位個數(shù)0 1位位1 1.5位(數(shù)據(jù)位為位(數(shù)據(jù)位為5位時)位時)1 2位(數(shù)據(jù)位為位(數(shù)據(jù)位為68位時)位時)數(shù)據(jù)位個數(shù)數(shù)據(jù)位個數(shù)00 5位位01 6位位10 7位位11 8位位指定串行異步通信的字符格式指定串行異步通信的字符格式例:通信線路控制寄存器(例:通信線路控制寄存器(LCRLCR)的編程,)的編程,設(shè)置發(fā)送數(shù)據(jù)字長為設(shè)置發(fā)送數(shù)據(jù)字長為8 8位,位,2 2位停止位,偶

22、校位停止位,偶校驗,其程序段為:驗,其程序段為:MOV DXMOV DX,3FBH 3FBH ;LCRLCR的地址的地址MOV ALMOV AL, 00011111B 00011111B ;LCRLCR內(nèi)容數(shù)內(nèi)容數(shù);據(jù)格式參數(shù);據(jù)格式參數(shù) OUT DXOUT DX,ALAL(4)通信線路狀態(tài)寄存器LSR(3FDH)0D6 D5 D4 D3D2D1 D0為為1,表示發(fā)送移位寄存器空;,表示發(fā)送移位寄存器空;當(dāng)數(shù)據(jù)由發(fā)送保持寄存器移入當(dāng)數(shù)據(jù)由發(fā)送保持寄存器移入發(fā)送移位寄存器時,該位為發(fā)送移位寄存器時,該位為0提供串行異步通信的當(dāng)前狀態(tài)提供串行異步通信的當(dāng)前狀態(tài)供供CPU讀取和處理讀取和處理為為1,

23、表示發(fā)送保持寄存器空,表示發(fā)送保持寄存器空,當(dāng)當(dāng)CPU將字符寫入發(fā)送保持將字符寫入發(fā)送保持寄存器后,該位為寄存器后,該位為0為為1,表示正在傳輸中止字符,表示正在傳輸中止字符為為1,表示出現(xiàn)幀錯誤,表示出現(xiàn)幀錯誤為為1,表示出現(xiàn)奇偶錯,表示出現(xiàn)奇偶錯為為1,表示出現(xiàn)溢出錯,表示出現(xiàn)溢出錯為為1,表示接收數(shù)據(jù)緩沖器收到,表示接收數(shù)據(jù)緩沖器收到一個數(shù)據(jù),既接收數(shù)據(jù)準(zhǔn)備好;一個數(shù)據(jù),既接收數(shù)據(jù)準(zhǔn)備好;當(dāng)當(dāng)CPU讀走數(shù)據(jù)后,該位為讀走數(shù)據(jù)后,該位為0為為1使使DTR*引腳為低引腳為低否則為高否則為高 (5)MODEM控制寄存器MCR(3FCH)設(shè)置設(shè)置8250與數(shù)據(jù)通信設(shè)備之間與數(shù)據(jù)通信設(shè)備之間聯(lián)絡(luò)應(yīng)

24、答的輸出信號聯(lián)絡(luò)應(yīng)答的輸出信號0 0 0LOOP OUT2OUT1RTS DTR為為1使使RTS*引腳為低引腳為低否則為高否則為高 為為1使使OUT1*引腳為低引腳為低否則為高否則為高 為為1使使OUT2*引腳為低引腳為低否則為高否則為高 為為1使使8250為循環(huán)工作方式為循環(huán)工作方式否則為正常工作方式否則為正常工作方式例:要使例:要使MCRMCR的的DTRDTR,RTSRTS有效,有效,OUTOUT1 1,OUTOUT2 2以及以及LOOPLOOP無效,則編程如下:無效,則編程如下:MOV DX,3FCH ;MCR的地址,的地址, MOV AL,00000011B ;MCR的控制字的控制字

25、OUT DX,AL例:要對例:要對82508250通過自發(fā)自收進行診斷,則程序通過自發(fā)自收進行診斷,則程序為為: :MOV DX ,3FCH ;MCR的地址的地址MOV AL,00010011B ;LOOP位置位置“1”O(jiān)UT DX,AL(6)MODEM狀態(tài)寄存器MSR(3FEH)n反映反映4個控制輸入信號的當(dāng)前狀態(tài)及其變化個控制輸入信號的當(dāng)前狀態(tài)及其變化nMSR高高4位中某位為位中某位為1,說明相應(yīng)輸入信號當(dāng)前,說明相應(yīng)輸入信號當(dāng)前為低有效,否則為高電平為低有效,否則為高電平nMSR低低4位中某位為位中某位為1,則說明從上次,則說明從上次CPU讀取讀取該狀態(tài)字后,相應(yīng)輸入信號已發(fā)生改變,從高

26、變該狀態(tài)字后,相應(yīng)輸入信號已發(fā)生改變,從高變低或反之低或反之nMCR低低4位任一位置位任一位置1,均產(chǎn)生調(diào)制解調(diào)器狀態(tài),均產(chǎn)生調(diào)制解調(diào)器狀態(tài)中斷,當(dāng)中斷,當(dāng)CPU讀取該寄存器或復(fù)位后,低讀取該寄存器或復(fù)位后,低4位被位被清零清零(7)中斷允許寄存器IER (3F9H)n8250設(shè)計有設(shè)計有2個中斷寄存器和個中斷寄存器和4級中斷級中斷n4級中斷的優(yōu)先權(quán),是按照串行通信過程級中斷的優(yōu)先權(quán),是按照串行通信過程中事件的緊迫程度安排的、是固定不變的中事件的緊迫程度安排的、是固定不變的n用戶可利用中斷允許或禁止進行控制用戶可利用中斷允許或禁止進行控制n中斷允許寄存器的低中斷允許寄存器的低4位控制位控制82

27、50這這4級中級中斷是否被允許斷是否被允許n某位為某位為1,則對應(yīng)的中斷被允許,則對應(yīng)的中斷被允許n否則,被禁止否則,被禁止8. 中斷識別IIR(3FAH)保存正在請求中斷的優(yōu)先權(quán)最高保存正在請求中斷的優(yōu)先權(quán)最高的中斷級別編碼的中斷級別編碼0 0 0 0 0ID1 ID0IP0 有中斷有中斷1 無中斷無中斷ID1ID0優(yōu)先權(quán)優(yōu)先權(quán)中斷類型中斷類型1 11 00 10 01234 接收線路狀態(tài)接收線路狀態(tài) 接收數(shù)據(jù)準(zhǔn)備好接收數(shù)據(jù)準(zhǔn)備好 發(fā)送保持寄存器空發(fā)送保持寄存器空 調(diào)制解調(diào)器狀態(tài)調(diào)制解調(diào)器狀態(tài)3. 8250應(yīng)用舉例寫通信控制字寫通信控制字D7=1寫除數(shù)低寫除數(shù)低8位位寫通信控制字寫通信控制字

28、寫除數(shù)高寫除數(shù)高8位位寫寫MODEM控制字控制字寫中斷允許字寫中斷允許字 結(jié)束結(jié)束n8250的初始化過程的初始化過程例:例:82508250端口地址為端口地址為3F8H3F8H3FFH3FFH,若,若82508250以波特率以波特率9600bps9600bps,進行異步通信,每字符進行異步通信,每字符8 8位,位,1 1位停止位,采用奇校驗,允位停止位,采用奇校驗,允許所有中斷,試編程初始化。許所有中斷,試編程初始化。解:解:MOVMOV DXDX,3FBH 3FBH ;82508250線路控制寄存器地址送線路控制寄存器地址送DXDX MOV ALMOV AL,80H80H;置置DLAB=1D

29、LAB=1,設(shè)置除數(shù),設(shè)置除數(shù)寄存器寄存器 OUT DXOUT DX,ALALMOV DXMOV DX,3F8H 3F8H ;除數(shù)寄存器地址送;除數(shù)寄存器地址送DXDX MOV AL MOV AL,0CH0CH ;波特率為;波特率為9600bps 9600bps OUT DX OUT DX,ALAL ;送除數(shù)低;送除數(shù)低8 8位位 INC DXINC DXMOV ALMOV AL,00H00H ;送除數(shù)高;送除數(shù)高8 8位位OUT DXOUT DX,ALALMOVMOV DXDX,3FBH 3FBH ;82508250控制寄存器地址送控制寄存器地址送DXDXMOV ALMOV AL,00001

30、011B 00001011B ;8 8位數(shù)據(jù),奇校驗,位數(shù)據(jù),奇校驗,1 1位停止位位停止位OUT DXOUT DX,AL AL MOVMOV DXDX,3F9H 3F9H ;中斷允許寄存器地址送;中斷允許寄存器地址送DXDX MOV ALMOV AL,0FH 0FH ;設(shè)置中斷允許控制字,允許所有中斷;設(shè)置中斷允許控制字,允許所有中斷OUT DXOUT DX,AL AL MOVMOV DXDX,3FCH 3FCH ;設(shè)置;設(shè)置MODEMMODEM控制字控制字 MOV ALMOV AL,0FH0FHOUT DXOUT DX,AL AL ;OUT1OUT1* *,OUT2,OUT2* *均為均為

31、0 0 n8250查詢方式發(fā)送查詢方式發(fā)送初始化初始化8250讀讀LSRD5=1?發(fā)送一個字符發(fā)送一個字符發(fā)完?發(fā)完?結(jié)束結(jié)束YYNNn查詢方式接收查詢方式接收初始化初始化82508250讀讀LSRD0=1?接收一個字符接收一個字符收完?收完?結(jié)束結(jié)束YYNN有錯?有錯?NY錯誤處理錯誤處理例:兩臺例:兩臺PCPC機用機用RS-232CRS-232C串口采用零串口采用零MODEMMODEM方式實現(xiàn)近方式實現(xiàn)近距離串行通信。數(shù)據(jù)傳送波特率為距離串行通信。數(shù)據(jù)傳送波特率為9600bps9600bps,數(shù)據(jù)格式,數(shù)據(jù)格式為為8 8位位/ /每字符,每字符,1 1位停止位,奇校驗,雙機位停止位,奇校驗

32、,雙機82508250端口地端口地址均為址均為2F8H2F8H2FFH2FFH。試編寫發(fā)送和接收程序,其功能。試編寫發(fā)送和接收程序,其功能如下:如下:通信雙方執(zhí)行程序后,均等待鍵盤輸入字符通信雙方執(zhí)行程序后,均等待鍵盤輸入字符雙方只要按下一個鍵,鍵值在本機當(dāng)前光標(biāo)處顯示,雙方只要按下一個鍵,鍵值在本機當(dāng)前光標(biāo)處顯示,而且傳送到對方,在對方當(dāng)前光標(biāo)處顯示出來而且傳送到對方,在對方當(dāng)前光標(biāo)處顯示出來雙方只要按下雙方只要按下ESCESC鍵,則停止程序的執(zhí)行,返回到鍵,則停止程序的執(zhí)行,返回到DOSDOS狀態(tài)狀態(tài)通信雙方如果出現(xiàn)通信錯誤,則屏幕顯示通信雙方如果出現(xiàn)通信錯誤,則屏幕顯示“?”,并繼續(xù)等待

33、鍵入新字符或接收新字符并繼續(xù)等待鍵入新字符或接收新字符MOV DX,2FBH ;82508250控制寄存器地址送控制寄存器地址送DXDXMOV AL,80H ;置置DLAB=1DLAB=1,設(shè)置除數(shù)寄存器,設(shè)置除數(shù)寄存器OUT DX,ALMOV DX,2F8H ;除數(shù)寄存器地址送;除數(shù)寄存器地址送DXDXMOV AL,0CH;波特率為;波特率為9600bps9600bps OUT DX,AL ;送除數(shù)低;送除數(shù)低8 8位位INC DXMOV AL,00H;送除數(shù)高;送除數(shù)高8 8位位OUT DX,AL MOV DX,2FBH ;82508250控制寄存器地址送控制寄存器地址送DXDX MOV

34、AL,0BH ;8 8位數(shù)據(jù),奇校驗,位數(shù)據(jù),奇校驗,1 1位停止位位停止位 OUT DX,AL MOV DX,2FCH;設(shè)置;設(shè)置MODEM控制字控制字 MOV AL,03H;RTS,CTS有效有效 OUT DX,AL MOV DX,2F9H;禁止中斷;禁止中斷 MOV AL,00H OUT DX,ALFOREVER:MOV DX,2FDHIN AL,DX ;讀線路狀態(tài)寄存器;讀線路狀態(tài)寄存器TEST AL,1EH JNZ ERROR ;有錯,轉(zhuǎn)錯誤處理程序有錯,轉(zhuǎn)錯誤處理程序TEST AL,01H ;查接收緩沖器是否滿查接收緩沖器是否滿JNZ RECEIVETEST AL,20H ;查發(fā)送

35、緩沖器是否空查發(fā)送緩沖器是否空J(rèn)NZ FOREVER ;為空則發(fā)送字符;為空則發(fā)送字符MOV AH,01H ;讀鍵盤緩沖器內(nèi)容讀鍵盤緩沖器內(nèi)容;若有鍵按下,則;若有鍵按下,則ZF=0ZF=0,且,且AL=AL=字符碼字符碼INT 16HJZ FOREVERMOV AH,00H ;AL=字符字符ASCII碼碼 INT 16HMOV DX,2F8HOUT DX,ALMOV AH,02H ;顯示字符;顯示字符MOV DL,ALINT 21HCMP AL,27 ;若按下若按下ESCESC鍵,則退出鍵,則退出 JNZ NEXT MOV AH,4CH INC 21HNEXT:JMP FOREVERRECE

36、IVE:MOV DX,2F8H ;接收數(shù)據(jù);接收數(shù)據(jù) IN AL,DX AND AL,7FH ;檢查是否;檢查是否ESC CMP AL,27 JNZ DISP ;不是;不是ESC,則顯示,則顯示 MOV AH,4CH ;是;是ESC,退出,退出 INT 21H DISP: PUSH AX MOV BX,0;顯示字符;顯示字符 MOV AH,14 INT 10H POP AX CMP AL,0DH ;處理回車;處理回車 JNZ FOREVER MOV AL,0AH MOV BX,0 MOV AH,14 INT 10H JMP FOREVER ERROR:MOV DX,3F8H IN AL,DXM

37、OVAL,? MOV BX,0 MOV AH,14 INT 10H JMP FOREVERn8250中斷方式通信中斷方式通信n中斷通信方式初始化中斷通信方式初始化n修改中斷向量:按使用的端口COM1或COM2,接管中斷0CH或中斷0BH(保存原中斷向量,將新的中斷向量替換上去,注意程序結(jié)束時恢復(fù)原中斷向量)n確定通信協(xié)議:設(shè)置波特率及數(shù)據(jù)傳輸格式,設(shè)置中斷允許寄存器相應(yīng)位的允許或禁止n開放通信中斷:對8259A中斷控制器的屏蔽寄存器編程(OCW1),允許中斷IRQ4或IRQ3n通信中斷服務(wù)程序通信中斷服務(wù)程序n首先讀中斷識別寄存器IIR,判斷中斷源,然后轉(zhuǎn)向?qū)?yīng)的處理子過程(程序)。n當(dāng)中斷識

38、別寄存器D2D1=11時,表明接收出錯中斷,需要再讀取線路狀態(tài)寄存器,分析錯誤原因,再進行錯誤處理n可能出現(xiàn)多個中斷源同時引發(fā)中斷。因此,每處理完一種中斷源后,應(yīng)繼續(xù)讀取中斷識別寄存器,檢測D0是否為“0”,當(dāng)D0=0時,表明還有未決中斷,應(yīng)該繼續(xù)分析中斷源并進行中斷處理。n中斷程序返回的條件是中斷識別寄存器的D0=1??删幊檀型ㄐ沤涌谛酒删幊檀型ㄐ沤涌谛酒?251A8251A基本性能:基本性能:n全雙工、雙緩沖器全雙工、雙緩沖器n兩種傳送方式:同步和異步傳送兩種傳送方式:同步和異步傳送n同步傳送:同步傳送:58位位/字符,內(nèi)部或外部同步,字符,內(nèi)部或外部同步,可自動插人同步字符可自動插

39、人同步字符n異步傳送:異步傳送:58位位/字符,時鐘速率為通信波字符,時鐘速率為通信波特率的特率的1、16或或64倍倍n可自動產(chǎn)生、檢測和處理終止字符,可產(chǎn)生可自動產(chǎn)生、檢測和處理終止字符,可產(chǎn)生1、1.5或或2位的停止位位的停止位n波特率在同步方式時為波特率在同步方式時為064Kbps,異步方,異步方式時為式時為019.2Kbpsn出錯檢測:具有奇偶、溢出和幀錯誤等檢測出錯檢測:具有奇偶、溢出和幀錯誤等檢測電路電路8251A的內(nèi)部結(jié)構(gòu):的內(nèi)部結(jié)構(gòu):(1) 8251A與與CPU接口信號接口信號 1 1、片選信號片選信號 CSCS* *為低電平時,為低電平時,8251A8251A被選中被選中2

40、2、數(shù)據(jù)信號數(shù)據(jù)信號 D7D7D0D0與系統(tǒng)的數(shù)據(jù)總線相連與系統(tǒng)的數(shù)據(jù)總線相連 3 3、讀寫控制信號讀寫控制信號 RDRD* *為讀信號為讀信號WRWR* *為寫信號為寫信號C/DC/D* *為為控制控制/ /數(shù)據(jù)信號數(shù)據(jù)信號RESETRESET復(fù)位復(fù)位CLKCLK時鐘時鐘8251A的接口信號的接口信號(2)8251A與外部設(shè)備之間的連接信號與外部設(shè)備之間的連接信號 1.發(fā)送器發(fā)送器1)TxRDY(Transmitter Ready):發(fā)送器準(zhǔn)備好,高電平有效):發(fā)送器準(zhǔn)備好,高電平有效2)TxEMPTY(Transmitter Empty):發(fā)送器空,高電平有效):發(fā)送器空,高電平有效3)T

41、xD:發(fā)送數(shù)據(jù)線:發(fā)送數(shù)據(jù)線4)TxC:發(fā)送器輸入時鐘:發(fā)送器輸入時鐘2.接收器接收器1)RxD:接收數(shù)據(jù)線:接收數(shù)據(jù)線2)RxRDY:接收器準(zhǔn)備好:接收器準(zhǔn)備好3)SYNDET:同步檢測:同步檢測4)RxC:接收器輸入時鐘:接收器輸入時鐘3.與調(diào)制器的接口接號與調(diào)制器的接口接號1)DTR:數(shù)據(jù)終端準(zhǔn)備好:數(shù)據(jù)終端準(zhǔn)備好2)RTS:請求發(fā)送:請求發(fā)送3)DSR:數(shù)據(jù)裝置準(zhǔn)備好:數(shù)據(jù)裝置準(zhǔn)備好4)CTS:清除傳送:清除傳送8251A的編程的編程n8251A的編程模型(的編程模型(P312, 圖圖7-52)n8251A的讀寫操作的讀寫操作8251A的工作過程的工作過程(P315,圖圖7-56)(1

42、 1)方式命令字)方式命令字 (2 2)操作命令字)操作命令字( (用于控制發(fā)用于控制發(fā)/ /收,數(shù)據(jù)傳送方向收,數(shù)據(jù)傳送方向) )(3 3)狀態(tài)寄存器格式)狀態(tài)寄存器格式例:若要查詢例:若要查詢8251A8251A接收器是否準(zhǔn)備好,可用接收器是否準(zhǔn)備好,可用下列程序?qū)崿F(xiàn):下列程序?qū)崿F(xiàn): MOV DX,3F9H ;狀態(tài)口;狀態(tài)口NEXT: IN AL,DX ;讀狀態(tài)口;讀狀態(tài)口 AND AL,02H ;查詢;查詢D D1 1=1=1? JZNEXT;未準(zhǔn)備好,轉(zhuǎn);未準(zhǔn)備好,轉(zhuǎn)NEXTNEXT等待等待 MOV DX,3F8H ;數(shù)據(jù)口地址送;數(shù)據(jù)口地址送DXDX IN AL,DX 8251A應(yīng)用

43、舉例應(yīng)用舉例1.異步方式下初始化程序例:設(shè)例:設(shè)8251A8251A工作于異步方式,波特率系數(shù)為工作于異步方式,波特率系數(shù)為1616,具有,具有7 7位數(shù)據(jù)位,位數(shù)據(jù)位,1 1 位停止位,偶校驗,位停止位,偶校驗,發(fā)送、接收允許,設(shè)端口地址為發(fā)送、接收允許,設(shè)端口地址為3F8H3F8H和和3F9H3F9H,試編程初始化。試編程初始化。分析:根據(jù)題目要求,可以確定方式命令字為:分析:根據(jù)題目要求,可以確定方式命令字為:01111010B01111010B,即,即7AH7AH。而操作命令字為。而操作命令字為00110111B00110111B,即,即37H37H初始化程序如下:初始化程序如下:MO

44、V DXMOV DX,3F9H 3F9H MOV ALMOV AL,7AH7AH;送方式命令字;送方式命令字OUT DXOUT DX,ALALMOV ALMOV AL,37H37H ;設(shè)操作命令字;設(shè)操作命令字OUT DXOUT DX,ALAL2.同步方式下初始化程序例:設(shè)例:設(shè)8251A8251A工作于同步方式,控制口的端口地址工作于同步方式,控制口的端口地址為為3F9H3F9H,采用雙同步字符,奇校驗,采用雙同步字符,奇校驗,7 7 位數(shù)據(jù)位,位數(shù)據(jù)位,試編程初始化。試編程初始化。分析:根據(jù)題目要求,可以確定方式命令字為分析:根據(jù)題目要求,可以確定方式命令字為00011000B,即,即18

45、H。而操作命令字為。而操作命令字為10110111B即即B7H。它使。它使8251A對同步字符進行對同步字符進行檢索;同時使?fàn)顟B(tài)寄存器中檢索;同時使?fàn)顟B(tài)寄存器中3個出錯標(biāo)志復(fù)位;此外,個出錯標(biāo)志復(fù)位;此外,使使8251A的發(fā)送器啟動,接收器也啟動;控制字還的發(fā)送器啟動,接收器也啟動;控制字還通知通知8251A,CPU當(dāng)前已經(jīng)準(zhǔn)備好進行數(shù)據(jù)傳輸。當(dāng)前已經(jīng)準(zhǔn)備好進行數(shù)據(jù)傳輸。 MOV DX,3F9H ;命令端口地址給命令端口地址給DXDXMOV AL,00011000B ;方式命令字;方式命令字OUT DX,AL MOV AL,16HOUT DX,AL ;送第一個同步字符;送第一個同步字符16H1

46、6HOUT DX,AL ;送第二個同步字符;送第二個同步字符16H16HMOV AL,B7H ;設(shè)置操作命令字;設(shè)置操作命令字OUT DX,AL 3.3.兩臺微機之間進行雙機串行通信的舉例兩臺微機之間進行雙機串行通信的舉例例:通過例:通過8251A實現(xiàn)兩臺微機相互通信的實現(xiàn)兩臺微機相互通信的硬件連接圖如圖硬件連接圖如圖8-25所示。利用兩片所示。利用兩片8251A通過標(biāo)準(zhǔn)串行接口通過標(biāo)準(zhǔn)串行接口RS-232C實現(xiàn)實現(xiàn)兩臺兩臺8086微機之間的異步串行通信。設(shè)微機之間的異步串行通信。設(shè)兩臺微機中兩臺微機中8251A的命令端口地址為均的命令端口地址為均3F9H,數(shù)據(jù)端口地址均為,數(shù)據(jù)端口地址均為3F8H。 分析:設(shè)系統(tǒng)采用查詢方式控制串行通信的分析:設(shè)系統(tǒng)采用查詢方式控制串行通信的過程。過程。初始化程序由兩部分組成:初始化程序由兩部分組成:將一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論