串行通信方式第九章_第1頁(yè)
串行通信方式第九章_第2頁(yè)
串行通信方式第九章_第3頁(yè)
串行通信方式第九章_第4頁(yè)
串行通信方式第九章_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

串行通信方式第九章第一頁(yè),共七十五頁(yè),2022年,8月28日什么是通信兩個(gè)設(shè)備之間交換數(shù)據(jù)的過程我們稱之為通信單工雙工AB第二頁(yè),共七十五頁(yè),2022年,8月28日通信的方式從同時(shí)傳輸?shù)臄?shù)據(jù)位數(shù)來分為:1、并行通信(Parrel)2、串行通信(Serial)第三頁(yè),共七十五頁(yè),2022年,8月28日串并行方式各自特點(diǎn)速度價(jià)格距離并行串行相對(duì)快相對(duì)慢短遠(yuǎn)貴廉價(jià)第四頁(yè),共七十五頁(yè),2022年,8月28日串行通信幀格式幀的概念:起始位,數(shù)據(jù)位,速率(波特率),應(yīng)答位或停止位。第五頁(yè),共七十五頁(yè),2022年,8月28日常見的串行通信協(xié)議

名稱特點(diǎn)USARTUSBI2CSPI用途PC與MCUPC與MCUMCU之間MCU之間特點(diǎn)簡(jiǎn)單快,

可靠簡(jiǎn)單復(fù)雜,可靠USARTPC與MCU簡(jiǎn)單第六頁(yè),共七十五頁(yè),2022年,8月28日串行輸出原理第七頁(yè),共七十五頁(yè),2022年,8月28日串行輸入原理第八頁(yè),共七十五頁(yè),2022年,8月28日F877單片機(jī)主要配置有2種形式的串行通信模塊:主控同步串行通信MSSP

(MasterSynchronousSerialPort)通用同步/異步收發(fā)器USART

(UniversalSynchronous/AsynchronousReceiverTransmitter)。

MSSP模塊主要應(yīng)用于系統(tǒng)內(nèi)部近距離的串行通信擴(kuò)展,如SPI、I2C模式。USART模塊主要應(yīng)用于系統(tǒng)之間的遠(yuǎn)距離串行通信,在外圍接口電路及計(jì)算機(jī)通信中應(yīng)用相當(dāng)廣泛。

第九頁(yè),共七十五頁(yè),2022年,8月28日9.1SPI串行通信模塊

SPI(SerialPeripheralInterface)是一種單片機(jī)外設(shè)芯片同步串行擴(kuò)展接口,由摩托羅拉公司推出。采用SPI接口外圍器件的特點(diǎn)是引腳性價(jià)比高等優(yōu)點(diǎn),因而在市場(chǎng)上得到了廣泛的應(yīng)用。

第十頁(yè),共七十五頁(yè),2022年,8月28日

10.1.1SPI模式下相關(guān)寄存器

在SPI模式下,有關(guān)的寄存器共有10個(gè),其中無編址的只有一個(gè)SSPSR。這10個(gè)寄存器中有6個(gè)寄存器是與其它模塊共用的。另外有4個(gè)寄存器與MSSP模塊相關(guān),它們是與I2C模式共用的。

第十一頁(yè),共七十五頁(yè),2022年,8月28日1.SSPBUF(收/發(fā)數(shù)據(jù)緩沖器)

2.SSPSTAT(同步串口狀態(tài)寄存器)第十二頁(yè),共七十五頁(yè),2022年,8月28日Bit0/BF:緩沖器滿標(biāo)志位,被動(dòng)參數(shù)。僅僅用于SPI接收狀態(tài)下:

0:緩沖器空;

1:緩沖器滿。Bit6/CKE:SPI時(shí)鐘沿選擇和I2C總線輸入電平選擇位。在CKP=0,靜態(tài)電平為低時(shí):

0:SCK的下降沿發(fā)送數(shù)據(jù);

1:SCK的上升沿發(fā)送數(shù)據(jù)。在CKP=1,靜態(tài)電平為高時(shí):

0:SCK的上升沿發(fā)送數(shù)據(jù);

1:SCK的下降沿發(fā)送數(shù)據(jù)。Bit7/SMP:SPI采樣控制位兼I2C總線轉(zhuǎn)換率控制位。在SPI主控方式下:

0:在輸出數(shù)據(jù)的中間采樣輸入數(shù)據(jù);

1:在輸出數(shù)據(jù)的末尾采樣輸入數(shù)據(jù)。注意:在SPI從動(dòng)方式下,SMP位必須置位。第十三頁(yè),共七十五頁(yè),2022年,8月28日3.SSPCON(同步串口控制寄存器)

Bit3-Bit0/SSPM3-SSPM0:同步串行口MSSP方式選擇位。

第十四頁(yè),共七十五頁(yè),2022年,8月28日Bit4/CPK:時(shí)鐘極性選擇位。

0:表示空閑時(shí)時(shí)鐘停留在低電平;

1:表示空閑時(shí)時(shí)鐘停留在高電平。Bit5/SSPEN:同步串口MSSP使能位。

在SPI模式下時(shí),有關(guān)引腳必須正確的設(shè)定為輸入或輸出狀態(tài)。

0:關(guān)閉串行端口功能,且設(shè)定SCK、SOD、SDI和SS為普通數(shù)字I/O腳;1:允許串行端口工作,且設(shè)定SCK、SOD、SDI和SS為SPI接口專用。第十五頁(yè),共七十五頁(yè),2022年,8月28日Bit6/SSPOV:接收溢出標(biāo)志位,被動(dòng)參數(shù)。

0:未發(fā)生接收溢出;

1:發(fā)生接收溢出。注意:所指的接收溢出是緩沖器SSPBUF中數(shù)據(jù)還未取出時(shí),移位寄存器SSPSR中又收到新的數(shù)據(jù),原SSPSR中的數(shù)據(jù)丟失。Bit7/WCOL:寫操作沖突檢測(cè)位,被動(dòng)參數(shù)。在SPI從動(dòng)方式下:

0:未發(fā)生沖突;

1:發(fā)生沖突。注意:當(dāng)WCOL=1,正在發(fā)送前一個(gè)數(shù)據(jù)時(shí),又有新數(shù)據(jù)寫入SSPBUF,必須用軟件予以清零。

第十六頁(yè),共七十五頁(yè),2022年,8月28日4.SSPSR移位寄存器

直接從端口引腳接收或發(fā)送數(shù)據(jù),將已經(jīng)成功接收到的數(shù)據(jù)送到緩沖器SSPBUF中,或者從緩沖器SSPBUF讀取將發(fā)送的數(shù)據(jù)。第十七頁(yè),共七十五頁(yè),2022年,8月28日9.1.2SPI模式工作原理

要發(fā)送的數(shù)據(jù)通過數(shù)據(jù)總線送入發(fā)送緩沖器,然后自動(dòng)傳送到移位寄存器中;移位寄存器接收到數(shù)據(jù)自動(dòng)傳送到接收緩沖器,然后由程序讀取收到的數(shù)據(jù);移位寄存器有移入和移出兩個(gè)端口,分別與收和發(fā)兩條通信線路連接,負(fù)責(zé)收發(fā)數(shù)據(jù)。

第十八頁(yè),共七十五頁(yè),2022年,8月28日SPI模式電路的基本結(jié)構(gòu)

第十九頁(yè),共七十五頁(yè),2022年,8月28日SPI工作原理示意圖

第二十頁(yè),共七十五頁(yè),2022年,8月28日【例題9-1】如圖9-5為8位數(shù)碼顯示和16個(gè)鍵盤電路,利用F877的SPI同步串行功能實(shí)現(xiàn)數(shù)碼管數(shù)據(jù)串行傳送,并通過8個(gè)74LS164組成的移位電路,達(dá)到數(shù)碼數(shù)據(jù)的靜態(tài)顯示。而16個(gè)鍵盤組成矩陣電路,采用RD口高低四復(fù)合選通。請(qǐng)編寫相應(yīng)的應(yīng)用程序,要求:在系統(tǒng)復(fù)位后8位數(shù)碼管全暗,接著1、2、3…7分別從數(shù)碼管的最高位到最低位依次點(diǎn)亮,最后直接進(jìn)入系統(tǒng)的監(jiān)控狀態(tài),以在最高位出現(xiàn)“-”為標(biāo)志。

第二十一頁(yè),共七十五頁(yè),2022年,8月28日【例題9-2】在電路原理圖8-5基礎(chǔ)上,對(duì)其電路結(jié)構(gòu)稍作調(diào)整,以便外擴(kuò)展一個(gè)靜態(tài)128KEPROM數(shù)據(jù)存儲(chǔ)器。利用RC3、RC4、RC5引腳組成一個(gè)SPI同步串行方式,通過164移位產(chǎn)生17位尋址功能,實(shí)現(xiàn)對(duì)HM628128的并行數(shù)據(jù)傳送(RD端口)。編程要求:首先將256個(gè)數(shù)據(jù)00H-FFH存入EPROM單元0000H-00FFH中,然后再將這些單元中的數(shù)據(jù)逐個(gè)取出,送往數(shù)碼顯示區(qū)的最后兩位顯示數(shù)據(jù)內(nèi)容,每個(gè)數(shù)顯示停留1秒種。第二十二頁(yè),共七十五頁(yè),2022年,8月28日

9.2I2C串行通信模式

1980年P(guān)HILIPS公司首創(chuàng)I2C(InterIntegratedCircuitBus)總線規(guī)范,已成為一種串行總線事實(shí)上的工業(yè)標(biāo)準(zhǔn)。I2C總線是一種高性能芯片間串行同步傳輸總線,被大量的用作系統(tǒng)內(nèi)部的電路板級(jí)總線。它定義了兩根信號(hào)線,串行數(shù)據(jù)線SDA和串形時(shí)鐘線SCL,可實(shí)現(xiàn)雙工同步數(shù)據(jù)傳輸,能夠極其方便的構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。

第二十三頁(yè),共七十五頁(yè),2022年,8月28日

9.2.1I2C串行通信模式

I2C總線的數(shù)據(jù)傳輸過程,在一次通信過程中,如主控器為發(fā)送器則稱主控發(fā)送器,而被控器為接收器則稱被控接收器;如主控器為接收器則稱主控接收器,而被控器為發(fā)送器則被控發(fā)送器。

第二十四頁(yè),共七十五頁(yè),2022年,8月28日

1.I2C數(shù)據(jù)格式

I2C數(shù)據(jù)格式有五部分組成:?jiǎn)?dòng)信號(hào)(SCL=1,SDA從高到低);被控器地址(可7位或10位);R/W信號(hào);若干個(gè)數(shù)據(jù)字節(jié);停止信號(hào)(SCL=1,SDA從低到高)。第二十五頁(yè),共七十五頁(yè),2022年,8月28日

主控器向被控器寫數(shù)據(jù)

第二十六頁(yè),共七十五頁(yè),2022年,8月28日主控器向被控器讀數(shù)據(jù)

第二十七頁(yè),共七十五頁(yè),2022年,8月28日10位地址格式

其中A9、A8是10位地址的高2位。

第二十八頁(yè),共七十五頁(yè),2022年,8月28日2.I2C地址設(shè)定

在I2C總線系統(tǒng)中的器件,一般都有一個(gè)專用的7位從器件地址碼。地址碼分為兩部分,A6、A5、A4、A3為器件類型碼。如存貯器為:1010,LCD點(diǎn)陣顯示器啟動(dòng)器為:0111等等,不可更改統(tǒng)一規(guī)定。A2、A1、A0可由器件改變,所以同一類器件在I2C總線系統(tǒng)中最多能接8個(gè)。

第二十九頁(yè),共七十五頁(yè),2022年,8月28日3.?dāng)?shù)據(jù)傳遞

主控器發(fā)送數(shù)據(jù),被控器接收數(shù)據(jù)的通信過程如下:

主控器在檢測(cè)到總線空閑的狀況下,首先發(fā)送一個(gè)啟動(dòng)S信號(hào);接著發(fā)送一個(gè)地址字節(jié)(包含著7位地址碼和一位讀/寫位,假設(shè)=0);在被控器收到地址字節(jié)后回送一個(gè)應(yīng)答信號(hào)ACK=0;在主控器收到該應(yīng)答位后開始發(fā)送第一個(gè)數(shù)據(jù)字節(jié);在被控器收到第一個(gè)數(shù)據(jù)字節(jié)后又回送一個(gè)應(yīng)答位ACK=0;在主控器收到應(yīng)答位后開始發(fā)送第二個(gè)數(shù)據(jù)字節(jié);被控器收到第二個(gè)數(shù)據(jù)字節(jié)后再返送一個(gè)(非)應(yīng)答位(NACK=1)ACK=0;在主控器將所需發(fā)送的全部數(shù)據(jù)(在此假設(shè)是兩個(gè)字節(jié))發(fā)送完畢后,就發(fā)送一個(gè)停止P信號(hào)時(shí)序,結(jié)束整個(gè)通信過程,并且釋放總線,使總線返回空閑狀態(tài)。

第三十頁(yè),共七十五頁(yè),2022年,8月28日9.2.2I2C總線模式下相關(guān)的寄存器

與I2C總線有關(guān)的寄存器共有12個(gè)。其中,有6個(gè)寄存器(INTCON、PIR1、PIE1、PRI2、PIE2、TRISC)是與單片機(jī)其他模塊共用。屬于I2C總線專用的兩個(gè)寄存器SSPCON2和SSPADD。

第三十一頁(yè),共七十五頁(yè),2022年,8月28日1.SSPSTAT同步串口寄存器

SSPSTAT用來記錄MSSP模塊的各種工作狀態(tài):

第三十二頁(yè),共七十五頁(yè),2022年,8月28日Bit0/BF:緩沖器已滿標(biāo)志位,被動(dòng)參數(shù)。在I2C總線方式下接收時(shí):

0:緩沖器SSPBUF還為空;

1:緩沖器SSPBUF已經(jīng)滿。在I2C總線方式下發(fā)送時(shí):

0:數(shù)據(jù)發(fā)送已完成(不含應(yīng)答和停止位),緩沖器SSPBUF已經(jīng)空;

1:數(shù)據(jù)正在發(fā)送(不含應(yīng)答和停止位),緩沖器SSPBUF還是滿的。

Bit1/UA:地址更新標(biāo)志位(I2C總線10位尋址方式),由硬件自動(dòng)設(shè)置。

0:不需要更新SSPADD寄存器中的地址;

1:需要更新SSPADD寄存器中的地址。

第三十三頁(yè),共七十五頁(yè),2022年,8月28日

Bit2/R/W:讀寫信息位(僅用于I2C總線方式)。該位記錄最近一次地址匹配后,從地址字節(jié)中獲取的讀/寫狀態(tài)信息。它與SEN、RSEN、PEN、RCEN或ACKEN位一起,將用于顯示MSSP是否處于空閑狀態(tài)。該位僅僅從地址匹配到下一個(gè)啟動(dòng)位或停止位或非應(yīng)答位被檢測(cè)到的期間有效。在I2C被控方式下:

0:寫操作;

1:讀操作。在I2C主控方式下:

0:不在進(jìn)行發(fā)送;

1:正在進(jìn)行發(fā)送。

第三十四頁(yè),共七十五頁(yè),2022年,8月28日Bit3/S:?jiǎn)?dòng)位,用于I2C總線方式,當(dāng)SSPEN=0,MSSP被關(guān)閉,該位被自動(dòng)清零。

0:當(dāng)前沒有檢測(cè)到啟動(dòng)位;

1:當(dāng)前檢測(cè)到了啟動(dòng)位(單片機(jī)復(fù)位時(shí)改為位0)。

Bit4/P:停止位,僅用于I2C總線方式,當(dāng)SSPEN=0,MSSP被關(guān)閉時(shí),該位被自動(dòng)清零。

0:表示當(dāng)前沒有檢測(cè)到停止位;

1:表示當(dāng)前檢測(cè)到了停止位(單片機(jī)復(fù)位時(shí)改為位0)。Bit5/D/A:數(shù)據(jù)/地址標(biāo)志位(I2C總線規(guī)范有效)。

0:當(dāng)前接收或發(fā)送的字節(jié)是地址;

1:當(dāng)前接收或發(fā)送的字節(jié)是數(shù)據(jù)。

第三十五頁(yè),共七十五頁(yè),2022年,8月28日

Bit6/CKE:I2C總線輸入電平規(guī)范選擇位或SPI時(shí)鐘沿選擇位。 在I2C主控和被控方式下:

0:輸入電平遵循I2C總線規(guī)范;

1:輸入電平遵循SMBus總線規(guī)范。

Bit7/SMP:I2C總線傳送率控制位或SPI采樣控制位,主動(dòng)參數(shù)。在I2C主控和被控方式下:

0:傳送率為快速速度模式(400kHz);

1:傳送率為標(biāo)準(zhǔn)速度模式(100kHz)。

第三十六頁(yè),共七十五頁(yè),2022年,8月28日2.SSPCON同步串口控制寄存器SSPCON用來對(duì)MSSP模塊的多種功能和指標(biāo)進(jìn)行控制:

第三十七頁(yè),共七十五頁(yè),2022年,8月28日

Bit3-Bit0/SSPM3-SSPM0:同步串口MSSP方式選擇位第三十八頁(yè),共七十五頁(yè),2022年,8月28日

Bit4/CKP:時(shí)鐘極性選擇位(對(duì)于SPI模式而言)。在I2C被控方式下,SCL時(shí)鐘使能位(I2C主控下沒有用):

0:將時(shí)鐘線拉低并保持,以延長(zhǎng)時(shí)鐘周期,來確保數(shù)據(jù)建立時(shí)間;

1:時(shí)鐘正常工作。Bit5/SSPEN:同步串口MSSP使能位。

0:不允許關(guān)閉串行端口工作,設(shè)定SDA和SCL為普通數(shù)字I/O引腳;

1:允許串行端口工作,設(shè)定SDA和SCL為I2C總線專用引腳。

Bit6/SSPOV:接收溢出標(biāo)志位。當(dāng)接收溢出時(shí),SSPBUF前一個(gè)數(shù)據(jù)還沒被取走,又收到了新數(shù)據(jù);在發(fā)送方式下此位無效,必須用軟件清零。

0:未發(fā)生接收溢出;

1:發(fā)生接收溢出。 Bit7/WCOL:寫操作沖突檢測(cè)位。當(dāng)發(fā)生沖突時(shí),I2C總線的狀態(tài)還沒有準(zhǔn)備好時(shí),試圖向SSPBUF緩沖器寫入數(shù)據(jù),WCOL=1,必須用軟件清零。

0:未發(fā)生沖突;

1:發(fā)生沖突。

第三十九頁(yè),共七十五頁(yè),2022年,8月28日3.SSPADD從地址/波特率寄存器

在I2C主控工作方式下,該寄存器被用作波特率發(fā)生器的定時(shí)常數(shù)裝載寄存器。在I2C被控器工作方式下。第四十頁(yè),共七十五頁(yè),2022年,8月28日4.同步串口控制寄存器2-SSPCON2

主要是為增強(qiáng)MSSP模塊I2C總線模式的主控器功能而新增加的。

第四十一頁(yè),共七十五頁(yè),2022年,8月28日Bit0/SEN:?jiǎn)?dòng)信號(hào)時(shí)序發(fā)送使能位。

0:不在SDA和SCL引腳上建立和發(fā)送啟動(dòng)信號(hào)時(shí)序;

1:在SDA和SCL上建立并發(fā)送一個(gè)啟動(dòng)信號(hào)(被硬件自動(dòng)清零)。Bit1/RSEN:重啟動(dòng)信號(hào)時(shí)序發(fā)送使能位。

0:不在SDA和SCL引腳上建立和發(fā)送重啟動(dòng)信號(hào)時(shí)序;

1:在SDA和SCL上建立并發(fā)送一個(gè)重啟動(dòng)信號(hào)(被硬件自動(dòng)清零)。Bit2/PEN:停止信號(hào)時(shí)序發(fā)送使能位。

0:不在SDA和SCL引腳上建立和發(fā)送停止信號(hào)時(shí)序;

1:在SDA和SCL上建立并發(fā)送一個(gè)停止信號(hào)(被硬件自動(dòng)清零)。Bit3/RCEN:接收使能位。

0:禁止接收模式工作;

1:使能接收模式。

Bit4/ACKEN:應(yīng)答信號(hào)時(shí)序發(fā)送使能位,在I2C主控接收方式下:

0:表示不在SDA和SCL引腳上建立和發(fā)送應(yīng)答信號(hào)時(shí)序;

1:表示在SDA和SCL上建立和發(fā)送一個(gè)帶ACKDT的應(yīng)答信號(hào)(被硬件自動(dòng)清零)。

第四十二頁(yè),共七十五頁(yè),2022年,8月28日Bit5/ACKDT:應(yīng)答信息位。在I2C主控接收方式下,在一個(gè)字節(jié)收完之后,主控器軟件應(yīng)返送一個(gè)應(yīng)答信號(hào),該位就是用戶軟件寫入的將被返送的值:

0:將發(fā)送有效應(yīng)答位(ACK);1:將發(fā)送非應(yīng)答位(NACK)。Bit6/ACKSTAT:應(yīng)答狀態(tài)位。在I2C主控方式下,硬件自動(dòng)接收來自被控器的應(yīng)答信號(hào)

0:收到來自被控接收器的有效應(yīng)答位(或表示位);

1:沒有收到來自被控接收器的有效應(yīng)答位(或表示為NACK)。Bit7/GCEN:通用呼叫地址尋址使能位,主動(dòng)參數(shù)。

0:禁止以通用呼叫地址尋址;1:當(dāng)SSPSTAT中收到通用呼叫地址(00H)時(shí)允許中斷。

第四十三頁(yè),共七十五頁(yè),2022年,8月28日9.2.3I2C從動(dòng)模式

當(dāng)I2C工作在從動(dòng)方式時(shí),SDA和SCL引腳必須設(shè)置為輸入,如果需要發(fā)送時(shí),MSSP模塊強(qiáng)行將輸入狀態(tài)改為輸出狀態(tài)。在地址匹配后,收到傳送的數(shù)據(jù)后,將自動(dòng)產(chǎn)生ACK,并將SSPSR中的數(shù)據(jù)傳入SSPBUF。

第四十四頁(yè),共七十五頁(yè),2022年,8月28日I2C從動(dòng)方式電路模塊結(jié)構(gòu)

第四十五頁(yè),共七十五頁(yè),2022年,8月28日9.2.4I2C主控模式

對(duì)SSPCON寄存器中的相應(yīng)SSPM置位和清零,對(duì)SSPEN置位即可使能主控工作方式,控制工作方式使能后,用戶有以下六種選擇:送啟動(dòng)信號(hào)到SDA和SCL(將SEN置位);送重復(fù)啟動(dòng)信號(hào)到SDA和SCL(將RSEN置位);寫SSPBUF寄存器啟動(dòng)數(shù)據(jù)或地址的傳送;送結(jié)束信號(hào)到SDA和SCL(將PEN置位);設(shè)置I2C端口以接收數(shù)據(jù);數(shù)據(jù)字節(jié)接收完成后,發(fā)出應(yīng)答信號(hào)。

第四十六頁(yè),共七十五頁(yè),2022年,8月28日

I2C在主控基本結(jié)構(gòu)模塊

第四十七頁(yè),共七十五頁(yè),2022年,8月28日【例題9-3】 本例題電路原理圖和圖9-5相同,除連接有8位數(shù)碼顯示和16個(gè)鍵盤電路以外,還利用RC6和RC7引腳組成一個(gè)I2C同步串行功能,實(shí)現(xiàn)對(duì)24LC515EEPROM的串行數(shù)據(jù)傳送。編程要求:首先將64個(gè)數(shù)據(jù)00H-3FH存入EEPROM單元0000H-003FH中,然后再將00010H-0001FH單元中的數(shù)據(jù)取出,存入數(shù)據(jù)存儲(chǔ)器單元40H-4FH,最后逐個(gè)送往數(shù)碼顯示區(qū)的最后兩位顯示,每個(gè)數(shù)顯示停留1秒種。

第四十八頁(yè),共七十五頁(yè),2022年,8月28日9.3USART串行通信模塊PIC系列芯片中,片內(nèi)除了含有同步串行口SSP(SPI,I2C)外,還有一個(gè)串行通信接口SCI。這是一個(gè)通用同步/異步收發(fā)器,簡(jiǎn)稱USART,它是計(jì)算機(jī)最常用的通信接口之一。

USART可工作于如下三種方式:全雙工異步方式;半雙工同步主控方式;半雙工同步從動(dòng)方式。

第四十九頁(yè),共七十五頁(yè),2022年,8月28日

與USART模塊相關(guān)的寄存器1.發(fā)送狀態(tài)兼控制寄存器:TXSTA2.接收狀態(tài)兼控制寄存器:RCSTA3.USART發(fā)送緩沖寄存器:TXREG4.USART接收緩沖寄存器:RCREG5.PIE寄存器6.PIR寄存器第五十頁(yè),共七十五頁(yè),2022年,8月28日1.發(fā)送狀態(tài)兼控制寄存器TXSTA第五十一頁(yè),共七十五頁(yè),2022年,8月28日Bit0/TX9D:發(fā)送數(shù)據(jù)的第9位(9位數(shù)據(jù)幀結(jié)構(gòu))。

0:不發(fā)送9位數(shù)據(jù);

1:發(fā)送9位數(shù)據(jù)幀。Bit1/TRMT:發(fā)送移位寄存器(TSR)“空”標(biāo)志位。

0:發(fā)送移位寄存器滿;

1:發(fā)送移位寄存器空。Bit2/BRGH:高波特率選擇位。異步模式下:0:低速;

1:高速。同步方式下,未用。Bit4/SYNC:USART同步/異步模式選擇位。

0:選擇異步模式(USAT);

1:選擇同步模式(USRT)。

第五十二頁(yè),共七十五頁(yè),2022年,8月28日Bit5/TXEN:發(fā)送使能位。

0:關(guān)閉發(fā)送功能;

1:使能發(fā)送功能。

Bit6/TX9:發(fā)送數(shù)據(jù)長(zhǎng)度選擇位。8位數(shù)據(jù)加1位校驗(yàn)或標(biāo)識(shí)位。

0:8位數(shù)據(jù)位發(fā)送;

1:9位數(shù)據(jù)發(fā)送。Bit7/CSRC:時(shí)鐘源選擇位。同步模式下:

0:選擇被控(從屬)模式(時(shí)鐘來自外部輸入信號(hào));

1:選擇主控模式(時(shí)鐘來自內(nèi)部波特率發(fā)生器)。異步模式下,未用。

第五十三頁(yè),共七十五頁(yè),2022年,8月28日2.接收狀態(tài)兼控制寄存器RCSTABit0/RX9D:所接收數(shù)據(jù)的第9位,可作校驗(yàn)位或標(biāo)識(shí)位等。Bit1/OERR:溢出標(biāo)志位(overruanerrorbit)。

0:未發(fā)生溢出錯(cuò)誤;

1:發(fā)生了溢出錯(cuò)誤。Bit2/FERR:幀格式錯(cuò)誤標(biāo)志位,被動(dòng)參數(shù)。

0:無幀格式錯(cuò)誤;

1:有幀格式錯(cuò)誤。第五十四頁(yè),共七十五頁(yè),2022年,8月28日

Bit3/ADDEN:地址匹配檢測(cè)使能位;

接收數(shù)據(jù)選擇9位時(shí),該位才起作用。0:取消地址匹配檢測(cè)功能;

1:?jiǎn)⒂玫刂菲ヅ錂z測(cè)功能。Bit4/CREN:連續(xù)接收使能位。異步模式下:0:禁止連續(xù)接收功能;1:使能連續(xù)接收功能。同步模式下:0:關(guān)閉連續(xù)接收;1:使能連續(xù)接收,直到該未被清0為止。優(yōu)先于SREN位。

第五十五頁(yè),共七十五頁(yè),2022年,8月28日

Bit5/SREN:?jiǎn)巫止?jié)接收使能位。同步方式下:

0:禁止單字節(jié)接收功能;

1:使能單字節(jié)接收功能。

異步方式下未用,并且在同步從屬接收方式下該位也無用。接收完成后該位即被清零。Bit6/RX9:接收數(shù)據(jù)長(zhǎng)度選擇位。

0:選擇接收8位數(shù)據(jù);

1:選擇接收9位數(shù)據(jù)。Bit7/SPEN:串行端口使能位。

0:禁止串行端口工作;

1:允許串行端口工作。此時(shí),RC7和RC6作為USART的接收發(fā)送引腳。

第五十六頁(yè),共七十五頁(yè),2022年,8月28日3.TXREG,USART發(fā)送緩沖寄存器

每次發(fā)送的數(shù)據(jù)都是通過寫入該緩沖器來實(shí)現(xiàn)的。

第五十七頁(yè),共七十五頁(yè),2022年,8月28日4.RCREG,USART接收緩沖寄存器

每次接收到的數(shù)據(jù)都可從該緩沖器讀取出來的。

第五十八頁(yè),共七十五頁(yè),2022年,8月28日5.SPBRG波特率寄存器

SPBRG寄存器的設(shè)定值(0-255)與波特率成反比關(guān)系。在同步方式下,波特率僅由該寄存器來決定;而在異步方式下,則由BRGH位(TXSTA寄存器的bit2)和該寄存器共同確定。

第五十九頁(yè),共七十五頁(yè),2022年,8月28日9.3.2USART波特率發(fā)生器USART模塊帶有一個(gè)波特率發(fā)生器BRG(baudrategenerator),用以產(chǎn)生串行傳送所需的時(shí)鐘,它支持USART的同步方式和異步方式。在異步方式下,BRGH位用來控制波特率。在同步方式下,BRGH位不起作用。

波特率發(fā)生器的邏輯結(jié)構(gòu)如圖10-24。其核心實(shí)際是一個(gè)遞減的8位二進(jìn)制計(jì)數(shù)器,其計(jì)數(shù)初始值是由寄存器SPBRG裝入,在每次遞減計(jì)數(shù)器到達(dá)00H之后的下一個(gè)計(jì)數(shù)脈沖到來時(shí)進(jìn)行裝入。系統(tǒng)時(shí)鐘經(jīng)過6位分頻器后作為傳遞計(jì)數(shù)器的計(jì)數(shù)脈沖,其分頻比可以由BRGH位和SYNC位設(shè)定為1:4、1:16、或1:64。

第六十頁(yè),共七十五頁(yè),2022年,8月28日波特率時(shí)鐘發(fā)生器示意圖

第六十一頁(yè),共七十五頁(yè),2022年,8月28日其波特率計(jì)算方式如下:1.同步方式波特率=fosc/[4(N+1)]

N=fosc/(4×波特率)-1注意,N為SPBRG寄存器的初始值;BRGH必須設(shè)置為0,BRGH為1無用。

2.異步方式

BRGH=0時(shí):波特率=fosc/[64(N+1)]

N=fosc/(64×波特率)-1

BRGH=1時(shí):波特率=fosc/[16(N+1)]

N=fosc/(16×波特率)-1

第六十二頁(yè),共七十五頁(yè),2022年,8月28日

9.3.3USART異步通信模式

USART在異步模式下采用的數(shù)據(jù)格式為l位起始位、8位或9位數(shù)據(jù)位和1位停止位,無奇偶校驗(yàn)碼位(硬件不支持),常用的數(shù)據(jù)為8位。片內(nèi)提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時(shí)鐘信號(hào)產(chǎn)生標(biāo)準(zhǔn)的波特率頻率。

第六十三頁(yè),共七十五頁(yè),2022年,8月28日1.USART異步發(fā)送模式

USART發(fā)送器主要是由發(fā)送移位寄存器(TSR)、發(fā)送緩沖器TXREG構(gòu)成。USART異步發(fā)送過程如下:要發(fā)送的數(shù)據(jù)送入TXREG中,寄存器TXREG中的數(shù)據(jù)就被裝入TSR。一旦把TXREG中的數(shù)據(jù)送入TSR,就將中斷標(biāo)志位TXIF置位。TXIF置位后,不能用軟件清除,只有在下一個(gè)要發(fā)送的數(shù)據(jù)送入TXREG后TXIF才能復(fù)位。

第六十四頁(yè),共七十五頁(yè),2022年,8月28日USART異步發(fā)送其結(jié)構(gòu)示意圖第六十五頁(yè),共七十五頁(yè),2022年,8月28日2.USART異步接收模式

主要是由接收移位寄存器RSR和接收寄存器RCREG構(gòu)成,串行信號(hào)從RC7/RX/DT引腳接收,送入移位寄存器RSR。一旦收到停止位,RSR就將收到的8位數(shù)據(jù)裝載到RCREG中。同時(shí),RCIF置1,表示收到一個(gè)數(shù)據(jù),當(dāng)RCREG被讀出時(shí)RCIF被清零。從圖中看出,RCREG是一個(gè)雙緩沖寄存器,具有FIFO性質(zhì),因此RS可連續(xù)接收2個(gè)數(shù)據(jù)送入RCREG。

第六十六頁(yè),共七十五頁(yè),2022年,8月28日

特別注意以下幾點(diǎn):

如RSR將數(shù)據(jù)裝載到RCREG時(shí),RCREG內(nèi)已有2個(gè)數(shù)據(jù),則產(chǎn)生數(shù)據(jù)傳送溢出錯(cuò)誤。OERR置位。RSR中數(shù)據(jù)將不能裝入RCREG;

OERR置位后,RSR不會(huì)接收新的數(shù)據(jù)。只有將OERR清0后才能接收新數(shù)據(jù)。OERR清零的方法是將CREN清零再置位;如收到停止位為0,則FERR置位;讀RCREG時(shí),會(huì)將FERR和RXD9值丟失。所以為讀取FERR和RXD9,必須在讀RCREG之前讀取。第六十七頁(yè),共七十五頁(yè),

溫馨提示

  • 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)論