版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、可編程串行通信接口芯片可編程串行通信接口芯片8251A在串行通信時,收發(fā)雙方要解決的問題在串行通信時,收發(fā)雙方要解決的問題: :n以何種速率進行數據的發(fā)送和接收(以何種速率進行數據的發(fā)送和接收(波特率波特率)n采用何種數據格式(采用何種數據格式(幀格式幀格式)n接收方如何得知一批數據的開始和結束(接收方如何得知一批數據的開始和結束(幀同步幀同步)n接收方如何從位流中正確地采樣到位數據(接收方如何從位流中正確地采樣到位數據(位同步位同步)n接收方如何判斷收到數據的正確性(接收方如何判斷收到數據的正確性(數據校驗數據校驗)n收發(fā)出錯時如何處理(收發(fā)出錯時如何處理(出錯處理出錯處理)串行通信的基本概
2、念串行通信的基本概念全雙工方式全雙工方式站站A站站B站站A站站B站站A站站B半雙工方式半雙工方式單工方式單工方式1. 數據傳送方向數據傳送方向2. 串行通信的兩種基本方式串行通信的兩種基本方式(1)異步通信及其協議)異步通信及其協議所謂的異步通信,是指通信中兩個字符的時間間所謂的異步通信,是指通信中兩個字符的時間間隔是不固定的,而同一字符中的相鄰代碼間時間隔是不固定的,而同一字符中的相鄰代碼間時間間隔是固定的間隔是固定的n串行異步通信以字符為單位進行傳輸,用串行異步通信以字符為單位進行傳輸,用起始位表示字符的開始,用停止位表示字起始位表示字符的開始,用停止位表示字符結束,其通信協議是符結束,其
3、通信協議是起止式異步通信協起止式異步通信協議議n串行通信時的數據、控制和狀態(tài)信息都使串行通信時的數據、控制和狀態(tài)信息都使用同一根信號線傳送用同一根信號線傳送n收發(fā)雙方必須遵守共同的通信協議(通信收發(fā)雙方必須遵守共同的通信協議(通信規(guī)程),才能解決傳送速率、信息格式、規(guī)程),才能解決傳送速率、信息格式、位同步、字符同步、數據校驗等問題位同步、字符同步、數據校驗等問題(2)同步通信及其協議)同步通信及其協議同步通信以一個數據塊為傳輸單位,每個數據塊附同步通信以一個數據塊為傳輸單位,每個數據塊附加加1個或個或2個同步字符,最后以校驗字符結束個同步字符,最后以校驗字符結束 同步通信協議有多種,常用的有
4、面向比特的高級數據鏈路同步通信協議有多種,常用的有面向比特的高級數據鏈路控制協議控制協議HDLC(High-Level Data Link Control)。)。IBM系列系列微機中常用的同步數據鏈路控制協議微機中常用的同步數據鏈路控制協議SDLC(Synchronous Data Link Control)則是)則是HDLC的子集的子集n同步通信的特點是不僅字符內部保持同步通信的特點是不僅字符內部保持“同同步步”,而且字符與字符之間也是同步的。,而且字符與字符之間也是同步的。n在這種通信方式下,收在這種通信方式下,收/發(fā)雙方必須建立準確發(fā)雙方必須建立準確的位定時信號,也就是收的位定時信號,也
5、就是收/發(fā)時鐘的頻率必須發(fā)時鐘的頻率必須嚴格地一致。嚴格地一致。n每個字符不增加任何附加位,而是連續(xù)發(fā)送每個字符不增加任何附加位,而是連續(xù)發(fā)送3. 波特率與收波特率與收/發(fā)時鐘發(fā)時鐘n串行傳輸速率也稱串行傳輸速率也稱波特率波特率(Baud Rate)n每秒傳輸的二進制位數每秒傳輸的二進制位數bpsn字符中每個二進制位持續(xù)的時間長度都一樣,為數據字符中每個二進制位持續(xù)的時間長度都一樣,為數據傳輸速率的倒數傳輸速率的倒數(1)串行傳輸速率)串行傳輸速率字符速率與波特率兩者關系字符速率與波特率兩者關系 字符速率:每秒鐘傳輸的字符數。字符速率:每秒鐘傳輸的字符數。波特率:指單位時間內傳送二進制數據的波
6、特率:指單位時間內傳送二進制數據的位數。單位為:位數。單位為:b/s例例: : 異步傳輸過程異步傳輸過程 設每個字符對應設每個字符對應1 1個起始位、個起始位、7 7個信息位、個信息位、1 1個個奇偶校驗位和奇偶校驗位和1 1個停止位,如果波特率為個停止位,如果波特率為1200bps1200bps,那么,每秒鐘能傳輸的最大字符數為那么,每秒鐘能傳輸的最大字符數為1200/101200/10120120個個例例2:2:同步傳輸同步傳輸 用用1200bps1200bps的波特率工作,用的波特率工作,用4 4個同步字個同步字符作為信息幀頭部,但不用奇偶校驗,那符作為信息幀頭部,但不用奇偶校驗,那么
7、, 傳 輸么 , 傳 輸 1 0 01 0 0 個 字 符 所 用 的 時 間 為個 字 符 所 用 的 時 間 為7(100+4)/12007(100+4)/12000.6067s0.6067s,這就是說,每,這就是說,每秒鐘能傳輸的字符數可達到秒鐘能傳輸的字符數可達到100/0.6067100/0.6067165165個。個??梢姡梢?,在同樣的傳輸率下,同步傳輸時在同樣的傳輸率下,同步傳輸時實際字符傳輸率要比異步傳輸時高實際字符傳輸率要比異步傳輸時高。 (2) 發(fā)送發(fā)送/接收時鐘接收時鐘發(fā)送發(fā)送/接收時鐘頻率與接收時鐘頻率與波特率之間的關系為:波特率之間的關系為:發(fā)送發(fā)送/接收時鐘頻率接
8、收時鐘頻率=n 發(fā)送發(fā)送/接收接收波特率波特率例:要求傳輸速率為例:要求傳輸速率為1200 bps當選擇當選擇n=16時,時,表明一位數字信號中有表明一位數字信號中有16個時個時鐘脈沖,故發(fā)送鐘脈沖,故發(fā)送/接收時鐘頻率為:接收時鐘頻率為: 1200 16=19.2kHz其中其中n稱為波特因子,一般稱為波特因子,一般n=1,16,32,64 n調制和解調調制和解調 長距離通信時,常需要利用電話線路,它的頻帶則只有長距離通信時,常需要利用電話線路,它的頻帶則只有300Hz300Hz3400Hz3400Hz。為了通過電話線路傳輸數字信號,必須先。為了通過電話線路傳輸數字信號,必須先把數字信號轉換為
9、適合在電話線路上傳送的模擬信號,這就把數字信號轉換為適合在電話線路上傳送的模擬信號,這就是調制;經過電話線路傳輸后,在接收端再將模擬信號轉換是調制;經過電話線路傳輸后,在接收端再將模擬信號轉換為數字信號,這就是解調。為數字信號,這就是解調。 n調制方法調制方法 : 移頻鍵控(移頻鍵控(FSKFSK) 移相鍵控移相鍵控PSK PSK 振幅鍵控(振幅鍵控(ASKASK)4. 信號的調制解調信號的調制解調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標準與標準與TTL標準之間的轉換標準之間的轉換常用于將常用于將TTLTTL電平轉換為電平轉換為RS-232CRS-232C電平的芯片,除電平的芯片,除MC1488MC1488外外還有還有7518875188,7515075150等;用于將等;用于將RS-232CRS-232C電平轉換為電平轉換為TTLTTL電電平,除平,除MC1489MC1489外,還有外,還有751897518
11、9,7515475154等等nRS-232CRS-232C的應用的應用n使用使用MODEMMODEM連接連接n直接連接直接連接n三線連接三線連接n計算機通常使用計算機通常使用UART來實現數據的串來實現數據的串/并和并和并并/串轉換串轉換nUART的基本原理(的基本原理(P301,圖圖7-39、7-40)nUART的工作過程的工作過程n常用的錯誤標志常用的錯誤標志n奇偶校驗錯奇偶校驗錯n幀錯誤幀錯誤n溢出(丟失)錯誤溢出(丟失)錯誤6. 通用異步收發(fā)器通用異步收發(fā)器(UART)可編程異步通信接口可編程異步通信接口INS82508250的基本功能:的基本功能:n全雙工、雙緩沖器接收和發(fā)送全雙工、
12、雙緩沖器接收和發(fā)送n15種波特率,種波特率,50-9600bpsn可編程的異步通信格式可編程的異步通信格式n提供奇偶、溢出和幀校驗等錯誤檢測提供奇偶、溢出和幀校驗等錯誤檢測n片內具有優(yōu)先權中斷控制邏輯片內具有優(yōu)先權中斷控制邏輯8250的內部結構的內部結構8250芯片引腳定義與功能芯片引腳定義與功能(1)面向CPU一側的引腳(1)n數據線數據線D7 D0 :在:在CPU與與8250之間交換信息之間交換信息n地址線地址線A0A2:尋址:尋址8250內部寄存器內部寄存器n片選線:片選線:8250設計了設計了3個片選輸入信號個片選輸入信號CS0、CS1、CS2*和一個片選輸出信號和一個片選輸出信號CS
13、OUT。3個片個片選輸入都有效時,才選中選輸入都有效時,才選中8250芯片,同時芯片,同時CSOUT輸出高電平有效。輸出高電平有效。n地址選通信號地址選通信號ADS*:當該信號低有效時,鎖存:當該信號低有效時,鎖存上述地址線和片選線的輸入狀態(tài),保證讀寫期間上述地址線和片選線的輸入狀態(tài),保證讀寫期間的地址穩(wěn)定的地址穩(wěn)定(1)處理器接口引腳(2)n讀控制線讀控制線n數據輸入選通數據輸入選通DISTR(高有效)和(高有效)和DISTR*(低有效)(低有效)有一個信號有效,有一個信號有效,CPU從從8250內部寄存器讀出數據內部寄存器讀出數據n相當于相當于I/O讀信號讀信號n寫控制線寫控制線n數據輸出
14、選通數據輸出選通DOSTR(高有效)和(高有效)和DOSTR*(低有(低有效)有一個有效,效)有一個有效,CPU就將數據寫入就將數據寫入8250內部寄存器內部寄存器n相當于相當于I/O寫信號寫信號n8250讀寫控制信號有兩對,每對信號作用完全相讀寫控制信號有兩對,每對信號作用完全相同,只不過有效電平不同而己同,只不過有效電平不同而己(1)處理器接口引腳(3)n驅動器禁止信號驅動器禁止信號DDIS:CPU從從8250讀取數讀取數據時,據時,DDIS引腳輸出低電平,用來禁止外引腳輸出低電平,用來禁止外部收發(fā)器對系統(tǒng)總線的驅動;其它時間,部收發(fā)器對系統(tǒng)總線的驅動;其它時間,DDIS為高電平為高電平n
15、主復位線主復位線MR:硬件復位信號:硬件復位信號RESETn中斷請求線中斷請求線INTRPT:8250有有4級共級共10個中個中斷源,當任一個未被屏蔽的中斷源有請求斷源,當任一個未被屏蔽的中斷源有請求時,時,INTRPT輸出高電平向輸出高電平向CPU請求中斷請求中斷(2)面向外設引腳信號8250數據裝置準備好數據裝置準備好DSR*數據終端準備好數據終端準備好DTR*發(fā)送數據發(fā)送數據SOUT接收數據接收數據SIN請求發(fā)送請求發(fā)送RTS*允許發(fā)送允許發(fā)送CTS*信號地信號地GND載波檢測載波檢測RLSD*振鈴指示振鈴指示RI*(3)時鐘信號n時鐘輸入引腳時鐘輸入引腳XTAL1:8250的基準工作時
16、鐘的基準工作時鐘n時鐘輸出引腳時鐘輸出引腳XTAL2:基準時鐘信號的輸出端基準時鐘信號的輸出端n波特率輸出引腳波特率輸出引腳BAUDOUT*:基準時鐘經:基準時鐘經8250內部波特率發(fā)生器分頻后產生發(fā)送時鐘,為波特內部波特率發(fā)生器分頻后產生發(fā)送時鐘,為波特率率16倍倍n接收時鐘引腳接收時鐘引腳RCLK:接收外部提供的接收時鐘接收外部提供的接收時鐘信號;若采用發(fā)送時鐘作為接收時鐘,則只要將信號;若采用發(fā)送時鐘作為接收時鐘,則只要將RCLK引腳和引腳和BAUDOUT*引腳直接相連引腳直接相連(4)輸出線nOUT1*和和OUT2*:n兩個一般用途的輸出信號兩個一般用途的輸出信號n由調制解調器控制寄存
17、器的由調制解調器控制寄存器的D2和和D3使其輸出使其輸出低電平有效信號低電平有效信號n復位使其恢復為高復位使其恢復為高8250的寄存器及編程方法的寄存器及編程方法n8250內部有內部有10個個可訪問的寄存器,除數可訪問的寄存器,除數寄存器是寄存器是16位的,占用兩個連續(xù)的位的,占用兩個連續(xù)的8位端位端口口n內部寄存器用引腳內部寄存器用引腳A0A2來尋址;同時還來尋址;同時還要利用通信線路控制寄存器的最高位,即要利用通信線路控制寄存器的最高位,即除數寄存器訪問位除數寄存器訪問位DLAB的的0和和1兩種狀態(tài),兩種狀態(tài),來區(qū)別公用來區(qū)別公用1個端口地址所訪問的兩個寄個端口地址所訪問的兩個寄存器存器8
18、250內部寄存器端口地址適配器地址適配器地址DLAB A2A1A0訪問寄存器名稱訪問寄存器名稱3F8H00 0 0接收數據寄存器(讀)接收數據寄存器(讀)發(fā)送保持寄存器(寫)發(fā)送保持寄存器(寫)3F9H 00 0 1中斷允許寄存器中斷允許寄存器3F8H 10 0 0波特率除數鎖存寄存器(低字節(jié))波特率除數鎖存寄存器(低字節(jié))3F9H 10 0 1波特率除數鎖存寄存器(高字節(jié))波特率除數鎖存寄存器(高字節(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ā)送的并行數據包含將要串行發(fā)送的并行數據 CPU發(fā)送保持寄存器發(fā)送保持寄存器發(fā)送移位寄存器發(fā)送移位寄存器同步控制同步控制8250SOUT(1) 接收緩沖寄存器RBR (3F8H) :“讀讀”存放串行接收后轉換成并行的數據存放串行接收后轉換成并行的數據CPU接收緩沖寄存器接收緩沖寄存器接收移位寄存器接收移位寄存器同步控制同步控制8250SIN(2)波特率除數寄存器BRD(3F8H,3F9H)除數寄存器保存設定的分頻系數除數寄存器保存設定的分頻系數BRD基準時鐘頻率基準時鐘頻率(16
20、波特率)波特率)起起 始始 位位時鐘時鐘(RCLK)數據線數據線(SIN)T16 T16 T8 T例:計算波特率為例:計算波特率為1200bps1200bps的波特率除的波特率除數。數。當使用當使用UARTUART的內部時鐘為的內部時鐘為1.8432MHz1.8432MHz時(或由外部通過時(或由外部通過XTALXTAL1 1引腳輸入),引腳輸入),BRD=1843200/BRD=1843200/(161612001200)=0060H=0060H(3) 通信線路控制寄存器LCR(3FBH)DLABD6 D5 D4 D3D2D1 D0寄存器選擇寄存器選擇0 正常值正常值1 除數寄存器除數寄存器
21、中止字符中止字符0 無作用無作用1 發(fā)送中止字發(fā)送中止字符符校驗位設置校驗位設置0 無校驗無校驗位位001 設置奇校設置奇校驗驗011 設置偶校驗設置偶校驗101 校驗位為校驗位為1111 校驗位為校驗位為0停止位個數停止位個數0 1位位1 1.5位(數據位為位(數據位為5位時)位時)1 2位(數據位為位(數據位為68位時)位時)數據位個數數據位個數00 5位位01 6位位10 7位位11 8位位指定串行異步通信的字符格式指定串行異步通信的字符格式例:通信線路控制寄存器(例:通信線路控制寄存器(LCRLCR)的編程,)的編程,設置發(fā)送數據字長為設置發(fā)送數據字長為8 8位,位,2 2位停止位,偶
22、校位停止位,偶校驗,其程序段為:驗,其程序段為:MOV DXMOV DX,3FBH 3FBH ;LCRLCR的地址的地址MOV ALMOV AL, 00011111B 00011111B ;LCRLCR內容數內容數;據格式參數;據格式參數 OUT DXOUT DX,ALAL(4)通信線路狀態(tài)寄存器LSR(3FDH)0D6 D5 D4 D3D2D1 D0為為1,表示發(fā)送移位寄存器空;,表示發(fā)送移位寄存器空;當數據由發(fā)送保持寄存器移入當數據由發(fā)送保持寄存器移入發(fā)送移位寄存器時,該位為發(fā)送移位寄存器時,該位為0提供串行異步通信的當前狀態(tài)提供串行異步通信的當前狀態(tài)供供CPU讀取和處理讀取和處理為為1,
23、表示發(fā)送保持寄存器空,表示發(fā)送保持寄存器空,當當CPU將字符寫入發(fā)送保持將字符寫入發(fā)送保持寄存器后,該位為寄存器后,該位為0為為1,表示正在傳輸中止字符,表示正在傳輸中止字符為為1,表示出現幀錯誤,表示出現幀錯誤為為1,表示出現奇偶錯,表示出現奇偶錯為為1,表示出現溢出錯,表示出現溢出錯為為1,表示接收數據緩沖器收到,表示接收數據緩沖器收到一個數據,既接收數據準備好;一個數據,既接收數據準備好;當當CPU讀走數據后,該位為讀走數據后,該位為0為為1使使DTR*引腳為低引腳為低否則為高否則為高 (5)MODEM控制寄存器MCR(3FCH)設置設置8250與數據通信設備之間與數據通信設備之間聯絡應
24、答的輸出信號聯絡應答的輸出信號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個控制輸入信號的當前狀態(tài)及其變化個控制輸入信號的當前狀態(tài)及其變化nMSR高高4位中某位為位中某位為1,說明相應輸入信號當前,說明相應輸入信號當前為低有效,否則為高電平為低有效,否則為高電平nMSR低低4位中某位為位中某位為1,則說明從上次,則說明從上次CPU讀取讀取該狀態(tài)字后,相應輸入信號已發(fā)生改變,從高
26、變該狀態(tài)字后,相應輸入信號已發(fā)生改變,從高變低或反之低或反之nMCR低低4位任一位置位任一位置1,均產生調制解調器狀態(tài),均產生調制解調器狀態(tài)中斷,當中斷,當CPU讀取該寄存器或復位后,低讀取該寄存器或復位后,低4位被位被清零清零(7)中斷允許寄存器IER (3F9H)n8250設計有設計有2個中斷寄存器和個中斷寄存器和4級中斷級中斷n4級中斷的優(yōu)先權,是按照串行通信過程級中斷的優(yōu)先權,是按照串行通信過程中事件的緊迫程度安排的、是固定不變的中事件的緊迫程度安排的、是固定不變的n用戶可利用中斷允許或禁止進行控制用戶可利用中斷允許或禁止進行控制n中斷允許寄存器的低中斷允許寄存器的低4位控制位控制82
27、50這這4級中級中斷是否被允許斷是否被允許n某位為某位為1,則對應的中斷被允許,則對應的中斷被允許n否則,被禁止否則,被禁止8. 中斷識別IIR(3FAH)保存正在請求中斷的優(yōu)先權最高保存正在請求中斷的優(yōu)先權最高的中斷級別編碼的中斷級別編碼0 0 0 0 0ID1 ID0IP0 有中斷有中斷1 無中斷無中斷ID1ID0優(yōu)先權優(yōu)先權中斷類型中斷類型1 11 00 10 01234 接收線路狀態(tài)接收線路狀態(tài) 接收數據準備好接收數據準備好 發(fā)送保持寄存器空發(fā)送保持寄存器空 調制解調器狀態(tài)調制解調器狀態(tài)3. 8250應用舉例寫通信控制字寫通信控制字D7=1寫除數低寫除數低8位位寫通信控制字寫通信控制字
28、寫除數高寫除數高8位位寫寫MODEM控制字控制字寫中斷允許字寫中斷允許字 結束結束n8250的初始化過程的初始化過程例:例:82508250端口地址為端口地址為3F8H3F8H3FFH3FFH,若,若82508250以波特率以波特率9600bps9600bps,進行異步通信,每字符進行異步通信,每字符8 8位,位,1 1位停止位,采用奇校驗,允位停止位,采用奇校驗,允許所有中斷,試編程初始化。許所有中斷,試編程初始化。解:解:MOVMOV DXDX,3FBH 3FBH ;82508250線路控制寄存器地址送線路控制寄存器地址送DXDX MOV ALMOV AL,80H80H;置;置DLAB=1
29、DLAB=1,設置除數,設置除數寄存器寄存器 OUT DXOUT DX,ALALMOV DXMOV DX,3F8H 3F8H ;除數寄存器地址送;除數寄存器地址送DXDX MOV AL MOV AL,0CH0CH ;波特率為;波特率為9600bps 9600bps OUT DX OUT DX,ALAL ;送除數低;送除數低8 8位位 INC DXINC DXMOV ALMOV AL,00H00H ;送除數高;送除數高8 8位位OUT DXOUT DX,ALALMOVMOV DXDX,3FBH 3FBH ;82508250控制寄存器地址送控制寄存器地址送DXDXMOV ALMOV AL,0000
30、1011B 00001011B ;8 8位數據,奇校驗,位數據,奇校驗,1 1位停止位位停止位OUT DXOUT DX,AL AL MOVMOV DXDX,3F9H 3F9H ;中斷允許寄存器地址送;中斷允許寄存器地址送DXDX MOV ALMOV AL,0FH 0FH ;設置中斷允許控制字,允許所有中斷;設置中斷允許控制字,允許所有中斷OUT DXOUT DX,AL AL MOVMOV DXDX,3FCH 3FCH ;設置;設置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ā)完?結束結束YYNNn查詢方式接收查詢方式接收初始化初始化82508250讀讀LSRD0=1?接收一個字符接收一個字符收完?收完?結束結束YYNN有錯?有錯?NY錯誤處理錯誤處理例:兩臺例:兩臺PCPC機用機用RS-232CRS-232C串口采用零串口采用零MODEMMODEM方式實現近方式實現近距離串行通信。數據傳送波特率為距離串行通信。數據傳送波特率為9600bps9600bps,數據格式,數據格式為為8 8位位/ /每字符,每字符,1 1位停止位,奇校驗,雙機位停止位,奇校
32、驗,雙機82508250端口地端口地址均為址均為2F8H2F8H2FFH2FFH。試編寫發(fā)送和接收程序,其功能。試編寫發(fā)送和接收程序,其功能如下:如下:通信雙方執(zhí)行程序后,均等待鍵盤輸入字符通信雙方執(zhí)行程序后,均等待鍵盤輸入字符雙方只要按下一個鍵,鍵值在本機當前光標處顯示,雙方只要按下一個鍵,鍵值在本機當前光標處顯示,而且傳送到對方,在對方當前光標處顯示出來而且傳送到對方,在對方當前光標處顯示出來雙方只要按下雙方只要按下ESCESC鍵,則停止程序的執(zhí)行,返回到鍵,則停止程序的執(zhí)行,返回到DOSDOS狀態(tài)狀態(tài)通信雙方如果出現通信錯誤,則屏幕顯示通信雙方如果出現通信錯誤,則屏幕顯示“?”,并繼續(xù)等
33、待鍵入新字符或接收新字符并繼續(xù)等待鍵入新字符或接收新字符MOV DX,2FBH ;82508250控制寄存器地址送控制寄存器地址送DXDXMOV AL,80H ;置;置DLAB=1DLAB=1,設置除數寄存器,設置除數寄存器OUT DX,ALMOV DX,2F8H ;除數寄存器地址送;除數寄存器地址送DXDXMOV AL,0CH;波特率為;波特率為9600bps9600bps OUT DX,AL ;送除數低;送除數低8 8位位INC DXMOV AL,00H;送除數高;送除數高8 8位位OUT DX,AL MOV DX,2FBH ;82508250控制寄存器地址送控制寄存器地址送DXDX MO
34、V AL,0BH ;8 8位數據,奇校驗,位數據,奇校驗,1 1位停止位位停止位 OUT DX,AL MOV DX,2FCH;設置;設置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 ;有錯,轉錯誤處理程序有錯,轉錯誤處理程序TEST AL,01H ;查接收緩沖器是否滿查接收緩沖器是否滿JNZ RECEIVETEST AL,20H ;查
35、發(fā)送緩沖器是否空查發(fā)送緩沖器是否空JNZ FOREVER ;為空則發(fā)送字符;為空則發(fā)送字符MOV AH,01H ;讀鍵盤緩沖器內容讀鍵盤緩沖器內容;若有鍵按下,則;若有鍵按下,則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 FOREVERRE
36、CEIVE:MOV DX,2F8H ;接收數據;接收數據 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,D
37、XMOVAL,? MOV BX,0 MOV AH,14 INT 10H JMP FOREVERn8250中斷方式通信中斷方式通信n中斷通信方式初始化中斷通信方式初始化n修改中斷向量:按使用的端口COM1或COM2,接管中斷0CH或中斷0BH(保存原中斷向量,將新的中斷向量替換上去,注意程序結束時恢復原中斷向量)n確定通信協議:設置波特率及數據傳輸格式,設置中斷允許寄存器相應位的允許或禁止n開放通信中斷:對8259A中斷控制器的屏蔽寄存器編程(OCW1),允許中斷IRQ4或IRQ3n通信中斷服務程序通信中斷服務程序n首先讀中斷識別寄存器IIR,判斷中斷源,然后轉向對應的處理子過程(程序)。n當中
38、斷識別寄存器D2D1=11時,表明接收出錯中斷,需要再讀取線路狀態(tài)寄存器,分析錯誤原因,再進行錯誤處理n可能出現多個中斷源同時引發(fā)中斷。因此,每處理完一種中斷源后,應繼續(xù)讀取中斷識別寄存器,檢測D0是否為“0”,當D0=0時,表明還有未決中斷,應該繼續(xù)分析中斷源并進行中斷處理。n中斷程序返回的條件是中斷識別寄存器的D0=1??删幊檀型ㄐ沤涌谛酒删幊檀型ㄐ沤涌谛酒?251A8251A基本性能:基本性能:n全雙工、雙緩沖器全雙工、雙緩沖器n兩種傳送方式:同步和異步傳送兩種傳送方式:同步和異步傳送n同步傳送:同步傳送:58位位/字符,內部或外部同步,字符,內部或外部同步,可自動插人同步字符可自
39、動插人同步字符n異步傳送:異步傳送:58位位/字符,時鐘速率為通信波字符,時鐘速率為通信波特率的特率的1、16或或64倍倍n可自動產生、檢測和處理終止字符,可產生可自動產生、檢測和處理終止字符,可產生1、1.5或或2位的停止位位的停止位n波特率在同步方式時為波特率在同步方式時為064Kbps,異步方,異步方式時為式時為019.2Kbpsn出錯檢測:具有奇偶、溢出和幀錯誤等檢測出錯檢測:具有奇偶、溢出和幀錯誤等檢測電路電路8251A的內部結構:的內部結構:(1) 8251A與與CPU接口信號接口信號 1 1、片選信號片選信號 CSCS* *為低電平時,為低電平時,8251A8251A被選中被選中
40、2 2、數據信號數據信號 D7D7D0D0與系統(tǒng)的數據總線相連與系統(tǒng)的數據總線相連 3 3、讀寫控制信號讀寫控制信號 RDRD* *為讀信號為讀信號WRWR* *為寫信號為寫信號C/DC/D* *為控制為控制/ /數據信號數據信號RESETRESET復位復位CLKCLK時鐘時鐘8251A的接口信號的接口信號(2)8251A與外部設備之間的連接信號與外部設備之間的連接信號 1.發(fā)送器發(fā)送器1)TxRDY(Transmitter Ready):發(fā)送器準備好,高電平有效):發(fā)送器準備好,高電平有效2)TxEMPTY(Transmitter Empty):發(fā)送器空,高電平有效):發(fā)送器空,高電平有效3
41、)TxD:發(fā)送數據線:發(fā)送數據線4)TxC:發(fā)送器輸入時鐘:發(fā)送器輸入時鐘2.接收器接收器1)RxD:接收數據線:接收數據線2)RxRDY:接收器準備好:接收器準備好3)SYNDET:同步檢測:同步檢測4)RxC:接收器輸入時鐘:接收器輸入時鐘3.與調制器的接口接號與調制器的接口接號1)DTR:數據終端準備好:數據終端準備好2)RTS:請求發(fā)送:請求發(fā)送3)DSR:數據裝置準備好:數據裝置準備好4)CTS:清除傳送:清除傳送8251A的編程的編程n8251A的編程模型(的編程模型(P312, 圖圖7-52)n8251A的讀寫操作的讀寫操作8251A的工作過程的工作過程(P315,圖圖7-56)
42、(1 1)方式命令字)方式命令字 (2 2)操作命令字)操作命令字( (用于控制發(fā)用于控制發(fā)/ /收,數據傳送方向收,數據傳送方向) )(3 3)狀態(tài)寄存器格式)狀態(tài)寄存器格式例:若要查詢例:若要查詢8251A8251A接收器是否準備好,可用接收器是否準備好,可用下列程序實現:下列程序實現: MOV DX,3F9H ;狀態(tài)口;狀態(tài)口NEXT: IN AL,DX ;讀狀態(tài)口;讀狀態(tài)口 AND AL,02H ;查詢;查詢D D1 1=1=1? JZNEXT;未準備好,轉;未準備好,轉NEXTNEXT等待等待 MOV DX,3F8H ;數據口地址送;數據口地址送DXDX IN AL,DX 8251A
43、應用舉例應用舉例1.異步方式下初始化程序例:設例:設8251A8251A工作于異步方式,波特率系數為工作于異步方式,波特率系數為1616,具有,具有7 7位數據位,位數據位,1 1 位停止位,偶校驗,位停止位,偶校驗,發(fā)送、接收允許,設端口地址為發(fā)送、接收允許,設端口地址為3F8H3F8H和和3F9H3F9H,試編程初始化。試編程初始化。分析:根據題目要求,可以確定方式命令字為:分析:根據題目要求,可以確定方式命令字為:01111010B01111010B,即,即7AH7AH。而操作命令字為。而操作命令字為00110111B00110111B,即,即37H37H初始化程序如下:初始化程序如下:
44、MOV DXMOV DX,3F9H 3F9H MOV ALMOV AL,7AH7AH;送方式命令字;送方式命令字OUT DXOUT DX,ALALMOV ALMOV AL,37H37H ;設操作命令字;設操作命令字OUT DXOUT DX,ALAL2.同步方式下初始化程序例:設例:設8251A8251A工作于同步方式,控制口的端口地址工作于同步方式,控制口的端口地址為為3F9H3F9H,采用雙同步字符,奇校驗,采用雙同步字符,奇校驗,7 7 位數據位,位數據位,試編程初始化。試編程初始化。分析:根據題目要求,可以確定方式命令字為分析:根據題目要求,可以確定方式命令字為00011000B,即,即
45、18H。而操作命令字為。而操作命令字為10110111B即即B7H。它使。它使8251A對同步字符進行對同步字符進行檢索;同時使狀態(tài)寄存器中檢索;同時使狀態(tài)寄存器中3個出錯標志復位;此外,個出錯標志復位;此外,使使8251A的發(fā)送器啟動,接收器也啟動;控制字還的發(fā)送器啟動,接收器也啟動;控制字還通知通知8251A,CPU當前已經準備好進行數據傳輸。當前已經準備好進行數據傳輸。 MOV DX,3F9H ;命令端口地址給命令端口地址給DXDXMOV AL,00011000B ;方式命令字;方式命令字OUT DX,AL MOV AL,16HOUT DX,AL ;送第一個同步字符;送第一個同步字符16
46、H16HOUT DX,AL ;送第二個同步字符;送第二個同步字符16H16HMOV AL,B7H ;設置操作命令字;設置操作命令字OUT DX,AL 3.3.兩臺微機之間進行雙機串行通信的舉例兩臺微機之間進行雙機串行通信的舉例例:通過例:通過8251A實現兩臺微機相互通信的實現兩臺微機相互通信的硬件連接圖如圖硬件連接圖如圖8-25所示。利用兩片所示。利用兩片8251A通過標準串行接口通過標準串行接口RS-232C實現實現兩臺兩臺8086微機之間的異步串行通信。設微機之間的異步串行通信。設兩臺微機中兩臺微機中8251A的命令端口地址為均的命令端口地址為均3F9H,數據端口地址均為,數據端口地址均為3F8H。 分析:設系統(tǒng)采用查詢方式控制串行通信的分析:設系統(tǒng)采用查詢方式控制串行通信的過程。過程。初始化程序由兩部分組成:初始化程序由兩部分組成:將一方定義為發(fā)送方,發(fā)送方將一方定義為發(fā)送方,發(fā)送方CPUCPU查詢查詢到到TxRDYTxRDY有效時,則有效時,則CPUCPU向向8251A8251A并行輸并行輸出一個待發(fā)送的字節(jié)數據;出一個待發(fā)送的字節(jié)數據;將對方定義為接收方,接收方將對方定義為接收方,接收方CPUCPU查詢查詢到到RxRDYRxR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東體育職業(yè)技術學院《電工電子技術B》2023-2024學年第一學期期末試卷
- 廣東外語外貿大學南國商學院《無線傳感器網絡技術》2023-2024學年第一學期期末試卷
- 廣東生態(tài)工程職業(yè)學院《塑料成型工藝與模具設計》2023-2024學年第一學期期末試卷
- 廣東女子職業(yè)技術學院《交互設計基礎》2023-2024學年第一學期期末試卷
- 【全程復習方略】2020年人教A版數學理(廣東用)課時作業(yè):第十章-第八節(jié)二項分布、正態(tài)分布及其應用
- 【2021屆備考】2020全國名?;瘜W試題分類解析匯編(第三期):E單元-物質結構-元素周期律
- 【全程復習方略】2020年北師版數學文(陜西用)課時作業(yè):第六章-第一節(jié)不等關系與不等式
- 《典型冗余分析圖》課件
- 2025年人教版七年級數學寒假預習 第01講 相交線
- 2025年人教版七年級數學寒假復習 專題03 代數式(3重點串講+10考點提升+過關檢測)
- 物流運籌學附錄習題答案
- 發(fā)明專利專利答辯模板
- 市政府副市長年道路春運工作會議講話稿
- 鑄鐵鑲銅閘門
- GB_T 37514-2019 動植物油脂 礦物油的檢測(高清版)
- 閘門水力計算說明
- 大型塔器“立裝成段整體就位”工法
- 聯想集團內訓師管理制度
- 常用函數圖像(1)
- 靜脈血栓栓塞預防和治療的專家共識
- 《鍋爐及鍋爐房設備》課程設計北京市某燃煤廠區(qū)蒸汽鍋爐房設計
評論
0/150
提交評論