車用單片機(jī)原理 課件 第六章 串行通信_(tái)第1頁(yè)
車用單片機(jī)原理 課件 第六章 串行通信_(tái)第2頁(yè)
車用單片機(jī)原理 課件 第六章 串行通信_(tái)第3頁(yè)
車用單片機(jī)原理 課件 第六章 串行通信_(tái)第4頁(yè)
車用單片機(jī)原理 課件 第六章 串行通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

車用單片機(jī)原理(含實(shí)驗(yàn)與實(shí)訓(xùn))1串口通信的概念2串行通信口的結(jié)構(gòu)與相關(guān)寄存器單擊此處添加標(biāo)題單擊此處添加標(biāo)題3串口的工作方式01串口通信的概念第一節(jié)串口通信的概念

計(jì)算機(jī)與外界的信息交換稱為通信。通信的基本方式有并行通信和串行通信兩種。

(一)并行通信和串行通信

并行通信是將構(gòu)成一組數(shù)據(jù)的各位同時(shí)進(jìn)行傳送,并排傳輸,如8位數(shù)據(jù)或16位數(shù)據(jù)并行傳送。其特點(diǎn)是傳送速度快,但當(dāng)距離較遠(yuǎn)、位數(shù)較多時(shí),會(huì)導(dǎo)致通信線路復(fù)雜且成本高。串行通信是按位進(jìn)行順序傳送,其特點(diǎn)是通信線路簡(jiǎn)單,只需一對(duì)傳輸線就可以實(shí)現(xiàn)通信,從而降低成本,特別適合于遠(yuǎn)距離通信。缺點(diǎn)是傳送速度慢。一、概述第一節(jié)串口通信的概念

第一節(jié)串口通信的概念(二)串行通信的兩種方式

串行通信可以分為兩種方式:異步通信和同步通信。MCS-51系列單片機(jī)采用異步通信方式。

異步傳送的特點(diǎn)是數(shù)據(jù)在線路上的傳送不連續(xù)。傳送時(shí)數(shù)據(jù)以一個(gè)字符為單位進(jìn)行傳送。它用一個(gè)起始位表示字符的開始,用停止位表示字符的結(jié)束。一個(gè)字符又稱為一幀信息,每幀數(shù)據(jù)由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位4部分組成。起始位為0,占1位;數(shù)據(jù)位可以是5位、6位、7位或8位,傳送時(shí)低位在先、高位在后;奇偶校驗(yàn)位占1位(也可不要);最后是停止位,用信號(hào)1來表示一幀的結(jié)束,可以是1位、1位半或2位。字符間用空閑位填充(高電平),用于等待傳送。第一節(jié)串口通信的概念第一節(jié)串口通信的概念(1)起始位起始位位于數(shù)據(jù)幀的開頭,用于向接收設(shè)備表示開始傳輸一幀數(shù)據(jù),占1位,起始位始終為低電平。(2)數(shù)據(jù)位數(shù)據(jù)位在起始位之后,是通信中要傳輸?shù)臄?shù)據(jù)信息,一般數(shù)據(jù)位的數(shù)據(jù)可以配置為5~8位,低位在前高位在后。(3)可編程位可編程位在數(shù)據(jù)位之后,用于檢驗(yàn)傳輸?shù)臄?shù)據(jù)有無錯(cuò)誤,通常采用偶校驗(yàn)或奇校驗(yàn),還可以用于多機(jī)通信中,。(4)停止位停止位在一幀數(shù)據(jù)的末尾,用于向接收設(shè)備表示一幀數(shù)據(jù)傳輸?shù)慕Y(jié)束,占1位或者2位,始終為高電平,一幀數(shù)據(jù)傳輸結(jié)束后,可以接著再傳送起始位,開始第二幀數(shù)據(jù)傳輸,也可以等待,等待期間數(shù)據(jù)線都為高電平(空閑位)轉(zhuǎn)態(tài),如果要傳送下一幀,只要讓數(shù)據(jù)線由高電平變?yōu)榈碗娖剑ㄆ鹗嘉唬?,接收設(shè)備就開始接收下一幀數(shù)據(jù)。第一節(jié)串口通信的概念

同步通信中數(shù)據(jù)以塊為單位連續(xù)進(jìn)行傳送,相比于異步通信,在發(fā)送開始和結(jié)束時(shí),不需要添加啟動(dòng)位和停止位,可以提高數(shù)據(jù)傳輸速度,多用在計(jì)算機(jī)與一些高速設(shè)備之間,發(fā)送端和接收端同用一個(gè)時(shí)鐘源控制,提高通信的速率,如下圖所示。

如果發(fā)送的數(shù)據(jù)塊之間有間隔時(shí)間,則發(fā)送同步字符填充。第一節(jié)串口通信的概念二、串行通信的數(shù)據(jù)傳送方向按照信號(hào)傳輸?shù)姆较蚝屯瑫r(shí)性,一般把傳送方式分為單工方式、半雙工方式和全雙工方式3種。如下圖所示:其中:A端為發(fā)送站,B端為接收站。第一節(jié)串口通信的概念(1)單工方式:通信雙方一方固定為發(fā)送方,另一方固定為接收方,數(shù)據(jù)只能是單向傳輸;

(2)半雙工方式:通信雙方只使用一根數(shù)據(jù)線,每一方都有發(fā)送器和接收器,可以在兩個(gè)方向上傳送,但通信雙方不能同時(shí)接收或發(fā)送數(shù)據(jù),只能交替進(jìn)行;(3)全雙工方式:通信雙方使用兩根數(shù)據(jù)線,分別用于不同方向的數(shù)據(jù)傳輸,通信雙方能夠同時(shí)收發(fā)數(shù)據(jù)。02串行通信口的結(jié)構(gòu)與相關(guān)寄存器第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器一、串行通信口的結(jié)構(gòu)

串行通信口的結(jié)構(gòu)

第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器一、串行通信口的結(jié)構(gòu)(一)兩個(gè)數(shù)據(jù)緩沖器SBUF

8051單片機(jī)中有兩個(gè)串行口數(shù)據(jù)緩沖器SBUF,一個(gè)用于發(fā)送數(shù)據(jù),一個(gè)用于接收數(shù)據(jù),兩個(gè)數(shù)據(jù)緩沖器在物理上相互獨(dú)立,兩個(gè)SBUF公用一個(gè)地址99H,可以通過字節(jié)尋址,不可以位尋址。發(fā)送SBUF用來發(fā)送串行數(shù)據(jù),只能寫入不能讀,接收SBUF用來接收數(shù)據(jù),只能讀不能寫入,通過讀指令或者寫指令就可以區(qū)別是對(duì)哪個(gè)SBUF進(jìn)行操作,從而實(shí)現(xiàn)全雙工通信,并且相互之間不會(huì)干擾。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器一、串行通信口的結(jié)構(gòu)(二)發(fā)送控制器

發(fā)送控制器是在三態(tài)輸出門電路和定時(shí)器T1的作用下,將發(fā)送SBUF中并行輸出數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù),并在數(shù)據(jù)中添加起始位、奇偶校驗(yàn)位、停止位。當(dāng)上述過程完成后,可以將TI置為1,向CPU發(fā)送中斷請(qǐng)求。(三)接收控制器

接收控制器可以將從RXD引腳讀入的串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù),并過濾數(shù)據(jù)中的起始位,可編程位、停止位。當(dāng)上述過程完成后,可以將RI置為1,向CPU發(fā)出中斷請(qǐng)求。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器一、串行通信口的結(jié)構(gòu)

(四)輸入移位寄存器輸入移位寄存器在接收控制器的控制下,將外界輸入的數(shù)據(jù)逐位移入接收SBUF。

(五)定時(shí)器T1T1用作波特率發(fā)生器,產(chǎn)生串行通信收發(fā)數(shù)據(jù)所需的移位脈沖,在發(fā)送數(shù)據(jù)過程中,對(duì)應(yīng)移位脈沖的下降沿,在接收數(shù)據(jù)過程中,對(duì)應(yīng)移位脈沖的上升沿,移位脈沖的頻率越高,接收和傳送數(shù)據(jù)的速率越快。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器二、串行通信口的控制寄存器(一)串行控制寄存器SCON

SM0、SM1:由軟件置位或清零,用于選擇串行口的四種工作方式;

SM2:多機(jī)通信控制位;

REN:允許串行接收控制位;

TB8、RB8:發(fā)送或接收數(shù)據(jù)中的第9位;

TI、RI:發(fā)送中斷標(biāo)志位和接收中斷標(biāo)志位。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器

SM2為多機(jī)通信控制位。在方式2和方式3中,如果SM2=1,則接收到的第9位數(shù)據(jù)(RB8)為0時(shí)不啟動(dòng)接收中斷標(biāo)志RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;RB8為1時(shí),才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI,產(chǎn)生中斷請(qǐng)求。當(dāng)SM2=0時(shí),則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請(qǐng)求。在方式0時(shí),SM2必須為0。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器

REN為允許串行接收控制位。若REN=0,則禁止接收;REN=1,則允許接收,該位由軟件置位或復(fù)位。

TB8為發(fā)送數(shù)據(jù)的D8位。在方式2和方式3時(shí),TB8就是所要發(fā)送數(shù)據(jù)的第9位。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù)、TB8=1為地址TB8位也可用作數(shù)據(jù)的奇偶校驗(yàn)位,該位由軟件置位或者復(fù)位。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器

RB8為接收數(shù)據(jù)的D8位。在方式2和方式3時(shí),接收到的第9位數(shù)據(jù)可作為奇偶校驗(yàn)位或地址幀或數(shù)據(jù)幀的標(biāo)志。方式1時(shí),若SM2=0,則RB8是接收到的停止位。在方式0時(shí),不使用RB8位。

TI為發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)發(fā)送數(shù)據(jù)第8位結(jié)束后,或在其它方式發(fā)送停止位后,由內(nèi)部硬件使TI置位,向CPU請(qǐng)求中斷。CPU在響應(yīng)中斷后,必須用軟件清零。

此外,TI也可供查詢使用。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器

RI

為接收中斷標(biāo)志位。在方式0時(shí),當(dāng)接收數(shù)據(jù)的第8位結(jié)束后,或在其它方式下接收到停止位的中間位置時(shí)由內(nèi)部硬件使RI置位,向CPU請(qǐng)求中斷。同樣,在CPU響應(yīng)中斷后,也必須用軟件清零。RI也可供查詢方式使用。SCON的所有位都可以按位操作“清零”或“置1”。第二節(jié)串行通信口的結(jié)構(gòu)與相關(guān)寄存器(二)電源控制寄存器PCON

PCON的最高位SMOD是串行口波特率系數(shù)控制位。當(dāng)SMOD=1時(shí),波特率增大一倍。

其余各位與串行口工作無關(guān)。03串口的工作方式第三節(jié)串口的工作方式

串行通信口有4種基本工作方式,由串行控制SCON寄存器的設(shè)置,可以控制串行口工作在其中一種方式。

一、方式0

串行口工作方式0是移位寄存器方式,下頁(yè)是其結(jié)構(gòu)示意圖。數(shù)據(jù)從RxD引腳上接收或發(fā)送;一幀信息由8位數(shù)據(jù)組成,低位在前,高位在后(如下圖);波特率固定,為fosc/12;同步脈沖從TxD引腳輸出。

移位寄存器方式用于51單片機(jī)通過串行口擴(kuò)展并行I/O口。第三節(jié)串口的工作方式第三節(jié)串口的工作方式(一)方式0輸出

CPU執(zhí)行一條寫SBUF的指令,如“MOVSBUF,A”,就啟動(dòng)了發(fā)送過程。指令執(zhí)行期間送來的寫信號(hào)打開三態(tài)門1,將經(jīng)內(nèi)部總線送來的8位并行數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩沖器SBUF。寫信號(hào)的同時(shí)啟動(dòng)發(fā)送控制器。此后,CPU與串行口并行工作。經(jīng)過一個(gè)機(jī)器周期后,發(fā)送控制端SEND有效(高電平),打開門5和門6,允許RXD引腳發(fā)送數(shù)據(jù),TXD引腳輸出同步移位脈沖。

在時(shí)鐘信號(hào)S6觸發(fā)產(chǎn)生的內(nèi)部移位脈沖作用下,發(fā)送數(shù)據(jù)緩沖器中的數(shù)據(jù)逐位串行輸出。第三節(jié)串口的工作方式因?yàn)槭敲恳粋€(gè)機(jī)器周期從RXD上發(fā)送一位數(shù)據(jù),所以波特率為fosc/12。S6同時(shí)形成同步移位脈沖,一個(gè)機(jī)器周期從TXD上輸出一個(gè)脈沖。8位數(shù)據(jù)(一幀)發(fā)送完畢后,SEND恢復(fù)低電平狀態(tài),停止發(fā)送數(shù)據(jù)。且發(fā)送控制器硬件置位發(fā)送中斷標(biāo)志TI=1,向CPU申請(qǐng)中斷。如要再次發(fā)送數(shù)據(jù),必須用軟件將TI標(biāo)志清零,并再次執(zhí)行寫SBUF指令。第三節(jié)串口的工作方式(二)方式0輸入在RI=0的條件下,將REN(SCON.4)置1就啟動(dòng)一次接收過程。此時(shí)RXD為串行數(shù)據(jù)接收端,TXD依然輸出同步移位脈沖。

REN置1啟動(dòng)了接收控制器。經(jīng)過一個(gè)機(jī)器周期,接收控制端RECV有效(高電平),打開門6,允許TXD輸出同步移位脈沖。該脈沖控制外接芯片逐位輸入數(shù)據(jù),波特率為fosc/12。在內(nèi)部移位脈沖作用下,RXD上的串行數(shù)據(jù)逐位移入移位寄存器。第三節(jié)串口的工作方式

當(dāng)8位數(shù)據(jù)(一幀)全部移入移位寄存器后,接收控制器使RECV失效,停止輸出移位脈沖,并發(fā)出“裝載SBUF”信號(hào),打開三態(tài)門2,將8位數(shù)據(jù)并行送入接收數(shù)據(jù)緩沖器SBUF中保存。與此同時(shí),接收控制器硬件置接收中斷標(biāo)志RI=1,向CPU申請(qǐng)中斷。CPU響應(yīng)中斷后,用軟件使RI=0,使移位寄存器開始接收下一幀信息,然后通過讀接收緩沖器的指令,例如“MOVA,SBUF

”,讀取SBUF中的數(shù)據(jù)。在執(zhí)行這條指令時(shí),CPU發(fā)出的“讀SBUF”信號(hào)打開三態(tài)門3,數(shù)據(jù)經(jīng)內(nèi)部總線進(jìn)入CPU。第三節(jié)串口的工作方式第三節(jié)串口的工作方式二、方式1

方式1為8位異步通信接口方式,其結(jié)構(gòu)示意圖如下頁(yè)所示。RxD為接收端,TxD為發(fā)送端,一幀信息由10位組成,起始位、數(shù)據(jù)位(8位)和停止位。

方式1的波特率可變,由定時(shí)器/計(jì)數(shù)器T1的溢出率以及SMOD位的狀態(tài)決定,且發(fā)送波特率與接收波特率可以不同。第三節(jié)串口的工作方式第三節(jié)串口的工作方式(一)方式1輸出

CPU執(zhí)行一條“寫SBUF”的指令便啟動(dòng)了串行口發(fā)送過程,數(shù)據(jù)從TxD輸出。在指令執(zhí)行期間,CPU送來“寫SBUF”信號(hào),將并行數(shù)據(jù)送入SBUF,并啟動(dòng)發(fā)送控制器。經(jīng)一個(gè)機(jī)器周期,發(fā)送控制端的SEND、DATA相繼有效,通過輸出控制門從TxD上逐位輸出一幀信息。一幀信息發(fā)送完畢后,SEND、DATA端失效,發(fā)送控制器硬件置發(fā)送中斷標(biāo)志TI=1,向CPU申請(qǐng)中斷。發(fā)送指令:MOVSBUF,A第三節(jié)串口的工作方式第三節(jié)串口的工作方式(二)方式1輸入當(dāng)允許接收控制位REN

被置1時(shí),接收器開始工作,跳變檢測(cè)器以所選波特率的16倍

速率采樣

RxD引腳。當(dāng)采樣到從1到0的負(fù)跳變時(shí),啟動(dòng)接收控制器接收數(shù)據(jù)。由于發(fā)送、接收雙方各自使用自己的時(shí)鐘,兩者的頻率總有少許差異。為了避免這種影響,控制器將1位的傳送時(shí)間分成16等份,位檢測(cè)器在7、8、9三個(gè)狀態(tài),也就是在信號(hào)中央采樣RxD三次。而且,三次采樣中至少兩次相同的值被確認(rèn)為數(shù)據(jù),這是為了減少干擾的影響。第三節(jié)串口的工作方式如果接收到的起始位的值不是0,則起始位無效,復(fù)位接收電路。如果起始位為0,則開始接收本幀其它各位數(shù)據(jù)??刂破靼l(fā)出內(nèi)部移位脈沖,將RxD上的數(shù)據(jù)逐位移入移位寄存器,當(dāng)8位數(shù)據(jù)及停止位全部移入后,將根據(jù)以下狀態(tài),進(jìn)行響應(yīng)操作。第三節(jié)串口的工作方式

①如果RI=0、SM2=0,則接收控制器發(fā)出“裝載SBUF”信號(hào),將8位數(shù)據(jù)裝入接收數(shù)據(jù)緩沖器SBUF,停止位裝入RB8,并置RI=1,向CPU申請(qǐng)中斷。②如果RI=0、SM2=1,那么只有停止位為1才發(fā)生上述操作。③RI=0、SM2=1且停止位為0,所接收的數(shù)據(jù)不裝入SBUF,數(shù)據(jù)將會(huì)丟失。④如果RI=1,則所接收的數(shù)據(jù)在任何情況下都不裝入SBUF,即數(shù)據(jù)丟失。第三節(jié)串口的工作方式

無論出現(xiàn)哪一種情況,跳變檢測(cè)器將繼續(xù)采樣RxD引腳的負(fù)跳變,以便接收下一幀信息。接收裝置采用移位寄存器和SBUF雙緩沖結(jié)構(gòu),以避免在接收后一幀數(shù)據(jù)之前,CPU尚未及時(shí)響應(yīng)中斷而將前一幀數(shù)據(jù)取走所造成的數(shù)據(jù)重疊問題。

采用雙緩沖器結(jié)構(gòu),可使前、后兩幀數(shù)據(jù)進(jìn)入SBUF的時(shí)間間隔最少有10個(gè)機(jī)器周期。所以,在后一幀數(shù)據(jù)送入SBUF之前,CPU應(yīng)該有足夠的時(shí)間將前一幀數(shù)據(jù)取走。第三節(jié)串口的工作方式

第三節(jié)串口的工作方式

三、方式2與方式3

方式2與方式3都是9位異步通信接口,其結(jié)構(gòu)示意圖與方式1相同。發(fā)送或接收的一幀信息由11位組成,其中1位起始位、9位數(shù)據(jù)位和1位停止位。方式2與方式3僅波特率不同,方式2的波特率為

fosc/32,SMOD=1,或

fosc/64,SMOD=0而方式3的波特率由定時(shí)器/計(jì)數(shù)器T1及SMOD決定。第三節(jié)串口的工作方式

在方式2、方式3時(shí),發(fā)送、接收數(shù)據(jù)的過程與方式1基本相同,所不同的僅在于對(duì)第9位數(shù)據(jù)TB8、RB8的處理上。發(fā)送時(shí),第9位數(shù)據(jù)由SCON中的TB8位提供;接收數(shù)據(jù)時(shí),當(dāng)9位數(shù)據(jù)全部移入移位寄存器之后,將前8位數(shù)據(jù)裝入SBUF,而將第9位數(shù)據(jù)裝入SCON中的RB8位。第三節(jié)串口的工作方式

方式2與方式3—發(fā)送過程第三節(jié)串口的工作方式

方式2與方式3—接收過程第三節(jié)串口的工作方式五、波特率的設(shè)置

串行口的4種工作方式對(duì)應(yīng)著三種波特率。

方式0:波特率固定為fosc/12;

方式2:波特率由振蕩頻率fosc和SMOD(PCON.7)所決定。其對(duì)應(yīng)公式為

波特率=2SMOD×fosc/64

當(dāng)SMOD=0時(shí),波特率為fosc/64;當(dāng)SMOD=1時(shí),波特率為fosc/32。

第三節(jié)串口的工作方式

方式1和方式3:波特率由定時(shí)器/計(jì)數(shù)器T1的溢出率和SMOD決定,即:

波特率=2SMOD×T1的溢出率/32定時(shí)器/計(jì)數(shù)器T1的溢出率計(jì)算:

溢出率=1/溢出時(shí)間=1/(機(jī)器周期×T1計(jì)數(shù)值)=1/(12/fosc×T1計(jì)數(shù)值)=(fosc/12)/T1計(jì)數(shù)值第三節(jié)串口的工作方式

◆方式1和方式3:

溢出率=(fosc/12)/T1計(jì)數(shù)值=(fosc/12)/(2n–計(jì)數(shù)初值)(1)當(dāng)T1工作于方式0:13位計(jì)數(shù)方式溢出率=(fosc/12)/

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論