![微機原理與接口串行通信接口課件_第1頁](http://file4.renrendoc.com/view/c798ff4c7db663d41eb0df6f0616d3b2/c798ff4c7db663d41eb0df6f0616d3b21.gif)
![微機原理與接口串行通信接口課件_第2頁](http://file4.renrendoc.com/view/c798ff4c7db663d41eb0df6f0616d3b2/c798ff4c7db663d41eb0df6f0616d3b22.gif)
![微機原理與接口串行通信接口課件_第3頁](http://file4.renrendoc.com/view/c798ff4c7db663d41eb0df6f0616d3b2/c798ff4c7db663d41eb0df6f0616d3b23.gif)
![微機原理與接口串行通信接口課件_第4頁](http://file4.renrendoc.com/view/c798ff4c7db663d41eb0df6f0616d3b2/c798ff4c7db663d41eb0df6f0616d3b24.gif)
![微機原理與接口串行通信接口課件_第5頁](http://file4.renrendoc.com/view/c798ff4c7db663d41eb0df6f0616d3b2/c798ff4c7db663d41eb0df6f0616d3b25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第九章
串行通信與接口第九章
串行通信與接口1教學重點異步通信協(xié)議和RS232C接口8051、8250芯片的結構與編程使用異步通信程序教學重點29.1串行通信基礎串行通信:將數(shù)據(jù)分解成二進制位用一條信號線,逐位順序傳送的方式串行通信的優(yōu)點:通信的線路少,因而在遠距離通信時可以極大地降低成本串行通信適合于遠距離數(shù)據(jù)傳送,也常用于速度要求不高的近距離數(shù)據(jù)傳送PC系列機上有兩個串行異步通信接口、鍵盤、鼠標器與主機間采用串行數(shù)據(jù)傳送9.1串行通信基礎串行通信:3傳輸制式單工方式(Simplex):
只允許數(shù)據(jù)按照一個固定的方向傳送數(shù)據(jù)流單工方式A發(fā)送器B接收器圖示傳輸制式單工方式(Simplex):數(shù)據(jù)流單工方式AB圖4傳輸制式(續(xù))
半雙工方式(Half-Duplex)收發(fā)雙方均具備接收和發(fā)送數(shù)據(jù)能力。由于只有一條通道,不能同時在兩個方向上傳送數(shù)據(jù)。數(shù)據(jù)流半雙工方式A發(fā)送器接收器B接收器發(fā)送器圖示傳輸制式(續(xù))半雙工方式(Half-Duplex)數(shù)據(jù)流5傳輸制式(續(xù))全雙工方式(FullDuplex):收發(fā)雙方均具備接收和發(fā)送數(shù)據(jù)能力,并可以同時進行雙向傳輸。數(shù)據(jù)流全雙工方式A發(fā)送器接收器B接收器發(fā)送器圖示傳輸制式(續(xù))全雙工方式(FullDuplex):數(shù)據(jù)流全6傳輸速率比特率(信息傳輸速率):每秒傳送的二進制數(shù)位數(shù)(比特數(shù))單位為bps(bitpersecond)波特率(碼元傳輸率):每秒傳送的碼元(符號)數(shù)單位為:波特(Baud)即每秒傳送1個碼元(符號)稱傳輸率是1波特。傳輸速率比特率(信息傳輸速率):7傳輸速率(續(xù))波特率與比特率的差異若每個碼元所含的信息量為1比特(Bit),則波特率等于比特率,否則二者不等例如,在四相調(diào)制系統(tǒng)中,每次調(diào)制取4種相位差值,它代表2位二進制信息位,此時,比特率=2波特率標準波特率系列為:110、300、600、1200、1800、2400、4800、9600、19200傳輸速率(續(xù))波特率與比特率的差異8串行通信協(xié)議通信協(xié)議:收發(fā)雙方共同遵守的基本通信規(guī)程(Protocol)通信協(xié)議主要內(nèi)容:同步方式傳輸控制步驟差錯檢驗方式數(shù)據(jù)編碼數(shù)據(jù)傳輸速率通信版文的格式控制字符的定義等串行通信協(xié)議通信協(xié)議:9串行通信的基本方式串行通信有兩種基本方式異步串行通信在通信的數(shù)據(jù)流中,字符間異步,字符內(nèi)部各位間同步?!爱惒健斌w現(xiàn)在字符與字符之間通信沒有嚴格的定時要求。一旦傳送開始,收/發(fā)雙方則以預先約定的傳輸速率,在時鐘的作用下,傳送這個字符中的每一位。同步串行通信數(shù)據(jù)流中的字符與字符之間和字符內(nèi)部位與位之間都同步。同步串行通信是以數(shù)據(jù)塊(字符塊)為信息單位傳送,而每幀信息包括成百上千個字符;傳送一旦開始,要求每幀信息內(nèi)部的每一位都要同步。串行通信的基本方式串行通信有兩種基本方式10異步通信協(xié)議(起止式通信協(xié)議)格式異步通信協(xié)議(起止式通信協(xié)議)格式11起始位:每一幀字符的開始,1位,邏輯0數(shù)據(jù)位:緊接著起始位,數(shù)據(jù)位個數(shù)為5~8位,數(shù)據(jù)從最低位開始發(fā)送奇偶校驗位:數(shù)據(jù)位之后,發(fā)送1位奇偶校驗位,也可以不發(fā)校驗位停止位:一幀字符的最后發(fā)停止位,它可以是1位、1.5位或2位的邏輯1信號空閑位:在每一幀字符之間可以有不等位數(shù)的邏輯1信號,表示沒有傳送圖示異步通信協(xié)議(起止式通信協(xié)議)格式起始位:每一幀字符的開始,1位,邏輯0圖示異步通信協(xié)議(起12比如ASCII字符‘A’,二進制是01000001(8位),它們在起始位和2位停止位之間傳送,并使用了1位奇校驗位。Out010000010011先出后出D7D0比如ASCII字符‘A’,二進制是01000001(13為了確保異步串行通信傳輸正確:14用相反極性的起始位和停止位/空閑位提供準確的時間基準接收器在每位的中心采樣,以獲得最大的收/發(fā)時鐘頻率偏差容限接收器采用比傳送波特率更高頻率的時鐘來控制采樣時間,以提高采樣的分辨能力和抗干擾能力。為了確保異步串行通信傳輸正確:14用相反極性的起始位和停止位例題:異步傳輸7位ASCII碼,如果需要數(shù)據(jù)傳輸速率為240字符/秒,使用1位奇偶校驗位和1位停止位,則:①波特率應該是多少?②有效數(shù)據(jù)位傳輸位是多少?③傳輸效率是多少?答:①波特率是
(7位數(shù)據(jù)位+1位起始位+1位校驗位+1位停止位)×240=2400b/s②有效數(shù)據(jù)位傳輸位是:7×240=1680b/s③傳輸效率是:1680/2400=70%例題:異步傳輸7位ASCII碼,如果需要數(shù)據(jù)傳輸速率為24015以一個數(shù)據(jù)塊(幀)為傳輸單位,每個數(shù)據(jù)塊附加1個或2個同步字符,最后以校驗字符結束同步通信的數(shù)據(jù)傳輸效率和傳輸速率較高,但硬件電路比較復雜串行同步通信主要應用在網(wǎng)絡當中最常使用高級數(shù)據(jù)鏈路控制協(xié)議HDLC同步通信協(xié)議以一個數(shù)據(jù)塊(幀)為傳輸單位,每個數(shù)據(jù)塊附加1個或2個同步字16同步通信協(xié)議的格式:多個數(shù)據(jù)字節(jié)加上同步字符構成一個數(shù)據(jù)包稱為1幀每一幀以1個或2個同步字符(SYNC)為起始緊跟同步字符之后是N個數(shù)據(jù)字符,N可由用戶設定以兩個檢驗字符(CRC)作為1幀的結束同步通信協(xié)議的格式:多個數(shù)據(jù)字節(jié)加上同步字符構成一個數(shù)據(jù)包稱17CRC2CRC1數(shù)據(jù)字節(jié)n…數(shù)據(jù)字節(jié)1SYNC1
一幀SYNC2CRC2CRC1數(shù)據(jù)字節(jié)n…數(shù)據(jù)字節(jié)2數(shù)據(jù)字節(jié)1SYNC
一幀CRC2CRC1數(shù)據(jù)字節(jié)n…數(shù)據(jù)字節(jié)3數(shù)據(jù)字節(jié)2數(shù)據(jù)字節(jié)1
一幀a.單同步數(shù)據(jù)格式b.雙同步數(shù)據(jù)格式c.外同步數(shù)據(jù)格式CRC2CRC1數(shù)據(jù)…數(shù)據(jù)SYNC1一幀SYNC2CR18信號的調(diào)制與解調(diào)調(diào)制(Modulating)發(fā)送方將數(shù)字信號轉(zhuǎn)換成模擬信號(實現(xiàn)頻譜‘搬移’)解調(diào)(Demodulating)
接收方將接收的模擬信號還原成數(shù)字信號調(diào)制解調(diào)器MODEM
具有調(diào)制和解調(diào)功能的器件合制在一個裝置數(shù)字信號的帶寬較寬,模擬信號帶寬較窄遠距離傳送需要調(diào)制圖示信號的調(diào)制與解調(diào)調(diào)制(Modulating)圖示1920調(diào)制方法:按照調(diào)制技術的不同分為調(diào)頻(FM)、調(diào)幅(AM)和調(diào)相(PM)三種,根據(jù)傳輸數(shù)字信號的變化規(guī)律去調(diào)整載波的頻率、幅度或相位20調(diào)制方法:按照調(diào)制技術的不同分為調(diào)頻(FM)、調(diào)幅(AM信道復用時分多路復用TDM(TimeDivisionMultiplexing)就是將一條物理傳輸線路按時間分成若干時間片輪換地為多個信號所占用,每個時間片由復用的一個信號占用。頻分多路復用FDM(FrequencyDivisionMultiplexing)利用頻率調(diào)制原理,將要同時傳送的多個信號進行頻譜搬移,使它們互不重疊地占據(jù)信道頻帶的不同頻率段,然后經(jīng)發(fā)送器從同一信道上同時或不同時地發(fā)送出去。計算機串行數(shù)據(jù)通信及其接口中使用時分多路復用系統(tǒng)。信道復用時分多路復用TDM(TimeDivisionMu219.2串行接口標準RS-232CRS-232C是美國電子工業(yè)協(xié)會EIA制定的通用串行接口標準1962年公布,1969年修訂,1987年1月正式改名為EIA-232D是數(shù)據(jù)終端設備DTE(DataTerminalEquipment)與數(shù)據(jù)發(fā)送設備DCE(DataCommunicationEquipment)之間相互連接的標準接口9.2串行接口標準RS-232CRS-232C是美國電子工22最高數(shù)據(jù)傳輸率為19.2Kbps,傳輸電纜長度不超過15米RS-232C接口采用標準的D型25針連接器(DB-25連接器)及九針連接器圖示9.2串行接口標準RS-232C最高數(shù)據(jù)傳輸率為19.2Kbps,傳輸電纜長度不超過15米圖23RS-232C引腳定義:232C包括兩個信道:主信道和次信道次信道為輔助串行通道提供數(shù)據(jù)控制和通道,但其傳輸速率比主信道要低得多,其他跟主信道相同,通常較少使用RS-232C引腳定義:232C包括兩個信道:主信道和次信道24表9.1常用的RS-232C接口信號振鈴指示RI22DTE準備好DTE→DCEDTR20數(shù)據(jù)載波檢測DCE→DTEDCD8信號地GND7DCE準備好DCE→DTEDSR6允許發(fā)送DCE→DTECTS5請求發(fā)送DTE→DCERTS4接收數(shù)據(jù)DCE→DTERXD3發(fā)送數(shù)據(jù)DTE→DCETXD2功能信號方向功能縮寫符號引腳號表9.1常用的RS-232C接口信號振鈴指示RI22DTE25RS-232C引腳定義(續(xù))DTR(DataTerminalReady):DTE準備好信號DET接通電源并進入工作狀態(tài)后向DCE發(fā)出DTR信號,僅當DCE收到信號后方可進行通信DSR(DataSetReady):DCE準備好信號DCE接通電源并進入工作狀態(tài)后向DTE發(fā)出DSR信號,DTE確信該信號有效后,發(fā)出請求發(fā)送信號。RTS(RequestToSend):數(shù)據(jù)請求發(fā)送當DTE設備準備發(fā)送數(shù)據(jù)時,向DCE發(fā)出RTS信號CTS(ClearToSend):允許發(fā)送信號是DCE設備對DTE發(fā)來RTS信號的回答,數(shù)據(jù)才能被發(fā)送。RS-232C引腳定義(續(xù))DTR(DataTermina26RS-232C引腳定義(續(xù))DCD(DataCarrierDetected):數(shù)據(jù)載波檢測信號當DCE檢測到線路上出現(xiàn)有效載波信號后,向DTE發(fā)出DCD信號。RI(RingIndicate):振鈴指示當調(diào)制解調(diào)器接收到對方的撥號信號期間,該引腳信號作為電話鈴響的指示、保持有效RS-232C引腳定義(續(xù))DCD(DataCarrier27TxD:發(fā)送數(shù)據(jù)串行數(shù)據(jù)的發(fā)送端RxD:接收數(shù)據(jù)串行數(shù)據(jù)的接收端GND:信號地為所有的信號提供一個公共的參考電平RS-232C引腳定義(續(xù))保護地(機殼地):起屏蔽保護作用的接地端TxC:發(fā)送器時鐘控制數(shù)據(jù)終端發(fā)送串行數(shù)據(jù)的時鐘信號RxC:接收器時鐘控制數(shù)據(jù)終端接收串行數(shù)據(jù)的時鐘信號TxD:發(fā)送數(shù)據(jù)RS-232C引腳定義(續(xù))保護地(機殼地)28RS-232C的連接微機利用232C接口連接調(diào)制解調(diào)器,用于實現(xiàn)通過電話線路的遠距離通信微機利用232C接口直接連接進行短距離通信。這種連接不使用調(diào)制解調(diào)器,所以被稱為零調(diào)制解調(diào)器(NullModem)連接RS-232C的連接微機利用232C接口連接調(diào)制解調(diào)器,用于29連接調(diào)制解調(diào)器電話線MODEM微機2345678202223456782022MODEM23456782022數(shù)據(jù)裝置準備好DSR數(shù)據(jù)終端準備好DTR發(fā)送數(shù)據(jù)TxD接收數(shù)據(jù)RxD請求發(fā)送RTS允許發(fā)送CTS信號地GND載波檢測CD振鈴指示RI微機23456782022連接調(diào)制解調(diào)器電話線MODEM微機22MODEM2數(shù)據(jù)裝置準30不使用聯(lián)絡信號的3線相連方式為了交換信息,TxD和RxD應當交叉連接程序中不必使RTS和DTR有效也不應檢測CTS和DSR是否有效TxDRxDGND微機微機TxDRxDGND不使用聯(lián)絡信號的3線相連方式為了交換信息,TxD和RxD應當31“偽”使用聯(lián)絡信號的3線相連方式RTS和CTS各自互接,DTR和DSR各自互接表明請求傳送總是允許、數(shù)據(jù)裝置總準備好DSRDTRTxDRxDRTSCTSGND微機微機“偽”使用聯(lián)絡信號的3線相連方式RTS和CTS各自互接,DT32使用聯(lián)絡信號的多線相連方式通信比較可靠所用連線較多,不如前者經(jīng)濟DSRDTRTxDRxDRTSCTSGND微機微機DSRDTRTxDRxDRTSCTSGND使用聯(lián)絡信號的多線相連方式通信比較可靠DSRDTRTxDRx33電氣特性RS-232C采用EIA電平邏輯“1”在-3V~-15V之間邏輯“0”在+3V~+15V之間實際常用±12V或±15V圖示標準TTL電平高電平:+2.4V~+5V低電平:0V~0.4VRS-232C電平與TTL電平不兼容,二者之間通常需加電平轉(zhuǎn)換電路圖示電氣特性RS-232C采用EIA電平圖示標準TTL電平RS-34必須抗共模噪聲干擾RS-232C由于在發(fā)送器與接收器之間有公共信號地,不可能使用雙端信號,因此共模噪聲很容易引入信號系統(tǒng)中,且噪聲幅度可高達好幾伏,這是迫使RS-232C使用較高傳輸電壓的主要原因。另一個原因是為了補償傳輸線上的信號衰減和沿線附加電平的影響。必須抗共模噪聲干擾RS-232C由于在發(fā)送器與接收器之間35最大傳輸速率和最大傳輸線長度的關系36一般應用情況下,RS-232C的最高傳輸速率為20Kb/s,最大傳輸線長度為30m。最大傳輸速率和最大傳輸線長度的關系36一般應用情況下,RS-機械特性連接器機械特性連接器37連接器的連接連接器的連接38電纜長度在通信速率低于20Kb/s時,RS-232C所能直接連接的最大物理距離為15m(50ft)。RS-232C規(guī)定,若不使用MODEM,則碼元的畸變要小于4%,驅(qū)動器的負載電容應該小于2500pF,則單位(1ft)長度的電容值為NpF的電纜的長度應該是:使用特制的低電容電纜也能有效地提高電纜長度,可以達到150m(500ft)甚至更多。電纜長度在通信速率低于20Kb/s時,RS-232C所能直接39RS-232的局限RS-232C采用單端驅(qū)動、單端接收的單端雙極性電路標準。僅用一條線路傳輸一種信號,根據(jù)該信號線上電平相對于公共的信號地電平的大小來決定邏輯的“1”和“0”。對于多條信號線來講,它們的地線是公共的,這種共地傳輸方式,抗干擾能力很差。盡管采用電平轉(zhuǎn)換器來提高信號傳輸電平,但在較長距離時,由于電壓損失,仍不可避免錯誤。當信號穿過電磁干擾環(huán)境時,也可能因附加的干擾信號電平使發(fā)送的“0”變?yōu)椤?”或“1”變?yōu)椤?”。故其信號波特率不能過高,僅限在20Kb/s以下,且距離不大于15m。RS-232的局限RS-232C采用單端驅(qū)動、單端接收的單40異步通信適配器PC微機異步通信適配器是微機與微機、微機與MODEM及微機與外設之間進行異步通信的接口。其核心是UART。USART(UniversalSynchronous/AsynchronousReceiverandTransmitter)通用同步/異步接收發(fā)送器常見的UART主要有8251A、
INS8250、PC16450和PC16550。此外,還有帶更大緩沖的UART,稱為PC16650和PC16750
異步通信適配器PC微機異步通信適配器是微機與微機、微機與MO419.3可編程串行通信接口芯片8251A可用于同步傳送和異步傳送同步傳送5~8位/字符;內(nèi)同步或外同步;可自動插入同步字符異步傳送5~8位/字符;時鐘頻率為波特率的1、16、64倍;可產(chǎn)生終止字符;可產(chǎn)生1、1.5、2位的停止位;可檢測假起始位;自動檢測和處理終止字符9.3.18251A的基本功能9.3可編程串行通信接口芯片8251A可用于同步傳送和異步429.3.18251A的基本功能波特率:0~64K(同步);0~19.2K(異步)全雙工雙緩沖器發(fā)送和接收出錯檢測:具有奇偶、溢出和幀錯等檢測電路輸入輸出電平與TTL電平兼容;單一+5V電源;單一TTL電平時鐘;雙列直插封裝9.3.18251A的基本功能波特率:439.3.28251A的結構數(shù)據(jù)總線緩沖器:三態(tài)雙向8位緩沖器,8251A通過它與CPU交換信息讀/寫控制邏輯電路:控制讀/寫、復位等操作圖示調(diào)制/解調(diào)控制電路:提供一組調(diào)制/解調(diào)控制信號,使8251A可與MODEM相連發(fā)送緩沖器:由數(shù)據(jù)發(fā)送緩沖器與并-串移位寄存器組成,將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)發(fā)送出去9.3.28251A的結構數(shù)據(jù)總線緩沖器:圖示調(diào)制/解調(diào)控449.3.28251A的結構(續(xù))發(fā)送控制電路:協(xié)調(diào)發(fā)送緩沖器工作,為傳送提供識別控制信息位(如起始位,停止位、同步字符等)接收緩沖器:接收串行數(shù)據(jù),并按相應格式轉(zhuǎn)換成并行數(shù)據(jù)接收控制電路:
協(xié)調(diào)接收緩沖器工作9.3.28251A的結構(續(xù))發(fā)送控制電路:458251A的引腳功能與CPU連接信號D7~D0:雙向數(shù)據(jù)線,與系統(tǒng)的數(shù)據(jù)總線相連,傳送命令字,狀態(tài)信息和收發(fā)數(shù)據(jù)RESET:復位信號,有效時,將內(nèi)部寄存器和控制邏輯清0CS#(ChipSelect):片選信號,來自CPU的I/O地址譯碼器RD#、WR#:讀、寫控制信號,與系統(tǒng)的IOR、IOW相連CLK
:系統(tǒng)時鐘信號,產(chǎn)生8251A內(nèi)部的時序信號C/D#:控制口/數(shù)據(jù)口選擇信號;C/D#=1,選中控制/狀態(tài)端口C/D#=0,選中數(shù)據(jù)端口8251A的引腳功能與CPU連接信號46表9.2RD*、WR*、C/D*的編碼和對應的操作D7~D0為高阻狀態(tài)×××1D7~D0為高阻狀態(tài)11×0向8251A寫控制命令0110讀取8251A的狀態(tài)1010向8251A輸出數(shù)據(jù)0100從8251A輸入數(shù)據(jù)1000操作WR#RD#C/D#CS#表9.2RD*、WR*、C/D*的編碼和對應的操作D7~47與CPU連接信號TxRDY(transmitterReady):發(fā)送器準備好信號,輸出,高電平有效TxRDY有效的條件是:CTS#引腳是低電平,初始化命令字的TxEN=1,當發(fā)送緩沖器為空時,此信號有效它有效表明CPU可以向8251A發(fā)送數(shù)據(jù)在中斷方式下,TxRDY可作為中斷請求信號CPU向8251A寫入一個字符后,TxRDY自動復位與CPU連接信號TxRDY(transmitterRead48與CPU連接信號TxE(TransmitterEmpty)發(fā)送器空信號,輸出,高電平有效表示發(fā)送器中并串轉(zhuǎn)換器已空,發(fā)送過程已完成;8251A從CPU接收待發(fā)的數(shù)據(jù)后,自動復位;字符發(fā)送完,TxE又變?yōu)楦?;TxRDY較TxE之前有效RxRDY(ReceiverReady)接收器準備好信號,輸出,高電平有效表示8251A已經(jīng)接收了一個數(shù)據(jù),正等待CPU取走;該信號可作為向CPU發(fā)出的中斷請求信號;當CPU讀取數(shù)據(jù)后,RxRDY自動復位。與CPU連接信號TxE(TransmitterEmpty)49與CPU連接信號SRNDET(SynchronousDetect)同步檢驗信號,雙向,高電平有效。該信號僅用于同步方式,其輸入輸出由程序控制。內(nèi)同步方式:SRNDET端輸出。當8251A檢測到同步字符時,該信號為高電平,表示接收發(fā)送達到同步。外同步方式:SRNDET端輸入。當片外電路檢測到同步字符時從該端輸入高電平,它使8251A在RxC時鐘下開始裝配字符。與CPU連接信號SRNDET(SynchronousDet50與調(diào)制/解調(diào)器的接口信號DTR#(DataTerminalReady)數(shù)據(jù)終端準備好信號,低電平有效。有效表示DTE設備已準備好。DSR#(DataSetReady)數(shù)據(jù)裝置準備好,輸入,低電平有效。它是MODEM對DTR信號的回答,表示MODEM已準備好。RTS#(RequestToSend)請求發(fā)送信號,輸出,低電平有效。用于通知MODEM,DTE設備要求發(fā)送數(shù)據(jù)與調(diào)制/解調(diào)器的接口信號DTR#(DataTerminal51與調(diào)制/解調(diào)器的接口信號CTS#(ClearToSend)允許發(fā)送信號,輸入,低電平有效。是MODEM對RTS的響應信號,表示允許DTE設備發(fā)送數(shù)據(jù)TxD(TransmitterData)發(fā)送數(shù)據(jù)線RxD(ReceiverData)接收數(shù)據(jù)線與調(diào)制/解調(diào)器的接口信號CTS#(ClearToSend52傳輸速率控制線TxC(TransmitterClock)發(fā)送器時鐘,控制8251A發(fā)送字符的速率RxC(ReceiverClock)接收器時鐘,控制8251A接收字符的速率在同步方式下:TxC和RxC的頻率等于字符傳輸?shù)牟ㄌ芈试诋惒椒绞较拢篢xC和RxC的頻率可以是字符傳輸波特率的1倍、16倍或64倍,由初始化編程設定傳輸速率控制線TxC(TransmitterClock)539.3.38251A的編程使用工作方式字作用:設定8251A的工作方式,如異步/同步方式,字符格式,傳輸率等寫入次序工作方式字必須緊跟復位操作之后寫入工作方式字的格式為:9.3.38251A的編程使用工作方式字54No異步(D1D0
00)Yes(D1D0=00)/D0D1D2D3D4D5D6D711=異步×6410=異步×1601=異步×100=同步方式波特率系數(shù)11=8位10=7位01=6位00=5位字符長度11=2個停止位10=1.5個停止位01=1個停止位00=不確定幀控制11=偶校驗01=奇校驗×0=無校驗奇/偶校驗1×=1個同步字符0×=2個同步字符×1=外同步×0=內(nèi)同步同步控制同步?工作方式字的格式No異步Yes/D0D1D2D3D4D5D6D711=異步×55工作方式字的格式說明D1、D0:同步異步/波特率系數(shù)選擇D1D0=00,為同步方式控制字此時由D7D6位來選擇同步的方式D1D0≠00,是異步方式控制字D1D0=01、10、11,其波特率系數(shù)分別為:1、16、64TxC和RxC的頻率、波特率系數(shù)和波特率的關系為:工作方式字的格式說明D1、D0:同步異步/波特率系數(shù)選擇56工作方式字的格式說明D3、D2:字符長度選擇D3D2=00、01、10、11,數(shù)據(jù)分為:5、6、7、8位D5、D4:奇/偶校驗選擇D5D4=×0、10、11,分別為:無校驗、奇校驗、偶校驗D7、D6:同步控制方式/停止位長選擇當D1D0=00,為同步控制方式設置D7D6=00、01、10、11,分別為雙/單同步下的內(nèi)/外同步;當D1D0≠00,為停止位長選擇D7D6=01、10、11,停止位長分別為:1、1.5、2位工作方式字的格式說明D3、D2:字符長度選擇57例9.1設定8251A工作于異步方式,波特率系數(shù)是16,每個字符7位數(shù)據(jù)位,1位起始位,2位停止位,偶校驗。則其工作方式字為:11111010B=0FAH設定工作方式程序段為:MOV DX,309H ;8251A的控制口MOV AL,0FAH
;工作方式字OUT DX,AL例9.1設定8251A工作于異步方式,波特率系數(shù)是16,58工作命令字作用:確定8251A的實際操作,使8251A進入某種工作狀態(tài),以便發(fā)送或接收數(shù)據(jù)工作命令字的格式:TXENDTRRXESBRKERRTSIREHD0D1D2D3D4D5D6D7發(fā)送允許數(shù)據(jù)終端準備好接收允許發(fā)中止字符錯誤標志復位發(fā)送請求內(nèi)部復位搜索同步字符工作命令字作用:TXENDTRRXESBRKERRTSIRE59工作命令字的格式:D0:發(fā)送允許D0=1,允許發(fā)送,D0=0,禁止發(fā)送D1:數(shù)據(jù)終端準備就緒。D1=1,置引腳DTR#有效,表示數(shù)據(jù)終端準備好D2:接收允許D2=1,允許接收,D2=0,禁止接收D3:發(fā)中止字符D3=1,使引腳TxD為低電平,輸出中止字符D3=0,正常工作情況工作命令字的格式:D0:發(fā)送允許60工作命令字的格式說明D4:錯誤標志復位D4=1,使狀態(tài)寄存器中出錯標志(FE、OE、PE)復位D5:發(fā)送請求D5=1,置引腳RTS#為低電平,向MODEM提出發(fā)送請求D6:內(nèi)部復位。D6=1,使8251A復位D7:搜索同步字符,只用于內(nèi)同步方式D7=1,8251A對RxD引腳輸入的信息進行同步字符搜索,若搜索到,使SYNDET輸出高電平工作命令字的格式說明D4:錯誤標志復位61例9.2要使8251A內(nèi)部復位,且允許接收和發(fā)送,應先發(fā)復位字,再發(fā)允許收發(fā)字。程序段為:MOV DX,309H
;309H8251A命令口MOV AL,01000000B
;置D6=1,OUT DX,AL
;使內(nèi)部復位MOV AL,00000101B ;置D2=1,D0=1OUT DX,AL
;允許接收與發(fā)送例9.2要使8251A內(nèi)部復位,且允許接收和發(fā)送,應先發(fā)復62狀態(tài)字8251A內(nèi)部設有狀態(tài)寄存器,CPU用IN指令讀入8251A的狀態(tài)字,查詢接口當前的工作狀態(tài)。狀態(tài)字的格式:發(fā)送準備好接收準備好發(fā)送器空奇偶錯溢出錯格式錯同步檢測數(shù)據(jù)設備準備好TxRDYRxRDYTxEPEOEFESYNDETDSRD0D1D2D3D4D5D6D7狀態(tài)字8251A內(nèi)部設有狀態(tài)寄存器,CPU用IN指令讀入8263狀態(tài)字的格式說明RxRDY(D1)、TxE(D2)和SYNDET(D6)的含義與同名引腳的含義和狀態(tài)相同DSR(D7)=1,表示DSR#引腳為低電平TxRDY(D0)=1,只表示輸出緩沖器已空,這與輸出引腳TxRDY的含義有所不同。僅當狀態(tài)位TxRDY=1,引腳CTS#為低和命令字的TxEN位=1,三者同時滿足時,輸出引腳TxRDY=1狀態(tài)字的格式說明RxRDY(D1)、TxE(D2)和SYND64狀態(tài)字的格式說明FE=1表示幀格式錯,即在異步方式下,當一個字符結束而沒有檢測到規(guī)定的停止位的差錯OE=1表示溢出錯,即CPU尚未讀取上一個字符而又接收了下一個字符的錯誤PE=1表示當前出現(xiàn)了奇偶校驗錯FE、OE和PE的有效并不影響8251A的操作,它們被工作命令字的ER位復位。狀態(tài)字的格式說明FE=1表示幀格式錯,即在異步方式下,當一個65例9.3查詢8251A接收器是否準備好,可用以下程序段:MOV DX,309H ;309H:狀態(tài)口地址L:IN AL,DX
;讀狀態(tài)字AND AL,02H
;查D1(RxRDY)
=1?JZ L
;未準備好,繼續(xù)查詢MOV DX,308H ;308H:數(shù)據(jù)口地址IN AL,DX
;已準備好,讀取數(shù)據(jù)例9.3查詢8251A接收器是否準備好,可用以下程序段:66例9.4在傳輸過程中要檢查出錯信息MOVDX,309H
;309H為狀態(tài)口INAL,DX
;讀狀態(tài)字TESTAL,38H
;檢查D5D4D3三位(FE、OE、PE)JNZERROR
;若其中有一位為1,則出錯…ERROR:例9.4在傳輸過程中要檢查出錯信息MOVDX,67工作方式字和工作命令字的使用方式字、命令字、狀態(tài)字之間的關系方式字只約定了雙方通信的方式、數(shù)據(jù)格式、傳輸速率等參數(shù)數(shù)據(jù)的發(fā)送或接收,要靠命令字來確定要正確地接收/發(fā)送數(shù)據(jù),則需要CPU查詢狀態(tài)字來進行控制工作方式字和工作命令字的使用方式字、命令字、狀態(tài)字之間的關68方式字和命令字的寫入8251A的工作方式字與操作命令字占有同一端口地址,寫入方式字和命令字時要按一定的順序先后寫入對8251A復位之前,最好先寫3個“0”,并作相應的延時寫入順序:寫三個0→復位→工作方式字→工作命令字1→工作命令字2→…。圖示方式字和命令字的寫入8251A的工作方式字與操作命令字占有同698251A與CPU的信息交換方式查詢方式CPU先讀入8251A狀態(tài)字若狀態(tài)字的D0(TxRDY)=1,CPU可向8251A數(shù)據(jù)口寫入數(shù)據(jù),完成串行數(shù)據(jù)的發(fā)送若狀態(tài)字的D1(RxRDY)=1,CPU可從8251A數(shù)據(jù)口讀取數(shù)據(jù),完成一幀數(shù)據(jù)的接收8251A與CPU的信息交換方式查詢方式70中斷方式8251A沒有單獨的中斷請求引腳,TxRDY引腳可作為發(fā)送中斷求信號引腳RxRDY可作為接收中斷請求信號;若數(shù)據(jù)發(fā)送與接收均采用中斷方式,則TxRDY和RxRDY可通過“或門”向CPU提出中斷請求,CPU轉(zhuǎn)入中斷程序后再查詢狀態(tài)字,分別轉(zhuǎn)向發(fā)送或接收處理程序中斷方式8251A沒有單獨的中斷請求引腳,TxRDY引腳可作718251A的編程舉例例9.5設定8251A工作于異步方式,波特率因子為64,每字符7個數(shù)據(jù)位,偶校驗,2個停止位,寫出初始化程序段,設數(shù)據(jù)口地址為50H,控制口地址為51H。工作方式字:11111011B=0FBH工作命令字:01000000B=40H
(內(nèi)部復位)工作命令字:00010111B=17H(清出錯標志,接收發(fā)送允許,使DTR有效)8251A的編程舉例例9.5設定8251A工作于異步方式,72初始化程序段:MOVAL,40H
;使內(nèi)部復位OUT51H,AL
;51H是8251A的控制口MOVAL,0FBH
;設定工作方式OUT51H,AL
MOVAL,17H
;設定工作命令字OUT51H,AL初始化程序段:MOVAL,40H ;使內(nèi)部復73例9.68251A工作于同步方式,雙同步,采用內(nèi)同步方式(SYNDET引腳為輸出),奇校驗,每個字符8個數(shù)據(jù)位,寫出初始化程序段。設8251A的數(shù)據(jù)口地址為308H,控制口地址為309H。工作方式字:00011100B=1CH同步字符:16H工作命令字:10000111B=97H例9.68251A工作于同步方式,雙同步,采用內(nèi)同步方式74工作程序段:MOVAL,40H
;使內(nèi)部復位MOVDX,309H
;309H是控制口地址OUTDX,ALMOVAL,1CH
;設定工作方式OUTDX,AL
MOVAL,16H
;輸出工作命令字OUTDX,AL ;連續(xù)輸出兩個同步字符OUTDX,ALMOVAL,97H
;寫工作命令字OUTDX,AL工作程序段:MOVAL,40H ;使內(nèi)部復位75例9.7
用8251A實現(xiàn)與終端(顯示器,鍵盤)的串行通信,即CPU接收鍵盤輸入字符,然后輸出到顯示器顯示。設8251A工作于異步方式,波特率因子為16,每字符7個數(shù)據(jù)位,奇校驗,1個停止位。8251A數(shù)據(jù)口地址為0D0H,控制口地址為0D1H。硬件連接:采用“自環(huán)”方式連接例9.7用8251A實現(xiàn)與終端(顯示器,鍵盤)的串行通76傳送單個字符到顯示器的程序段BEGIN:MOVAL,5AH
;寫方式字OUT
0D1H,AL ;
0D1H為控制口地址MOVAL,37H ;寫命令字,使錯誤標志復位OUT
0D1H,A;發(fā)送、接收允許,DTR和RTS輸出低電平STATE:INAL,0D1H
;讀狀態(tài)字TEST AL,01H ;檢查TxRDY=1?JZ STATE ;如不為1,則繼續(xù)查詢MOV AL,4AH ;輸出字符J的ASCII碼OUT 0D0H,AL ;0D0H為數(shù)據(jù)口地址HLT傳送單個字符到顯示器的程序段BEGIN:77字符回送到顯示器程序段,要求串行接口接收從鍵盤輸入的一個字符,并立即將該字符回送到顯示器顯示。BEGIN:MOV AL,5AH
;寫方式字OUT 0D1H,AL ;到控制口MOV AL,37H ;寫命令字,使錯誤標志復位OUT 0D1H,AL
;發(fā)送、接收允許,DTR和RTS輸出低電平STATE1:IN AL,
0D1H
;讀狀態(tài)字TEST AL,02H
;檢查RxRDY=1?JZ
STATE1
;不為1,則繼續(xù)查詢字符回送到顯示器程序段,要求串行接口接收從鍵盤輸入的一個字符78IN AL,
0D0H
;接收一個字符MOV BL,AL ;暫存于BL中STATE2:IN AL,0D1H
;讀狀態(tài)字TEST AL,01H
;檢查TxRDY=1?JZ STATE2
;不為1,則繼續(xù)查詢MOV AL,BL ;BL中暫存的字符送ALOUT 0D0H,AL
;字符輸出給顯示器JMP STATE1
;繼續(xù)準備接收字符回送到顯示器程序段,要求串行接口接收從鍵盤輸入的一個字符,并立即將該字符回送到顯示器顯示。IN AL,0D0H ;接收一個字符字符回送到顯示器程79例9.8利用8251A實現(xiàn)雙機通信要求:甲,乙兩臺微機之間串行通信,甲發(fā),乙收,要把甲機上的一段程序(長度為2DH)傳送到乙機中;采用異步方式,每個字符8個數(shù)據(jù)位,2個停止位,波特率因子為64,無校驗;CPU于8251A之間用查詢方式交換數(shù)據(jù);口地址分配是:309H命令口/狀態(tài)口,308H為數(shù)據(jù)口。硬件連接:用兩片8251A,經(jīng)電平轉(zhuǎn)換構成RS-232C接口,最簡方式連接。圖示例9.8利用8251A實現(xiàn)雙機通信要求:圖示80發(fā)送方(甲機)初始化及控制程序段START:
MOVDX,309H
;命令口MOVAL,00HOUTDX,AL
;空操作MOVAL,40H
;內(nèi)部復位OUTDX,ALNOP
;空格延時MOV AL,0CFH
;方式字OUT DX,AL
MOV AL,11H ;命令字(ER和TXEN均置1)MOV CX,2DH ;傳送字節(jié)數(shù)
MOV SI,300H ;發(fā)送區(qū)首址為300H發(fā)送方(甲機)初始化及控制程序段START:81L1:
MOV DX,309H
;狀態(tài)口
TEST AL,01H
;檢查TxRDY=1?
JZ L1
;發(fā)送未準備好,繼續(xù)查詢
MOV DX,308H
;數(shù)據(jù)口
MOV AL,[SI] ;取一個字節(jié)數(shù)據(jù)
OUT DX,AL
;發(fā)出
INC SI ;修改地址指針
DEC CX ;字節(jié)數(shù)減1
JNZ L1
;未發(fā)完繼續(xù)發(fā)
HLT
發(fā)送方(甲機)初始化及控制程序段(續(xù))L1:
MOV DX,309H ;狀態(tài)口
TEST82接收方(乙機)初始化及控制程序段START:
MOVDX,309H
;命令口MOVAL,00HOUTDX,AL
;空操作MOVAL,40H
;內(nèi)部復位OUTDX,ALNOP
;空格延時MOVAL,0CFH
;工作方式字OUTDX,ALMOVAL,14H
;命令字(ER和RXE均置1)
OUTDX,AL
;錯誤標志復位,接收允許MOVCX,2DH
;接收字節(jié)數(shù)MOV DI,400H
;接收區(qū)首址為400H接收方(乙機)初始化及控制程序段START:83L2:
MOV DX,309H
;狀態(tài)口
IN AL,DX
;查狀態(tài)字
TEST AL,02H
;查D1(RXRDY)=1?
JZ L2
;接收未準備好,繼續(xù)查詢
TESTAL,38H
;查出錯
JNZERR
;有錯誤轉(zhuǎn)出錯處理
MOVDX,308H
;數(shù)據(jù)口
INAL,DX ;接收準備好,接收一個字符
MOV[DI],AL ;存入接收區(qū)
INCDI ;修改接收區(qū)地址指針
LOOPL2
;未接收完,繼續(xù)
HLT
接收方(乙機)初始化及控制程序段(續(xù))L2:
MOV DX,309H ;狀態(tài)口
IN AL849.4通用異步接收發(fā)送器8250串行傳輸,需要并行到串行和串行到并行的轉(zhuǎn)換,并按照傳輸協(xié)議發(fā)送和接收每個字符(或數(shù)據(jù)塊)這些工作可由軟件實現(xiàn),也可用硬件實現(xiàn)通用異步接收發(fā)送器UART是串行異步通信的接口電路芯片IBMPC/XT機的UART芯片是INS8250后來使用NS165509.4通用異步接收發(fā)送器8250串行傳輸,需要并行到串行和859.4.18250的內(nèi)部結構8250實現(xiàn)了起止式串行異步通信協(xié)議,支持全雙工通信通信字符可選擇數(shù)據(jù)位為5~8位停止位1、1.5或2位可進行奇偶校驗具有奇偶、幀和溢出錯誤檢測電路8250支持的數(shù)據(jù)傳輸速率為50~9600bps9.4.18250的內(nèi)部結構8250實現(xiàn)了起止式串行異步通868250的內(nèi)部結構878250的內(nèi)部結構87串行數(shù)據(jù)的發(fā)送串行數(shù)據(jù)CPU發(fā)送保持寄存器發(fā)送移位寄存器同步控制8250SOUT0/10/10/10/1雙緩沖寄存器結構保證數(shù)據(jù)的連續(xù)發(fā)送并行數(shù)據(jù)加入起始位、校驗位、停止位串行數(shù)據(jù)的發(fā)送串行數(shù)據(jù)CPU發(fā)送保持寄存器發(fā)送移位寄存器同步88起始位的檢測起始檢測確定已檢測到起始位采樣數(shù)據(jù)起始位時鐘(RCLK)數(shù)據(jù)線(SIN)T16T16T8T數(shù)據(jù)接收時鐘頻率是數(shù)據(jù)傳輸頻率的16倍正確識別起始位,防止因干擾引起的誤識別起始位的檢測起始檢測確定已檢測到起始位采樣數(shù)據(jù)起始位時鐘89串行數(shù)據(jù)的接收串行數(shù)據(jù)CPU接收緩沖寄存器接收移位寄存器同步控制8250SIN0/10/10/10/1雙緩沖寄存器結構保證數(shù)據(jù)的連續(xù)接收并行數(shù)據(jù)檢測接收錯誤刪除起始位、校驗位、停止位串行數(shù)據(jù)的接收串行數(shù)據(jù)CPU接收緩沖寄存器接收移位寄存器同步90接收錯誤的處理奇偶錯誤PE(ParityError)若接收到的字符的“1”的個數(shù)不符合奇偶校驗要求幀錯誤FE(FrameError)若接收到的字符格式不符合規(guī)定(如缺少停止位)溢出錯誤OE(OverrunError)若接收移位寄存器接收到一個數(shù)據(jù),并送至輸入緩沖器時,CPU還未取走前一個數(shù)據(jù),就會出現(xiàn)數(shù)據(jù)溢出若接收緩沖器的級數(shù)多,則溢出錯誤的幾率就少接收錯誤的處理奇偶錯誤PE(ParityError)919.4.28250的引腳分成連接CPU的部分和連接外設的部分注意:8250不是Intel公司的產(chǎn)品,所以該芯片引腳名稱與前面學習的8253、8255等Intel產(chǎn)品有所不同,但是引腳功能卻是類似的9.4.28250的引腳分成連接CPU的部分和連接外設的部929.4.28250的引腳9.4.28250的引腳93處理器接口引腳(1)數(shù)據(jù)線D0~D7:在CPU與8250之間交換信息地址線A0~A2:尋址8250內(nèi)部寄存器片選線:8250設計了3個片選輸入信號CS0、CS1、CS2#和一個片選輸出信號CSOUT。3個片選輸入都有效時,才選中8250芯片,同時CSOUT輸出高電平有效。地址選通信號ADS#:當該信號低有效時,鎖存上述地址線和片選線的輸入狀態(tài),保證讀寫期間的地址穩(wěn)定處理器接口引腳(1)數(shù)據(jù)線D0~D7:94處理器接口引腳(2)讀控制線數(shù)據(jù)輸入選通DISTR(高有效)和DISTR#(低有效)有一個信號有效,CPU從8250內(nèi)部寄存器讀出數(shù)據(jù)相當于I/O讀信號寫控制線數(shù)據(jù)輸出選通DOSTR(高有效)和DOSTR#(低有效)有一個有效,CPU就將數(shù)據(jù)寫入8250內(nèi)部寄存器相當于I/O寫信號8250讀寫控制信號有兩對,每對信號作用完全相同,只不過有效電平不同而己處理器接口引腳(2)讀控制線95處理器接口引腳(3)驅(qū)動器禁止信號DDIS:CPU從8250讀取數(shù)據(jù)時,DDIS引腳輸出低電平,用來禁止外部收發(fā)器對系統(tǒng)總線的驅(qū)動;其他時間,DDIS為高電平主復位線MR硬件復位信號RESET中斷請求線INTRPT:8250有4級共10個中斷源,當任一個未被屏蔽的中斷源有請求時,INTRPT輸出高電平向CPU請求中斷處理器接口引腳(3)驅(qū)動器禁止信號DDIS:96時鐘信號時鐘輸入引腳XTAL1:8250的基準工作時鐘時鐘輸出引腳XTAL2:基準時鐘信號的輸出端波特率輸出引腳BAUDOUT#:基準時鐘經(jīng)8250內(nèi)部波特率發(fā)生器分頻后產(chǎn)生發(fā)送時鐘接收時鐘引腳RCLK:接收外部提供的接收時鐘信號;若采用發(fā)送時鐘作為接收時鐘,則只要將RCLK引腳和BAUDOUT#引腳直接相連時鐘信號時鐘輸入引腳XTAL1:97串行異步接口引腳8250數(shù)據(jù)裝置準備好DSR#數(shù)據(jù)終端準備好DTR#發(fā)送數(shù)據(jù)SOUT接收數(shù)據(jù)SIN請求發(fā)送RTS#允許發(fā)送CTS#信號地GND載波檢測RLSD#振鈴指示RI#串行異步接口引腳8250數(shù)據(jù)裝置準備好DSR#數(shù)據(jù)終端準備好98SIN:串行數(shù)據(jù)輸入。SOUT:串行數(shù)據(jù)輸出。DSR#:數(shù)據(jù)設備就緒,輸入線DTR#:數(shù)據(jù)終端就緒,輸出線RI#:振鈴指示,輸入線。RLSD#:接收線路信號檢測,輸入線。RTS#:請求發(fā)送,輸出線。CTS#:清除發(fā)送,輸入線。串行異步接口引腳(續(xù))SIN:串行數(shù)據(jù)輸入。串行異步接口引腳(續(xù))99輸出線OUT1#和OUT2#:兩個一般用途的輸出信號由調(diào)制解調(diào)器控制寄存器的D2和D3使其輸出低電平有效信號復位使其恢復為高輸出線OUT1#和OUT2#:1009.4.38250的寄存器8250內(nèi)部有9種可訪問的寄存器,除數(shù)寄存器是16位的,占用兩個連續(xù)的8位端口內(nèi)部寄存器用引腳A0~A2來尋址;同時還要利用通信線路控制寄存器的最高位,即除數(shù)寄存器訪問位DLAB,來區(qū)別共用兩個端口地址的不同寄存器9.4.38250的寄存器8250內(nèi)部有9種可訪問的寄存器101DLABA2A1A0被訪問的寄存器0000接收緩沖寄存器(讀),發(fā)送保持寄存器(寫)0001中斷允許寄存器1000波特率除數(shù)寄存器(低字節(jié))1001波特率除數(shù)寄存器(高字節(jié))X010中斷識別寄存器(讀),F(xiàn)IFO控制器(寫)X011線路控制寄存器X100MODEM控制寄存器X101線路狀態(tài)寄存器X110MODEM狀態(tài)寄存器X111Scratch寄存器注:DLAB是線路控制寄存器的D7位。表9.28250內(nèi)部寄存器的訪問控制DLABA2A1A0被訪問的寄存器0000接收緩沖寄存器(讀102A2A1A0=011線路控制寄存器LCRD7D6D5D4D3D2D1D0DLABSBSPEPSPENSTBWLSIWLSO字符長度選擇00—5位01—6位10—7位11—8位停止位選擇0—1位1—1.5位(D1D0=00)2位(D1D0≠00)附加奇偶標志位選擇0—不附加1—附加1位奇偶校驗選擇奇偶校驗允許11—偶校驗01—奇校驗除數(shù)寄存器訪問允許0—禁止1—允許中止設置1—中止0—正常A2A1A0=011線路控制寄存器LCRD7D6D5D103線路狀態(tài)寄存器LSR接收緩沖區(qū)滿接收奇偶錯接收格式錯(無正確的停止位)中止識別標志發(fā)送移位器空A2A1A0=101
D7D6D5D4D3D2D1D0TSRETHREBIFEPEOEDR接收重疊錯發(fā)送保持器空FIFO中接收數(shù)據(jù)錯誤(16550)線路狀態(tài)寄存器LSR接收緩沖區(qū)滿接收奇偶錯接收格式錯(無正確104接收緩沖寄存器RBR存放串行接收后轉(zhuǎn)換成并行的數(shù)據(jù)CPU接收緩沖寄存器接收移位寄存器同步控制8250SINDLAB=0,A2A1A0=000接收緩沖寄存器RBR存放串行接收后轉(zhuǎn)換成并行的數(shù)據(jù)CPU接收105發(fā)送保持寄存器THR包含將要串行發(fā)送的并行數(shù)據(jù)CPU發(fā)送保持寄存器發(fā)送移位寄存器同步控制8250SOUTDLAB=0,A2A1A0=000發(fā)送保持寄存器THR包含將要串行發(fā)送的并行數(shù)據(jù)CPU發(fā)送保106這是軟件控制的分頻器,輸出的工作時鐘頻率為16倍的波特率。除數(shù)寄存器值=基準時鐘頻率÷(16×波特率)INS8250芯片輸入的基準時鐘頻率為1.8432MHz,若波特率為4800b/s,則波特率除數(shù)為0018H,DLH中應填00H,DLL中應填18H。注意:PC16550的基準時鐘一般為18.432MHz。DLAB=1,A2A1A0=001(高)或000(低)波特率除數(shù)鎖存器DLH、DLL這是軟件控制的分頻器,輸出的工作時鐘頻率為16倍的波特率。D107中斷識別寄存器IIR中斷類型標識A2A1A0=010(讀)D7D6D5D4D3D2D1D00ID2ID1IP未決中斷指示0—有1—無超時中斷0—不超時1—超時允許64字節(jié)FIFO(16750)0—禁止1—允許FIFO使用指示(16550)01—允許FIFO但不可用11—允許FIFO中斷識別寄存器IIR中斷類型標識A2A1A0=010(讀)108ID2ID1中斷類型優(yōu)先權11接收出錯(重疊、奇偶錯、格式錯和中止)最高10接收緩沖器滿次高01發(fā)送保持器空低00MODEM狀態(tài)(CTS、DSR、RI和RLSD)改變最低表9.38250的中斷類型控制ID2ID1中斷類型優(yōu)先權11接收出錯(重疊、奇偶錯、格式錯109中斷允許寄存器IER進入低功耗模式(16550)進入睡眠模式(16750)DLAB=0,A2A1A0=001D7D6D5D4D3D2D1D000I0EI3EI1EI2E類型2中斷(接收緩沖器滿)1-允許0-屏蔽類型1中斷(發(fā)送保持器空)1-允許0-屏蔽類型3中斷(接收出錯)1-允許0-屏蔽類型0中斷(MODEM狀態(tài)改變)1-允許0-屏蔽中斷允許寄存器IER進入低功耗模式(16550)進入睡眠模110MODEM控制寄存器MCRA2A1A0=100數(shù)據(jù)終端就緒請求發(fā)送輔助輸出1自動流量控制(16750)環(huán)路檢測(內(nèi)部自循環(huán))輔助輸出2,PC用做中斷注意:這里的OUTi位極性和OUTi引腳相反。D7D6D5D4D3D2D1D000LOOPOUT2OUT1RTCDTRMODEM控制寄存器MCRA2A1A0=100數(shù)據(jù)終端就緒111A2A1A0=110
CTS位發(fā)生改變DSR位發(fā)生改變收到“振鈴指示”后沿(下降沿)收到“數(shù)傳機就緒”收到“清除發(fā)送”RLSD位發(fā)生改變收到“振鈴指示”收到“接收線載波檢測”MODEM狀態(tài)寄存器MSRD7D6D5D4D3D2D1D0RLSDRIDSRCTSRLSDTERIDSRCTSA2A1A0=110CTS位發(fā)生改變DSR位發(fā)生改變收到“112FIFO控制寄存器(FCR)A2A1A0=010(寫)16550后才有允許FIFO緩沖器工作清除接收FIFO緩沖器清除發(fā)送FIFO緩沖器允許64字節(jié)FIFO(16750)保留DMA方式選擇接收端中斷觸發(fā)器水平(LSB)接收端中斷觸發(fā)器水平(MSB)D7D6D5D4D3D2D1D0FIFO控制寄存器(FCR)A2A1A0=010(寫)165113觸發(fā)器水平即是指示在中斷產(chǎn)生之前,接收緩沖器應該裝滿多少個字節(jié)。D7D6觸發(fā)器水平001字節(jié)014字節(jié)108字節(jié)1112字節(jié)觸發(fā)器水平即是指示在中斷產(chǎn)生之前,接收緩沖器應該裝滿多少個字1149.5異步通信適配器IBMPC/XT機的串行異步通信適配器以8250為核心完成發(fā)送時的并轉(zhuǎn)串和接收時的串轉(zhuǎn)并以及相應的控制工作配置了TTL電平與EIA電平轉(zhuǎn)換電路等展開異步通信適配器的硬件電路軟件編程9.5異步通信適配器IBMPC/XT機的串行異步通信適配115RCLKBAUDOUT#IRQ4IRQ3RESET+5VA8AENA3~A7A9IOR#IOW#A0~A2MRXTAL1OUT1#OUT2#INTRPTDISTR#DOSTR#A0~A2CS2#8250LS245D0~D7D0~D7J9J10J11J12DIR1.8432MHzCS0CS1ADSDISTRDOSTR+5V9.5.1異步通信適配器的接口電路注意:J9~J11跨接器和OUT2#的作用RCLKIRQ4+5VA8AENIOR#MROUT1#DI116微機原理與接口串行通信接口課件1179.5.2異步通信適配器的初始化編程對8250的內(nèi)部控制寄存器進行編程寫入寫入除數(shù)寄存器設置傳輸率寫入通信線路控制寄存器設置字符格式寫入調(diào)制解調(diào)器控制寄存器設置工作方式寫入中斷允許寄存器設置中斷允許或屏蔽位9.5.2異步通信適配器的初始化編程對8250的內(nèi)部控制118設置傳輸率mov al,80hmov dx,3fbhout dx,al ;寫入通信線路控制寄存器,使DLAB=1mov ax,96;分頻系數(shù):1.8432MHz÷(1200×16)=96=60Hmov dx,3f8hout dx,al ;寫入除數(shù)寄存器低8位mov al,ahinc dxout dx,al ;寫入除數(shù)寄存器高8位8250初始化編程舉例寫入除數(shù)寄存器設置傳輸率mov al,80h8250初始化編程舉例寫入除119設置字符格式mov al,00001010bmov dx,3fbhout dx,al ;寫入通信線路控制寄存器;這段程序同時使DLAB=08250初始化編程舉例寫入通信線路控制寄存器設置字符格式mov al,00001010b8250初始化120設置工作方式;設置查詢通信方式
mov al,03h ;控制OUT2#為高,DTR#和RTS#為低
mov dx,3fch out dx,al ;寫入調(diào)制解調(diào)器控制寄存器;設置中斷通信方式
mov al,0bh ;控制為OUT2#低,允許INTRPT產(chǎn)生請求
mov dx,3fch out dx,al寫入調(diào)制解調(diào)器控制寄存器8250初始化編程舉例設置工作方式;設置查詢通信方式寫入調(diào)制解調(diào)器控制寄存器825121設置中斷允許或屏蔽位mov al,0 ;禁止所有中斷mov dx,3f9hout dx,al ;寫入中斷允許寄存器(此時DLAB=0)寫入中斷允許寄存器8250初始化編程舉例設置中斷允許或屏蔽位mov al,0 ;禁止所有中斷寫入中1229.5.3異步通信程序舉例程序循環(huán)讀取8250的通信狀態(tài)寄存器數(shù)據(jù)傳輸錯誤就顯示一個問號“?”接收到數(shù)據(jù)就顯示出來可以發(fā)送數(shù)據(jù)就從鍵盤輸入發(fā)送字符(用戶沒有輸入字符就不發(fā)送)如果按下ESC鍵返回DOS9.5.3異步通信程序舉例程序循環(huán)讀取8250的通信狀態(tài)寄123statue:
mov dx,2fdh
;讀通信線路狀態(tài)寄存器in al,dxtest al,1eh
;接收有錯誤否?jnz error
;有錯,則轉(zhuǎn)錯誤處理test al,01h
;接收到數(shù)據(jù)嗎?jnz receive
;是,轉(zhuǎn)接收處理test al,20h
;保持寄存器空嗎?jz statue
;不能,循環(huán)查詢異步通信程序查詢通信線路狀態(tài)statue: 異步通信程序查詢通信線路狀態(tài)124
mov ah,0bh
;檢測鍵盤有無輸入字符
int 21h cmp al,0 jz statue
;無輸入字符,循環(huán)等待
mov ah,0
;有輸入字符,讀取字符
int 16h
;采用01號DOS功能調(diào)用,則有回顯
cmp al,1bh
jz done
;是ESC鍵,程序返回DOS檢測鍵盤輸入異步通信程序 mov ah,0bh ;檢測鍵盤有無輸入字符檢測鍵盤輸入125
mov dx,2f8h
;將字符輸出給發(fā)送保持寄存器
out dx,al
;串行發(fā)送數(shù)據(jù)
jmp statue
;繼續(xù)查詢發(fā)送數(shù)據(jù)異步通信程序 mov dx,2f8h ;將字符輸出給發(fā)送保持寄存器發(fā)送126receive: mov
dx,2f8h
;從輸入緩沖寄存器讀取字符in al,dxand al,7fh
;傳送標準ASCII碼(7個數(shù)據(jù)位),
僅取低7位push ax ;保存數(shù)據(jù)接收數(shù)據(jù)異步通信程序receive: 接收數(shù)據(jù)異步通信程序127
mov dl,al
;屏幕顯示該數(shù)據(jù)
mov ah,2 int 21h pop ax
;恢復數(shù)據(jù)
cmp al,0dh
;數(shù)據(jù)是回車符嗎? jnz statue
;不是,則循環(huán)
mov dl,0ah
;是,再進行換行
mov ah,2 int 21h
jmp statue
;繼續(xù)查詢顯示數(shù)據(jù)異步通信程序 mov dl,al ;屏幕顯示該數(shù)據(jù)顯示數(shù)據(jù)異步通信程序128error: mov dx,2f8h
;讀出接收有誤的數(shù)據(jù),丟掉in al,dxmov dl,’?’
;顯示問號mov ah,2int 21hjmp statue
;繼續(xù)查詢接收錯誤處理異步通信程序error: 接收錯誤處理異步通信程序1299.5.4中斷通信方式的編程方法關鍵解決主程序與中斷服務程序的數(shù)據(jù)傳遞注意處理好8250的4級10種中斷源簡便方法只允許接收數(shù)據(jù)準備好中斷9.5.4中斷通信方式的編程方法關鍵130中斷通信方式的循環(huán)隊列接收緩沖寄存器中斷服務程序主程序讀隊列送UART(保持寄存器空中斷)讀UART送隊列(接收數(shù)據(jù)準備好中斷)發(fā)送處理:向隊列輸出字符接收處理:從隊列輸入字符接收隊列尾指針頭指針頭指針尾指針發(fā)送隊列UART發(fā)送保持寄存器中斷通信方式的循環(huán)隊列接收緩沖中斷服務程序主程序讀隊列送UA1318250自測試循環(huán)工作方式數(shù)據(jù)終端準備好DTR#數(shù)據(jù)裝置準備好DSR#發(fā)送數(shù)據(jù)SOUT接收數(shù)據(jù)SIN請求發(fā)送RTS#允許發(fā)送CTS#輸出OUT2載波檢測RLSD#振鈴指示RI#輸出OUT14個控制輸入信號和系統(tǒng)分離,并在芯片內(nèi)部與4個控制輸出信號相連發(fā)送的串行數(shù)據(jù)立即在內(nèi)部被接收可用來檢測8250發(fā)送和接收功能正確與否,而不必外連線8250自測試循環(huán)工作方式數(shù)據(jù)終端準備好DTR#數(shù)據(jù)裝置132圖10.1異步通信數(shù)據(jù)格式圖9.1起至式串行通信協(xié)議的數(shù)據(jù)格式圖10.1異步通信數(shù)據(jù)格式圖9.1起至式串行通信協(xié)議的數(shù)133圖10.2RS-232C接口環(huán)境圖9.2RS-232C接口環(huán)境圖10.2RS-232C接口環(huán)境圖9.2RS-232C134圖10.3RS-232C的電平與邏輯值圖9.3RS-232C的電平與邏輯值圖10.3RS-232C的電平與邏輯值圖9.3RS-135圖10.4TTL和RS-232C之間的電平轉(zhuǎn)換圖9.4TTL和RS-232之間的電平轉(zhuǎn)換圖10.4TTL和RS-232C之間的電平轉(zhuǎn)換圖9.4136
圖10.58251A內(nèi)部結構圖9.58251A的內(nèi)部結構圖10.58251A內(nèi)部結構圖9.58251A的內(nèi)部137圖10.6向8251A命令口寫入的順序
圖9.68251A命令字的寫入次序圖10.6向8251A命令口寫入的順序
圖9.6825138圖10.7用8251A實現(xiàn)與終端的串行通信圖9.7用8251實現(xiàn)與終端的串行通信圖10.7用8251A實現(xiàn)與終端的串行通信圖9.7用139圖10.8雙機串行通信硬件連接圖圖9.8雙機串行通信硬件連接圖圖10.8雙機串行通信硬件連接圖圖9.8雙機串行通信硬140圖10.9調(diào)制與解調(diào)圖9.9調(diào)制與解調(diào)圖10.9調(diào)制與解調(diào)圖9.9調(diào)制與解調(diào)141圖10.10傳輸制式圖9.10傳輸制式圖10.10傳輸制式圖9.10傳輸制式142傳輸制式傳輸制式143調(diào)制與解調(diào)調(diào)制與解調(diào)144不使用聯(lián)絡信號的3線相連方式為了交換信息,TxD和RxD應當交叉連接程序中不必使RTS和DTR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學生玩具創(chuàng)業(yè)計劃書
- 關于安裝電合同范本
- 修路拆除建筑合同范本
- 寫過勞動合同范本
- 修理修配勞務合同范本
- 低價轉(zhuǎn)讓木材設備合同范例
- 養(yǎng)殖公司轉(zhuǎn)讓合同范例
- 勞務運輸中介合同范本
- 住建部檢測合同范本
- 代理收放貨合同范本
- 部編版小學語文四年級下冊教師教學用書(教學參考)完整版
- 初中生物面團發(fā)酵實驗報告
- 工程項目總投資的構成及估算
- 串通招投標法律問題研究
- 高原鐵路建設衛(wèi)生保障
- 顳下頜關節(jié)盤復位固定術后護理查房
- 新版藥品管理法培訓完整版本課件
- 醫(yī)院信息系統(tǒng)HIS知識培訓教學課件-HIS的主要內(nèi)容
- 硝苯地平控釋片
- 合成聚氨酯原料及助劑生產(chǎn)項目
- 四川省瀘州市2019年中考物理考試真題與答案解析
評論
0/150
提交評論