物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信_第1頁
物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信_第2頁
物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信_第3頁
物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信_第4頁
物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、物聯(lián)網(wǎng)應(yīng)用實訓(xùn)RSRS串口通信RS232_RS485串行 能力目標(biāo):1.掌握串行通信概念與工作原理2.能夠利用定時器1實現(xiàn)串口通信3.能夠利用獨立波特率發(fā)生器實現(xiàn)串口通信4.掌握RS232和RS485串行通信方式及應(yīng)用一、串行通信的概念 隨著多微機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)技術(shù)的普及,計算機的通信功能愈來愈顯得重要。 計算機通信是指計算機與外部設(shè)備或計算機與計算機之間的信息交換。所有這些信息的交換均稱為“通信”。并行通信與串行通信 通信的基本方式分為并行通信和串行通信兩種。 并行通信,是指數(shù)據(jù)的各位同時進(jìn)行傳送的方式。其特點是傳輸速度快,但當(dāng)距離較遠(yuǎn),位數(shù)又多時導(dǎo)致了通信線路復(fù)雜且成本高。 串

2、行通信,是指數(shù)據(jù)一位一位的順序傳送的通信方式。其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)通信,從而大大的降低了成本,特別適用于遠(yuǎn)距離通信,但傳送速度慢。 在多微機系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。并行通信與串行通信示意圖D1D2D3D4D5D6D7D01控制(選通)狀態(tài)1011111000000000T計算機計算機或外設(shè)8T計算機計算機或外設(shè)a)b)串行通信中的異步通信 異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。串行通信中的異步通信 異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符

3、之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的整數(shù)倍)。串行通信中的異步通信 在異步數(shù)據(jù)傳送中,CPU與外設(shè)之間事先必須約好兩項事宜: 第一:字符格式。雙方要約好字符的編碼形式、奇偶校驗形式、以及起始位和停止位的規(guī)定。 第二:波特率(Baud rate)。波特率是衡量數(shù)據(jù)傳送速率的指標(biāo),它要求發(fā)送站和接收站都要以相同的數(shù)據(jù)傳送速率工作。 通用的異步接收器/發(fā)送器UART 通用的異步接收器/發(fā)送器,簡稱UART(Universal Asynchron

4、ous Receiver/Transmitter),是串行接口的核心部件,它既能發(fā)送,由并行串行輸出;又能接收,由串行并行輸入。對每一方來說都是一個雙緩沖器結(jié)構(gòu)。 當(dāng)UART接收數(shù)據(jù)時,串行數(shù)據(jù)先經(jīng)RXD端(Receiver Data)進(jìn)入移位寄存器,再經(jīng)移位寄存器輸出并行數(shù)據(jù)到緩沖器,最后通過數(shù)據(jù)總線送到CPU;當(dāng)UART發(fā)送信息時,先由CPU經(jīng)數(shù)據(jù)總線將并行數(shù)據(jù)送給緩沖器,再由并行緩沖器送給一位寄存器,最后逐位由TXD(Transmitter Data)端輸出。所有這些工作都是在時鐘信號和其他控制信號作用下完成的。通用的異步接收器/發(fā)送器UARTWRRESETCONTROLTXC奇偶錯溢出

5、錯幀錯RXCTBEDATA BusRXDTXDRDCSINOUTPEOEFE接收移位寄存器接收數(shù)據(jù)緩沖器發(fā)送緩沖器空發(fā)送移位寄存器發(fā)送數(shù)據(jù)緩沖器INTUARTUART內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)示意圖示意圖二、STC12C5A60S2單片機的串行口 STC12C5A60S2單片機具有2個采用UART工作方式的全雙工串行通信接口(串口1和串口2)。每個串口由2個數(shù)據(jù)緩沖器、1個移位寄存器、1個串行控制寄存器和一個波特率發(fā)生器等組成。每個串口的數(shù)據(jù)緩沖器由串行接收緩沖器和發(fā)送緩沖器構(gòu)成,它們在物理上是獨立的,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù),還可以同時發(fā)送和接收數(shù)據(jù)。二、STC12C5A60S2單片機的串行口 接

6、收緩沖器只能讀出,不能寫入,而發(fā)送緩沖器則只能寫入,不能讀出。它們共用一個地址號。STC12C5A60S2的串行口既可以用于串行異步通信,也可以構(gòu)成同步移位寄存器。如果在串行口的輸入/輸出引腳上加上電平轉(zhuǎn)換器,可以方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。串口1與傳統(tǒng)8051單片機的串口完全兼容。串口2的結(jié)構(gòu)、工作原理與串口1類似。STC12C5A60S2單片機的串行口 對于具有串口2的STC12C5A60S2單片機,串口2只能使用獨立波特率發(fā)生器作為波特率發(fā)生器,不能夠選擇定時器1作為波特率發(fā)生器;串口1可以選擇定時器1作為波特率發(fā)生器,也可以選擇獨立波特率發(fā)生器作為波特率發(fā)生器。1.選擇定時器1作

7、為波特率發(fā)生器 定時器1作為波特率發(fā)生器時只能用在串口1中。 與串行接口1相關(guān)的寄存器:與串行口1相關(guān)的特殊功能寄存器 串口1控制寄存器SCON SCON(地址為98H,復(fù)位值為00H)用于確定串行通道的操作方式和控制串行通道的某些功能。也可用于發(fā)送和接收第九個數(shù)據(jù)位(TB8、RB8),并設(shè)有接收和發(fā)送中斷標(biāo)志(RI及TI)位。與串行口1相關(guān)的特殊功能寄存器 SM0和SM1為工作方式選擇位,可選擇四種工作方式:與串行口1相關(guān)的特殊功能寄存器 SM2:多機通信控制位,主要用于方式2和方式3。 REN:允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。 TB

8、8:在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位 RB8:在方式2或方式3中,是接收到數(shù)據(jù)的第九位與串行口1相關(guān)的特殊功能寄存器 TI:發(fā)送中斷標(biāo)志位。 在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。 RI:接收中斷標(biāo)志位。 在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。與串行口1相關(guān)的特殊功能寄存器 串口1控制寄存器PCON PCON中只有一位

9、SMOD與串行口工作有關(guān) : SMOD() 波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。8051串行口的工作方式 方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。8051串行口的工作方式 1、方式1輸出 2、方式1輸入8051串行口的工作方式 用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其

10、余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請求中斷。波特率的計算 在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,方式1的波特率是可變的,由定時器T1的溢出率來決定。 由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。 方式1的波特率 =(2SMOD/32)(T1溢出率)波特率的計算 當(dāng)T1作為波特率發(fā)生器時,最

11、典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。 T1 溢出率 = fosc /12256 (TH1)波特率的計算 在單片機的應(yīng)用系統(tǒng)中,常用的晶振頻率為:12MHz和。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。串行口1通信初始化過程 串行口1工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下: 確定T1的工作方式(編程TMOD寄存器); 計算T1的初值,裝載TH1、TL1; 啟動T1(編程TCON中的TR1位); 確定串行口控制(編程SCON寄存器); 串行口

12、在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。 串口串口1 1通信例程通信例程2.獨立波特率發(fā)生器作為波特率發(fā)生器 獨立波特率發(fā)生器可以作為串口1和串口2的波特率發(fā)生器使用。 與串行接口2相關(guān)的寄存器:與串行口2相關(guān)的特殊功能寄存器 串口2控制寄存器S2CON 寄存器S2CON(地址為9AH,復(fù)位值為00H)用于確定串口2的操作方式和控制串口2的某些功能,也可用于發(fā)送和接收第9個數(shù)據(jù)位(S2TB8、S2RB8),并設(shè)有接收和發(fā)送中斷標(biāo)志(S2RI及S2TI)位。具體功能同串口1的SCON。與串行口2相關(guān)的特殊功能寄存器 數(shù)據(jù)緩沖器S2BUF 對于串口2,當(dāng)一個字符接收完畢,移位寄存

13、器中的數(shù)據(jù)字節(jié)裝入串行接收數(shù)據(jù)緩沖器S2BUF中,其第9位則裝入S2CON寄存器的S2RB8位。如果S2SM2使得已接收的數(shù)據(jù)無效,則S2RB8位和S2BUF緩沖器中的內(nèi)容不變與串行口2相關(guān)的特殊功能寄存器 輔助寄存器AUXR T0 x12和T1x12用于設(shè)置定時器0和1的速度。 BRTR:獨立波特率發(fā)生器運行控制位。 S2SMOD:UART2的波特率加倍控制位。 BRTx12:獨立波特率發(fā)生器計數(shù)控制位。 S1BRS:串口1波特率發(fā)生器選擇位。與串行口2相關(guān)的特殊功能寄存器 輔助寄存器AUXR1 S2_P4:0,缺省UART2在P1口 1,UART2從P1口切換到P4口 TxD2從P1.3

14、切換到口 RxD2從P1.2 切換到口與串行口2相關(guān)的特殊功能寄存器 獨立波特率發(fā)生器寄存器BRT 獨立波特率發(fā)生器寄存器BRT(地址為9CH,復(fù)位值為00H)用于保存重裝時間常數(shù)。 對于獨立波特率發(fā)生器BRT,1T模式是指BRTx12=1,12T模式是指BRTx12=0。12T模式時,n=1;1T模式時,n=0。此時,串行口的波特率計算公式為: 串行口的波特率串行口2的BRT計算 通過前面公式可以推導(dǎo)出BRT獨立波特率發(fā)生器溢出率計算公式。 當(dāng)工作在12T模式下:(baud是波特率)=256- (2SMOD x SYSclk / 32 / 12 / baud); 當(dāng)工作在1T模式下:=256

15、- (2SMOD x SYSclk / 32 / baud);串行口2通信初始化過程 串口2的初始化過程如下: 設(shè)置串口2的工作模式S2CON。 設(shè)置串口2的波特率相應(yīng)的寄存器和位,包括:獨立波特率發(fā)生器寄存器BRT、BRTx12和S2SMOD位。啟動BRT(置位BRTR),BRT開始計數(shù)。 設(shè)置串口2的中斷優(yōu)先級(設(shè)置PS2和PS2H,也可以不設(shè)置,取默認(rèn)值),設(shè)置打開相應(yīng)的中斷控制位(ES2和EA)。 如要串口2發(fā)送,將數(shù)據(jù)送入S2BUF。 編制串行中斷服務(wù)程序,在中斷服務(wù)程序中要設(shè)置清除中斷標(biāo)志指令(分別是接收完成標(biāo)志S2RI和發(fā)送完成標(biāo)志S2TI)。 串口串口2 2通信例程通信例程三、

16、RS232串行通信接口標(biāo)準(zhǔn) RS-232是早期為公用 網(wǎng)絡(luò)數(shù)據(jù)通信而制定的標(biāo)準(zhǔn),其邏輯電平與TTL/CMOS電平完全不同,在通信中必須通過電路實現(xiàn)TTL電平和RS-232電平的轉(zhuǎn)換。 邏輯“0”規(guī)定為+5+15V之間,邏輯“1”規(guī)定為-5-15V之間。由于RS-232發(fā)送和接收之間有公共地,傳輸采用非平衡模式,因此共模噪聲會耦合到信號系統(tǒng)中,標(biāo)準(zhǔn)中建議的最大通信距離為15m。RS-232C接口 RS-232C是EIA(美國電子工業(yè)協(xié)會)1969年修訂RS-232C標(biāo)準(zhǔn)。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。 RS-232C接口規(guī)定使用25針連接器

17、,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)RS-232C引腳定義RS-232C電平轉(zhuǎn)換電路采用RS-232C接口存在的問題 1、傳輸距離短,傳輸速率低 RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。 2、有電平偏移 RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產(chǎn)生壓降。 3、抗干擾能力差 RS-232C在電平轉(zhuǎn)換時采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。RS-485串行通信接口標(biāo)準(zhǔn) RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32 對差分驅(qū)動器/接收器。如果在一個網(wǎng)絡(luò)中連接的設(shè)備超過32個,還可以使用中繼器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1

溫馨提示

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

評論

0/150

提交評論