微型計算機原理及應用課件:第8章 串行接口_第1頁
微型計算機原理及應用課件:第8章 串行接口_第2頁
微型計算機原理及應用課件:第8章 串行接口_第3頁
微型計算機原理及應用課件:第8章 串行接口_第4頁
微型計算機原理及應用課件:第8章 串行接口_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 串行接口概述8.1可編程串行接口8251A8.28251A的應用8.38.1 概述串行通信的基本概念8.1.1串行數據傳輸方式8.1.2串行通信的類型8.1.3串行接口和串行接口標準8.1.48.1.1 串行通信的基本概念通信的基本方式可分為:并行通信:把一個字符的各數位用幾根數據線同時進行傳輸。串行通信:數據逐位順序傳送。優(yōu)點:是用于通信的線路少,在遠距離通信時可以極大地降低成本。缺點:相對并行通信方式,串行通信速度較慢PC機上一般都有兩個串行異步通信接口COM1和COM2,鍵盤、鼠標器與主機之間也常采用串行數據傳送方式。 8.1.2 串行數據傳輸方式調制和解調調制和解調當微機系統(tǒng)通

2、過電話線路進行數據傳送時,常需要調制解調器(Modem)。為了通過電話線路發(fā)送數字信號,必須先把數字信號轉換為適合在電話線路上傳送的模擬信號,這就是調制(Modulating);經過電話線路傳輸后,在接收端再將模擬信號轉換為數字信號,這就是解調(Demodulating)。8.1.3 串行通信的類型串行通信時,數據、控制和狀態(tài)信息都使用同一根信號線傳送。為使通信能順利進行,收發(fā)雙方必須遵守共同的通信協(xié)議(通信規(guī)程),才能解決傳送速率、信息格式、同步方式、數據校驗等問題。根據同步方式的不同,將串行通信分為兩類:異步通信同步通信波特率異步傳輸與同步傳輸的比較1.異步通信串行異步通信以字符為單位進行

3、傳輸,采用起止式異步通信協(xié)議。異步通信的字符格式異步通信的工作原理異步通信的特點圖8.3 起止式異步通信的字符格式異步通信的字符格式異步通信所采用的字符格式由一組可變“位數”數據組成。第一位為起始位(Start Bit),它的寬度為1位,低電平,用于實現“字符同步”。接著傳送數據位(Data Bit),數據可以由58個二進制位組成,按照先低位后高位的順序逐位傳送。數據位傳送完成后可以選擇一個奇偶檢驗位(Parity Bit),用于校驗是否正確傳送了數據,可以選擇奇校驗,也可以選擇偶校驗,還可以不傳送檢驗位。字符最后是停止位(Stop Bit),以表示這個字符的傳送結束,寬度可以是1位、1.5位

4、或2位,停止位采用高電平。一個字符傳輸結束后,可以接著傳輸下一個字符,也可以停一段空閑時間再傳輸下一個字符,空閑位為高電平。 圖8.3異步通信的工作原理傳送開始后,接收設備不斷檢測傳輸線是否有起始位到來,當接收到一系列的“1”(空閑位或停止位)之后,檢測到第一個“0”,說明起始位出現,就開始接收所規(guī)定的數據位、奇偶校驗位及停止位。經過接收器處理,將停止位去掉,把數據位拼裝成為一個字節(jié)數據,經校驗無誤,則接收完畢。當一個字符接收完畢后,接收設備又繼續(xù)測試傳輸線,監(jiān)視“0”電平的到來和下一個字符的開始,直到全部數據接收完畢。 異步通信的特點優(yōu)點:由于接收方通過每個字符的起始位達到字符傳送的同步時鐘

5、作用,所以收/發(fā)雙方設備較簡單,實現起來方便,對各字符間的間隔長度沒有限制。缺點:每個數據要加上起始位、停止位等信息,至少要有20的冗余時間,這樣就降低了數據的傳送速率。 2.同步通信在串行同步通信時所使用的數據格式根據控制規(guī)程可分為:面向字符型面向比特型1)面向字符型的數據格式由圖8.4可看出,同步通信在每個數據中并不加起始和停止位,而是將數據順序連接起來,以一個數據塊(稱為“幀”)為傳輸單位。從同步通信數據格式中可以看出,傳送的數據信息越長,數據傳輸效率越高,故同步通信運用于要求快速、連續(xù)傳輸大量數據的場合。圖8.4圖8.4 面向字符型同步通信數據格式2)面向比特型的數據格式面向比特型的數

6、據以幀為單位傳輸,每幀由六部分組成。第一部分是開始標志“7EH”;第二部分是一個字節(jié)的地址場;第三部分是一個字節(jié)的控制場;第四部分是需要傳送的數據,數據都是位的集合;第五部分是兩個字節(jié)的循環(huán)校驗碼;最后部分又是“7EH”,作為結束標志。圖8.5圖8.5 面向比特型的數據格式波特率串行通信的傳輸速率也稱波特率(Baud Rate),即每秒傳輸的二進制位數。標準波特率系列為110、300、600、1200、1800、2400、4800、9600和19200。現在,數據傳輸速率可以達到115200bps或更高。例如,數據傳輸速率為1200,則一位的時間長度為0.833ms(=1/1200);對于采用

7、1個停止位、不用校驗的8位數據傳送來說,一個字符共有10位,每秒能傳送120(=1200/10)個字符。異步傳輸與同步傳輸的比較在異步傳輸過程中,設每個字符對應1個起始位、7個信息位、1個奇偶校驗位和1個停止位,如果波特率為1200,則每秒鐘能傳輸的最大字符數為120010120個。作為比較,再來看一個同步傳輸的例子。假如也用1200的波特率工作,用2個同步字符和2個CRC碼,那么傳輸100個字符所用的時間為7(100十4)12000.6067s,這就是說,每秒鐘能傳輸的字符數可達到1000.6067165個。可見,在同樣的傳輸速率下,同步傳輸實際字符傳輸速率要比異步傳輸時高。 8.1.4 串

8、行接口和串行接口標準串行接口概述1串行接口標準RS-232C21.串行接口概述串行通信實際上把數據一位一位地發(fā)送和接收,而計算機處理數據是并行的,它要傳輸的數據也是并行的,因此這就需要一個部件把并行數據與串行數據進行轉換。對于發(fā)送數據端來說,這個部件就是并行輸入串行輸出的移位寄存器,CPU通過對相應端口的寫數操作,把要傳輸的數據寫入這個并入串出移位寄存器中,然后移位寄存器在同步時鐘的作用下,把數據逐位移出,發(fā)送給接收端。對于接收端來說,相應的部件是串行輸入并行輸出移位寄存器,在同步時鐘的作用下,發(fā)送端送來的數據逐位移入這個串入并出移位寄存器,然后CPU對相應端口進行讀數操作,把串入并出移位寄存

9、器的數據讀入CPU中。串行通信接口電路是微型計算機系統(tǒng)另一個重要的外圍I/O接口電路,它可以方便地實現CPU與I/O設備的串行數據的通信。例如,可以將CRT顯示終端、打印機或調制解調器連接到微機上。 2.串行接口標準RS-232CRS-232C是由美國電子工業(yè)協(xié)會(Electronics Industries Association,EIA)于1962年公布,并于1969年修訂的一種國際通用的串行接口標準。它最初是為遠程通信連接數據終端設備(Data Terminal Equipment,DTE)(例如計算機)和數據通信設備(Data Communication Equipment,DCE)(

10、例如調制解調器)制定的標準,目前已廣泛用作計算機與終端或外部設備的串行通信接口標準。利用RS-232C接口不僅可以實現遠距離通信,也可以實現近距離連接兩臺微機或電子設備。目前,PC機上的COM1、COM2接口就是RS-232C接口。EIA電平 使用MODEM的RS-232C接口RS-232C的三線連接方法EIA電平RS-232C接口標準采用EIA電平。規(guī)定:高電平為+5V+15V低電平為-5V-15VRS-232C的數據線TxD和RxD使用負邏輯,即高電平表示邏輯0,低電平表示邏輯1。聯(lián)絡信號線為正邏輯,高電平有效,低電平無效。 EIA電平與TTL電平之間的轉換圖8.6 TTL和RS-232C

11、之間的電平轉換電路使用MODEM的RS-232C接口RS-232C的三線連接方法由于通信雙方并未進行聯(lián)絡應答,所以采用三線連接方式時,應注意傳輸的可靠性。例如,發(fā)送方無法知道接收方是否可以接收數據、是否接收到了數據。傳輸的可靠性需要利用軟件來提高,例如先發(fā)送一個字符,等待接收方確認之后(回送一個響應字符)再發(fā)送下一個字符。 8.2 可編程串行接口8251AIntel8251A是一種通用的同步異步接收/發(fā)送器。8251A的基本工作原理8.2.18251A的引腳和外部連接8.2.28251A的編程8.2.38.2.1 8251A的基本工作原理8251A的主要功能特點8251A的內部結構:數據總線緩

12、沖器讀/寫控制電路發(fā)送器接收器調制解調控制邏輯8251A的主要功能特點可用于串行異步通信也可用于同步通信。對于異步通信,其字符格式為1個起始位,58個數據位,1位、1.5位或2位停止位;對于同步通信,可設定單同步、雙同步或者外同步。同步字符可由用戶自行設定。異步通信的時鐘頻率(外部時鐘)可設定為傳輸速率的l倍、16倍或64倍。異步通信的波特率的可選范圍為019.2kb/s。同步通信時,速率的可選范圍為064kb/s。能夠以單工、半雙工、全雙工方式進行通信。提供與外部設備(特別是調制解調器)的聯(lián)絡信號,便于直接和通信線路連接。 圖8.9 8251A的內部結構框圖1.數據總線緩沖器數據總線緩沖器通

13、過D7D0引腳和系統(tǒng)的數據總線相連。包括三部分:接收數據緩沖寄存器:暫存接收到的準備送往CPU的數據。發(fā)送數據緩沖寄存器:暫存來自CPU的數據或控制字。8251A寫入的控制命令和發(fā)送的數據共用同一寄存器。狀態(tài)字緩沖寄存器:寄存8251A接收或發(fā)送操作的各種工作狀態(tài)。 圖8.92.讀/寫控制電路讀/寫控制電路用來接收CPU輸出的一系列的控制信號。由它們可確定8251A處于何種狀態(tài),并向8251A內部各功能部件發(fā)出有關的控制信號。 圖8.93.發(fā)送器由發(fā)送緩沖器、發(fā)送移位寄存器及發(fā)送控制電路組成。CPU需要發(fā)送的數據經數據發(fā)送緩沖寄存器并行輸入,并鎖存到發(fā)送緩沖器中。如果采用異步方式,則由發(fā)送控制

14、電路在其首尾加上起始位和停止位,然后從起始位開始,經移位寄存器從數據輸出線TxD逐位串行輸出,其發(fā)送速率由引腳TXC上收到的發(fā)送時鐘頻率決定。如果采用同步方式,則在發(fā)送數據之前,發(fā)送器將自動送出1個(單同步)或2個(雙同步)同步字符(SYNC),然后逐位串行輸出數據。當發(fā)送器做好發(fā)送數據準備時,由發(fā)送控制電路向CPU發(fā)出TxRDY有效信號,CPU可立即向8251A并行輸出數據。如果8251A與CPU之間采用中斷方式傳輸信息,則TxRDY可作為向CPU發(fā)出中斷請求的信號。當發(fā)送器中的所有數據發(fā)送完畢時,由發(fā)送控制電路向CPU發(fā)出TxE有效信號,表示發(fā)送器中移位寄存器已空。 圖8.94.接收器包括

15、接收緩沖器、接收移位寄存器和接收控制電路。從外部通過數據接收端RxD接收的串行數據逐位進入接收移位寄存器中。如果是異步方式,則應識別并刪除起始位和停止位;如果是同步方式,則要檢測到同步字符,確認已經達到同步,接收器才可開始接收串行數據。待一組數據接收完畢,便把移位寄存器中的數據并行置入接收緩沖器中,同時RxRDY引腳輸出高電平,表示接收器中已準備好數據,等待向CPU傳送。其接收數據的速率取決于RXC端輸入的接收時鐘頻率。 圖8.95.調制解調控制邏輯當8251A實現遠距離串行通信時,該電路是8251A將數據輸出端的數字信號轉換為模擬信號,或將數據接收端的模擬信號解調成數字信號的接口電路。它能使

16、8251A與調制解調器直接相連。8251A的調制解調控制邏輯雖然提供了一些基本控制信號,但沒有提供RS-232C標準中的全部信號,其輸入/輸出電平可以和TTL電平相兼容,但如果需要和RS-232C的電平進行連接,則需要如圖8.6所示的電平轉換電路。 圖8.98.2.2 8251A的引腳和外部連接作為CPU與外設或調制解調器之間的接口電路,因此它的接口信號分為兩組:圖8.10圖8.118251A和CPU之間的信號8251A與外設或調制解調器之間的信號圖8.10 8251A引腳圖圖8.11 8251A與CPU及外設的接口圖1.825lA和CPU之間的信號C/D信號RxRDY信號SYNDET/BRK

17、DET信號TxRDY信號TxE信號圖8.11控制數據線信號C/D輸入信號。此引腳為高電平,則數據信號線D7D0上的信息是狀態(tài)信息或控制信息。此引腳為低電平,則數據信號線D7D0上的信息是數據信息。它一般由CPU低位地址線提供。 表8.2表8.2 RD、WR、C/D之間的關系接收器準備好信號RXRDY高電平有效,輸出信號。當8251A已從它的串行輸入端RXD接收了一個字符,可以傳送到CPU時,此信號有效。當CPU與8251A之間用查詢方式交換信息時,此信號可作為一個狀態(tài)信號。當CPU與8251A之間用中斷方式交換信息時,此信號可作為825lA的一個中斷請求信號。當CPU讀了一個字符后,此信號復位

18、。 同步檢測信號SYNDET/斷點檢測信號BRKDET復用功能引腳,高電平有效。對于異步方式,該引腳功能為斷點檢測端BRKDET。若在起始位之后,從RxD端上連續(xù)收到8個“0”信號,則輸出端BRKDET為高電平,表示當前處于斷點狀態(tài),無數據可接收。若從RxD端上接收到“1”信號,BRKDET由高電平變?yōu)榈碗娖健τ谕椒绞剑撘_功能為同步檢測端SYNDET。如果采用內同步,則SYNDET為輸出端,高電平有效。當從RxD端上檢測到一個(單同步)或2個(雙同步)同步字符時,SYNDET輸出高電平有效信號,表示接收數據已處于同步狀態(tài),后面接收到的是有效數據。如果采用外同步,則SYNDET為輸入端,

19、外同步字符從該端輸入,SYNDET為高電平有效信號時,表示已達到同步,接收器可開始串行接收數據。 發(fā)送器準備好信號TXRDY高電平有效,輸出信號。用來通知CPU,8251A已準備接收一個數據。當CPU與8251A之間用查詢方式交換信息時,此信號可作為一個狀態(tài)信號。當CPU與8251A之間用中斷方式交換信息時,此信號可作為8251A的一個中斷請求信號。當8251A從CPU接收了一個字符時,此信號復位。 發(fā)送器空信號TxE高電平有效,輸出信號。當它有效時,表示發(fā)送器中的并行到串行轉換器空。TxRDY和TxE的區(qū)別在于,TxRDY有效表示發(fā)送緩沖器已空,而TxE有效表示發(fā)送移位寄存器已空。 2.82

20、51A與外設或調制解調器之間的信號DTR和DSR信號RTS和CTS信號RxC和RxD信號TxC和TxD信號圖8.11DTR和DSR信號數據終端準備好信號DTR低電平有效,輸出信號。用以表示CPU準備就緒。數據裝置準備好信號DSR低電平有效,輸入信號。表示調制解調器或外設已難備好。該信號實際上是對DTR的回答。DTR和DSR是一組信號,通常用于接收器。 RTS和CTS信號請求發(fā)送信號RTS(Request To Send)低電平有效,輸出信號。等效于DTR,用于通知CPU準備就緒。允許發(fā)送信號CTS(Clear To Send)低電平有效,輸入信號。是調制解調器或外設對8251A的RTS信號的回

21、答。 RXC和RXD信號接收器時鐘信號RxC(Receiver Clock)輸入信號。控制接收器接收字符的速度。在同步方式時,等于波特率,由調制解調器提供;在異步方式時,是波特率的1,16或64倍,即波特率系數的倍數,由方式控制字確定,這有利于在位信號的中間對每位數據進行多次采樣,以減少讀數錯誤。在RxC的上升沿采樣RxD。接收器數據信號RxD字符在這條線上串行地被接收,在接收器中轉換為并行格式的字符。 TXC和TXD信號發(fā)送時鐘信號TxC輸入信號。控制發(fā)送器發(fā)送字符的速度。時鐘速度與波特率之間的關系同RxC。數據是在TxC的下降沿由TxD逐位發(fā)出。發(fā)送器數據信號TxD由CPU送來的并行格式字

22、符在這條線上被串行地發(fā)送。 8.2.3 8251A的編程8251A是可編程的多功能通信接口,在用它傳送數據之前必須對它進行初始化,確定它的工作方式。改變8251A 的工作方式,也必須要對其再次進行初始化編程。工作方式控制字1命令控制字2狀態(tài)字3初始化編程41.工作方式控制字2.命令控制字只有寫入命令控制字后,8251A才能處于相應的運行狀態(tài),接收或發(fā)送數據。 3.狀態(tài)字工作方式控制字、同步字符、命令控制字都是CPU寫入8251A的,以控制8251A工作方式和操作。但8251A在實際的發(fā)送或接收數據過程中的狀態(tài)如何?CPU可通過I/O讀操作把8251A的狀態(tài)字讀入加以分析,以便控制CPU與825

23、1A的數據交換。 4.初始化編程例子初始化編程舉例8251A工作于異步方式,波特率系數為64,7位數據位,2位停止位,采用偶校驗,則工作方式控制字為11111011B,即FBH。操作命令使接收允許,發(fā)送允許,出錯復位,則命令控制字為000l0101B,即15H。設825lA端口地址為FEH,則初始化程序如下: MOV AL,0FBH;送工作方式控制字 OUT 0FEH,AL MOV AL,15H;送命令控制字 OUT 0FEH,AL 8.3 8251A的應用利用PC機的RS-232C接口,可以以方便地與另一臺PC機或單片機系統(tǒng)(如MCS-51系統(tǒng))之間相互傳輸數據。RS-232C串口通信接線方

24、法(三線制)1BIOS串行通信口功能2軟件編程31.RS-232C串口通信接線方法(三線制)雖然標準串口的信號線很多,但由于RS-232C是全雙工通信,在實際應用時,PC機與其它系統(tǒng)相連,可采用三線制連接。三線制就是指發(fā)送數據線TxD、接收數據線RxD及信號地線GND。連接時,雙方的地線直接相連,收發(fā)數據線交叉相連。下圖為PC機與MCS-5l單片機相連,由于單片機是TTL電平,故需要電平轉換電路。 2.BIOS串行通信口功能IBM PC及其兼容機提供比較靈活的關于串行口的BIOS中斷調用方法,即通過INT 14H調用ROM BIOS串行通信口例行程序:初始化串行通信口向串行通信口寫字符從串行通

25、信口讀字符讀通信口狀態(tài)1)初始化串行通信口(AH=0)調用參數: AL=初始化參數 DX=通信口號,0:COM1,1:COM2返回參數: AH=通信口狀態(tài) AL=調制解調器狀態(tài) 圖8.18圖8.19圖8.18 串行通信口狀態(tài)字格式在接收和發(fā)送過程中,錯誤狀態(tài)位(D1,D2,D3,D4位) 一旦被置為1,則讀入的接收數據已不是有效數據,所以在串行通信應用程序中,應檢測數據傳輸是否出錯。 圖8.19 調制解調器狀態(tài)字格式2)向串行通信口寫字符(AH1)輸入參數: AL=所寫字符 DX=通信口號,0:COM1,1:COM2輸出參數: 寫字符成功:AH.7=0,AL=已寫入的字符 寫字符失敗:AH.7

26、=1,AH.06=通信口狀態(tài) 3)從串行通信口讀字符(AH2)輸入參數: DX=通信口號,0:COM1,1:COM2輸出參數: 讀字符成功:AH.7=0,AL=讀入的字符 讀字符失敗:AH.7=1,AH.06=通信口狀態(tài) 4)讀通信口狀態(tài)(AH=3)輸入參數: DX通信口號,0:COM1,1:COM2輸出參數: AH=通信口狀態(tài),AL=調制解調器狀態(tài) 3.軟件編程 設通信雙方有一臺計算機為PC,使用COM1端口。在串行通信中,必須首先設定通信雙方所使用字符串的數據結構,才能進行軟件編程。這里設數據在接收和發(fā)送的字符串中,序號為0的字節(jié)為數據長度,其后的字節(jié)為所接收的數據。設COM1口的傳輸速率

27、為2400波特,字符長度為8位,1位停止位,無奇偶校驗。接收過程發(fā)送過程接收過程對于接收過程,程序首先用“INT 14H,AH=3”來獲得COM1端口的狀態(tài),如果檢測到“數據準備好”位有效,表明COM1口接收到一個數據,則用“INT 14H,AH2”功能,將字符從COM1口讀到AL寄存器。主程序子程序接收過程的主程序 BUFFER DB 100 DUP (?) ;定義字符串緩沖區(qū)MOV AH,0 ;設置COM1口MOV AL,0A3HMOV DX,0INT 14HCALL RECEIVE;接收第0號數據TEST AH,80H;測試讀是否成功JNZ REC_ERROR;不成功,轉出錯處理MOV CH,0MOV CL ,AL;CL為接收字符串長度LEA BX,BUFFER;建立指針MOV BX,AL;保存

溫馨提示

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

評論

0/150

提交評論