7 單片機串行數(shù)據(jù)通信_第1頁
7 單片機串行數(shù)據(jù)通信_第2頁
7 單片機串行數(shù)據(jù)通信_第3頁
7 單片機串行數(shù)據(jù)通信_第4頁
7 單片機串行數(shù)據(jù)通信_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,基本概念 RS-232接口 MCS-51的串行接口 單片機與單片機之間的通信 單片機與PC機之間的通信,第 章 單片機 串行數(shù)據(jù)通信,本章內(nèi)容,2,什么是串行通信?,串行通信和并行通信,并行通信,即數(shù)據(jù)的各位同時傳送;,串行通信,即數(shù)據(jù)一位一位順序傳送。,并行通信的優(yōu)點是速度快,效率高,確點是不適合遠(yuǎn)距離通信。串行通信剛好相反。,3,串行通信的基本知識,在MCS-51單片機內(nèi)部,有一個通用異步接收/發(fā)送器(UART)。這是一個全雙工串行接口,能同時進行發(fā)送和接收數(shù)據(jù)。利用這個串行接口,可以實現(xiàn)單片機之間的單機通信、多機通信,以及與PC機之間的通信。,4,RS-232C信息格式標(biāo)準(zhǔn) RS-2

2、32C采用串行格式。該標(biāo)準(zhǔn)規(guī)定:信息的開始為起始位,信息的結(jié)束為停止位;信息本身可以是5、6、7、8位再加一位奇偶位。如果兩個信息之間無信息,則寫“1”,表示空。,5,串行通信的分類:異步(Asynchronous Communication) 同步(Synchronous Communication),串行通信制式:單工(a)、半雙工(b)和全雙工(c) (simplex half duplex full duplex),6,單工、半雙工 和 全雙工 單工:信息只能沿著一個方向傳播 半雙工:信息可以沿一條線雙向傳播,但不能同時實現(xiàn)雙向傳播。 全雙工:使用兩條獨立的數(shù)據(jù)通道,收發(fā)可同時進行,異

3、步串行通信:以字符為單位進行傳送 同步串行通信:以數(shù)據(jù)塊為單位進行傳送,7,異步串行通信:,在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。 在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端是何時開始發(fā)送何時結(jié)束發(fā)送的。字符幀格式是異步通信的一個重要指標(biāo)。,8,異步串行通信:,1) 字符幀(Character Frame) 字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位等四部分組成。,(1) 起始位

4、:位于字符幀開頭,只占一位,為邏輯0低電平,用于向接收設(shè)備表示發(fā)送端開始發(fā)送一幀信息。 (2) 數(shù)據(jù)位:緊跟起始位之后,用戶根據(jù)情況可取5位、6位、7位或8位,低位在前高位在后。 (3) 奇偶校驗位:位于數(shù)據(jù)位之后,僅占一位,用來表征串行通信中采用奇校驗還是偶校驗,由用戶決定。 停止位:位于字符幀最后,為邏輯1高電平。通??扇?位、1.5位或2位,用于向接收端表示一幀字符信息已經(jīng)發(fā)送完,也為發(fā)送下一幀作準(zhǔn)備。,9,同步串行通信:以數(shù)據(jù)塊為單位進行傳送,同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個數(shù)據(jù)字符。在同步通信中,同步字

5、符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。,10,11,12,MCS-51的串行接口,概述 有一個可編程全雙工串行通信接口(UART) (Universal Asychronous Receiver/Transmitter ) 可同時發(fā)送、接收數(shù)據(jù)(Transmit/Receive) 有四種工作方式,幀格式有8、10、11位。 波特率(Baud rate)可設(shè)置 波特率為每秒鐘傳送二進制數(shù)碼的位數(shù),也叫比特數(shù),單位為b/s,即位/秒。,13,MCS-51串行接口的結(jié)構(gòu),14,串行口的結(jié)構(gòu),兩個同名的接收/發(fā)送緩沖寄存器SBUF 指令 MOV SBUF,A 啟動一次數(shù)據(jù)發(fā)送,可向SBUF 再發(fā)

6、送下一個數(shù) 指令 MOV A,SBUF 完成一次數(shù)據(jù)接收,SBUF可再 接收下一個數(shù),接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式 工作,每接收/發(fā)送一個數(shù)據(jù)都必須用指 令對 RI/TI 清0,以備下一次收/發(fā)。,15,MCS-51串行接口寄存器,SBUF串行口數(shù)據(jù)緩沖器 共兩個:一個發(fā)送寄存器SBUF,一個接收SBUF,二者共用一個地址99H。 SCON串行口控制寄存器。 PCON電源及波特率選擇寄存器,格式如下:,16,控制寄存器SCON,17,串行方式的定義,例:設(shè)串行口工作在方式1,允許接收,則指令為: MOV SCON,#01010000B,18,電源及波特率選擇寄存器PCON 電源控制寄存

7、器PCON中只有一位SMOD與串行口工作有關(guān),它的位格式為: SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時,若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。單片機復(fù)位時,SMOD=0。,19,串行口的四種工作方式,方式的選擇由SM1、SM0實現(xiàn)。 四種方式的比較:,20,方式0,在方式0下,串行口作同步移位寄存器用,其波特率固定為fosc/12。串行數(shù)據(jù)從RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)送出。這種方式常用于擴展I/O口。,方式0用于擴展I/O口輸出,21,方式0用于擴展I/O口輸入,22,MOV SCON, #00H CLR

8、 ES MOV A, #80H DELR: CLR P1.0 MOV SBUF, A JNB TI, $ SETB P1.0 ACALL DELAY CLR TI RR A AJMP DELR,23,方式1,10位的幀格式,串行口為波特率可調(diào)的10位通用異步接口UART。發(fā)送或接收一幀信息,包括1位起始位0,8位數(shù)據(jù)位和1位停止位1。,24,2.方式1 串行口工作于模式 1 時, 為波特率可變的 8 位異步通信接口。數(shù)據(jù)位由 P3.0 (RXD)端接收, 由P3.1(TXD)端發(fā)送。 傳送一幀信息為 10 位: 一位起始位(0), 8 位數(shù)據(jù)位(低位在前)和一位停止位(1)。波特率是可變的,

9、它取決于定時器 T1 的溢出速率及SMOD的狀態(tài)。 (1)方式1 發(fā)送過程。 用軟件清除 TI后, CPU執(zhí)行任何一條以 SBUF為目標(biāo)寄存器的指令, 就啟動發(fā)送過程。數(shù)據(jù)由 TXD引腳輸出, 此時的發(fā)送移位脈沖是由定時器 /計數(shù)器 T1 送來的溢出信號經(jīng)過 16 或 32 分頻而取得的。一幀信號發(fā)送完時, 將置位發(fā)送中斷標(biāo)志TI=1, 向CPU申請中斷, 完成一次發(fā)送過程。,25,(2)方式1 接收過程。 用軟件清除 RI后, 當(dāng)允許接收位 REN被置位 1 時, 接收器以選定波特率的 16 倍的速率采樣 RXD引腳上的電平, 即在一個數(shù)據(jù)位期間有 16 個檢測脈沖, 并在第 7、 8、9

10、個脈沖期間采樣接收信號, 然后用三中取二的原則確定檢測值, 以抑制干擾。 并且采樣是在每個數(shù)據(jù)位的中間, 避免了信號邊沿的波形失真造成的采樣錯誤。當(dāng)檢測到有從“1”到“0”的負(fù)跳變時, 則啟動接收過程, 在接收移位脈沖的控制下, 接收完一幀信息。 當(dāng)最后一次移位脈沖產(chǎn)生時能滿足下列兩個條件: RI=0; 接收到的停止位為 1 或 SM2=0。,26,則停止位送入RB8,8位數(shù)據(jù)進入SBUF,并置RI1,完成一次接收過程。否則,所接收到的一楨信息將丟失,接收器復(fù)位,并從新開始檢測負(fù)跳變,以便接收下一楨信息。 注意:接收中斷標(biāo)志RI應(yīng)由軟件清除。,27,方式2,串行口為11位UART,傳送波特率與

11、SMOD有關(guān)。發(fā)送或接收一幀數(shù)據(jù)包括1位起始位0,8位數(shù)據(jù)位,1位可編程位(用于奇偶校驗)和1位停止位1。,11位的幀格式,28,方式3,方式3為波特率可變的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。,29,方式2 和方式3 串行口工作于方式2 和方式3 時, 被定義為 9 位異步通信接口。 它們的每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 最低位是起始位(0), 其后是 8 位數(shù)據(jù)位(低位在先), 第 10 位是用戶定義位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。方式2 和方式3 工作原理相似, 唯一的差別是方式2 的波特率是固定的, 即為 f / 32或 fOS

12、C / 64; 而方式3的波特率是可變的, 與定時器 T1的溢出率有關(guān)。,30,(1)方式2和方式3的發(fā)送過程。 發(fā)送過程是由執(zhí)行任何一條 SBUF為目的寄存器的指令來啟動的。 由“寫入SBUF”信號把 8位數(shù)據(jù)裝入 SBUF, 同時還把 TB8 裝入發(fā)送移位寄存器的第 9 位, 并通知發(fā)送控制器要求進行一次發(fā)送。發(fā)送開始, 把一個起始位(0)送到 TXD端。 移位后, 數(shù)據(jù)由移位寄存器送到TXD端。再過一位, 出現(xiàn)第一個移位脈沖。 第一次移位時, 把一個停止位“1”由控制器的停止位發(fā)生端送入移位寄存器的第 9 位。 此后, 每次移位時, 把 0 送入第 9 位。因此, 當(dāng) TB8 的內(nèi)容送到

13、移位寄存器的輸出位置時, 其左面一位是停止位“1”, 而再往左的所有位全為“0”。 這種狀態(tài)由零檢測器檢測到后, 就通知發(fā)送控制器作最后一次移位, 然后置 TI=1, 請求申請中斷。第 9 位數(shù)據(jù)(TB8)由軟件置位或清零, 可以作為數(shù)據(jù)的奇偶校驗位, 也可以作為多機通信中的地址、數(shù)據(jù)標(biāo)志位。如把 TB8 作為奇偶校驗位, 可以在發(fā)送程序中, 在數(shù)據(jù)寫入 SBUF之前, 先將數(shù)據(jù)位寫入 TB8。,31,(2)方式2和方式3接收過程。 與方式1類似,方式2和方式3接收過程始于在 RXD端檢測到負(fù)跳變時,為此, CPU以波特率 16倍的采樣速率對 RXD端不斷采樣。一檢測到負(fù)跳變, 16分頻計數(shù)器

14、就立刻復(fù)位, 同時把1FFH寫入輸入移位寄存器。計數(shù)器的16個狀態(tài)把一位時間等分成16份, 在每一位的第7、8、9個狀態(tài)時, 位檢測器對 RXD端的值采樣。如果所接收到的起始位無效(為1),則復(fù)位接收電路, 等待另一個負(fù)跳變的到來。 若起始位有效(為 0)則起始位移入移位寄存器, 并開始接收這一幀的其余位。 當(dāng)起始位 0 移到最左面時, 通知接收控制器進行最后一次移位。 把 8 位數(shù)據(jù)裝入接收緩沖器 SBUF, 第 9 位數(shù)據(jù)裝入SCON中的 RB8, 并置中斷標(biāo)志RI=1。,32,裝入 SBUF和 RB8以及置位 RI的信號只有在產(chǎn)生最后一個移位脈沖且同滿足下列兩個條件, 才會產(chǎn)生: RI=

15、0; SM2 =0 或接收到的第 9 位數(shù)據(jù)為“1”。 上述兩個條件中任一個不滿足, 所接收的數(shù)據(jù)幀就會丟失, 不再恢復(fù)。 兩者都滿足時, 第 9 位數(shù)據(jù)裝入 TB8, 前 8 位數(shù)據(jù)裝入 SBUF。 請注意: 與方式1 不同,方式2 和 3 中裝入 RB8 的是第 9 位數(shù)據(jù), 而不是停止位。所接收的停止位的值與SBUF、 RB8 和 RI都沒有關(guān)系, 利用這一特點可用于多機通信中。,33,MCS-51串行口的波特率,1.方式0和方式2的波特率是固定的,在方式0中,波特率為時鐘頻率的1/12,即fosc/12,固定不變,34,2. 方式1和方式3的波特率可變,由定時器1的溢出率決定,35,(

16、3)方式1 和方式3 的波特率除了與SMOD位有關(guān)之外, 還與定時器 T1 的溢出率有關(guān)。 定時器 T1 作為波特率發(fā)生器, 常選用定時方式 2( 8 位重裝載初值方式), 并且禁止 T1 中斷。此時 TH1 從初值計數(shù)到產(chǎn)生溢出, 它每秒鐘溢出的次數(shù)稱為溢出率。 于是,36,假設(shè)某MCS - 51 單片機系統(tǒng), 串行口工作于方式3, 要求傳送波特率為1200 Hz, 作為波特率發(fā)生器的定時器T1工作在方式2 時, 請求出計數(shù)初值為多少? 設(shè)單片機的振蕩頻率為6 MHz。 因為串行口工作于模式 3 時的波特率為,所以,37,當(dāng)SMOD=0 時, 初值TH1=256-6106/(1 2001232/1) =243=0F3H 當(dāng)SMOD=1 時, 初值TH1=256-6106/(12001232/2) =230=0E6H,38,單片機之間的通信,雙機異步通信接口電路,39,當(dāng)采用定時器 1作為串行口波特率發(fā)生器使用時,通常定時器工作在方式( ) . A.0 B.1 C.2 D.3,2.當(dāng)設(shè)置串行口工作為方式 2時,采用( )指令。 A. MOV SCON,#80H B. MOV PCON,#80H C. MOV SCON,#10H D. MOV SCON,#10H,40,3. SCON中SM2位的作用是( )。 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論