《微機原理與接口》第9章串行通信接口.ppt_第1頁
《微機原理與接口》第9章串行通信接口.ppt_第2頁
《微機原理與接口》第9章串行通信接口.ppt_第3頁
《微機原理與接口》第9章串行通信接口.ppt_第4頁
《微機原理與接口》第9章串行通信接口.ppt_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術(shù)易凡 武漢大學物理學院電子科學與技術(shù)系,第九章 串行通信與接口,教學重點 異步通信協(xié)議和RS232C接口 8051、8250芯片的結(jié)構(gòu)與編程使用 異步通信程序,9.1 串行通信基礎,串行通信: 將數(shù)據(jù)分解成二進制位用一條信號線,逐位順序傳送的方式 串行通信的優(yōu)點: 通信的線路少,因而在遠距離通信時可以極大地降低成本 串行通信適合于遠距離數(shù)據(jù)傳送,也常用于速度要求不高的近距離數(shù)據(jù)傳送 PC系列機上有兩個串行異步通信接口、鍵盤、鼠標器與主機間采用串行數(shù)據(jù)傳送,傳輸制式,單工方式(Simplex): 只允許數(shù)據(jù)按照一個固定的方向傳送,圖示,傳輸制式(續(xù)),半雙工方式(Half-Du

2、plex) 收發(fā)雙方均具備接收和發(fā)送數(shù)據(jù)能力。由于只有一條通道,不能同時在兩個方向上傳送數(shù)據(jù)。,圖示,傳輸制式(續(xù)),全雙工方式(Full Duplex): 收發(fā)雙方均具備接收和發(fā)送數(shù)據(jù)能力,并可以同時進行雙向傳輸。,圖示,傳輸速率,比特率(信息傳輸速率) : 每秒傳送的二進制數(shù)位數(shù)(比特數(shù)) 單位為bps (bit per second) 波特率(碼元傳輸率): 每秒傳送的碼元(符號)數(shù) 單位為: 波特(Baud)即每秒傳送1個碼元 (符號)稱傳輸率是1波特。,傳輸速率(續(xù)),波特率與比特率的差異 若每個碼元所含的信息量為1比特(Bit),則波特率等于比特率,否則二者不等 例如,在四相調(diào)制系

3、統(tǒng)中, 每次調(diào)制取4種相位差值,它代表2 位二進制信息位,此時, 比特率=2波特率 標準波特率系列為: 110、300、600、1200、1800、2400、4800、9600、19200,串行通信協(xié)議,通信協(xié)議: 收發(fā)雙方共同遵守的基本通信規(guī)程(Protocol) 通信協(xié)議主要內(nèi)容: 同步方式 傳輸控制步驟 差錯檢驗方式 數(shù)據(jù)編碼 數(shù)據(jù)傳輸速率 通信版文的格式 控制字符的定義等,串行通信的基本方式,串行通信有兩種基本方式 異步串行通信 在通信的數(shù)據(jù)流中,字符間異步,字符內(nèi)部各位間同步。 “異步” 體現(xiàn)在字符與字符之間通信沒有嚴格的定時要求。 一旦傳送開始,收/發(fā)雙方則以預先約定的傳輸速率,在

4、時鐘的作用下,傳送這個字符中的每一位。 同步串行通信 數(shù)據(jù)流中的字符與字符之間和字符內(nèi)部位與位之間都同步。 同步串行通信是以數(shù)據(jù)塊(字符塊)為信息單位傳送,而每幀信息包括成百上千個字符; 傳送一旦開始,要求每幀信息內(nèi)部的每一位都要同步。,異步通信協(xié)議(起止式通信協(xié)議)格式,起始位:每一幀字符的開始,1位,邏輯0 數(shù)據(jù)位:緊接著起始位,數(shù)據(jù)位個數(shù)為58位,數(shù)據(jù)從最低位開始發(fā)送 奇偶校驗位:數(shù)據(jù)位之后,發(fā)送1位奇偶校驗位,也可以不發(fā)校驗位 停止位:一幀字符的最后發(fā)停止位,它可以是1位、1.5位或2位的邏輯1信號 空閑位:在每一幀字符之間可以有不等位數(shù)的邏輯1信號,表示沒有傳送,圖示,異步通信協(xié)議(

5、起止式通信協(xié)議)格式,比如ASCII 字符 A, 二進制是0100 0001(8位),它們在起始位和2位停止位之間傳送,并使用了1位奇校驗位。,Out,為了確保異步串行通信傳輸正確:,15,用相反極性的起始位和停止位/空閑位提供準確的時間基準 接收器在每位的中心采樣,以獲得最大的收/發(fā)時鐘頻率偏差容限 接收器采用比傳送波特率更高頻率的時鐘來控制采樣時間,以提高采樣的分辨能力和抗干擾能力。,例題:異步傳輸7位ASCII碼,如果需要數(shù)據(jù)傳輸速率為240字符/秒,使用1位奇偶校驗位和1位停止位,則:波特率應該是多少?有效數(shù)據(jù)位傳輸位是多少?傳輸效率是多少?,答: 波特率是 (7位數(shù)據(jù)位+1位起始位+

6、1位校驗位+1位停止位)240 =2400b/s 有效數(shù)據(jù)位傳輸位是 :7240=1680b/s 傳輸效率是:1680/2400=70%,以一個數(shù)據(jù)塊(幀)為傳輸單位,每個數(shù)據(jù)塊附加1個或2個同步字符,最后以校驗字符結(jié)束 同步通信的數(shù)據(jù)傳輸效率和傳輸速率較高,但硬件電路比較復雜 串行同步通信主要應用在網(wǎng)絡當中 最常使用高級數(shù)據(jù)鏈路控制協(xié)議HDLC,同步通信協(xié)議,同步通信協(xié)議的格式:,多個數(shù)據(jù)字節(jié)加上同步字符構(gòu)成一個數(shù)據(jù)包稱為1幀 每一幀以1個或2個同步字符(SYNC)為起始 緊跟同步字符之后是 N個數(shù)據(jù)字符,N可由用戶設定 以兩個檢驗字符(CRC)作為1幀的結(jié)束,SYNC2,a. 單同步數(shù)據(jù)格

7、式,b. 雙同步數(shù)據(jù)格式,c. 外同步數(shù)據(jù)格式,信號的調(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)制,圖示,21,調(diào)制方法:,按照調(diào)制技術(shù)的不同分為調(diào)頻(FM)、調(diào)幅(AM)和調(diào)相(PM)三種,根據(jù)傳輸數(shù)字信號的變化規(guī)律去調(diào)整載波的頻率、幅度或相位,信道復用,時分多路復用TDM(Time Division Multiplexing) 就是將一條物理傳輸線路按時間分

8、成若干時間片輪換地為多個信號所占用,每個時間片由復用的一個信號占用。 頻分多路復用FDM(Frequency Division Multiplexing) 利用頻率調(diào)制原理,將要同時傳送的多個信號進行頻譜搬移,使它們互不重疊地占據(jù)信道頻帶的不同頻率段,然后經(jīng)發(fā)送器從同一信道上同時或不同時地發(fā)送出去。 計算機串行數(shù)據(jù)通信及其接口中使用時分多路復用系統(tǒng)。,9.2 串行接口標準RS-232C,RS-232C是美國電子工業(yè)協(xié)會EIA制定的通用串行接口標準 1962年公布,1969年修訂,1987年1月正式改名為EIA-232D 是數(shù)據(jù)終端設備DTE(Data Terminal Equipment)與數(shù)

9、據(jù)發(fā)送設備DCE(Data Communication Equipment) 之間相互連接的標準接口,最高數(shù)據(jù)傳輸率為19.2Kbps,傳輸電纜長度不超過15米 RS232C接口采用標準的D型25針連接器(DB25連接器)及九針連接器,圖示,9.2 串行接口標準RS-232C,RS232C引腳定義:,232C包括兩個信道:主信道和次信道 次信道為輔助串行通道提供數(shù)據(jù)控制和通道,但其傳輸速率比主信道要低得多,其他跟主信道相同,通常較少使用,表9.1 常用的RS232C接口信號,RS232C引腳定義(續(xù)),DTR(Data Terminal Ready): DTE準備好信號 DET接通電源并進入工

10、作狀態(tài)后向DCE發(fā)出DTR信號,僅當DCE收到信號后方可進行通信 DSR(Data Set Ready): DCE準備好信號 DCE接通電源并進入工作狀態(tài)后向DTE發(fā)出DSR信號,DTE確信該信號有效后,發(fā)出請求發(fā)送信號。,RTS(Request To Send): 數(shù)據(jù)請求發(fā)送 當DTE設備準備發(fā)送數(shù)據(jù)時,向DCE發(fā)出RTS信號 CTS(Clear To Send): 允許發(fā)送信號 是DCE設備對DTE發(fā)來RTS信號的回答,數(shù)據(jù)才能被發(fā)送。,RS232C引腳定義(續(xù)),DCD(Data Carrier Detected): 數(shù)據(jù)載波檢測信號 當DCE檢測到線路上出現(xiàn)有效載波信號后,向 DTE

11、發(fā)出DCD信號。 RI(Ring Indicate): 振鈴指示 當調(diào)制解調(diào)器接收到對方的撥號信號期間,該引腳信號作為電話鈴響的指示、保持有效,TxD:發(fā)送數(shù)據(jù) 串行數(shù)據(jù)的發(fā)送端 RxD:接收數(shù)據(jù) 串行數(shù)據(jù)的接收端 GND:信號地 為所有的信號提供一個公共的參考電平,RS232C引腳定義(續(xù)),保護地(機殼地): 起屏蔽保護作用的接地端 TxC:發(fā)送器時鐘 控制數(shù)據(jù)終端發(fā)送串行數(shù)據(jù)的時鐘信號 RxC:接收器時鐘 控制數(shù)據(jù)終端接收串行數(shù)據(jù)的時鐘信號,RS-232C的連接,微機利用232C接口連接調(diào)制解調(diào)器,用于實現(xiàn)通過電話線路的遠距離通信 微機利用232C接口直接連接進行短距離通信。這種連接不使

12、用調(diào)制解調(diào)器,所以被稱為零調(diào)制解調(diào)器(Null Modem)連接,連接調(diào)制解調(diào)器,不使用聯(lián)絡信號的3線相連方式,為了交換信息,TxD和RxD應當交叉連接 程序中不必使RTS和DTR有效 也不應檢測CTS和DSR是否有效,“偽”使用聯(lián)絡信號的3線相連方式,RTS和CTS各自互接,DTR和DSR各自互接 表明請求傳送總是允許、數(shù)據(jù)裝置總準備好,使用聯(lián)絡信號的多線相連方式,通信比較可靠 所用連線較多,不如前者經(jīng)濟,電氣特性,RS-232C采用EIA電平 邏輯“1”在3V15V之間 邏輯“0”在3V15V之間 實際常用12V或15V,圖示,標準TTL電平 高電平:2.4V5V 低電平:0V0.4V,R

13、S232C電平與 TTL電平不兼容,二者之間通常需加電平轉(zhuǎn)換電路,圖示,必須抗共模噪聲干擾,RS-232C由于在發(fā)送器與接收器之間有公共信號地,不可能使用雙端信號,因此共模噪聲很容易引入信號系統(tǒng)中,且噪聲幅度可高達好幾伏,這是迫使RS-232C使用較高傳輸電壓的主要原因。 另一個原因是為了補償傳輸線上的信號衰減和沿線附加電平的影響。,最大傳輸速率和最大傳輸線長度的關(guān)系,37,一般應用情況下,RS-232C的最高傳輸速率為20Kb/s,最大傳輸線長度為30m。,機械特性,連接器,連接器的連接,電纜長度,在通信速率低于20Kb/s時,RS-232C所能直接連接的最大物理距離為15m(50ft)。

14、RS-232C規(guī)定,若不使用MODEM,則碼元的畸變要小于4%,驅(qū)動器的負載電容應該小于2500pF,則單位(1ft)長度的電容值為NpF的電纜的長度應該是:,使用特制的低電容電纜也能有效地提高電纜長度,可以達到150m(500ft)甚至更多。,RS-232 的局限,RS-232C采用單端驅(qū)動、單端接收的單端雙極性電路標準。僅用一條線路傳輸一種信號,根據(jù)該信號線上電平相對于公共的信號地電平的大小來決定邏輯的“1”和“0” 。 對于多條信號線來講,它們的地線是公共的,這種共地傳輸方式,抗干擾能力很差。 盡管采用電平轉(zhuǎn)換器來提高信號傳輸電平,但在較長距離時,由于電壓損失,仍不可避免錯誤。 當信號穿

15、過電磁干擾環(huán)境時,也可能因附加的干擾信號電平使發(fā)送的“0”變?yōu)椤?”或“1”變?yōu)椤?”。故其信號波特率不能過高,僅限在20Kb/s以下,且距離不大于15m。,異步通信適配器,PC微機異步通信適配器是微機與微機、微機與MODEM及微機與外設之間進行異步通信的接口。其核心是UART。 USART (Universal Synchronous /Asynchronous Receiver and Transmitter ) 通用同步/異步接收發(fā)送器 常見的UART主要有8251A、 INS8250、PC16450和PC16550。此外,還有帶更大緩沖的UART,稱為PC16650和PC16750,9

16、.3 可編程串行通信接口芯片8251A,可用于同步傳送和異步傳送 同步傳送 58位/字符;內(nèi)同步或外同步;可自動插入同步字符 異步傳送 58位/字符;時鐘頻率為波特率的1、16、64倍;可產(chǎn)生終止字符;可產(chǎn)生1、1.5、2位的停止位;可檢測假起始位;自動檢測和處理終止字符,9.3.1 8251A的基本功能,9.3.1 8251A的基本功能,波特率: 064K(同步);019.2K(異步) 全雙工 雙緩沖器發(fā)送和接收 出錯檢測: 具有奇偶、溢出和幀錯等檢測電路 輸入輸出電平與TTL電平兼容; 單一+5V電源;單一TTL電平時鐘; 雙列直插封裝,9.3.2 8251A的結(jié)構(gòu),數(shù)據(jù)總線緩沖器: 三態(tài)

17、雙向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.2 8251A的結(jié)構(gòu)(續(xù)),發(fā)送控制電路: 協(xié)調(diào)發(fā)送緩沖器工作,為傳送提供識別控制信息位(如起始位,停止位、同步字符等) 接收緩沖器: 接收串行數(shù)據(jù),并按相應格式轉(zhuǎn)換成并行數(shù)據(jù) 接收控制電路: 協(xié)調(diào)接收緩沖器工作,8251A的引腳功能,與CPU連接信號 D7D0:雙向數(shù)據(jù)線,與系統(tǒng)的數(shù)據(jù)總線相連,傳送命令字,狀態(tài)信息和收

18、發(fā)數(shù)據(jù) RESET:復位信號,有效時,將內(nèi)部寄存器和控制邏輯清0 CS#(Chip Select):片選信號,來自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ù)端口,表9.2 RD*、WR*、C/D* 的編碼和對應的操作,與CPU連接信號,TxRDY(transmitter Ready):發(fā)送器準備好信號,輸出,高電平有效 TxRDY有效的條件是: CTS#引腳是低電平,初始化命令字的TxEN=1,當

19、發(fā)送緩沖器為空時,此信號有效 它有效表明CPU可以向8251A發(fā)送數(shù)據(jù) 在中斷方式下,TxRDY可作為中斷請求信號 CPU向8251A寫入一個字符后,TxRDY自動復位,與CPU連接信號,TxE(Transmitter Empty) 發(fā)送器空信號,輸出,高電平有效 表示發(fā)送器中并串轉(zhuǎn)換器已空,發(fā)送過程已完成; 8251A從CPU接收待發(fā)的數(shù)據(jù)后,自動復位; 字符發(fā)送完,TxE又變?yōu)楦撸?TxRDY較TxE之前有效,RxRDY(Receiver Ready) 接收器準備好信號,輸出,高電平有效 表示8251A已經(jīng)接收了一個數(shù)據(jù),正等待CPU取走; 該信號可作為向CPU發(fā)出的中斷請求信號; 當CP

20、U讀取數(shù)據(jù)后,RxRDY自動復位。,與CPU連接信號,SRNDET(Synchronous Detect) 同步檢驗信號,雙向,高電平有效。該信號僅用于同步方式,其輸入輸出由程序控制。 內(nèi)同步方式: SRNDET端輸出。當8251A檢測到同步字符時,該信號為高電平,表示接收發(fā)送達到同步。 外同步方式: SRNDET端輸入。當片外電路檢測到同步字符時從該端輸入高電平,它使8251A在RxC時鐘下開始裝配字符。,與調(diào)制/解調(diào)器的接口信號,DTR#(Data Terminal Ready) 數(shù)據(jù)終端準備好信號,低電平有效。 有效表示DTE設備已準備好。 DSR#(Data Set Ready) 數(shù)據(jù)

21、裝置準備好,輸入,低電平有效。 它是MODEM對DTR信號的回答,表示MODEM已準備好。,RTS#(Request To Send) 請求發(fā)送信號,輸出,低電平有效。 用于通知MODEM,DTE設備要求發(fā)送數(shù)據(jù),與調(diào)制/解調(diào)器的接口信號,CTS#(Clear To Send) 允許發(fā)送信號,輸入,低電平有效。 是MODEM對RTS 的響應信號,表示允許DTE設備發(fā)送數(shù)據(jù) TxD(Transmitter Data) 發(fā)送數(shù)據(jù)線 RxD(Receiver Data) 接收數(shù)據(jù)線,傳輸速率控制線,TxC(Transmitter Clock) 發(fā)送器時鐘,控制8251A發(fā)送字符的速率 RxC(Rec

22、eiver Clock) 接收器時鐘,控制8251A接收字符的速率 在同步方式下:TxC和RxC的頻率等于字符傳輸?shù)牟ㄌ芈?在異步方式下:TxC和RxC的頻率可以是字符傳輸波特率的1倍、16倍或64倍,由初始化編程設定,9.3.3 8251A的編程使用,工作方式字 作用: 設定8251A的工作方式,如異步/同步方式,字符格式,傳輸率等 寫入次序 工作方式字必須緊跟復位操作之后寫入 工作方式字的格式為:,工作方式字的格式,工作方式字的格式說明,D1、D0:同步異步/波特率系數(shù)選擇 D1D0=00,為同步方式控制字 此時由D7D6位來選擇同步的方式 D1D000,是異步方式控制字 D1D0=01、

23、10、11,其波特率系數(shù)分別為:1、16、64 TxC和RxC的頻率、波特率系數(shù)和波特率的關(guān)系為:,工作方式字的格式說明,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)/外同步; 當D1D000,為停止位長選擇 D7D6=01、10、11,停止位長分別為:1、1.5、2位,例9.1 設定8251A工作于異步方式,波特率系數(shù)是16, 每

24、個字符7位數(shù)據(jù)位,1位起始位,2位停止位,偶校驗。,則其工作方式字為 : 1111 1010B=0FAH 設定工作方式程序段為: MOVDX ,309H;8251A的控制口 MOVAL ,0FAH;工作方式字 OUTDX ,AL,工作命令字,作用: 確定8251A的實際操作,使8251A進入某種工作狀態(tài),以便發(fā)送或接收數(shù)據(jù) 工作命令字的格式:,工作命令字的格式:,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為低電

25、平,輸出中止字符 D3=0,正常工作情況,工作命令字的格式說明,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輸出高電平,例9.2 要使8251A內(nèi)部復位,且允許接收和發(fā)送,應先發(fā)復位字,再發(fā)允許收發(fā)字。,程序段為: MOVDX , 309H ;309H 8251A命令口 MOVAL , 0100 0000B;置D6=1,

26、 OUTDX , AL;使內(nèi)部復位 MOVAL , 0000 0101B;置D2=1, D0=1 OUTDX , AL;允許接收與發(fā)送,狀態(tài)字,8251A內(nèi)部設有狀態(tài)寄存器,CPU用IN指令讀入8251A的狀態(tài)字,查詢接口當前的工作狀態(tài)。 狀態(tài)字的格式:,狀態(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, 三者同時滿足時, 輸出引腳TxR

27、DY=1,狀態(tài)字的格式說明,FE=1表示幀格式錯,即在異步方式下,當一個字符結(jié)束而沒有檢測到規(guī)定的停止位的差錯 OE=1表示溢出錯,即CPU尚未讀取上一個字符而又接收了下一個字符的錯誤 PE=1表示當前出現(xiàn)了奇偶校驗錯 FE、OE和PE的有效并不影響8251A的操作,它們被工作命令字的ER位復位。,例9.3 查詢8251A接收器是否準備好,可用以下程序段:,MOVDX , 309H;309H:狀態(tài)口地址 L: INAL , DX;讀狀態(tài)字 ANDAL , 02H;查D1 (RxRDY) =1? JZL;未準備好,繼續(xù)查詢 MOVDX , 308H; 308H: 數(shù)據(jù)口地址 INAL , DX

28、;已準備好,讀取數(shù)據(jù),例9.4 在傳輸過程中要檢查出錯信息,MOV DX , 309H; 309H為 狀態(tài)口 IN AL , DX;讀狀態(tài)字 TEST AL , 38H;檢查D5D4D3三位 (FE、OE、PE) JNZ ERROR;若其中有一位為1,則出錯 ERROR:,工作方式字和 工作命令字的使用,方式字、命令字、狀態(tài)字之間的關(guān)系 方式字只約定了雙方通信的方式、數(shù)據(jù)格式、傳輸速率等參數(shù) 數(shù)據(jù)的發(fā)送或接收,要靠命令字來確定 要正確地接收/發(fā)送數(shù)據(jù),則需要CPU查詢狀態(tài)字來進行控制,方式字和命令字的寫入,8251A的工作方式字與操作命令字占有同一端口地址,寫入方式字和命令字時要按一定的順序先

29、后寫入 對8251A復位之前,最好先寫3個“0”,并作相應的延時 寫入順序:寫三個0 復位工作方式字工作命令字1工作命令字2 。,圖示,8251A與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沒有單獨的中斷請求引腳,TxRDY引腳可作為發(fā)送中斷求信號 引腳RxRDY可作為接收中斷請求信號; 若數(shù)據(jù)發(fā)送與接收均采用中斷方式,則TxRDY和RxRDY可通過“或門”向CPU提出中斷請求

30、,CPU轉(zhuǎn)入中斷程序后再查詢狀態(tài)字,分別轉(zhuǎn)向發(fā)送或接收處理程序,8251A的編程舉例,例9.5 設定8251A工作于異步方式,波特率因子為64, 每字符7個數(shù)據(jù)位,偶校驗,2個停止位,寫出初始化程序段,設數(shù)據(jù)口地址為50H,控制口地址為51H。 工作方式字:1111 1011B=0FBH 工作命令字:0100 0000B=40H (內(nèi)部復位) 工作命令字:0001 0111B=17H (清出錯標志,接收發(fā)送允許,使DTR有效),初始化程序段:,MOV AL , 40H; 使內(nèi)部復位 OUT 51H , AL; 51H 是8251A的控制口 MOV AL , 0FBH; 設定工作方式 OUT 5

31、1H , AL MOV AL , 17H ;設定工作命令字 OUT 51H , AL,例9.6 8251A工作于同步方式,雙同步,采用內(nèi)同步方式(SYNDET引腳為輸出),奇校驗,每個字符8個數(shù)據(jù)位,寫出初始化程序段。設8251A的數(shù)據(jù)口地址為308H,控制口地址為309H。,工作方式字:0001 1100B=1CH 同步字符: 16H 工作命令字:1000 0111B=97H,工作程序段:,MOV AL , 40H;使內(nèi)部復位 MOV DX , 309H;309H 是控制口地址 OUT DX , AL MOV AL , 1CH; 設定工作方式 OUT DX , AL MOV AL , 16H

32、;輸出工作命令字 OUT DX , AL;連續(xù)輸出兩個同步字符 OUT DX , AL MOV AL , 97H;寫工作命令字 OUT DX , AL,例9.7 用8251A實現(xiàn)與終端(顯示器, 鍵盤)的串行通信, 即CPU接收鍵盤輸入字符, 然后輸出到顯示器顯示。設8251A工作于異步方式,波特率因子為16, 每字符7個數(shù)據(jù)位,奇校驗,1個停止位。 8251A數(shù)據(jù)口地址為0D0H,控制口地址為0D1H。,硬件連接: 采用“自環(huán)”方式連接,傳送單個字符到顯示器的程序段,BEGIN: MOV AL , 5AH;寫方式字 OUT 0D1H , AL; 0D1H為控制口地址 MOV AL , 37H

33、;寫命令字,使錯誤標志復位 OUT 0D1H , A;發(fā)送、接收允許,DTR和RTS輸出低電平 STATE: IN AL , 0D1H ;讀狀態(tài)字 TESTAL , 01H;檢查TxRDY1? JZSTATE;如不為1,則繼續(xù)查詢 MOVAL , 4AH;輸出字符 J的ASCII碼 OUT0D0H , AL; 0D0H為數(shù)據(jù)口地址 HLT,字符回送到顯示器程序段,要求串行接口接收從鍵盤輸入的一個字符,并立即將該字符回送到顯示器顯示。,BEGIN: MOVAL , 5AH;寫方式字 OUT0D1H , AL;到控制口 MOVAL , 37H;寫命令字,使錯誤標志復位 OUT0D1H , AL;發(fā)

34、送、接收允許,DTR和RTS輸出低電平 STATE1: INAL , 0D1H;讀狀態(tài)字 TESTAL , 02H;檢查RxRDY1? JZSTATE1;不為1,則繼續(xù)查詢,INAL , 0D0H;接收一個字符 MOVBL , AL;暫存于BL中 STATE2: INAL , 0D1H;讀狀態(tài)字 TESTAL , 01H;檢查TxRDY1? JZSTATE2;不為1, 則繼續(xù)查詢 MOVAL , BL;BL中暫存的字符送AL OUT0D0H , AL;字符輸出給顯示器 JMPSTATE1;繼續(xù)準備接收,字符回送到顯示器程序段,要求串行接口接收從鍵盤輸入的一個字符,并立即將該字符回送到顯示器顯示

35、。,例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)換構(gòu)成RS-232C接口,最簡方式連接。,圖示,發(fā)送方(甲機)初始化及控制程序段,START : MOV DX , 309H;命令口 MOV AL , 00H OUT DX , AL;空操作 MOV AL , 40H;內(nèi)部復位 OUT DX ,

36、 AL NOP;空格延時 MOV AL , 0CFH;方式字 OUTDX , ALMOVAL , 11H;命令字(ER和TXEN均置1) MOV CX , 2DH;傳送字節(jié)數(shù)MOV SI , 300H;發(fā)送區(qū)首址為300H,L1:MOV DX , 309H;狀態(tài)口TEST AL , 01H;檢查TxRDY1? JZ L1;發(fā)送未準備好,繼續(xù)查詢MOVDX , 308H;數(shù)據(jù)口MOVAL , SI;取一個字節(jié)數(shù)據(jù)OUTDX , AL;發(fā)出INCSI;修改地址指針DECCX;字節(jié)數(shù)減1JNZL1;未發(fā)完繼續(xù)發(fā)HLT,發(fā)送方(甲機)初始化及控制程序段(續(xù)),接收方(乙機)初始化及控制程序段,STAR

37、T : MOV DX , 309H;命令口 MOV AL , 00H OUT DX , AL;空操作 MOV AL , 40H;內(nèi)部復位 OUT DX , AL NOP ;空格延時 MOV AL , 0CFH ;工作方式字 OUT DX , AL MOV AL , 14H ;命令字(ER和RXE均置1)OUT DX , AL ; 錯誤標志復位,接收允許 MOV CX , 2DH;接收字節(jié)數(shù) MOV DI , 400H;接收區(qū)首址為400H,L2: MOVDX , 309H;狀態(tài)口INAL , DX;查狀態(tài)字 TESTAL , 02H;查D1(RXRDY)=1?JZL2 ;接收未準備好,繼續(xù)查詢

38、TEST AL , 38H;查出錯JNZ ERR;有錯誤轉(zhuǎn)出錯處理MOV DX , 308H;數(shù)據(jù)口IN AL , DX;接收準備好,接收一個字符MOV DI , AL;存入接收區(qū)INC DI;修改接收區(qū)地址指針LOOP L2;未接收完,繼續(xù)HLT,接收方(乙機)初始化及控制程序段(續(xù)),9.4 通用異步接收發(fā)送器8250,串行傳輸,需要并行到串行和串行到并行的轉(zhuǎn)換,并按照傳輸協(xié)議發(fā)送和接收每個字符(或數(shù)據(jù)塊) 這些工作可由軟件實現(xiàn),也可用硬件實現(xiàn) 通用異步接收發(fā)送器UART是串行異步通信的接口電路芯片 IBM PC/XT機的UART芯片是INS8250 后來使用NS16550,9.4.1 8

39、250的內(nèi)部結(jié)構(gòu),8250實現(xiàn)了起止式串行異步通信協(xié)議,支持全雙工通信 通信字符可選擇數(shù)據(jù)位為58位 停止位1、1.5或2位 可進行奇偶校驗 具有奇偶、幀和溢出錯誤檢測電路 8250支持的數(shù)據(jù)傳輸速率為509600bps,8250的內(nèi)部結(jié)構(gòu),88,串行數(shù)據(jù)的發(fā)送,雙緩沖寄存器結(jié)構(gòu) 保證數(shù)據(jù)的連續(xù)發(fā)送,起始位的檢測,起始檢測,確定已檢測到起始位,采樣數(shù)據(jù),數(shù)據(jù)接收時鐘頻率是數(shù)據(jù)傳輸頻率的16倍 正確識別起始位,防止因干擾引起的誤識別,串行數(shù)據(jù)的接收,雙緩沖寄存器結(jié)構(gòu) 保證數(shù)據(jù)的連續(xù)接收,接收錯誤的處理,奇偶錯誤PE(Parity Error) 若接收到的字符的“1”的個數(shù)不符合奇偶校驗要求 幀錯

40、誤FE(Frame Error) 若接收到的字符格式不符合規(guī)定(如缺少停止位) 溢出錯誤OE(Overrun Error) 若接收移位寄存器接收到一個數(shù)據(jù),并送至輸入緩沖器時,CPU還未取走前一個數(shù)據(jù),就會出現(xiàn)數(shù)據(jù)溢出 若接收緩沖器的級數(shù)多,則溢出錯誤的幾率就少,9.4.2 8250的引腳,分成連接CPU的部分和連接外設的部分 注意:8250不是Intel公司的產(chǎn)品,所以該芯片引腳名稱與前面學習的8253、8255等Intel產(chǎn)品有所不同,但是引腳功能卻是類似的,9.4.2 8250的引腳,處理器接口引腳(1),數(shù)據(jù)線D0D7: 在CPU與8250之間交換信息 地址線A0A2: 尋址8250內(nèi)

41、部寄存器 片選線: 8250設計了3個片選輸入信號CS0、CS1、CS2#和一個片選輸出信號CSOUT。3個片選輸入都有效時,才選中8250芯片,同時CSOUT輸出高電平有效。 地址選通信號ADS#: 當該信號低有效時,鎖存上述地址線和片選線的輸入狀態(tài),保證讀寫期間的地址穩(wěn)定,處理器接口引腳(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讀寫控制信號有兩對

42、,每對信號作用完全相同,只不過有效電平不同而己,處理器接口引腳(3),驅(qū)動器禁止信號DDIS: CPU從8250讀取數(shù)據(jù)時,DDIS引腳輸出低電平,用來禁止外部收發(fā)器對系統(tǒng)總線的驅(qū)動; 其他時間,DDIS為高電平 主復位線MR 硬件復位信號RESET 中斷請求線INTRPT: 8250有4級共10個中斷源,當任一個未被屏蔽的中斷源有請求時,INTRPT輸出高電平向CPU請求中斷,時鐘信號,時鐘輸入引腳XTAL1: 8250的基準工作時鐘 時鐘輸出引腳XTAL2: 基準時鐘信號的輸出端 波特率輸出引腳BAUDOUT#: 基準時鐘經(jīng)8250內(nèi)部波特率發(fā)生器分頻后產(chǎn)生發(fā)送時鐘 接收時鐘引腳RCLK:

43、 接收外部提供的接收時鐘信號;若采用發(fā)送時鐘作為接收時鐘,則只要將RCLK引腳和BAUDOUT#引腳直接相連,串行異步接口引腳,SIN:串行數(shù)據(jù)輸入。 SOUT:串行數(shù)據(jù)輸出。 DSR#:數(shù)據(jù)設備就緒,輸入線 DTR#:數(shù)據(jù)終端就緒,輸出線 RI#:振鈴指示,輸入線。 RLSD#:接收線路信號檢測,輸入線。 RTS#:請求發(fā)送,輸出線。 CTS#:清除發(fā)送,輸入線。,串行異步接口引腳(續(xù)),輸出線,OUT1#和OUT2#: 兩個一般用途的輸出信號 由調(diào)制解調(diào)器控制寄存器的D2和D3使其輸出低電平有效信號 復位使其恢復為高,9.4.3 8250的寄存器,8250內(nèi)部有9種可訪問的寄存器,除數(shù)寄存

44、器是16位的,占用兩個連續(xù)的8位端口 內(nèi)部寄存器用引腳A0A2來尋址;同時還要利用通信線路控制寄存器的最高位,即除數(shù)寄存器訪問位DLAB,來區(qū)別共用兩個端口地址的不同寄存器,注:DLAB是線路控制寄存器的D7位。,表9.2 8250內(nèi)部寄存器的訪問控制,A2A1A0=011,線路控制寄存器LCR,線路狀態(tài)寄存器LSR,接收緩沖區(qū)滿,接收奇偶錯,接收格式錯(無正確的停止位),中止識別標志,發(fā)送移位器空,A2A1A0=101,接收重疊錯,發(fā)送保持器空,FIFO中接收數(shù)據(jù)錯誤(16550),接收緩沖寄存器RBR,存放串行接收后轉(zhuǎn)換成并行的數(shù)據(jù),DLAB=0,A2A1A0=000,發(fā)送保持寄存器THR

45、,包含將要串行發(fā)送的并行數(shù)據(jù),DLAB=0,A2A1A0=000,這是軟件控制的分頻器,輸出的工作時鐘頻率為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,中斷識別寄存器IIR,中斷類型標識,A2A1A0=010(讀),表9.3 8250的中斷類型控制,中斷允許寄存器IER,進入

46、低功耗模式(16550),進入睡眠模式 (16750),DLAB=0,A2A1A0=001,MODEM控制寄存器MCR,A2A1A0=100,數(shù)據(jù)終端就緒,請求發(fā)送,輔助輸出1,自動流量控制(16750),環(huán)路檢測(內(nèi)部自循環(huán)),輔助輸出2,PC用做中斷,注意:這里的OUTi位極性和OUTi引腳相反。,A2A1A0=110,CTS位發(fā)生改變,DSR位發(fā)生改變,收到“振鈴指示”后沿 (下降沿),收到“數(shù)傳機就緒”,收到“清除發(fā)送”,RLSD位發(fā)生改變,收到“振鈴指示”,收到“接收線載波檢測”,MODEM狀態(tài)寄存器MSR,FIFO控制寄存器(FCR),A2A1A0=010(寫)16550后才有,允

47、許FIFO緩沖器工作,清除接收FIFO緩沖器,清除發(fā)送FIFO緩沖器,允許64字節(jié)FIFO (16750),保留,DMA方式選擇,接收端中斷觸發(fā)器水平(LSB),接收端中斷觸發(fā)器水平(MSB),觸發(fā)器水平即是指示在中斷產(chǎn)生之前,接收緩沖器應該裝滿多少個字節(jié)。,9.5 異步通信適配器,IBM PC/XT機的串行異步通信適配器 以8250為核心 完成發(fā)送時的并轉(zhuǎn)串和接收時的串轉(zhuǎn)并以及相應的控制工作 配置了TTL電平與EIA電平轉(zhuǎn)換電路等 展開異步通信適配器的 硬件電路 軟件編程,9.5.1 異步通信適配器的接口電路,注意:J9J11跨接器 和OUT2#的作用,9.5.2 異步通信適配器的初始化編程

48、,對8250的內(nèi)部控制寄存器進行編程寫入 寫入除數(shù)寄存器 設置傳輸率 寫入通信線路控制寄存器 設置字符格式 寫入調(diào)制解調(diào)器控制寄存器 設置工作方式 寫入中斷允許寄存器 設置中斷允許或屏蔽位,設置傳輸率,mov al,80h mov dx,3fbh out dx,al;寫入通信線路控制寄存器,使DLAB1 mov ax,96 ;分頻系數(shù):1.8432MHz(120016)9660H mov dx,3f8h out dx,al;寫入除數(shù)寄存器低8位 mov al,ah inc dx out dx,al;寫入除數(shù)寄存器高8位,8250初始化編程舉例,寫入除數(shù)寄存器,設置字符格式,mov al,00001010b mov dx,3fbh out dx,al;寫入通信線路控制寄存器 ;這段程序同時使DLAB0,8250初始化編程舉例,寫入通信線路控制寄存器,設置工作方式,;設置查詢通信方式 mov al,03h;控制OUT2#為高,DTR#和RTS#為低 mov dx,3fch outdx,al;寫入調(diào)制解調(diào)器控制寄存器 ;設置中斷通信方式 mov al,0bh;控制為OUT2#低,允許INTRPT產(chǎn)生請求 m

溫馨提示

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

評論

0/150

提交評論