51單片機串行通信接口課件_第1頁
51單片機串行通信接口課件_第2頁
51單片機串行通信接口課件_第3頁
51單片機串行通信接口課件_第4頁
51單片機串行通信接口課件_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京交通大學(xué)1第6章

串行通信接口本章主要內(nèi)容串行數(shù)據(jù)通信基本原理MCS-51單片機串行口串行口應(yīng)用舉例北京交通大學(xué)1第6章串行通信接口本章主要內(nèi)容北京交通大學(xué)2

計算機的兩種方式數(shù)據(jù)傳送:并行和串行

并行傳送的特點:各數(shù)據(jù)位同時傳送,傳送速度快、效率高。但需要的數(shù)據(jù)線多,因此傳送成本高。并行數(shù)據(jù)傳送的距離通常小于30米。

串行傳送的特點是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,成本低,但速度慢。串行數(shù)據(jù)傳送的距離可以從幾米到幾千公里。一、串行數(shù)據(jù)通信基本原理北京交通大學(xué)2一、串行數(shù)據(jù)通信基本原理北京交通大學(xué)3數(shù)據(jù)通信基本原理串行數(shù)據(jù)傳送又分為異步傳送和同步傳送兩種方式。在單片機中,主要使用異步傳送方式。北京交通大學(xué)3數(shù)據(jù)通信基本原理串行數(shù)據(jù)傳送又分為異步傳送和同北京交通大學(xué)4

1.異步串行通信的字符格式異步串行數(shù)據(jù)通信以字符為單位,即一次傳送一個字符。異步通信的數(shù)據(jù)格式為:一位起始位一位奇偶校驗位1、1.5、2位停止位

一幀信息5~8位數(shù)據(jù)位...北京交通大學(xué)41.異步串行通信的字符格式一位起始位北京交通大學(xué)5

1位起始位(為低電平);

5-8位數(shù)據(jù)位(緊跟著起始位),表示要傳送的有效數(shù)據(jù)(低位在前);

1位奇偶校驗位(可有可無);

1、1.5或2位停止位(為高電平)。從起始位開始到停止位結(jié)束的時間間隔稱為一幀。就是一個字符的完整通信格式。因此也把串行通信的字符格式稱為幀格式北京交通大學(xué)51位起始位(為低電平);北京交通大學(xué)6例如,采用串行異步通信方式傳送ASCII碼字符‘5’,規(guī)定為7位數(shù)據(jù)位,1位偶校驗位,1位停止位,無空閑位。

由于‘5’的ASCII碼為35H,其對應(yīng)7位數(shù)據(jù)位為0110101,如按低位在前、高位在后順序排列應(yīng)為1010110。前面加1位起始位,后面配上偶校驗位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對應(yīng)的波形如圖所示。低位在前高位在后起始停止偶校驗北京交通大學(xué)6例如,采用串行異步通信方式傳送ASCII碼字符北京交通大學(xué)72.串行通信的數(shù)據(jù)通路形式串行數(shù)據(jù)通信有以下幾種數(shù)據(jù)通路形式:單工形式:A發(fā),B接。半雙工形式:

A發(fā)或接,

B接或發(fā)。全雙工形式:A發(fā)、接,B接、發(fā)。ABABAB北京交通大學(xué)72.串行通信的數(shù)據(jù)通路形式ABABAB北京交通大學(xué)83.串行通信的傳送速率

傳送速率:用于說明數(shù)據(jù)傳送的快慢。波特率(Baud):每秒傳送二進(jìn)制代碼位數(shù)即每秒傳送一個數(shù)據(jù)位就是一波特:常用的波特率有:75,110,300,600,1200,2400,4800,9600,19200。1波特=1bps(位/秒)北京交通大學(xué)83.串行通信的傳送速率1波特=1bps(北京交通大學(xué)9設(shè)數(shù)據(jù)傳送的速率每秒為120個字符,每個字符包含10個代碼位(1個起始位,1個停止位,8個數(shù)據(jù)位)波特率=10x120b/s=1200bps每一位代碼的傳送時間=1/1200=0.833ms北京交通大學(xué)9設(shè)數(shù)據(jù)傳送的速率每秒為120個字符,每個字符包北京交通大學(xué)10

4.串行通信接口電路

串行數(shù)據(jù)通信中主要有兩個技術(shù)問題數(shù)據(jù)傳送:數(shù)據(jù)傳送主要解決傳送中的標(biāo)準(zhǔn)、格式及工作方式等問題數(shù)據(jù)轉(zhuǎn)換:數(shù)據(jù)轉(zhuǎn)換是指數(shù)據(jù)的串并轉(zhuǎn)換北京交通大學(xué)104.串行通信接口電路北京交通大學(xué)11串行接口電路基本組成邏輯框圖如下:串行輸入時鐘復(fù)位并行輸出并行輸入時鐘串行輸出控制信號狀態(tài)、控制信息接收器發(fā)送器控制部件北京交通大學(xué)11串行接口電路基本組成邏輯框圖如下:串行輸入并北京交通大學(xué)12通用異步接收發(fā)送器(UART)

北京交通大學(xué)12通用異步接收發(fā)送器(UART)北京交通大學(xué)13異步串行通信常用接口

TTL電平直接連接RS-232C:

傳輸速度為20kbit/s,傳輸距離15英尺RS-422、RS-485:傳輸速度為10Mbit/s,傳輸距離300m—1200m并能抑制共模信號干擾20mA電流環(huán):

能降低對噪聲敏感程度光纖:光纖介質(zhì)可減少噪聲干擾,光電隔離提高安全性北京交通大學(xué)13異步串行通信常用接口TTL電平直接連接RS北京交通大學(xué)14二、MCS-51單片機串行口

MCS-51單片機片內(nèi)有一個全雙工串行口(P3.0接收、P3.1發(fā)送)功能:異步串行通信其中:發(fā)送和接收的速率與移位時鐘同步,

移位脈沖的速率為波特率。說明:定時器T1作為串行通信波特率發(fā)生器。北京交通大學(xué)14二、MCS-51單片機串行口MCS-5北京交通大學(xué)15TI發(fā)送中斷標(biāo)志RI接收中斷,允許接收REN串行口中斷1.串行口寄存器結(jié)構(gòu)發(fā)送寄存器(只能寫)接收寄存器(只能讀)(P3.1)(P3.0)SBUF全雙工方式進(jìn)行通信,這兩個寄存器共用一個地址(99H)。北京交通大學(xué)15TI發(fā)送中斷標(biāo)志RI接收中斷,允許接收REN北京交通大學(xué)16雙緩沖結(jié)構(gòu),防止產(chǎn)生重疊錯誤MOVSBUF,AMOVA,SBUF北京交通大學(xué)16雙緩沖結(jié)構(gòu),防止產(chǎn)生重疊錯誤MOVSBUF北京交通大學(xué)17例如:說明:串行接收采用雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,但發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需要雙緩沖結(jié)構(gòu)。

2.串行通信控制有關(guān)的寄存器

SCON:串行控制,用來設(shè)定串行口的工作方式

PCON:電源控制,可控制波特率。

IE:設(shè)置串行中斷允許。啟動發(fā)送:MOVSBUF,A;SBUF(A)啟動接收:MOVA,SBUF

;A(SBUF)北京交通大學(xué)17例如:啟動發(fā)送:MOVSBUF,A;S北京交通大學(xué)18

(1)串行控制寄存器SCON

SCON格式如下:SM0SM1SM2RENTB8RB8

TI

RI

(98H)9F9E9D9C9B9A9998工作方式選擇位多機通信控制位允許接收控制位發(fā)送數(shù)據(jù)第九位接收數(shù)據(jù)第九位發(fā)送中斷標(biāo)志接收中斷標(biāo)志北京交通大學(xué)18(1)串行控制寄存器SCONSM0北京交通大學(xué)19各位功能說明如下:SM0SM1:串口工作方式選擇位

00方式0:同步移位寄存器波特率=主振頻率/1201方式1:8位異步,波特率可變10方式2:9位異步波特率=主振頻率/32或主振頻率/6411方式3:9位異步,波特率可變北京交通大學(xué)19各位功能說明如下:00方式0:同步移位北京交通大學(xué)20

REN=1:允許串行接收,用軟件置位或清除。

TB8:發(fā)送數(shù)據(jù)位8即:

D0…D7D8

TB8/RB8D8=0:表示數(shù)據(jù)幀;D8=1:表示地址幀⑴在工作方式2、3中,TB8是發(fā)送的第9位數(shù)據(jù),由軟件置位(SETBTB8)或復(fù)位(CLRTB8)⑵在雙機通信中,該位作為奇偶校驗位;⑶在多機通信中用來表示D7-D0是地址幀或數(shù)據(jù)幀北京交通大學(xué)20REN=1:允許串行接收,用軟件置位或清北京交通大學(xué)21

RB8:接收數(shù)據(jù)位8TI:發(fā)送中斷標(biāo)志。

⑴在工作方式2和3中,該位是接收到的第9位數(shù)據(jù)。方式1,SM2=0,停止位。方式0,不用。⑵在多機通信中是地址幀(RB8=1)和數(shù)據(jù)幀(RB8=0)的標(biāo)識位。⑴在方式0中,發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位;⑵在其它方式中,在發(fā)送停止位之前,該位由硬件置位,申請中斷,CPU響應(yīng)中斷后,可以發(fā)送下一幀數(shù)據(jù)。該位必須由軟件清零。北京交通大學(xué)21RB8:接收數(shù)據(jù)位8⑴在工作方式2和3北京交通大學(xué)22

RI:接收中斷標(biāo)志。⑴在方式0中,接收完第8位數(shù)據(jù)后,該位由硬件置位⑵在其它方式中,在接收到停止位的一半時,該位由硬件置位(還需考慮SM2的設(shè)定),申請中斷,CPU響應(yīng)中斷后,可以接收下一幀數(shù)據(jù)。該位也必須由軟件清零。北京交通大學(xué)22RI:接收中斷標(biāo)志。⑴在方式0中,接收北京交通大學(xué)23

SM2:多機通信控制位,主要用于方式2、3中。⑴在方式0中,SM2設(shè)置為0,不用TB8和RB8

⑵在方式1中:當(dāng)SM2=0,則RB8是接收到的停止位;當(dāng)SM2=1,則只有接收到有效的停止位時,RI才被激活。⑶在方式2、3中,TB8和RB8為發(fā)送和接收的第九位數(shù)據(jù),當(dāng)SM2=0時,則不論RB8為0還是1,都將前8位數(shù)據(jù)裝入SBUF中,表示接收到命令或數(shù)據(jù),并產(chǎn)生中斷請求。當(dāng)SM2=1時,只有當(dāng)接收到的第九位數(shù)據(jù)

RB8=1時,才將接收到的前8位數(shù)據(jù)送入SBUF,表示接收到地址幀;

當(dāng)RB8=0時,將接收到的前8位數(shù)據(jù)丟棄。北京交通大學(xué)23SM2:多機通信控制位,主要用于方式2北京交通大學(xué)24說明:1.用軟件可以改變設(shè)置SCON內(nèi)容,并在下一條指令的第一個周期的S1P1期間才鎖存到SCON中。2.一幀發(fā)送完,發(fā)送中斷標(biāo)志置位(TI),向CPU請求中斷。一幀接收完,接收中斷標(biāo)志置位(RI),向CPU請求中斷。北京交通大學(xué)24說明:北京交通大學(xué)25

它主要是為CHMOS型單片機的電源控制而設(shè)置的。對HMOS型單片機,除了最高位(SMOD)之外,其它位都是虛設(shè)的,SMOD是串行口波特率的倍增位。

當(dāng):SMOD=1時,串行口波特率加倍系統(tǒng)復(fù)位時,SMOD=0??捎上铝兄噶钤O(shè)置:

MOVPCON,#80H;SMOD

1MOVPCON,#00H;SMOD

0(2)電源控制寄存器PCON格式:SMOD(87H)北京交通大學(xué)25它主要是為CHMOS型單片機的電源控北京交通大學(xué)26

(1)方式0:同步移位寄存器方式

RXD端作為數(shù)據(jù)移位的入口或出口

TXD端提供移位時鐘脈沖,移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,不設(shè)起始位和停止位,低位在前高位在后,波特率是固定的即一個機器周期移位一次。2.串行口的工作方式RXDTXDDATACLKRXDTXDDATACLK并行輸出并行輸入8051CD40968051CD4014下圖串并,并串轉(zhuǎn)換方法電路P1.0STBP1.0STBfOSC/12北京交通大學(xué)26(1)方式0:同步移位寄存器方式2.串北京交通大學(xué)27說明:

1.REN=1,允許接收。RXD數(shù)據(jù)輸入,TXD移位脈(fosc/12)。接收(發(fā)送)完8位數(shù)據(jù)時硬件將RI(TI)置位,CPU響應(yīng)中斷,

2.TI,RI必須由用戶程序清零。

3.方式0時:SM2=0,TB8、RB8不用4.擴展I/O

串行輸入,串行輸出,并串、串并轉(zhuǎn)換北京交通大學(xué)27說明:北京交通大學(xué)28數(shù)據(jù)輸出MOVSBUF,Afosc=1/12發(fā)送完8位數(shù)據(jù)北京交通大學(xué)28數(shù)據(jù)輸出MOVSBUF,Afosc=1/1北京交通大學(xué)29REN=“1”,方式0,RI=“0”RXD數(shù)據(jù)輸入端接收到8位數(shù)據(jù)北京交通大學(xué)29REN=“1”,方式0,RI=“0”接收到8北京交通大學(xué)30

數(shù)據(jù)發(fā)送

1.數(shù)據(jù)發(fā)送是由一條寫發(fā)送寄存器(MOVSBUF,A)指令開始的。

2.此后在串行口由硬件自動加入起始位和停止位,構(gòu)成一個完整的幀格式。

3.然后在移位脈沖的作用下,由TXD端串行輸出。

4.一個字符幀發(fā)送完后,使TXD端輸出線維持高電平,并將TI置位,通知CPU可以發(fā)送下一個字符。起始D0D1D2D3D4D5D6D7停止

(2)方式1

方式1的幀格式為:北京交通大學(xué)30數(shù)據(jù)發(fā)送起始D0D1D2D3D北京交通大學(xué)31

數(shù)據(jù)接收

1.接收數(shù)據(jù)時,應(yīng)使REN=1。在此前提下,串行口采樣RXD端,當(dāng)采樣到從1到0的跳變時,就認(rèn)定是接收到了起始位。

2.隨后在移位脈沖的控制下,把接收到的數(shù)據(jù)位移入接收寄存器中。

3.直到停止位到來之后把它送入到RB8中,并置位RI,通知CPU從SBUF取走接收到的一個字符。北京交通大學(xué)31數(shù)據(jù)接收北京交通大學(xué)32發(fā)送十位信息啟動發(fā)送完置1REN=“1”,SM0=0,SM1=1,RI=07,8,9共3次采樣數(shù)據(jù)采樣到1變0,啟動接收波特率16倍速率條件:1.RI=02.停止位=1,或SM2=0、停止位進(jìn)入RB8,并RI=1北京交通大學(xué)32發(fā)送十位信息啟動發(fā)送完置1REN=“1”,S北京交通大學(xué)33

波特率的設(shè)定

方式1的波特率可變,由下式?jīng)Q定:實際使用時,總是先確定波特率,再計算T1的計數(shù)初值。即:smod為PCON寄存器最高位的值,fOSC為晶振頻率,X為當(dāng)T1工作于方式2(8位自動加載)時的計數(shù)初值。其中:北京交通大學(xué)33波特率的設(shè)定其中:北京交通大學(xué)34

(3)方式2和方式3

串行口工作在方式2、3時,為9位異步通信口,發(fā)送和接收1幀信息由11位組成,即:D0D2...D7

D8

一幀1位起始位(0)、8位數(shù)據(jù)位(D0-D7)、1位可編程位(D8)和1位停止位(1)。D8位既可作為奇偶校驗位,也可作為控制位使用,功能由用戶確定發(fā)送時,可編程位D8(TB8)可設(shè)置為0(CLRTB8)或1(SETBTB8)接收時,TB8送入SCON寄存器中RB8位。北京交通大學(xué)34(3)方式2和方式3D0D2北京交通大學(xué)35方式2、3的區(qū)別是:波特率設(shè)置不同方式2的波特率是固定的。即:波特率=fosc/32或fosc/64方式3的波特率是可變的。即:北京交通大學(xué)35方式2、3的區(qū)別是:波特率設(shè)置不同北京交通大學(xué)36波特率foscsmod120011.059202E8H240011.059202F4H480011.059202FAH960011.059202FDH1920011.059212FDH

定時器1

方式時間常數(shù)表1波特率與時間常數(shù)北京交通大學(xué)36波特率foscsmod120北京交通大學(xué)37MCS-51串行通信波特率:方式0波特率=fOSC/12,fOSC為主機頻率方式2SMOD=1,波特率=fOSC/32;SMOD=0,波特率=fOSC/64;方式1,3T1溢出率=北京交通大學(xué)37MCS-51串行通信波特率:方式0T1溢出率北京交通大學(xué)38方式2發(fā)送程序:

以TB8為偶校驗位,處理方法是數(shù)據(jù)寫入SBUF之前,先將P寫入TB8CLRTI;發(fā)送中斷標(biāo)志TI清零

MOVA,R0;取數(shù)據(jù)

MOVC,P;奇偶校驗位送TB8MOVTB8,CMOVSBUF,A;數(shù)據(jù)寫入,啟動發(fā)送北京交通大學(xué)38方式2發(fā)送程序:北京交通大學(xué)39

接收程序若附加第九位數(shù)據(jù)為偶校驗位,接收程序中應(yīng)作校驗處理

CLRRI;收到一幀數(shù)據(jù)后清RIMOVA,SBUF;前八位數(shù)據(jù)送AMOVC,P;正確P=0,RB=0。P=1,RB=1

JNCPD0;P=0,判RB8=0否

JNBRB8,ERROR;P=1,RB8=0出錯

AJMPPOKPD0:JBRB8,ERRO;P=0,RB8=1出錯POK:MOV@RO,AERROR:…北京交通大學(xué)39接收程北京交通大學(xué)40利用串行口工作方式0擴展I/O口

MOVR1,#60HSETBP1.0CLRP1.0;下降沿并入

SETBP1.0;移位

MOVSCON,#10H;方式0,啟動接收

MOVR0,#02H;每組字節(jié)數(shù)2WAIT:JNBRI,WAITCLRRIMOVA,SBUFMOV@R1,AINCR1DJNZR0,WAIT北京交通大學(xué)40利用串行口工作方式0擴展I/O口北京交通大學(xué)41利用串行口工作方式0擴展I/O口

MOVR6,#02HMOVR0,#30HMOVSCON,#00H;方式0SEND:MOVA,@R0MOVSBUF,A;啟動發(fā)送

WAIT:JNBTI,WAITCLRTI;清發(fā)送中斷標(biāo)志

INCR0DJNZR6,WAIT北京交通大學(xué)41利用串行口工作方式0擴展I/O口北京交通大學(xué)42

三、串行口應(yīng)用舉例例6-1雙機通信設(shè):甲機發(fā)送乙機接收,串行口工作在方式1,波特率為1200fosc=11.0592MHz

硬件連接如圖

計算時間常數(shù)TXDRXD

GNDRXDTXDGND

T1作為波特率發(fā)生器,工作于方式2。由表1查得時間常數(shù)為E8H。

圖雙機通信乙甲北京交通大學(xué)42三、串行口應(yīng)用舉例例6-1雙北京交通大學(xué)43

甲機發(fā)送程序甲機將內(nèi)部RAM單元20H-3FH的32個字節(jié)的ASCII碼數(shù)據(jù),在最高位上加奇校驗位后,由串行口TXD發(fā)送給乙機。即可采用8位異步通信。START:MOVTMOD,#20H;T1為方式2

MOVTL1,#0E8H;時間常數(shù)低8位

MOVTH1,#0E8H;SETBTR1;啟動T1工作

MOVSCON,#01000000B;串行口方式1

MOVR0,#20H;數(shù)據(jù)首地址

MOVR7,#32;32字節(jié)數(shù)據(jù)北京交通大學(xué)43甲機發(fā)送程序北京交通大學(xué)44LOOP:MOVA,@R0;取數(shù)據(jù),影響P標(biāo)志位

MOVC,P;置奇校驗位

CPLCMOVACC.7,CMOVSBUF,A;啟動發(fā)送DONE:JNBTI,DONE;等待發(fā)完一幀

CLRTI;清TI,允許再發(fā)送

INCR0;指向下一數(shù)據(jù)

DJNZR7,LOOP;未送完,送下一個數(shù)

AJMPLOOP;循環(huán)發(fā)送北京交通大學(xué)44LOOP:MOVA,@R0北京交通大學(xué)45

乙機接收程序

與甲機發(fā)送相呼應(yīng),接收器把接收到的32個字節(jié)數(shù)據(jù)存放在內(nèi)部RAM的20H-3FH中,波特率與晶振頻率同上。若奇校驗出錯,則置進(jìn)位為1。程序如下:START:MOVTMOD,#20H;T1方式2

MOVTL,#OE8HMOVTH,#OE8HSETBTR1MOVR0,#20HMOVR7,#32LOOP:MOVSCON,#01010000B;串行口方式1,能接收北京交通大學(xué)45乙機接收程序START:MOV北京交通大學(xué)46DONE:JNBRI,DONE;等待接收一幀

CLRRI;清RI,再接收

MOVA,SBUF;取數(shù)據(jù)

JNBP,ERROR;校驗錯,轉(zhuǎn)出錯處理

ANLA,#7FH;去掉奇校驗位

MOV@R0,A;奇校驗,存數(shù)據(jù)

INCR0;指向下一數(shù)據(jù)

DJNZR7,LOOP;數(shù)據(jù)塊,未接收完,循環(huán)

AJMPLOOP;循環(huán)接收ERROR:…;出錯處理北京交通大學(xué)46DONE:JNBRI,DONE;等北京交通大學(xué)47作業(yè)P144:2,3,7北京交通大學(xué)47作業(yè)北京交通大學(xué)48第6章

串行通信接口本章主要內(nèi)容串行數(shù)據(jù)通信基本原理MCS-51單片機串行口串行口應(yīng)用舉例北京交通大學(xué)1第6章串行通信接口本章主要內(nèi)容北京交通大學(xué)49

計算機的兩種方式數(shù)據(jù)傳送:并行和串行

并行傳送的特點:各數(shù)據(jù)位同時傳送,傳送速度快、效率高。但需要的數(shù)據(jù)線多,因此傳送成本高。并行數(shù)據(jù)傳送的距離通常小于30米。

串行傳送的特點是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,成本低,但速度慢。串行數(shù)據(jù)傳送的距離可以從幾米到幾千公里。一、串行數(shù)據(jù)通信基本原理北京交通大學(xué)2一、串行數(shù)據(jù)通信基本原理北京交通大學(xué)50數(shù)據(jù)通信基本原理串行數(shù)據(jù)傳送又分為異步傳送和同步傳送兩種方式。在單片機中,主要使用異步傳送方式。北京交通大學(xué)3數(shù)據(jù)通信基本原理串行數(shù)據(jù)傳送又分為異步傳送和同北京交通大學(xué)51

1.異步串行通信的字符格式異步串行數(shù)據(jù)通信以字符為單位,即一次傳送一個字符。異步通信的數(shù)據(jù)格式為:一位起始位一位奇偶校驗位1、1.5、2位停止位

一幀信息5~8位數(shù)據(jù)位...北京交通大學(xué)41.異步串行通信的字符格式一位起始位北京交通大學(xué)52

1位起始位(為低電平);

5-8位數(shù)據(jù)位(緊跟著起始位),表示要傳送的有效數(shù)據(jù)(低位在前);

1位奇偶校驗位(可有可無);

1、1.5或2位停止位(為高電平)。從起始位開始到停止位結(jié)束的時間間隔稱為一幀。就是一個字符的完整通信格式。因此也把串行通信的字符格式稱為幀格式北京交通大學(xué)51位起始位(為低電平);北京交通大學(xué)53例如,采用串行異步通信方式傳送ASCII碼字符‘5’,規(guī)定為7位數(shù)據(jù)位,1位偶校驗位,1位停止位,無空閑位。

由于‘5’的ASCII碼為35H,其對應(yīng)7位數(shù)據(jù)位為0110101,如按低位在前、高位在后順序排列應(yīng)為1010110。前面加1位起始位,后面配上偶校驗位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對應(yīng)的波形如圖所示。低位在前高位在后起始停止偶校驗北京交通大學(xué)6例如,采用串行異步通信方式傳送ASCII碼字符北京交通大學(xué)542.串行通信的數(shù)據(jù)通路形式串行數(shù)據(jù)通信有以下幾種數(shù)據(jù)通路形式:單工形式:A發(fā),B接。半雙工形式:

A發(fā)或接,

B接或發(fā)。全雙工形式:A發(fā)、接,B接、發(fā)。ABABAB北京交通大學(xué)72.串行通信的數(shù)據(jù)通路形式ABABAB北京交通大學(xué)553.串行通信的傳送速率

傳送速率:用于說明數(shù)據(jù)傳送的快慢。波特率(Baud):每秒傳送二進(jìn)制代碼位數(shù)即每秒傳送一個數(shù)據(jù)位就是一波特:常用的波特率有:75,110,300,600,1200,2400,4800,9600,19200。1波特=1bps(位/秒)北京交通大學(xué)83.串行通信的傳送速率1波特=1bps(北京交通大學(xué)56設(shè)數(shù)據(jù)傳送的速率每秒為120個字符,每個字符包含10個代碼位(1個起始位,1個停止位,8個數(shù)據(jù)位)波特率=10x120b/s=1200bps每一位代碼的傳送時間=1/1200=0.833ms北京交通大學(xué)9設(shè)數(shù)據(jù)傳送的速率每秒為120個字符,每個字符包北京交通大學(xué)57

4.串行通信接口電路

串行數(shù)據(jù)通信中主要有兩個技術(shù)問題數(shù)據(jù)傳送:數(shù)據(jù)傳送主要解決傳送中的標(biāo)準(zhǔn)、格式及工作方式等問題數(shù)據(jù)轉(zhuǎn)換:數(shù)據(jù)轉(zhuǎn)換是指數(shù)據(jù)的串并轉(zhuǎn)換北京交通大學(xué)104.串行通信接口電路北京交通大學(xué)58串行接口電路基本組成邏輯框圖如下:串行輸入時鐘復(fù)位并行輸出并行輸入時鐘串行輸出控制信號狀態(tài)、控制信息接收器發(fā)送器控制部件北京交通大學(xué)11串行接口電路基本組成邏輯框圖如下:串行輸入并北京交通大學(xué)59通用異步接收發(fā)送器(UART)

北京交通大學(xué)12通用異步接收發(fā)送器(UART)北京交通大學(xué)60異步串行通信常用接口

TTL電平直接連接RS-232C:

傳輸速度為20kbit/s,傳輸距離15英尺RS-422、RS-485:傳輸速度為10Mbit/s,傳輸距離300m—1200m并能抑制共模信號干擾20mA電流環(huán):

能降低對噪聲敏感程度光纖:光纖介質(zhì)可減少噪聲干擾,光電隔離提高安全性北京交通大學(xué)13異步串行通信常用接口TTL電平直接連接RS北京交通大學(xué)61二、MCS-51單片機串行口

MCS-51單片機片內(nèi)有一個全雙工串行口(P3.0接收、P3.1發(fā)送)功能:異步串行通信其中:發(fā)送和接收的速率與移位時鐘同步,

移位脈沖的速率為波特率。說明:定時器T1作為串行通信波特率發(fā)生器。北京交通大學(xué)14二、MCS-51單片機串行口MCS-5北京交通大學(xué)62TI發(fā)送中斷標(biāo)志RI接收中斷,允許接收REN串行口中斷1.串行口寄存器結(jié)構(gòu)發(fā)送寄存器(只能寫)接收寄存器(只能讀)(P3.1)(P3.0)SBUF全雙工方式進(jìn)行通信,這兩個寄存器共用一個地址(99H)。北京交通大學(xué)15TI發(fā)送中斷標(biāo)志RI接收中斷,允許接收REN北京交通大學(xué)63雙緩沖結(jié)構(gòu),防止產(chǎn)生重疊錯誤MOVSBUF,AMOVA,SBUF北京交通大學(xué)16雙緩沖結(jié)構(gòu),防止產(chǎn)生重疊錯誤MOVSBUF北京交通大學(xué)64例如:說明:串行接收采用雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,但發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需要雙緩沖結(jié)構(gòu)。

2.串行通信控制有關(guān)的寄存器

SCON:串行控制,用來設(shè)定串行口的工作方式

PCON:電源控制,可控制波特率。

IE:設(shè)置串行中斷允許。啟動發(fā)送:MOVSBUF,A;SBUF(A)啟動接收:MOVA,SBUF

;A(SBUF)北京交通大學(xué)17例如:啟動發(fā)送:MOVSBUF,A;S北京交通大學(xué)65

(1)串行控制寄存器SCON

SCON格式如下:SM0SM1SM2RENTB8RB8

TI

RI

(98H)9F9E9D9C9B9A9998工作方式選擇位多機通信控制位允許接收控制位發(fā)送數(shù)據(jù)第九位接收數(shù)據(jù)第九位發(fā)送中斷標(biāo)志接收中斷標(biāo)志北京交通大學(xué)18(1)串行控制寄存器SCONSM0北京交通大學(xué)66各位功能說明如下:SM0SM1:串口工作方式選擇位

00方式0:同步移位寄存器波特率=主振頻率/1201方式1:8位異步,波特率可變10方式2:9位異步波特率=主振頻率/32或主振頻率/6411方式3:9位異步,波特率可變北京交通大學(xué)19各位功能說明如下:00方式0:同步移位北京交通大學(xué)67

REN=1:允許串行接收,用軟件置位或清除。

TB8:發(fā)送數(shù)據(jù)位8即:

D0…D7D8

TB8/RB8D8=0:表示數(shù)據(jù)幀;D8=1:表示地址幀⑴在工作方式2、3中,TB8是發(fā)送的第9位數(shù)據(jù),由軟件置位(SETBTB8)或復(fù)位(CLRTB8)⑵在雙機通信中,該位作為奇偶校驗位;⑶在多機通信中用來表示D7-D0是地址幀或數(shù)據(jù)幀北京交通大學(xué)20REN=1:允許串行接收,用軟件置位或清北京交通大學(xué)68

RB8:接收數(shù)據(jù)位8TI:發(fā)送中斷標(biāo)志。

⑴在工作方式2和3中,該位是接收到的第9位數(shù)據(jù)。方式1,SM2=0,停止位。方式0,不用。⑵在多機通信中是地址幀(RB8=1)和數(shù)據(jù)幀(RB8=0)的標(biāo)識位。⑴在方式0中,發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位;⑵在其它方式中,在發(fā)送停止位之前,該位由硬件置位,申請中斷,CPU響應(yīng)中斷后,可以發(fā)送下一幀數(shù)據(jù)。該位必須由軟件清零。北京交通大學(xué)21RB8:接收數(shù)據(jù)位8⑴在工作方式2和3北京交通大學(xué)69

RI:接收中斷標(biāo)志。⑴在方式0中,接收完第8位數(shù)據(jù)后,該位由硬件置位⑵在其它方式中,在接收到停止位的一半時,該位由硬件置位(還需考慮SM2的設(shè)定),申請中斷,CPU響應(yīng)中斷后,可以接收下一幀數(shù)據(jù)。該位也必須由軟件清零。北京交通大學(xué)22RI:接收中斷標(biāo)志。⑴在方式0中,接收北京交通大學(xué)70

SM2:多機通信控制位,主要用于方式2、3中。⑴在方式0中,SM2設(shè)置為0,不用TB8和RB8

⑵在方式1中:當(dāng)SM2=0,則RB8是接收到的停止位;當(dāng)SM2=1,則只有接收到有效的停止位時,RI才被激活。⑶在方式2、3中,TB8和RB8為發(fā)送和接收的第九位數(shù)據(jù),當(dāng)SM2=0時,則不論RB8為0還是1,都將前8位數(shù)據(jù)裝入SBUF中,表示接收到命令或數(shù)據(jù),并產(chǎn)生中斷請求。當(dāng)SM2=1時,只有當(dāng)接收到的第九位數(shù)據(jù)

RB8=1時,才將接收到的前8位數(shù)據(jù)送入SBUF,表示接收到地址幀;

當(dāng)RB8=0時,將接收到的前8位數(shù)據(jù)丟棄。北京交通大學(xué)23SM2:多機通信控制位,主要用于方式2北京交通大學(xué)71說明:1.用軟件可以改變設(shè)置SCON內(nèi)容,并在下一條指令的第一個周期的S1P1期間才鎖存到SCON中。2.一幀發(fā)送完,發(fā)送中斷標(biāo)志置位(TI),向CPU請求中斷。一幀接收完,接收中斷標(biāo)志置位(RI),向CPU請求中斷。北京交通大學(xué)24說明:北京交通大學(xué)72

它主要是為CHMOS型單片機的電源控制而設(shè)置的。對HMOS型單片機,除了最高位(SMOD)之外,其它位都是虛設(shè)的,SMOD是串行口波特率的倍增位。

當(dāng):SMOD=1時,串行口波特率加倍系統(tǒng)復(fù)位時,SMOD=0。可由下列指令設(shè)置:

MOVPCON,#80H;SMOD

1MOVPCON,#00H;SMOD

0(2)電源控制寄存器PCON格式:SMOD(87H)北京交通大學(xué)25它主要是為CHMOS型單片機的電源控北京交通大學(xué)73

(1)方式0:同步移位寄存器方式

RXD端作為數(shù)據(jù)移位的入口或出口

TXD端提供移位時鐘脈沖,移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,不設(shè)起始位和停止位,低位在前高位在后,波特率是固定的即一個機器周期移位一次。2.串行口的工作方式RXDTXDDATACLKRXDTXDDATACLK并行輸出并行輸入8051CD40968051CD4014下圖串并,并串轉(zhuǎn)換方法電路P1.0STBP1.0STBfOSC/12北京交通大學(xué)26(1)方式0:同步移位寄存器方式2.串北京交通大學(xué)74說明:

1.REN=1,允許接收。RXD數(shù)據(jù)輸入,TXD移位脈(fosc/12)。接收(發(fā)送)完8位數(shù)據(jù)時硬件將RI(TI)置位,CPU響應(yīng)中斷,

2.TI,RI必須由用戶程序清零。

3.方式0時:SM2=0,TB8、RB8不用4.擴展I/O

串行輸入,串行輸出,并串、串并轉(zhuǎn)換北京交通大學(xué)27說明:北京交通大學(xué)75數(shù)據(jù)輸出MOVSBUF,Afosc=1/12發(fā)送完8位數(shù)據(jù)北京交通大學(xué)28數(shù)據(jù)輸出MOVSBUF,Afosc=1/1北京交通大學(xué)76REN=“1”,方式0,RI=“0”RXD數(shù)據(jù)輸入端接收到8位數(shù)據(jù)北京交通大學(xué)29REN=“1”,方式0,RI=“0”接收到8北京交通大學(xué)77

數(shù)據(jù)發(fā)送

1.數(shù)據(jù)發(fā)送是由一條寫發(fā)送寄存器(MOVSBUF,A)指令開始的。

2.此后在串行口由硬件自動加入起始位和停止位,構(gòu)成一個完整的幀格式。

3.然后在移位脈沖的作用下,由TXD端串行輸出。

4.一個字符幀發(fā)送完后,使TXD端輸出線維持高電平,并將TI置位,通知CPU可以發(fā)送下一個字符。起始D0D1D2D3D4D5D6D7停止

(2)方式1

方式1的幀格式為:北京交通大學(xué)30數(shù)據(jù)發(fā)送起始D0D1D2D3D北京交通大學(xué)78

數(shù)據(jù)接收

1.接收數(shù)據(jù)時,應(yīng)使REN=1。在此前提下,串行口采樣RXD端,當(dāng)采樣到從1到0的跳變時,就認(rèn)定是接收到了起始位。

2.隨后在移位脈沖的控制下,把接收到的數(shù)據(jù)位移入接收寄存器中。

3.直到停止位到來之后把它送入到RB8中,并置位RI,通知CPU從SBUF取走接收到的一個字符。北京交通大學(xué)31數(shù)據(jù)接收北京交通大學(xué)79發(fā)送十位信息啟動發(fā)送完置1REN=“1”,SM0=0,SM1=1,RI=07,8,9共3次采樣數(shù)據(jù)采樣到1變0,啟動接收波特率16倍速率條件:1.RI=02.停止位=1,或SM2=0、停止位進(jìn)入RB8,并RI=1北京交通大學(xué)32發(fā)送十位信息啟動發(fā)送完置1REN=“1”,S北京交通大學(xué)80

波特率的設(shè)定

方式1的波特率可變,由下式?jīng)Q定:實際使用時,總是先確定波特率,再計算T1的計數(shù)初值。即:smod為PCON寄存器最高位的值,fOSC為晶振頻率,X為當(dāng)T1工作于方式2(8位自動加載)時的計數(shù)初值。其中:北京交通大學(xué)33波特率的設(shè)定其中:北京交通大學(xué)81

(3)方式2和方式3

串行口工作在方式2、3時,為9位異步通信口,發(fā)送和接收1幀信息由11位組成,即:D0D2...D7

D8

一幀1位起始位(0)、8位數(shù)據(jù)位(D0-D7)、1位可編程位(D8)和1位停止位(1)。D8位既可作為奇偶校驗位,也可作為控制位使用,功能由用戶確定發(fā)送時,可編程位D8(TB8)可設(shè)置為0(CLRTB8)或1(SETBTB8)接收時,TB8送入SCON寄存器中RB8位。北京交通大學(xué)34(3)方式2和方式3D0D2北京交通大學(xué)82方式2、3的區(qū)別是:波特率設(shè)置不同方式2的波特率是固定的。即:波特率=fosc/32或fosc/64方式3的波特率是可變的。即:北京交通大學(xué)35方式2、3的區(qū)別是:波特率設(shè)置不同北京交通大學(xué)83波特率foscsmod120011.059202E8H240011.059202F4H480011.059202FAH960011.059202FDH1920011.059212FDH

定時器1

方式時間常數(shù)表1波特率與時間常數(shù)北京交通大學(xué)36波特率foscsmod120北京交通大學(xué)84MCS-51串行通信波特率:方式0波特率=fOSC/12,fOSC為主機頻率方式2SMOD=1,波特率=fOSC/32;SMOD=0,波特率=fOSC/64;方式1,3T1溢出率=北京交通大學(xué)37MCS-51串行通信波特率:方式0T1溢出率北京交通大學(xué)85方式2發(fā)送程序:

以TB8為偶校驗位,處理方法是數(shù)據(jù)寫入SBUF之前,先將P寫入TB8CLRTI;發(fā)送中斷標(biāo)志TI清零

MOVA,R0;取數(shù)據(jù)

MOVC,P;奇偶校驗位送TB8MOVTB8,CMOVSBUF,A;數(shù)據(jù)寫入,啟動發(fā)送北京交通大學(xué)38方式2發(fā)送程序:北京交通大學(xué)86

接收程序若附加第九位數(shù)據(jù)為偶校驗位,接收程序中應(yīng)作校驗處理

CLRRI;收到一幀數(shù)據(jù)后清RIMOVA,SBUF;前八位數(shù)據(jù)送AMOVC,P;正確P=0,RB=0。P=1,RB=1

JNCPD0;P=0,判RB8=0否

JNBRB8,ERROR;P=1,RB8=0出錯

AJMPPOKPD0:JBRB8,ERRO;P=0,RB8=1出錯POK:MOV@RO,AERROR:…北京交通大學(xué)39接收程北京交通大學(xué)87利用串行口工作方式0擴展I/O口

MOVR1,#60HSETBP1.0CLRP1.0;下降沿并入

SETBP1.0;移位

MOVSCON,#10H;方式0,啟動接收

MOVR0,#02H;每組字節(jié)數(shù)2WAIT:JNBRI,WAITCLRRIMOVA,SBUFMOV@R1,A

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論