




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第7章 單片機(jī)的串行通信技術(shù),7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.1 串行通信概述 7.1.1 數(shù)據(jù)通信 7.1.2 異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.1 串行通信概述,常用的數(shù)據(jù)通信包括兩種形式:并行通信和串行通信。,并行通信,(1)并行方式數(shù)據(jù)的各位同時發(fā)送或同時接收。 傳送速度快,但因需要多根傳輸線,故一般只在近距離通 信中使用。,7.1.1 數(shù)據(jù)通信,串行
2、通信,(2)串行方式數(shù)據(jù)的各位依次逐位發(fā)送或接收。 傳輸速度慢,但因只需較少傳輸線,故適合于遠(yuǎn)距離通信。,7.1 串行通信概述 7.1.1 數(shù)據(jù)通信 7.1.2 異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.1 串行通信概述,7.1.2 異步通信和同步通信,在串行數(shù)據(jù)通信中,有同步通信和異步通信兩種方式。,一幀數(shù)據(jù)由起始位、數(shù)據(jù)位、可編程位和停止位構(gòu)成 特點收發(fā)雙方不同步時,能夠依靠在每幀開始時的不斷對齊,自行糾正偏差,故對收發(fā)雙方的時鐘精度要求較低,但因每個字節(jié)都要
3、建立一次同步,所以工作速度較低。,1. 異步通信以字符為單位組成字符幀進(jìn)行的數(shù)據(jù)傳送,2. 同步通信,同步通訊數(shù)據(jù)格式數(shù)據(jù)以塊為單位連續(xù)傳送。,在發(fā)一組數(shù)據(jù)時,只在開始用若干個同步字符作為雙方的號令,然后連續(xù)發(fā)送整組數(shù)據(jù)。,特點數(shù)據(jù)是以數(shù)據(jù)塊為單位連續(xù)傳送的,結(jié)構(gòu)緊湊,傳輸效率高,但要求雙方有準(zhǔn)確的時鐘,對硬件要求高。,7.1 串行通信概述 7.1.1 數(shù)據(jù)通信 7.1.2 異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.1 串行通信概述,7.1.3 波特率的概念和串行
4、通信的傳輸方向,波特率為每秒鐘發(fā)送二進(jìn)制數(shù)碼的位數(shù),即b/S (位/秒)。,在串行通信中,數(shù)據(jù)傳輸速率的快慢,通過波特率來衡量。,例如,在異步通信中傳輸速度為360字符/秒,每個字符又包含10位,則波特率為: 360字符/秒 * 10位/字符 3600波特,標(biāo)準(zhǔn)波特率:110、300、600、1200、2400、4800、9600、19200、38400波特等。,三種傳輸形式:單工、半雙工、全雙工,在串行通信中,按照傳輸數(shù)據(jù)的流向,可分成三種傳輸形式:,單工通信 半雙工通信 全雙工通信 Simplex Half Duplex Full Duplex,80C51 內(nèi)部設(shè)有一個全雙工串行接口,收發(fā)
5、雙方角色固定不能互換,收發(fā)雙方角色可換但需切換,收發(fā)雙方互不影響雙向通信,RXDReceive Data接收數(shù)據(jù) TXDTransmit Data發(fā)送數(shù)據(jù),7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.2.1串行口的結(jié)構(gòu)組成 7.2.2串行口控制寄存器 7.3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.2 串行口的結(jié)構(gòu)組成及控制寄存器,7.1 串行口的結(jié)構(gòu)組成,若干寄存器: 兩個數(shù)據(jù)緩沖器SBUF(99H)+串行控制寄存器SCON(98H) +移位寄存器+. 。,兩個引腳:數(shù)據(jù)接收RXD(P3.0) 和數(shù)據(jù)發(fā)送TXD(P3.1)。,內(nèi)部數(shù)據(jù)并行寫入SBUF
6、發(fā)數(shù)據(jù)串行送出中斷標(biāo)志位TI硬件置1CPU響應(yīng)中斷TI軟件清零,寫入下一數(shù)據(jù),CPU,(1) 發(fā)送數(shù)據(jù)過程(中斷法),外界數(shù)據(jù)串行送入移位寄存器數(shù)據(jù)并行送入SBUF收標(biāo)志位RI硬件置1CPU響應(yīng)中斷RI軟件清零,讀走數(shù)據(jù),CPU,(2) 接收數(shù)據(jù)的過程(中斷法),數(shù)據(jù)傳送將串行數(shù)據(jù)按一定節(jié)拍(同步時鐘脈沖)輸出到傳輸線上,或從傳輸線上讀入。,同步時鐘信號可由系統(tǒng)時鐘或定時器產(chǎn)生,發(fā)送數(shù)據(jù)時,發(fā)送時鐘的下降沿將數(shù)據(jù)串行移位輸出;,接收數(shù)據(jù)時,接收時鐘的上升沿開始對數(shù)據(jù)位采樣。,7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.2.1串行口的結(jié)構(gòu)組成 7.2.2串行口控制寄存器 7.
7、3 串行通信工作方式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.2 串行口的結(jié)構(gòu)組成及控制寄存器,在物理上有兩個SBUF:一個用于發(fā)送,另一個用于接收。在邏輯上只有一個SBUF(99H)。 可根據(jù)用法區(qū)分功能:,uchar counter; 待發(fā)送存放變量 SBUF = counter; 完成一次數(shù)據(jù)發(fā)送 counter = SBUF; 完成一次數(shù)據(jù)接收,CPU,7.2.2 串行口控制寄存器,(1) 串行數(shù)據(jù)緩沖器,SBUF,SM2、TB8、RB8主要用于多機(jī)通訊(略),(2) 串口控制寄存器,SCON(98H),由定時器產(chǎn)生的同步時鐘,(3) 電源控制寄存器,PCON(87H),通過SM0
8、和SM1不同的取值,可選擇串行通信中的四種工作方式。,7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式 7.3.1 方式0(八位同步移位寄存器方式) 7.3.2 方式1(十位異步收發(fā)通信模式) 7.3.3 方式2、方式3數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.3 串行通信工作方式及應(yīng)用舉例,7.3.1 方式0:八位同步移位寄存器方式,數(shù)據(jù)傳輸波特率固定為fosc/12 由RXD引腳輸入或輸出數(shù)據(jù)(低位在前,高位在后) 由TXD引腳輸出同步時鐘信號,擴(kuò)展輸出口,擴(kuò)展輸入口,用于擴(kuò)展并行I/O接口,實例1 利用74LS164擴(kuò)展并行輸出口,并實現(xiàn)
9、發(fā)光二極管循環(huán)控制功能,能將串行輸入數(shù)據(jù)轉(zhuǎn)為并行輸出,工作原理: 1)CLEAR端若為低電平,輸出端QAQG都為0; 2)CLEAR端若為高電平,且CLOCK端出現(xiàn)上升沿脈沖,則 輸出端鎖存輸入端的電平,74LS164為8位串并轉(zhuǎn)換移位寄存器,數(shù)據(jù)發(fā)送端A(B)RXD ; 同步時鐘端CLKTXD; 數(shù)據(jù)清除端CLRP1.0,接線原理,#include sbit MR=P10; void delay() /延時 unsigned int i; for (i=0; i20000; i+) void main() unsigned char index, LED; /定義LED指針和顯示字模 SCO
10、N = 0; /設(shè)置串行模塊工作在方式0 MR = 1; / CLEAR端1,允許輸入數(shù)據(jù) while (1) LED=0 xFE; for (index=0; index 8; index+) SBUF = LED; /控制L0燈點亮 do while(!TI); /通過TI查詢判別數(shù)據(jù)是否輸出結(jié)束 LED = (LED1) |1); /左移1位,末位置1 if (LED= 0 xff) LED = 0 xfe; /若已循環(huán)一遍,準(zhǔn)備重新開始 delay(); ,實例1參考程序,實例1運(yùn)行效果,7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式 7.3.1
11、方式0(八位同步移位寄存器方式) 7.3.2 方式1(十位異步收發(fā)通信模式) 7.3.3 方式2、方式3數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.2 串行口的結(jié)構(gòu)組成及控制寄存器,一幀信息:1個起始位(0)+8位數(shù)據(jù)位+1個停止位(1) ,其中起始位和停止位是自動插入的。,7.3.2 方式1:10位數(shù)據(jù)異步通訊方式,用于雙機(jī)通信,波特率=2SMOD(T1的溢出率)/32 數(shù)據(jù)位由 P3.0 (RXD)端接收, 由P3.1(TXD)端發(fā)送 一幀信息為 10 位: 一位起始位(0), 8 位數(shù)據(jù)位(低位在前)和一位停止位(1)。 發(fā)送過程: 用軟件清除 TI后, CPU執(zhí)行任何一條以
12、 SBUF為目標(biāo)寄存器的指令, 就啟動發(fā)送過程。數(shù)據(jù)由TXD引腳輸出, 此時的發(fā)送移位脈沖是由定時器/計數(shù)器 T1 送來的溢出信號經(jīng)過 16 或 32 分頻而取得的。一幀信號發(fā)送完時, 將置位發(fā)送中斷標(biāo)志TI=1, 向CPU申請中斷。,2. 方式110位UART方式,用軟件清除 RI后, 當(dāng)允許接收位REN=1 時, 接收器以選定波特率的 16 倍的速率采樣 RXD引腳上的電平, 即在一個數(shù)據(jù)位期間有 16 個檢測脈沖, 并在第 7、 8、9 個脈沖期間采樣接收信號, 然后用三中取二的原則確定檢測值, 以抑制干擾。 并且采樣是在每個數(shù)據(jù)位的中間, 避免了信號邊沿的波形失真造成的采樣錯誤。 當(dāng)檢
13、測到有從“1”到“0”的負(fù)跳變時, 則啟動接收過程, 在接收移位脈沖的控制下, 接收完一幀信息。 當(dāng)最后一次移位脈沖產(chǎn)生時能滿足下列兩個條件: RI=0; 接收到的停止位為1 或 SM2=0。 則停止位送入RB8,8位數(shù)據(jù)進(jìn)入SBUF,并置RI1,完成一次接收過程。否則,所接收到的一幀信息將丟失,接收器復(fù)位,并重新開始檢測負(fù)跳變,以便接收下一幀信息。,接收過程:,發(fā)送條件:由SBUF = counter即可啟動發(fā)送過程 發(fā)送完成:硬件TI置1,接收條件:在允許接收位REN=1時即可啟動接收過程 接收完成:硬件RI置1,數(shù)據(jù)SBUF,指定T1為波特率時鐘發(fā)生器(波特率時鐘可變),通常選擇定時器方
14、式2(取fosc為11.0592MHz),例如: SCON=0 x50; /串口設(shè)為方式1,TI和RI清零,允許接收 PCON=0 x80; /波特率加倍(2) TMOD=0 x20; /T1設(shè)為定時方式2 TH1=0 xcc; /定時器初值 TL1=0 xcc; /重置的定時初值 IE=10010000B;/中斷使能(開中斷) TR1=1; /啟動T1,一般初始化過程,方式1應(yīng)用舉例,例7.3將89C51單片機(jī)的TXD接RXD,實現(xiàn)單片機(jī)串行口數(shù)據(jù)自發(fā)自收,并將接收的數(shù)據(jù)通過P1口輸出到發(fā)光二極管顯示。系統(tǒng)時鐘頻率為11.0592MHz,自發(fā)送接收的波特率為2400bps。編寫程序,要求:單
15、片機(jī)串行口工作在方式,從TXD發(fā)送數(shù)據(jù)0 x55,從RXD將該數(shù)據(jù)讀回,并送P1口通過8個發(fā)光二極管顯示。電路圖如圖7.13所示。,應(yīng)用C51編寫的程序如下:,#include #define uchar unsigned char #define uint unsigned int void main() uchar i=0 x55;uint j=0; TMOD=0X20;/設(shè)置定時器1工作在模式2 TL1=0 xf4;/根據(jù)傳輸?shù)牟ㄌ芈试O(shè)置定時器1初值 TH1=0 xf4; PCON=0 x00;/電源控制寄存器最高位為0,波特率不加倍 SCON=0 x50;/選擇工作方式1,使能收發(fā)功能
16、 TR1=1;/啟動定時器1 while(1) SBUF=i;/發(fā)送數(shù)據(jù) dowhile(!RI);/等待發(fā)送數(shù)據(jù)返回 RI=0;TI=0;/軟件將標(biāo)志位RI和TI清0 i=SBUF;/讀取數(shù)據(jù) P1=i;/送入P1口顯示 i=i;/將發(fā)送數(shù)據(jù)取反 for(j=0;j12500;j+);/延時 ,雙機(jī)通信協(xié)議 通行方式:例如異步串行通信 波特率: 例如2400b/s 發(fā)機(jī)要求發(fā)送的呼叫信號:例如10H 收機(jī)同意接收的應(yīng)答信號:例如20H 收機(jī)不同意接收的應(yīng)答信號:例如30H 告知數(shù)據(jù)正確的應(yīng)答信號:例如0FH 通信結(jié)束標(biāo)志信號:例如0AH ,要求設(shè)計一個雙機(jī)通信方案,甲機(jī)發(fā)送數(shù)據(jù),乙機(jī)接收數(shù)據(jù)
17、。兩機(jī)的振蕩頻率為12MHz,波特率設(shè)置為2.4k,工作在串口方式1。 甲機(jī)循環(huán)發(fā)送0-15的數(shù)字,乙機(jī)接收后返回接收值。若發(fā)送值與返回值相等,繼續(xù)發(fā)送下一數(shù)字,否則重復(fù)發(fā)送當(dāng)前數(shù)字。 發(fā)送值和接收值應(yīng)顯示在LED數(shù)碼管上; 采用查詢法檢查收發(fā)是否完成。,實例2:,實例2電路原理圖,實例2程序流程圖,實例2甲機(jī)參考程序,#include #define uchar unsigned char #define uint unsigned int void delay(unsigned int time) uint j=0; for(;time0;time-) for(j=0;j15)counte
18、r=0;/修正計數(shù)器值 delay(500); /延時 ,實例2乙機(jī)參考程序,#include #define uchar unsigned char void main(void) uchar receiv;/定義接收緩沖 TMOD=0 x20;/T1定時方式2 TH1=0 xf4;/2400b/S TL1=0 xf4; PCON=0 x00;/SMOD0,波特率不加倍 TR1=1;/啟動T1 SCON=0 x50;/串行方式1,TI和RI清零,允許接收 while(1) while(RI=1) /等待接收完成 RI=0;/清RI標(biāo)志 receiv=SBUF;/取得接收值 SBUF=rece
19、iv;/結(jié)果返回主機(jī) while(TI=0);/等待發(fā)送完成 TI=0;/清TI標(biāo)志 P2=receiv;/顯示接收 ,實例2運(yùn)行效果,7.1 串行通信概述 7.2 串行口的結(jié)構(gòu)組成及控制寄存器 7.3 串行通信工作方式 7.3.1 方式0(八位同步移位寄存器方式) 7.3.2 方式1(十位異步收發(fā)通信模式) 7.3.3 方式2、方式3數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計應(yīng)用舉例,7.2 串行口的結(jié)構(gòu)組成及控制寄存器,因此:串行口工作于模式 2 和模式 3 時, 被定義為 9 位異步通信接口。 其每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 首先是起始位(0), 其后是 8 位數(shù)據(jù)位D0D7(低位在先)
20、, 第 10 位是可編程位D8, 最后一位是停止位(1)。,7.2.3 方式2、方式3數(shù)據(jù)幀格式及應(yīng)用舉例,方式2和方式3的數(shù)據(jù)幀都是11位用于多機(jī)通信 格式為:,可編程位可用作奇偶校驗位,但在多機(jī)通信時,往往用作地址和數(shù)據(jù)的區(qū)別通訊標(biāo)識。,一個起始位,8個數(shù)據(jù)位,一個可編程位和一個停止位,方式2與方式3的區(qū)別:,方式 2 和方式3 工作原理相似, 唯一的差別是方式2 的波特率是固定的, 即為 fOSC/ 32或 fOSC / 64; 而方式 3的波特率是可變的, 與定時器 T1的溢出率有關(guān)。 方式2的波特率=2SMOD(fosc/64) 方式3的波特率=2SMOD(T1的溢出率)/32 (與
21、方式1同),注: 可編程位可以由軟件置1或清0; 發(fā)送時在TB8中,連同八位數(shù)據(jù)通過串口發(fā)出。 收到數(shù)據(jù)后,數(shù)據(jù)存入接收SBUF內(nèi),可編程位存入RB8中。,發(fā)送過程:第9位數(shù)據(jù)-TB8 其它8位-SBUF 進(jìn)行一次發(fā)送。當(dāng)?shù)?位數(shù)據(jù)(TB8)輸出后,置位TI。 接收過程:在REN=1時,在第9位數(shù)據(jù)收到后,若下列條件同時滿足: RI=0; SM2 =0 或接收到的第 9 位數(shù)據(jù)為“1”。 則將已接收到的數(shù)據(jù)裝入SBUF和RB8,并置位RI。若不滿足則接收無效。 可見,方式2和方式3的接收與方式1接收不同:其RB8裝入的是第9位數(shù)據(jù)而方式1 RB8裝入的是停止位。所接收的停止位的值與SBUF、
22、RB8 和 RI都沒有關(guān)系, 利用這一特點可用于多機(jī)通信中。,方式2和方式3的發(fā)送和接收過程,方式2的波特率為固數(shù)值:,方式3的波特率和方式1相同,是可變的:,(與方式1同),波特率計算公式,串行口控制寄存器SCON中的SM2為多機(jī)通信接口控制位。串行口以方式2或3接收時,若SM2為1,則僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1時,數(shù)據(jù)才裝入SBUF,置位RI,請求CPU對數(shù)據(jù)進(jìn)行處理;當(dāng)SM2為0時,則接收到一個數(shù)據(jù)后,不管第9位數(shù)據(jù)RB8是0還是1,都將數(shù)據(jù)裝入接收緩沖器SBUF并置位中斷標(biāo)志RI,請求CPU處理。,多機(jī)通信原理,使所有從機(jī)的SM21,處于接收地址狀態(tài)。 主機(jī)發(fā)送一幀地址信息,其中前8位為地址,第9位為地址標(biāo)置1 從機(jī)收到地址幀后,各自將接收到的地址與本機(jī)地址比較,相符者置SM20
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第2.6練 指數(shù)與指數(shù)函數(shù)(解析版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專用)
- 2022年北京市初三一模道德與法治試題匯編:遵守社會規(guī)則
- 2024人工智能法律倫理
- 2020-2021學(xué)年江蘇省南京外國語河西初級中學(xué)等三校七年級(下)期中數(shù)學(xué)試卷
- 衢州屋檐防水施工方案
- 2024年廣西地區(qū)中考滿分作文《給小廣的一封信》5
- 第1課 十字路口-認(rèn)識多圖層動畫 教學(xué)設(shè)計-2023-2024學(xué)年遼師大版(2015)初中信息技術(shù)八年級下冊
- 合同范例和合同范例區(qū)別
- 代銷電器合同范例
- 可持續(xù)發(fā)展的工作實踐計劃
- 《PLC應(yīng)用技術(shù)(西門子S7-1200)第二版》全套教學(xué)課件
- 第一單元練習(xí)卷(單元測試)2023-2024學(xué)年統(tǒng)編版語文六年級下冊
- 新《鐵路勞動安全》考試題庫500題(含答案)
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)崗位設(shè)置指導(dǎo)意見
- micro830和micro850可編程控制器手冊
- 文件材料歸檔(移交)清單
- 注塑正交試驗(DOE)案例表
- 漯河市物業(yè)服務(wù)收費管理辦法
- 2022年湖南(土建)二級造價師考試題庫匯總(含基礎(chǔ)和實務(wù))
- 歷屆全國初中數(shù)學(xué)聯(lián)賽真題及答案
- 頸椎病ppt課件
評論
0/150
提交評論