第九章 51單片機(jī)的串行接口_第1頁
第九章 51單片機(jī)的串行接口_第2頁
第九章 51單片機(jī)的串行接口_第3頁
第九章 51單片機(jī)的串行接口_第4頁
第九章 51單片機(jī)的串行接口_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章

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

9.2MCS-5l單片機(jī)的串行口

9.3

51單片機(jī)申行口的應(yīng)用

9.4

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

3串行通信的概念串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地分時(shí)傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。

49.1串行通信的基本知識

串行通信的兩種基本方式

串行通信中數(shù)據(jù)的傳送方向

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

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

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

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

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

A發(fā)收

B收發(fā)例如:電話機(jī)15三、并/串變換和串行口

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

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

219.2.1

80C51串行口的控制寄存器

2、串行口控制寄存器SCON

用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:

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

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

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

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

1、方式1發(fā)送312、方式1接收

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

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

331、方式2和方式3發(fā)送

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

12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。37波特率以及各參數(shù)的關(guān)系誤差的問題?38波特率以及各參數(shù)的關(guān)系39串行口的初始化串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計(jì)算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。SMOD位的設(shè)置409.3多機(jī)通信1、硬件連接單片機(jī)構(gòu)成的多機(jī)系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個(gè)單片機(jī)中,有一個(gè)是主機(jī),其余的是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。80C31單片機(jī)的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時(shí),還需進(jìn)行相應(yīng)的電平轉(zhuǎn)換,有時(shí)還要對信號進(jìn)行光電隔離。在實(shí)際的多機(jī)應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。412、通信協(xié)議所有從機(jī)的SM2位置1,處于接收地址幀狀態(tài)。主機(jī)發(fā)送一地址幀,其中8位是地址,第9位為地址/數(shù)據(jù)的區(qū)分標(biāo)志,該位置1表示該幀為地址幀。所有從機(jī)收到地址幀后,都將接收的地址與本機(jī)的地址比較。對于地址相符的從機(jī),使自己的SM2位置0(以接收主機(jī)隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機(jī)作為應(yīng)答;對于地址不符的從機(jī),仍保持SM2=1,對主機(jī)隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束的標(biāo)志。422、通信協(xié)議續(xù)主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)接收標(biāo)志(RB8),若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗(yàn)和,若正確則回送正確信號00H,此信號命令該從機(jī)復(fù)位(即重新等待地址幀);若校驗(yàn)和出錯(cuò),則發(fā)送0FFH,命令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則存數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。主機(jī)收到從機(jī)應(yīng)答地址后,確認(rèn)地址是否相符,如果地址不符,發(fā)復(fù)位信號(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機(jī)收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。439.4串行通信接口標(biāo)準(zhǔn)一、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)。1、機(jī)械特性RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個(gè)插針的排列位置都有明確的定義。(陽頭)442、功能特性453、通信連接--近程46通信連接--遠(yuǎn)程473、采用RS-232C接口存在的問題1)、傳輸距離短,傳輸速率低RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時(shí)傳輸距離一般不要超過15米(線路條件好時(shí)也不超過幾十米)。最高傳送速率為20Kbps。2)、有電平偏移RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時(shí),收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產(chǎn)生壓降。3)、抗干擾能力差RS-232C在電平轉(zhuǎn)換時(shí)采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。48二、RS-422A接口RS-422A輸出驅(qū)動器為雙端平衡驅(qū)動器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動對電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時(shí),傳輸距離可達(dá)1200米。

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論