資源描述:
《《串行通信接口》ppt課件2》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第6章TMS320F2812串行通信接口(SCI)學(xué)習(xí)重點(diǎn)F2812串口通信SCI特點(diǎn)及結(jié)構(gòu)。SCI模塊寄存器各位的含義及配置?;贑語(yǔ)言的SCI程序設(shè)計(jì)實(shí)例。學(xué)習(xí)內(nèi)容SCI概述SCI模塊發(fā)送和接收數(shù)據(jù)的工作原理SCI數(shù)據(jù)格式SCI通信波特率SCI發(fā)送和接收數(shù)據(jù)的機(jī)制多處理器通信SCI的例程1、SCI概述SCI(SerialCommunicationInterface),即串行通信接口,是一個(gè)雙線的異步串口,即具有接收和發(fā)送兩根信號(hào)線的異步串口,一般可以看作是UART(通用異步接收/發(fā)送裝置)。F2812的SCI模塊支持DSP與采用NRZ(non-return-to-zero不歸零
2、)標(biāo)準(zhǔn)格式的異步外圍設(shè)備之間進(jìn)行數(shù)字通信。2812內(nèi)部具有兩個(gè)相同的SCI模塊,SCIA和SCIB,每一個(gè)SCI模塊都各有一個(gè)接收器和發(fā)送器。SCI的接收器和發(fā)送器各具有一個(gè)16級(jí)深度的FIFO(Firstinfistout先入先出)隊(duì)列,它們還都有自己獨(dú)立的使能位和中斷位,可以在半雙工通信中進(jìn)行獨(dú)立的操作,或者在全雙工通信中同時(shí)進(jìn)行操作。串行通信的三種方式根據(jù)信息的傳送方向,串行通信可以分為單工、半雙工和全雙工三種,其各自的定義如下圖所示。SCI的CPU接口SCI模塊具有兩個(gè)引腳,SCITXDA和SCIRXDA,分別實(shí)現(xiàn)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的功能,分別對(duì)應(yīng)于GPIOF模塊的第4和第
3、5位,在編程初始化的時(shí)候,需要將GPIOFMUX寄存器的第4和第5位置為1,才能使得這兩個(gè)引腳具有發(fā)送和接收的功能,否則就是普通的I/O引腳。CPU的系統(tǒng)時(shí)鐘SYSCLKOUT經(jīng)過(guò)低速預(yù)定標(biāo)器之后輸出低速時(shí)鐘LSPCLK供給SCI。要保證SCI的正常運(yùn)行,系統(tǒng)控制模塊下必須使能SCI的時(shí)鐘,也就是在系統(tǒng)初始化函數(shù)中需要將外設(shè)時(shí)鐘控制寄存器PCLKCR的SCIAENCLK位置1。SCI可以產(chǎn)生兩個(gè)中斷,SCIRXINTA和SCITXINTA,即發(fā)送中斷和接收中斷。SCI模塊的其他特點(diǎn)2、SCI模塊發(fā)送和接收數(shù)據(jù)的工作原理SCI發(fā)送數(shù)據(jù)的過(guò)程:在FIFO功能使能的情況下,首先發(fā)送數(shù)據(jù)緩
4、沖寄存器SCITXBUF從TXFIFO中獲取由CPU加載的需要發(fā)送的數(shù)據(jù),然后SCITXBUF將數(shù)據(jù)傳輸給發(fā)送移位寄存器TXSHF,如果SCI的發(fā)送功能使能,TXSHF則將接收到的數(shù)據(jù)逐位的移到SCITXD引腳上。SCI接收數(shù)據(jù)的過(guò)程:首先接收移位寄存器RXSHF逐位接收來(lái)自SCIRXD引腳的數(shù)據(jù),如果SCI的接收功能使能,RXSHF將這些數(shù)據(jù)傳輸給接收緩沖寄存器SCIRXBUF,CPU就能從SCIRXBUF讀取外部發(fā)送來(lái)的數(shù)據(jù)。如果FIFO功能使能的話,SCIRXBUF會(huì)將數(shù)據(jù)加載到RXFIFO的隊(duì)列中,CPU再?gòu)腇IFO的隊(duì)列讀取數(shù)據(jù)。3、SCI數(shù)據(jù)格式在SCI中傳輸?shù)臄?shù)據(jù)格式
5、可以通過(guò)SCI的通信控制寄存器SCICCR來(lái)進(jìn)行設(shè)置,規(guī)定通信過(guò)程中所使用的數(shù)據(jù)格式。SCI使用的是NRZ的數(shù)據(jù)格式,如下表所示:數(shù)據(jù)是1—8位,1個(gè)字符的長(zhǎng)度。將帶有格式信息的每一個(gè)數(shù)據(jù)字符叫做一幀。SCI有空閑線模式和地址位模式,若是在兩個(gè)處理器之間的通信,例如2812和PC機(jī)或者2812和2812之間通信,更適合使用空閑線模式,而地址位模式一般用于多處理器之間的通信。在空閑線模式下,SCI發(fā)送或者接收一幀的數(shù)據(jù)格式如下圖4所示,其中LSB是數(shù)據(jù)的最低位,MSB是數(shù)據(jù)的最高位。具體的定義上圖所示數(shù)據(jù)格式的寄存器是通信控制寄存器SCICCR,其內(nèi)容下圖所示。使用SCICCR進(jìn)行數(shù)
6、據(jù)格式編程如下表所示:使用SCICCR進(jìn)行數(shù)據(jù)格式編程SciaRegs.SCICCR.bit.SCICHAR=7;//選擇數(shù)據(jù)長(zhǎng)度,為8個(gè)數(shù)據(jù)位SciaRegs.SCICCR.bit.PARITYENA=1;//開啟極性功能,值為0的時(shí)候取消極性功能SciaRegs.SCICCR.bit.PARITY=0;//在開啟極性功能的前提下,該位值為0時(shí)選擇偶極性,值為1時(shí)選擇奇極性SciaRegs.SCICCR.bit.STOPBITS=0;//選擇停止位,該位為0時(shí)有1個(gè)停止位,該位為1時(shí)有2個(gè)停止位。上述這幾個(gè)語(yǔ)句,我們也可以合并成如下的語(yǔ)句:SciaRegs.SCICCR.all=
7、0x23;4、SCI通信波特率SCI通信波特率就是指每秒所能發(fā)送的位數(shù)。2812的每個(gè)SCI都具有兩個(gè)8位的波特率寄存器,SCIHBAUD和SCILBAUD,通過(guò)編程,可以實(shí)現(xiàn)達(dá)到64K不同的速率。波特率的計(jì)算公式如下所示:其中BRR=波特率選擇寄存器中的值,從十進(jìn)制轉(zhuǎn)換成十六進(jìn)制后,高8位賦值給SCIHBAUD,低8位賦值給SCILBAUD。注意:式1所示的波特率公式僅適用于1≤BRR≤65535,當(dāng)BRR=0是,波特率如下:波特率計(jì)算方法舉例例如外部晶振為30M,