《串行通信接口》 ppt課件_第1頁
《串行通信接口》 ppt課件_第2頁
《串行通信接口》 ppt課件_第3頁
《串行通信接口》 ppt課件_第4頁
《串行通信接口》 ppt課件_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 TMS320F2812串行通訊接口(SCI)學(xué)習(xí)重點(diǎn)學(xué)習(xí)重點(diǎn)F2812串口通訊串口通訊SCI特點(diǎn)及構(gòu)造。特點(diǎn)及構(gòu)造。SCI模塊存放器各位的含義及配置。模塊存放器各位的含義及配置。基于基于C言語的言語的SCI程序設(shè)計(jì)實(shí)例。程序設(shè)計(jì)實(shí)例。學(xué)習(xí)內(nèi)容SCI概述概述SCI 模塊發(fā)送和接納數(shù)據(jù)的任務(wù)原理模塊發(fā)送和接納數(shù)據(jù)的任務(wù)原理SCI 數(shù)據(jù)格式數(shù)據(jù)格式SCI 通訊波特率通訊波特率SCI 發(fā)送和接納數(shù)據(jù)的機(jī)制發(fā)送和接納數(shù)據(jù)的機(jī)制多處置器通訊多處置器通訊SCI 的例程的例程1、SCI概述SCISerial Communication Interface,即串行通訊接口,即串行通訊接口,是一個(gè)雙線的異

2、步串口,即具有接納和發(fā)送兩根信號(hào)線的異是一個(gè)雙線的異步串口,即具有接納和發(fā)送兩根信號(hào)線的異步串口,普通可以看作是步串口,普通可以看作是 UART通用異步接納通用異步接納/發(fā)送安裝。發(fā)送安裝。F2812 的的 SCI 模塊支持模塊支持 DSP 與采用與采用 NRZnon-return-to-zero 不歸零規(guī)范格式的異步外圍設(shè)備之間進(jìn)展數(shù)字通訊。不歸零規(guī)范格式的異步外圍設(shè)備之間進(jìn)展數(shù)字通訊。2812 內(nèi)部具有兩個(gè)一樣的內(nèi)部具有兩個(gè)一樣的 SCI 模塊,模塊,SCIA 和和 SCIB,每一,每一個(gè)個(gè) SCI 模塊都各有一個(gè)接納器和發(fā)送器。模塊都各有一個(gè)接納器和發(fā)送器。SCI 的接納器和發(fā)的接納器和

3、發(fā)送器各具有一個(gè)送器各具有一個(gè) 16 級(jí)深度的級(jí)深度的 FIFOFirst in fist out 先入先先入先出隊(duì)列,它們還都有本人獨(dú)立的使能位和中斷位,可以在出隊(duì)列,它們還都有本人獨(dú)立的使能位和中斷位,可以在半雙工通訊中進(jìn)展獨(dú)立的操作,或者在全雙工通訊中同時(shí)進(jìn)半雙工通訊中進(jìn)展獨(dú)立的操作,或者在全雙工通訊中同時(shí)進(jìn)展操作。展操作。 串行通訊的三種方式 根據(jù)信息的傳送方向,串行通訊可以分為單工、半雙根據(jù)信息的傳送方向,串行通訊可以分為單工、半雙工和全雙工三種,其各自的定義如以下圖所示。工和全雙工三種,其各自的定義如以下圖所示。 SCI的CPU接口SCI 模塊具有兩個(gè)引腳,模塊具有兩個(gè)引腳,SCI

4、TXDA 和和 SCIRXDA,分別實(shí)現(xiàn)發(fā)送數(shù)據(jù)和接納數(shù)據(jù)的功,分別實(shí)現(xiàn)發(fā)送數(shù)據(jù)和接納數(shù)據(jù)的功能,分別對(duì)應(yīng)于能,分別對(duì)應(yīng)于 GPIOF 模塊的第模塊的第 4 和第和第 5 位,在編程初始化的時(shí)候,需求將位,在編程初始化的時(shí)候,需求將 GPIOFMUX 存放器的第存放器的第 4 和第和第 5 位置為位置為 1,才干使得這兩個(gè)引腳具有發(fā)送和接納的,才干使得這兩個(gè)引腳具有發(fā)送和接納的功能,否那么就是普通的功能,否那么就是普通的 I/O 引腳。引腳。CPU 的系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)鐘 SYSCLKOUT經(jīng)過低速預(yù)定標(biāo)器之后輸出低速時(shí)鐘經(jīng)過低速預(yù)定標(biāo)器之后輸出低速時(shí)鐘 LSPCLK 供應(yīng)供應(yīng) SCI。要保證。

5、要保證 SCI 的正常運(yùn)轉(zhuǎn),系統(tǒng)控制模塊下必需使能的正常運(yùn)轉(zhuǎn),系統(tǒng)控制模塊下必需使能 SCI 的時(shí)鐘,也就是在系統(tǒng)的時(shí)鐘,也就是在系統(tǒng)初始化函數(shù)中需求將外設(shè)時(shí)鐘控制存放器初始化函數(shù)中需求將外設(shè)時(shí)鐘控制存放器 PCLKCR 的的 SCIAENCLK 位置位置 1。SCI 可以產(chǎn)生兩個(gè)中斷,可以產(chǎn)生兩個(gè)中斷,SCIRXINTA 和和 SCITXINTA,即發(fā)送中斷和接納,即發(fā)送中斷和接納 中斷。中斷。 SCI 模塊的其他特點(diǎn) 2、SCI 模塊發(fā)送和接納數(shù)據(jù)的任務(wù)原理模塊發(fā)送和接納數(shù)據(jù)的任務(wù)原理 SCI 發(fā)送數(shù)據(jù)的過程:在發(fā)送數(shù)據(jù)的過程:在 FIFO 功能使能的情況下,首先發(fā)送數(shù)據(jù)緩沖存放器功能使能

6、的情況下,首先發(fā)送數(shù)據(jù)緩沖存放器 SCITXBUF 從從 TX FIFO 中獲取由中獲取由 CPU 加載的需求發(fā)送的數(shù)據(jù),然后加載的需求發(fā)送的數(shù)據(jù),然后 SCITXBUF 將數(shù)據(jù)傳輸給發(fā)送移位寄將數(shù)據(jù)傳輸給發(fā)送移位寄 存器存器 TXSHF,假設(shè),假設(shè) SCI 的發(fā)送功能使能,的發(fā)送功能使能,TXSHF 那么那么將接納到的數(shù)據(jù)逐位的移到將接納到的數(shù)據(jù)逐位的移到 SCITXD 引腳上。引腳上。SCI 接納數(shù)據(jù)的過程:首先接納移位存放器接納數(shù)據(jù)的過程:首先接納移位存放器 RXSHF 逐位接納來自逐位接納來自 SCIRXD 引腳的引腳的數(shù)據(jù),假設(shè)數(shù)據(jù),假設(shè) SCI 的接納功能使能,的接納功能使能,RX

7、SHF 將這些數(shù)據(jù)傳輸給接納緩沖存放器將這些數(shù)據(jù)傳輸給接納緩沖存放器 SCIRXBUF, CPU 就能從就能從 SCIRXBUF 讀取外部發(fā)送來的數(shù)據(jù)。假設(shè)讀取外部發(fā)送來的數(shù)據(jù)。假設(shè) FIFO 功能使功能使能的話,能的話,SCIRXBUF 會(huì)將數(shù)據(jù)加載到會(huì)將數(shù)據(jù)加載到 RX FIFO 的隊(duì)列中,的隊(duì)列中,CPU 再從再從 FIFO 的隊(duì)列的隊(duì)列讀取數(shù)據(jù)。讀取數(shù)據(jù)。3、SCI 數(shù)據(jù)格式數(shù)據(jù)格式 在在 SCI 中傳輸?shù)臄?shù)據(jù)格式可以經(jīng)過中傳輸?shù)臄?shù)據(jù)格式可以經(jīng)過 SCI 的通訊控制存放器的通訊控制存放器 SCICCR 來進(jìn)來進(jìn)展設(shè)置,規(guī)定通訊過程中所運(yùn)用的數(shù)據(jù)格式。展設(shè)置,規(guī)定通訊過程中所運(yùn)用的數(shù)據(jù)格

8、式。SCI 運(yùn)用的是運(yùn)用的是 NRZ 的數(shù)據(jù)的數(shù)據(jù)格式,如下表所示:格式,如下表所示:數(shù)據(jù)是數(shù)據(jù)是 18 位,位,1 個(gè)字符的長度。將帶有格式信息的每一個(gè)數(shù)據(jù)字符叫做一幀。個(gè)字符的長度。將帶有格式信息的每一個(gè)數(shù)據(jù)字符叫做一幀。SCI 有空有空閑線方式和地址閑線方式和地址 位方式,假設(shè)是在兩個(gè)處置器之間的通訊,例如位方式,假設(shè)是在兩個(gè)處置器之間的通訊,例如 2812 和和 PC 機(jī)或者機(jī)或者 2812 和和 2812 之間通訊,更適宜運(yùn)用空閑線方式,而地址位方式普通用于多處置器之間的通訊。之間通訊,更適宜運(yùn)用空閑線方式,而地址位方式普通用于多處置器之間的通訊。在空閑線方式下,在空閑線方式下,SC

9、I 發(fā)送或者接納一幀的數(shù)據(jù)格式如以下發(fā)送或者接納一幀的數(shù)據(jù)格式如以下圖圖4 所示,其中所示,其中 LSB 是數(shù)據(jù)的最低位,是數(shù)據(jù)的最低位,MSB 是數(shù)據(jù)的最高位。是數(shù)據(jù)的最高位。詳細(xì)的定義上圖所示數(shù)據(jù)格式的存放器是通訊控制存放器詳細(xì)的定義上圖所示數(shù)據(jù)格式的存放器是通訊控制存放器 SCICCR,其,其內(nèi)容以下圖所示。內(nèi)容以下圖所示。使使 用用 SCICCR 進(jìn)展數(shù)據(jù)格式編程如下表所示:進(jìn)展數(shù)據(jù)格式編程如下表所示: 運(yùn)用運(yùn)用 SCICCR 進(jìn)展數(shù)據(jù)格式編程進(jìn)展數(shù)據(jù)格式編程SciaRegs.SCICCR.bit.SCICHAR=7; /選擇數(shù)據(jù)長度,為選擇數(shù)據(jù)長度,為 8 個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位SciaR

10、egs.SCICCR.bit.PARITYENA=1; /開啟極性功能,值為開啟極性功能,值為 0 的時(shí)候取消極的時(shí)候取消極性功能性功能SciaRegs.SCICCR.bit.PARITY=0; /在開啟極性功能的前提下,該位值為在開啟極性功能的前提下,該位值為 0 時(shí)選擇偶極性,值為時(shí)選擇偶極性,值為 1 時(shí)選擇奇極性時(shí)選擇奇極性SciaRegs.SCICCR.bit.STOPBITS=0; /選擇停頓位,該位為選擇停頓位,該位為 0 時(shí)有時(shí)有 1 個(gè)停頓個(gè)停頓位,該位為位,該位為 1 時(shí)有時(shí)有 2 個(gè)停頓位。上述個(gè)停頓位。上述這幾個(gè)語句,我們也可以合并成如下這幾個(gè)語句,我們也可以合并成如下

11、的語句:的語句:SciaRegs.SCICCR.all=0 x23;4、SCI 通訊波特率通訊波特率 SCI通訊波特率就是指每秒所能發(fā)送的位數(shù)。通訊波特率就是指每秒所能發(fā)送的位數(shù)。2812 的每個(gè)的每個(gè) SCI 都具有都具有 兩兩個(gè)個(gè) 8 位的波特率存放器,位的波特率存放器,SCIHBAUD 和和 SCILBAUD,經(jīng)過編程,可以實(shí),經(jīng)過編程,可以實(shí)現(xiàn)到達(dá)現(xiàn)到達(dá) 64K 不同的速率。波特率的不同的速率。波特率的 計(jì)算公式如下所示:計(jì)算公式如下所示:其中其中 BRR=波特率選擇存放器中的值,從十進(jìn)制轉(zhuǎn)換成十六進(jìn)制后,高波特率選擇存放器中的值,從十進(jìn)制轉(zhuǎn)換成十六進(jìn)制后,高 8 位賦值給位賦值給 S

12、CIHBAUD,低,低 8 位賦值給位賦值給 SCILBAUD。留意:式留意:式 1 所示的波特率公式僅適用于所示的波特率公式僅適用于1 BRR 65535 ,當(dāng),當(dāng) BRR=0 是,波特率如下:是,波特率如下:波特率計(jì)算方法舉例例如外部晶振為例如外部晶振為 30M,經(jīng)過,經(jīng)過 PLL 之后之后 SYSCLKOUT 為為 150MHz,然后,當(dāng)?shù)退?,然后,?dāng)?shù)退兕A(yù)定標(biāo)器預(yù)定標(biāo)器 LOSPCP 的值為的值為 2 的時(shí)候,的時(shí)候,SYSCLKOUT 經(jīng)過低速預(yù)定標(biāo)器之后產(chǎn)生低經(jīng)過低速預(yù)定標(biāo)器之后產(chǎn)生低速外設(shè)時(shí)鐘速外設(shè)時(shí)鐘 LSPCLK 為為 37.5MHz, 也就是說也就是說 SCI 的時(shí)鐘為的時(shí)

13、鐘為 37.5MHz。假設(shè)預(yù)設(shè)置假設(shè)預(yù)設(shè)置SCI 的波特率為的波特率為 19200,那么將,那么將 LSPCLK 和波特率的數(shù)值代入式和波特率的數(shù)值代入式 1,便可得到:便可得到:BRR=243.14,由于存放器都是正整數(shù),所以省略掉小數(shù)后可以得到,由于存放器都是正整數(shù),所以省略掉小數(shù)后可以得到 BRR=243。將。將 243 轉(zhuǎn)成轉(zhuǎn)成 16 進(jìn)制是進(jìn)制是 0 xF3,因此,因此 SCIHBAUD 的值為的值為 0,SCIHBAUD 的值為的值為 0XF3。由于省略了小數(shù),將會(huì)產(chǎn)生。由于省略了小數(shù),將會(huì)產(chǎn)生 0.06%的誤差。的誤差。當(dāng)當(dāng) LSPCLK 為為 37.5M 時(shí),對(duì)于時(shí),對(duì)于 SC

14、I 常見的波特率,其存放器的值如下表所示:常見的波特率,其存放器的值如下表所示:在在SCI通訊時(shí)雙方都必需以一樣的數(shù)據(jù)格式和波特率進(jìn)展通訊,否那么通訊會(huì)失敗。通訊時(shí)雙方都必需以一樣的數(shù)據(jù)格式和波特率進(jìn)展通訊,否那么通訊會(huì)失敗。5、SCI 發(fā)送和接納數(shù)據(jù)的機(jī)制發(fā)送和接納數(shù)據(jù)的機(jī)制通常運(yùn)用的有兩種方式:一種是查詢方式,另一種是中斷方式。通常運(yùn)用的有兩種方式:一種是查詢方式,另一種是中斷方式。查詢方式,就是程序不斷去查詢形狀標(biāo)志位,看看查詢方式,就是程序不斷去查詢形狀標(biāo)志位,看看 SCI 是不是曾經(jīng)做好是不是曾經(jīng)做好了數(shù)據(jù)發(fā)送或者接納的預(yù)備。了數(shù)據(jù)發(fā)送或者接納的預(yù)備。 當(dāng)數(shù)據(jù)發(fā)送時(shí),需求查詢的是位于

15、當(dāng)數(shù)據(jù)發(fā)送時(shí),需求查詢的是位于 SCI 控控制存放器制存放器 2SCICTL2的第的第 7 位位 TXREADY,發(fā)送緩沖存放器就緒標(biāo),發(fā)送緩沖存放器就緒標(biāo)志。當(dāng)這個(gè)位為志。當(dāng)這個(gè)位為 1 的時(shí)候,闡明發(fā)送數(shù)據(jù)緩沖存放器的時(shí)候,闡明發(fā)送數(shù)據(jù)緩沖存放器 SCITXBUF 曾經(jīng)預(yù)曾經(jīng)預(yù)備好開場(chǎng)接納并發(fā)送下一個(gè)數(shù)據(jù)了。當(dāng)數(shù)據(jù)寫入備好開場(chǎng)接納并發(fā)送下一個(gè)數(shù)據(jù)了。當(dāng)數(shù)據(jù)寫入 SCITXBUF,TXREADY自動(dòng)會(huì)清零,假設(shè)自動(dòng)會(huì)清零,假設(shè) TXENA 使能了,發(fā)送移位存放器使能了,發(fā)送移位存放器 TXSHF 就會(huì)把就會(huì)把 SCITXBUF 里面的數(shù)據(jù)發(fā)送出去。當(dāng)數(shù)據(jù)接納時(shí),需求查詢的是里面的數(shù)據(jù)發(fā)送出去

16、。當(dāng)數(shù)據(jù)接納時(shí),需求查詢的是 SCI 接納形狀存放器接納形狀存放器SCIRXST中的中的 RXRDY,接納器就緒標(biāo)志。當(dāng),接納器就緒標(biāo)志。當(dāng)從從 SCIRXBUF 存放器中曾經(jīng)預(yù)備好一個(gè)字符的數(shù)據(jù),等待存放器中曾經(jīng)預(yù)備好一個(gè)字符的數(shù)據(jù),等待 CPU 去讀時(shí),去讀時(shí),RXRDY 位就會(huì)置位就會(huì)置 1。當(dāng)數(shù)據(jù)被。當(dāng)數(shù)據(jù)被 CPU 從從 SCIRXBUF 讀出后,或者系統(tǒng)復(fù)讀出后,或者系統(tǒng)復(fù)位,都可以使位,都可以使 RXRDY 清清 0。運(yùn)用查詢方式發(fā)送或者接 收數(shù)據(jù)的程序構(gòu)造如下:調(diào)用主程序:調(diào)用主程序:/發(fā)送程序發(fā)送程序If (SciaTx_Ready() = 1)SciaRegs.SCITXB

17、UF =SCI_Senddata; /SCI_senddata 為需求為需求發(fā)送的數(shù)據(jù)發(fā)送的數(shù)據(jù)/接納程序接納程序if(SciaRx_Ready() = 1)Sci_Receivedata = SciaRegs.SCIRXBUF.all; /SCI_Receivedata 用用于存放接納的數(shù)據(jù)于存放接納的數(shù)據(jù)運(yùn)用查詢方式發(fā)送或者接 收數(shù)據(jù)的程序構(gòu)造如下:/發(fā)送就緒標(biāo)志形狀查詢函數(shù)發(fā)送就緒標(biāo)志形狀查詢函數(shù)int SciaTx_Ready(void)unsigned int i;if(SciaRegs.SCICTL2.bit.TXRDY = 1)i = 1;/前往前往 1 闡明發(fā)送器曾經(jīng)預(yù)備就緒,

18、可以接納新的數(shù)據(jù)進(jìn)展發(fā)送闡明發(fā)送器曾經(jīng)預(yù)備就緒,可以接納新的數(shù)據(jù)進(jìn)展發(fā)送Elsei = 0;return(i);運(yùn)用查詢方式發(fā)送或者接 收數(shù)據(jù)的程序構(gòu)造如下:/接納就緒標(biāo)志形狀查詢函數(shù)接納就緒標(biāo)志形狀查詢函數(shù)int SciaRx_Ready(void)unsigned int i;if(SciaRegs.SCIRXST.bit.RXRDY = 1)i = 1; /前往前往 1 闡明數(shù)據(jù)接納曾經(jīng)就緒,等待闡明數(shù)據(jù)接納曾經(jīng)就緒,等待 CPU 去讀取數(shù)據(jù)去讀取數(shù)據(jù)Elsei = 0;return(i);經(jīng)過中斷方式進(jìn)展SCI通訊控制假設(shè)需求運(yùn)用中斷,根據(jù)前面所學(xué)的三級(jí)中斷的知識(shí),必需使能外設(shè)本人假設(shè)

19、需求運(yùn)用中斷,根據(jù)前面所學(xué)的三級(jí)中斷的知識(shí),必需使能外設(shè)本人的中斷、的中斷、PIE 中斷和中斷和 CPU 中斷。中斷。SCIA 的發(fā)送和接納中斷分別位的發(fā)送和接納中斷分別位 于于 PIE 模模塊第塊第 9 組的第組的第 1 和第和第 2 位,同時(shí)對(duì)應(yīng)于位,同時(shí)對(duì)應(yīng)于 CPU 中斷的中斷的 INT9。前面所述的前面所述的 TXRDY 是中斷標(biāo)志位,當(dāng)該位置是中斷標(biāo)志位,當(dāng)該位置 1 時(shí),就會(huì)產(chǎn)生發(fā)送中斷事時(shí),就會(huì)產(chǎn)生發(fā)送中斷事件,假設(shè)各級(jí)中斷都曾經(jīng)使能,那么會(huì)呼應(yīng)件,假設(shè)各級(jí)中斷都曾經(jīng)使能,那么會(huì)呼應(yīng) SCI 的發(fā)送中斷函數(shù)。的發(fā)送中斷函數(shù)。當(dāng)接納中斷標(biāo)志位當(dāng)接納中斷標(biāo)志位 RXRDY 置置 1

20、 時(shí),就會(huì)產(chǎn)生接納中斷標(biāo)志。假設(shè)各級(jí)中時(shí),就會(huì)產(chǎn)生接納中斷標(biāo)志。假設(shè)各級(jí)中斷曾經(jīng)使能,那么會(huì)呼應(yīng)斷曾經(jīng)使能,那么會(huì)呼應(yīng) SCI 的接納中斷。的接納中斷。 特別留意:在前面章節(jié)中斷內(nèi)容的時(shí)候講過,外設(shè)中斷的標(biāo)志位一定要手特別留意:在前面章節(jié)中斷內(nèi)容的時(shí)候講過,外設(shè)中斷的標(biāo)志位一定要手動(dòng)復(fù)位,在這里動(dòng)復(fù)位,在這里 SCI 是個(gè)例外,緣由如下:當(dāng)發(fā)送器緩沖存放器是個(gè)例外,緣由如下:當(dāng)發(fā)送器緩沖存放器 SCITXBUF 做好預(yù)備發(fā)送數(shù)據(jù)時(shí),做好預(yù)備發(fā)送數(shù)據(jù)時(shí),TXRDY 置置 1,但是當(dāng),但是當(dāng) CPU 將數(shù)據(jù)寫入將數(shù)據(jù)寫入 SCITXBUF 的時(shí)候,的時(shí)候,TXRDY 自動(dòng)會(huì)清自動(dòng)會(huì)清 0。而當(dāng)接納

21、器緩沖存放器曾經(jīng)預(yù)。而當(dāng)接納器緩沖存放器曾經(jīng)預(yù)備好數(shù)據(jù)等待備好數(shù)據(jù)等待 CPU 去讀取時(shí),去讀取時(shí), RXRDY 置置 1,當(dāng),當(dāng) CPU 將數(shù)據(jù)從將數(shù)據(jù)從 SCIRXBUF 讀出時(shí),讀出時(shí),RXRDY 也會(huì)自動(dòng)清也會(huì)自動(dòng)清 0。這是和其他外設(shè)中斷不一樣。這是和其他外設(shè)中斷不一樣的地方。的地方。運(yùn)用中斷方式發(fā)送或者接納的程序如下Void main().InitPieCtrl();/*初始化初始化 PIE 中斷中斷*/InitPieVectTable();/*初始化初始化 PIE 中斷矢量表中斷矢量表*/*設(shè)置中斷效力程序入口地址設(shè)置中斷效力程序入口地址*/EALLOW; / This is n

22、eeded to write to EALLOW protected registersPieVectTable.TXAINT = &SCITXINTA_ISR; PieVectTable.RXAINT = &SCIRXINTA_ISR;EDIS; / This is needed to disable write to EALLOW protected registers/PIE 中斷使能中斷使能PieCtrl.PIEIER9.bit.INTx1=1; /使能使能 SCI 發(fā)送中斷發(fā)送中斷PieCtrl.PIEIER9.bit.INTx2=1;/使能使能 SCI 接納中斷接納

23、中斷IER |= M_INT9; /*開開 CPU 中斷中斷*/EINT; / Enable Global interrupt INTMERTM; / Enable Global realtime interrupt DBGM運(yùn)用中斷方式發(fā)送或者接納的程序如下/接納中斷函數(shù)接納中斷函數(shù)interrupt void SCIRXINTA_ISR(void)/ SCI-APieCtrl.PIEACK.bit.ACK9 = 1; /釋放釋放 PIE 同組中斷同組中斷if(SciaRx_Ready() = 1)Sci_Receivedata = SciaRegs.SCIRXBUF.all;/SCI_Re

24、ceivedata 用于存放接納的數(shù)據(jù)用于存放接納的數(shù)據(jù)EINT;/使能全局中斷使能全局中斷運(yùn)用中斷方式發(fā)送或者接納的程序如下/發(fā)送中斷函數(shù)發(fā)送中斷函數(shù)interrupt void SCITXINTA_ISR(void)/ SCI-APieCtrl.PIEACK.bit.ACK9 = 1; /釋放釋放 PIE 同組中斷同組中斷if(SciaTx_Ready() = 1)SciaRegs.SCITXBUF =SCI_Senddata;/SCI_senddata 為需求發(fā)送的數(shù)據(jù)為需求發(fā)送的數(shù)據(jù)EINT; /使能全局中斷使能全局中斷6、多處置器通訊、多處置器通訊多處置器通訊,就是多個(gè)處置器之間實(shí)現(xiàn)

25、數(shù)據(jù)通訊。一個(gè)多處置器通訊,就是多個(gè)處置器之間實(shí)現(xiàn)數(shù)據(jù)通訊。一個(gè)簡單的多處置器通訊表示圖如以下圖簡單的多處置器通訊表示圖如以下圖 所示。所示。在圖中在圖中 A、B、C、D 之間都可以實(shí)現(xiàn)通訊。處置器之間都可以實(shí)現(xiàn)通訊。處置器 A 在同一時(shí)辰,只能在同一時(shí)辰,只能和和 B、C、D 之中的一個(gè)實(shí)現(xiàn)數(shù)據(jù)傳輸。當(dāng)處置器之中的一個(gè)實(shí)現(xiàn)數(shù)據(jù)傳輸。當(dāng)處置器 A 需求給需求給 B、C、D 中中的某一個(gè)處置器發(fā)送數(shù)據(jù)時(shí),的某一個(gè)處置器發(fā)送數(shù)據(jù)時(shí),A-B,A-C,A-D 這這 3 條通路上都會(huì)出現(xiàn)一條通路上都會(huì)出現(xiàn)一樣的數(shù)據(jù),那如何確保這些數(shù)據(jù)樣的數(shù)據(jù),那如何確保這些數(shù)據(jù) 被正確的處置器接納呢?被正確的處置器接納

26、呢? 多處置器通訊的根本原理舉例:假設(shè)您寄了一封信給遠(yuǎn)方的朋友,那郵遞員如舉例:假設(shè)您寄了一封信給遠(yuǎn)方的朋友,那郵遞員如何準(zhǔn)確的將信投遞到您朋友家的郵箱的呢?何準(zhǔn)確的將信投遞到您朋友家的郵箱的呢? 由于您寄由于您寄出的信封上寫清楚了您朋友家的地址,郵遞員將實(shí)踐出的信封上寫清楚了您朋友家的地址,郵遞員將實(shí)踐地址和信封上的地址核對(duì),兩者相符時(shí),就地址和信封上的地址核對(duì),兩者相符時(shí),就 把信投進(jìn)把信投進(jìn)信箱了。根據(jù)這個(gè)原理,假設(shè)我們給信箱了。根據(jù)這個(gè)原理,假設(shè)我們給 A、B、C、D主主機(jī)事先分配好地址,然后機(jī)事先分配好地址,然后 A 發(fā)送出去的信息里含有地發(fā)送出去的信息里含有地址信息址信息B或者或者

27、C或者或者D,在接納到這個(gè)數(shù)據(jù)信息的,在接納到這個(gè)數(shù)據(jù)信息的時(shí)候,先進(jìn)展地址的核對(duì),假設(shè)地址不符合,那么時(shí)候,先進(jìn)展地址的核對(duì),假設(shè)地址不符合,那么 不不予呼應(yīng)。假設(shè)地址符合,那么立刻讀取數(shù)據(jù)。予呼應(yīng)。假設(shè)地址符合,那么立刻讀取數(shù)據(jù)。SCI 在進(jìn)展多處置器通訊時(shí),根據(jù)地址信息識(shí)別方法的不同,分為空閑線方式和地址位方式。地址位方式地址位方式當(dāng)處置器當(dāng)處置器 A 發(fā)出一串?dāng)?shù)據(jù)時(shí),我們將其叫做數(shù)據(jù)塊,發(fā)出一串?dāng)?shù)據(jù)時(shí),我們將其叫做數(shù)據(jù)塊,由一個(gè)一個(gè)的幀構(gòu)成,幀就是帶有格式信息的字符數(shù)由一個(gè)一個(gè)的幀構(gòu)成,幀就是帶有格式信息的字符數(shù)據(jù)。從圖據(jù)。從圖 7 可以看到,某一個(gè)數(shù)據(jù)塊中的第一幀是地可以看到,某一個(gè)

28、數(shù)據(jù)塊中的第一幀是地址信息,第二幀是數(shù)據(jù)信息,然后留有一些空余空間址信息,第二幀是數(shù)據(jù)信息,然后留有一些空余空間之后,又有一個(gè)數(shù)據(jù)塊,第一幀也是地址信息,后面之后,又有一個(gè)數(shù)據(jù)塊,第一幀也是地址信息,后面是數(shù)據(jù)信息。是數(shù)據(jù)信息。第第 一幀地址信息后面的一個(gè)位是一幀地址信息后面的一個(gè)位是 1,而第,而第 2 幀數(shù)據(jù)信幀數(shù)據(jù)信息后面的一個(gè)位是息后面的一個(gè)位是 0。我們把這一位稱之為地址位,。我們把這一位稱之為地址位,用用 于表示這個(gè)幀的數(shù)據(jù)時(shí)地址信息還是數(shù)據(jù)信息。于表示這個(gè)幀的數(shù)據(jù)時(shí)地址信息還是數(shù)據(jù)信息。像這樣,在通訊格式中參與地址位來判別信息是數(shù)據(jù)像這樣,在通訊格式中參與地址位來判別信息是數(shù)據(jù)還

29、還 是地址的方式叫做多處置器通訊的地址位方式。是地址的方式叫做多處置器通訊的地址位方式。 空閑線方式下多處置器通訊 在空閑線方式中,塊與塊之間有一段比較長的空閑時(shí)間,這段時(shí)間在空閑線方式中,塊與塊之間有一段比較長的空閑時(shí)間,這段時(shí)間要明顯長于快內(nèi)幀與幀之間的空閑時(shí)間。假設(shè)某個(gè)幀之后有一段要明顯長于快內(nèi)幀與幀之間的空閑時(shí)間。假設(shè)某個(gè)幀之后有一段 10 個(gè)位或者更長的空個(gè)位或者更長的空 閑時(shí)間,那就闡明新的數(shù)據(jù)塊開場(chǎng)了。閑時(shí)間,那就闡明新的數(shù)據(jù)塊開場(chǎng)了。在某一個(gè)數(shù)據(jù)塊中,第一幀代表地址信息,后面的幀為數(shù)據(jù)信息。在某一個(gè)數(shù)據(jù)塊中,第一幀代表地址信息,后面的幀為數(shù)據(jù)信息。 也就是說,地址信息還是數(shù)據(jù)信息是經(jīng)過幀與幀之間的空閑間隔來也就是說,地址信息還是數(shù)據(jù)信息是經(jīng)過幀與幀之間的空閑間隔來判別的。當(dāng)幀與幀之間的空閑間隔超越判別的。當(dāng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論