前言
本次總結(jié)主要是SCI通信的相關(guān)內(nèi)容。具體如下:
1、通信波特率的設(shè)置;
2、SCI通信時(shí)序:數(shù)據(jù)格式,信號(hào)的接收與發(fā)送時(shí)序;
3、SCI接收、發(fā)送的相關(guān)原理,包括查詢和中斷,F(xiàn)IFO等;
4、如何設(shè)計(jì)通信協(xié)議:MCU–上位機(jī),MCU–MCU。
基礎(chǔ)知識(shí)
SCI:串行通信接口,串行通信技術(shù)的一種總稱;
UART:通用異步收發(fā)器,串行通信的一種協(xié)議;
RS232:串行通信的一種物理接口電氣標(biāo)準(zhǔn)。
1、串行通信:同步通信和異步通信
2、傳輸方式:?jiǎn)喂ぁ腚p工、全雙工
- 單工:?jiǎn)蜗騻鬏敚恍枰桓鶖?shù)據(jù)線;
- 半雙工:雙向傳輸,任一時(shí)刻只能發(fā)送或者接收,不能同時(shí)進(jìn)行;
- 全雙工:雙向傳輸,可同時(shí)收發(fā)數(shù)據(jù)。
3、DSP中的SCI接口可以看做UART,輸出電平為TTL,一般和RS232接口連接,RS232電平不同于TTL,需要進(jìn)行電平轉(zhuǎn)換,常用芯片如MAX232。
- 232電平:邏輯1:-3~15V;邏輯0:3 ~15V
- 標(biāo)準(zhǔn)TTL:邏輯1:2~5V;邏輯0:0 ~0.8V
1、時(shí)鐘使能
1.1 時(shí)鐘使能
時(shí)鐘使能為外設(shè)時(shí)鐘控制寄存器PCLKCR0的第10位(SCIA)或第11(位SCIB)或第5位(SCIC)。
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1; // SCI-B
SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1; // SCI-C
1.2波特率
SCI的時(shí)鐘由LSPCLK和波特率選擇寄存器決定,波特率選擇寄存器為16位。波特率的設(shè)置分兩種情況:
- BRR = 0,波特率 = LSPCLK / ((BRR + 1)*8)
- BRR在1-65535之間,波特率 = LSPCLK / 16
2、SCI數(shù)據(jù)通信
2.1 數(shù)據(jù)格式
典型數(shù)據(jù)幀格式如圖Figure1-3所示:
- 1位起始位
- 1-8位數(shù)據(jù)位(LSB低位先行)
- 1個(gè)奇/偶校驗(yàn)位
- 1位或2位停止位
所謂低位先行就是一個(gè)數(shù)據(jù)的地位在前 ,如0xAA,數(shù)據(jù)位則為:0101 0101
在這里說一下奇偶校驗(yàn),奇偶校驗(yàn)檢查稱為垂直冗余檢查,具體指在每個(gè)發(fā)送字符中增加一個(gè)額外為使字符中的“1”的數(shù)目是奇數(shù)或偶數(shù)。
奇校驗(yàn):字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗(yàn)位應(yīng)為“1”,使數(shù)目為偶數(shù);反之為“0”,如:1100 0011,數(shù)目為偶數(shù),校驗(yàn)位則為1,即1100 0011 1;
偶校驗(yàn):字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗(yàn)位應(yīng)為“0”,使數(shù)目為偶數(shù);反之為“1”,如:1100 0011,數(shù)目為偶數(shù),校驗(yàn)位則為1,即1100 0011 0。
2.2 SCI數(shù)據(jù)流
由圖4-15可知發(fā)送和接收數(shù)據(jù)流。
- 一個(gè)發(fā)送器(TX)的相關(guān)寄存器:發(fā)送數(shù)據(jù)緩沖寄存器(SCITXBUF)和發(fā)送移位寄存器(TXSHF)
數(shù)據(jù)流向?yàn)椋喊l(fā)送數(shù)據(jù)–>SCITXBUF–>TXSHF—>SCITXD發(fā)送出去; - 一個(gè)接收器(RX)的相關(guān)寄存器:接收數(shù)據(jù)緩沖寄存器(SCIRXBUF)和發(fā)送移位寄存器(RXSHF)
數(shù)據(jù)流向?yàn)椋航邮諗?shù)據(jù)—>SCIRXD–>RXSHF–>SCITXBUF存取緩沖器;
接收數(shù)據(jù)直接通過接收數(shù)據(jù)緩沖器給變量即可。
以上的數(shù)據(jù)流都是在非FIFO模式下的,F(xiàn)IFO模式簡(jiǎn)單來說是設(shè)置了一個(gè)緩沖機(jī)制,設(shè)置一個(gè)數(shù)據(jù)的緩沖深度,當(dāng)發(fā)送或接受數(shù)據(jù)存到設(shè)置的深度時(shí),再進(jìn)行發(fā)送或接收。具體流向見圖4-15。
2.3、信號(hào)接收時(shí)序
信號(hào)接收時(shí)序如Figure1-8所示,具體時(shí)序?yàn)椋?/p>
- 1-RXENA使能,接收數(shù)據(jù);
- 2- 數(shù)據(jù)到SCIRXD,檢測(cè)起始位;
- 3-數(shù)據(jù)從移位寄存器RXSHF到緩沖寄存器SCIRXBUF,產(chǎn)生中斷申請(qǐng),RXRDY變高(1),已接收到一個(gè)新字符;
- 4-程序讀緩沖寄存器,RXRDY=0;
- 5-下一次字節(jié)到達(dá)SCIRXD,檢測(cè)啟動(dòng)位,清除;
- 6-RXENA變?yōu)榈停?);
- 繼續(xù)想移位寄存器轉(zhuǎn)載數(shù)據(jù),但不移入緩沖寄存器。
以上是中斷接收,我們一般都是用中斷接收,中斷直接獲取緩沖寄存器的中的數(shù)據(jù)即可;而查詢接收則是通過查詢RXRDY標(biāo)志位來進(jìn)行接收,為高則接收到新字符,讀之后為0.
2.4 信號(hào)的發(fā)送時(shí)序
- 1-TXENA使能,發(fā)送數(shù)據(jù),初始時(shí)緩沖寄存器SCITXBUF為空,TXRDY為高(1),TX EMPTY為高(1);
- 2-寫數(shù)據(jù)到緩緩沖寄存器,不為空,TXRDY為低(0),EMPTY為低(0);
- 發(fā)送數(shù)據(jù)到移位寄存器TXSHF,緩沖寄存器為空,準(zhǔn)備傳送第二個(gè)字符到緩沖寄存器,3-TXRDY為高(1),中斷請(qǐng)求;
- 3-TXRDY為高(1)時(shí),程序?qū)懙诙€(gè)字符到緩沖寄存器,這時(shí)SCITXD開始發(fā)送第一個(gè)字符;寫入緩沖寄存器后,4-TXRDY為低(0);
- 發(fā)送完第一個(gè)字符,開始將第二個(gè)字符移入移位寄存器,移完5-TXRDY為高(1),開始發(fā)送第二個(gè)字符;
- 6-TXENA位變低,禁止發(fā)送數(shù)據(jù),,結(jié)束當(dāng)前字符的發(fā)送;
- 7-第二個(gè)字符發(fā)送完成,緩沖寄存器為空,準(zhǔn)備發(fā)送下一個(gè)字符。
以上為中斷發(fā)送,一般我們發(fā)送可以直接賦值給緩沖寄存器SCITXBUF即可。
3 通信協(xié)議
一般使用SCI通信(RS232通信)可以是MCU–上位機(jī),MCU–MCU等,這里主要說這兩種,其實(shí)方法都一致。
1、如果傳輸?shù)臄?shù)據(jù)量不大的話,直接傳輸即可,也不需要進(jìn)行精心的設(shè)計(jì),規(guī)定好先后順序即可,然后發(fā)送和接收都按照順序進(jìn)行即可;
2、如果傳輸?shù)臄?shù)據(jù)量的大的話,同時(shí)是全雙工進(jìn)行的話,這時(shí)候就需要進(jìn)行設(shè)計(jì)相關(guān)的傳輸準(zhǔn)則了。如:
- 確定傳輸?shù)膶?duì)象;
- 確定雙方的通信地址;
- 確定傳輸數(shù)據(jù)的命令,不同命令對(duì)應(yīng)傳輸不同的數(shù)據(jù);
- 確定校驗(yàn)的方法,每次指令傳輸?shù)臄?shù)據(jù)都進(jìn)行校驗(yàn),驗(yàn)證傳輸?shù)暮徒邮盏氖欠褚恢拢灰恢聞t重新接收;
- 全部確定以后,即可按照地址、傳輸指令和校驗(yàn)方法編寫程序進(jìn)行驗(yàn)證。
總結(jié)
此次的重點(diǎn)在于波特率的設(shè)置以及數(shù)據(jù)傳輸?shù)臅r(shí)序,至于通信協(xié)議只是寫了最基本的思路,需要根據(jù)具體的實(shí)際情況進(jìn)行編寫相關(guān)的通信標(biāo)準(zhǔn),然后設(shè)計(jì)程序。
-
串行通信
+關(guān)注
關(guān)注
4文章
571瀏覽量
35396 -
上位機(jī)
+關(guān)注
關(guān)注
27文章
941瀏覽量
54790 -
異步收發(fā)器
+關(guān)注
關(guān)注
0文章
36瀏覽量
10847 -
SCI
+關(guān)注
關(guān)注
1文章
56瀏覽量
20118 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
5968
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論