1. 程式人生 > >F28027第十課---SCI操作解讀

F28027第十課---SCI操作解讀

今天我們先來學習下SCI的理論知識,明天再進行實踐課學習。
SCI(serial communications interface),序列通訊介面。其他今晚剛看SCI定義的時候,很自然的就跟SPI關聯起來了,然後我就去查了下SPI跟SCI之間的區別:
SCI(serial communication interface)序列通訊介面
SPI(serial peripheral interface)序列外設介面
1)SPI採用同步通訊方式,除了傳送和接受兩根線外,還需要一根同步時鐘線,SCI採用非同步通訊方式,只需要傳送和接受兩根線,通訊雙方微處理器使用各自的時鐘。
2)SPI適用於板上短距離高速率通訊;SCI適用於對另外的裝置長距離的低速率通訊,在預設狀態下,其最高通訊速率只相當於SPI通訊速率的1/4.
3)SPI的時鐘可反映到外在的同步時鐘線上,SCI的時鐘是隱含的。

好了,稍微發散了一下,再回來繼續瞭解SCI的介面圖:
介面圖
這個介面圖跟SPI差不多,也是分為三部分:資料傳輸、中斷、系統控制和時鐘。先設定好使能和時鐘,寫好中斷服務子程式,然後開始資料的傳輸,當完成資料的讀入讀出時,產生中斷。 工作原理大概就是這樣。
SCI主要有哪些特徵呢:
1、兩個外部管腳:SCITXD(SCI transmit-output pin)、SCIRXD(SCI receive-input pin);
2、可程式設計的波特率,可以有64K種不同的波特率;
3、資料格式:1個開始位、1到8位可程式設計資料長度、1個奇偶校驗位、1或者2位長的停止位;
4、兩種多處理器喚醒模式:空閒線模式、地址位模式;
5、半雙工或全雙工操作模式;
總體的模組結構圖如下:
結構圖

插播下總體的暫存器說明表,因為後面的章節都涉及到暫存器了:
暫存器

我們現在分別來了解下SCI的架構.
重要的組成部分:
架構
訊號先總結:
總結
資料格式:
前面說了資料結構:1個開始位、1到8位可程式設計資料長度、1個奇偶校驗位、1或者2位長的停止位。我們現在來看一個8位資料長度的例子:
資料格式
很容易理解空閒線和地址位操作模式的資料格式。資料格式主要用到了SCICCR暫存器,具體操作位如下對應:
資料控制位

說完了總體架構,我們來了解下SCI多處理器通訊的一些基本概念。
Address Byte:地址位,訊息塊裡面包含地址資訊,所以處理器都可以接收到該訊息塊,只有當接收並識別到正確地址的處理器才能夠接收後面的資料位元組。地址識別不正確的處理器會處於非打擾模式,直到下一個包含地址資訊的訊息快。
Sleep Bit:休眠位,所有處理器在序列鏈路上面都會設定SCI 休眠位,只有在識別到地址資訊的時候才會中斷休眠。但是需要注意的是,如果你的CPU識別到正確的地址資訊訊息塊,程式必須手工清理休眠位,以保證COU能夠產生對應的中斷資訊。
識別地址位元組:對於空閒線模式,在地址位元組之前,預留超過十位長度的空閒空間;對於地址位模式,對於每一個位元組都包含了一個地址位資訊。
處理器工作模式由ADDR/IDLE MODE bit (SCICCR, bit 3)位控制。

前面一直說空閒線模式和地址位模式,下面我們來具體瞭解下這兩種操作方式。
首先是空閒線模式(ADDR/IDLE MODE bit=0),前面瞭解到,在地址位元組之前,預留超過十位長度的空閒空間,換句話說,也就是在兩個訊息塊之間,有大於等於十位長度的高電平空閒期
空閒線模式

對於空閒線模式,發起起始訊號主要有兩種辦法:
1、在兩個不同的訊息塊之間,故意留大於等於十位長度的空閒期;
2、在寫資料到SCITXBUF暫存器之前,將TXWAKE位置1,。

說完了空閒線模式,現在來說說地址位模式。
還是先看下基本概念
地址位模式
看完了概念,再看下它的資料格式
資料格式
是不是很容易理解了,呵呵,相信到這裡,大家都這兩種模式都有了一個基本認識。

現在要來說下SCI的通訊格式了
先直接看下通訊基本格式圖
格式圖
說明一點,所有的格式位,都是八個時鐘週期構成。由於是SCI非同步通訊,時鐘都是系統內部提供。
操作都從一個起始位開始,起始位是連續讀到四個連續的低電平,被認為是有效的起始位。緊接著是資料位,處理器採用的是三局兩勝制,呵呵,也就是取樣4、5、6三個時鐘點,取其中相同兩個時鐘點的值為該位值。
瞭解了資料格式,我們再來看下接收訊號的通訊方法:
接收
具體解釋如下:
過程

再看下發送訊號的通訊方法:
傳送
具體相關過程解釋如下:
過程
過程

最後是波特率,直接貼圖了,沒什麼好說的
波特率

其實最後還有一個4位深度的FIFO,這個我明天直接實踐吧,也真的沒什麼好說的。唯一需要注意的是下面這句:
FIFO
四位深度的FIFO資料可以直接讀入,之間的時間間隔可設定。具體明天實踐操作,今天先這樣了,又是一點了,不能太晚了。
F28027菜鳥交流qq群107691092