第九章 51單片機的串行接口_第1頁
第九章 51單片機的串行接口_第2頁
第九章 51單片機的串行接口_第3頁
第九章 51單片機的串行接口_第4頁
第九章 51單片機的串行接口_第5頁
已閱讀5頁,還剩49頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第9章

51單片機的串行接口9.1串行通信的基本知識

9.2MCS-5l單片機的串行口

9.3

51單片機申行口的應用

9.4

RS232和RS485接口1引言隨著計算機的廣泛應用和網絡技術的普及,計算機的通信功能愈來愈顯得重要。計算機通信是指計算機與外部設備或計算機與計算機之間的信息交換。通信有兩種基本方式:并行通信和串行通信通信在現代化的分布式測量、控制系統中的地位。2并行通信的概念并行通信是將數據字節的各位用多條數據線同時進行傳送。并行通信優缺點:控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高。

3串行通信的概念串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個地分時傳送。串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,但數據的傳送控制比并行通信復雜。

49.1串行通信的基本知識

串行通信的兩種基本方式

串行通信中數據的傳送方向

并/串變換和串行口異步通信與同步通信單工、半雙工、全雙工5一、串行通信的兩種基本方式串行通信:異步通信與同步通信1、異步通信

異步通信是指通信的發送與接收設備使用各自的時鐘控制數據的發送和接收過程,以字符為數據傳輸單位,字符之間可以有間隔。為使雙方的收發協調,要求發送和接收設備的時鐘盡可能一致。6異步通信的異步與同步異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數倍的關系),但同一字符內的各位是同步的(各位之間的距離均為“位間隔”的整數倍)。

接收方如何判定一個新字符的開始??7異步通信的數據格式異步通信的特點:不要求收發雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。字符的幀格式:起始位1位;停止位1,1.5,2位;數據位長度不等,低位在前,高位在后;奇偶校驗位1位可選;空閑位任意。D0D1D2………..8兩個字符之間的時間間隔9波特率概念:波特率用來衡量串行通信的速率。一般是指每秒中傳輸數據的位數,單位為波特:b/s、bps。舉例:設有一幀信息,1個起始位、8個數據位、1個停止位,傳輸速率為每秒240個字符。求波特率。解:(1+8+1)×240=2400b/s=2400波特。

異步通信雙方的兩個基本約定:字符幀格式完全相同。波特率盡可能相等,102、同步通信同步通信時要建立發送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為“位間隔”的整數倍,同時傳送的字符間不留間隙,即保持位同步關系,也保持字符同步關系。發送方對接收方的同步可以通過兩種方法實現。11同步通信同步通信時,字符與字符之間沒有間隙,也不用起始位和停止位,僅在數據塊開始時用同步字符SYNC來指示。同步字符可以由用戶約定,當然也可以用ASCII碼中規定的SYN代碼,即16H。硬件設備上:插入同步字符,相應的檢測手段。同步字符可以是單同步字符方式或者雙同步字符方式。12二、串行通信中數據的傳送方向1、單工單工是指數據傳輸僅能沿一個方向,不能實現反向傳輸。2、半雙工半雙工是指數據傳輸可以沿兩個方向,但需要分時進行。3、全雙工全雙工是指數據可以同時進行雙向傳輸。

單工半雙工全雙工13串行通信中數據的傳送方向—舉例1[1]單工:只能收或發A發B收[2]半雙工:可收可發,但不能同時進行。A發收B收發例如:廣播電臺收音機例如:對講機14串行通信中數據的傳送方向—舉例2[3]全雙工:收發可以同時進行

A發收

B收發例如:電話機15三、并/串變換和串行口

1)串行發送:并到串的過程CPUD7D6D5D4D3D2D1D0發送數據寄存器01D0D1D2D3D4D5D6D7發送時鐘:TxD引腳移位寄存器16并/串變換和串行口

2)串行接收:串到并的過程D0D1D2D3D4D5D6D710D7D6D5D4D3D2D1D0CPU接收時鐘接收數據寄存器RxD引腳移位寄存器17數據接收時的采樣D0D1D2D3D4D5D6D7起始位8位數據停止位對RXD線的數據以16倍的波特率速度采樣當連續8次采集到低電平時,便確認起始位到來在每個第7,8,9個脈沖對RXD采樣并采用“以三取二”來確定采集的數據7.8.918串行接口現在市場上有各種串行接口芯片可供選擇,它們大都是可編程的多功能芯片,故稱為通用異步接收/發送器(UART,UniversalAsynchronousReceiver/Transmitter),或者是通用同步異步接收/發送器(USART,UniversalSynchronousAsynchronousReceiver/Transminer)。51單片機串行接口:全雙工UART8251芯片:一種通用的USART芯片。199.2MCS-5l單片機的串行口有一個可編程的串行接口。對外也有兩條獨立的接收信號線RxD(P3.0)和發送信號線TxD(P3.1)??梢酝瑫r發送、接收數據,實現全雙工傳送。有兩個獨立的發送緩沖器和接收緩沖器,發送緩沖器和接收緩沖器不能互相換用。對外來講,它們只占用一個特殊功能寄存器SFR地址99H(SBUF),通過使用不同的讀/寫緩沖器的指令來決定對哪一個緩沖器進行操作。有四種工作方式。其它的SFR:串行口控制寄存器SCON;電源控制寄存器PCON的SMOD位(與波特率有關)。2080C5l單片機的串口結構有兩個物理上獨立的接收、發送緩沖器SBUF,它們占用同一地址99H;接收器是雙緩沖結構;發送緩沖器,因為發送時CPU是主動的,不會產生重疊錯誤。

219.2.1

80C51串行口的控制寄存器

2、串行口控制寄存器SCON

用以設定串行口的工作方式、接收/發送控制以及設置狀態標志:

SM0和SM1為工作方式選擇位,可選擇四種工作方式:

1、電源控制寄存器PCON的SMOD位(與波特率有關)由定時器控制由定時器控制22SCON、PCON23串口SCON中各位的繼續解釋1TB8,在方式2或方式3中,是發送數據的第九位,可以用軟件規定其作用??梢杂米鲾祿钠媾夹r炍?,或在多機通信中,作為地址幀/數據幀的標志位。在方式0和方式1中,該位未用。RB8,在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。24串口SCON中各位的繼續解釋2●TI,發送中斷標志位。在方式0時,當串行發送第8位數據結束時,或在其它方式,串行發送停止位的開始時,由內部硬件使TI置1,表明字符發送完成,向CPU發中斷申請。中斷響應時不會自動清零,在中斷服務程序中,必須用軟件將其清0。●RI,接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使RI置1,表明字符接收完成,向CPU發中斷申請。中斷響應時不會自動清零,也必須在中斷服務程序中,用軟件將其清0。25串口SCON中各位的繼續解釋3SM2,多機通信控制位,主要用于方式2和方式3。若允許多機通信,則SM2=1,然后依據收到的第9位數據的值來決定從機是否接收主機的信號。REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。269.2.2串行口的工作方式

一、方式0方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數據由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發送和接收均為8位數據,低位在先,高位在后。波特率固定為fosc/12。1、方式0發送(輸出)272、方式0接收(輸入)

28外接移位寄存器輸出29外接移位寄存器輸入30二、方式1方式1是10位數據的異步通信口。TXD為數據發送引腳,RXD為數據接收引腳,傳送一幀數據的格式如圖所示。其中1位起始位,8位數據位,1位停止位。

1、方式1發送312、方式1接收

用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數據從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數據的前8位數據裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。32三、方式2和方式3

方式2或方式3時為11位數據的異步通信口。TXD為數據發送引腳,RXD為數據接收引腳。方式2和方式3時起始位1位,數據9位(含1位附加的第9位,發送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數據為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。

331、方式2和方式3發送

發送開始時,先把起始位0輸出到TXD引腳,然后發送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向CPU請求中斷。342、方式2和方式3接收接收時,數據從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的第9位數據為1)時,接收到的數據裝入接收緩沖器SBUF和RB8(接收數據的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數據丟失,且不置位RI,繼續搜索RXD引腳的負跳變。35四、波特率的計算在串行通信中,收發雙方對發送或接收數據的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(2SMOD/64)·fosc方式1的波特率=(2SMOD/32)·(T1溢出率)方式3的波特率=(2SMOD/32)·(T1溢出率)36波特率的計算當T1作為波特率發生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數值。T1溢出率=fosc/{12×[256-(TH1)]}在單片機的應用中,常用的晶振頻率為:6MHz、

12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數的關系如表所示。37波特率以及各參數的關系誤差的問題?38波特率以及各參數的關系39串行口的初始化串行口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時,要進行中斷設置(編程IE、IP寄存器)。SMOD位的設置409.3多機通信1、硬件連接單片機構成的多機系統常采用總線型主從式結構。所謂主從式,即在數個單片機中,有一個是主機,其余的是從機,從機要服從主機的調度、支配。80C31單片機的串行口方式2和方式3適于這種主從式的通信結構。當然采用不同的通信標準時,還需進行相應的電平轉換,有時還要對信號進行光電隔離。在實際的多機應用系統中,常采用RS-485串行標準總線進行數據傳輸。412、通信協議所有從機的SM2位置1,處于接收地址幀狀態。主機發送一地址幀,其中8位是地址,第9位為地址/數據的區分標志,該位置1表示該幀為地址幀。所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的SM2位置0(以接收主機隨后發來的數據幀),并把本站地址發回主機作為應答;對于地址不符的從機,仍保持SM2=1,對主機隨后發來的數據幀不予理睬。從機發送數據結束后,要發送一幀校驗和,并置第9位(TB8)為1,作為從機數據傳送結束的標志。422、通信協議續主機接收數據時先判斷數據接收標志(RB8),若RB8=1,表示數據傳送結束,并比較此幀校驗和,若正確則回送正確信號00H,此信號命令該從機復位(即重新等待地址幀);若校驗和出錯,則發送0FFH,命令該從機重發數據。若接收幀的RB8=0,則存數據到緩沖區,并準備接收下幀信息。主機收到從機應答地址后,確認地址是否相符,如果地址不符,發復位信號(數據幀中TB8=1);如果地址相符,則清TB8,開始發送數據。從機收到復位命令后回到監聽地址狀態(SM2=1)。否則開始接收數據和命令。439.4串行通信接口標準一、RS-232C接口

RS-232C是EIA(美國電子工業協會)1969年修訂RS-232C標準。RS-232C定義了數據終端設備(DTE)與數據通信設備(DCE)之間的物理接口標準。1、機械特性RS-232C接口規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)442、功能特性453、通信連接--近程46通信連接--遠程473、采用RS-232C接口存在的問題1)、傳輸距離短,傳輸速率低RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。2)、有電平偏移RS-232C總線標準要求收發雙方共地。通信距離較大時,收發雙方的地電位差別較大,在信號地上將有比較大的地電流并產生壓降。3)、抗干擾能力差RS-232C在電平轉換時采用單端輸入輸出,在傳輸過程中當干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標準不得不采用比較大的電壓擺幅。48二、RS-422A接口RS-422A輸出驅動器為雙端平衡驅動器。如果其中一條線為邏輯“1”狀態,另一條線就為邏輯“0”,比采用單端不平衡驅動對電壓的放大倍數大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時,傳輸距離可達1200米。

49三、RS-485接口RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發送器標準,在通信線路上最多可以使用32對

溫馨提示

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

評論

0/150

提交評論