電子設備之間的通信就像人類之間的通信,雙方都需要說同一種語言。在電子學中,這些語言稱為通信協(xié)議。幸運的是,在構建大多數DIY電子項目時,我們只需要了解一些通信協(xié)議。在本系列文章中,我們將討論三種最常見協(xié)議的基礎知識:串行外設接口(SPI),內部集成電路(I2C)和通用異步接收器/發(fā)送器(UART)驅動通信。
首先,我們將從一些關于電子通信的基本概念開始,然后詳細解釋SPI的工作原理。
SPI,I2C和UART比USB,以太網,藍牙和WiFi等協(xié)議慢得多,但它們更簡單,使用的硬件和系統(tǒng)資源也更少。SPI,I2C和UART非常適用于微控制器之間以及微控制器和傳感器之間的通信,在這些傳感器中不需要傳輸大量高速數據。
串行與并行通信
數據位可以并行或串行形式傳輸。在并行通信中,數據位是同時發(fā)送的,每個都通過單獨的線路。下圖顯示了二進制(01000011)中字母“C”的并行傳輸:
SPI通信簡介
SPI的一個獨特優(yōu)勢是可以不間斷地傳輸數據??梢赃B續(xù)流發(fā)送或接收任意數量的比特。使用I2C和UART,數據以數據包形式發(fā)送,限制為特定的位數。啟動和停止條件定義每個數據包的開始和結束,因此數據在傳輸過程中會被中斷。
通過SPI通信的設備處于主從關系。主設備是控制設備(通常是微控制器),而從設備(通常是傳感器,顯示器或存儲器芯片)接收來自主設備的指令。最簡單的SPI配置是單主機,單從機系統(tǒng),但是一個主機可以控制多個從機(下面將詳細介紹)。
SPI是串行外設接口(Serial Peripheral Interface)的縮寫,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間。
SPI如何工作
時鐘信號將來自主設備的數據位輸出與從設備的位采樣同步。在每個時鐘周期傳輸一位數據,因此數據傳輸的速度由時鐘信號的頻率決定。由于主設備配置并生成時鐘信號,因此SPI時鐘始終為主設備的時鐘。
設備共享時鐘信號的任何通信協(xié)議稱為同步。SPI是一種同步通信協(xié)議,還有一些不使用時鐘信號的異步方法。例如,在UART通信中,雙方都設置為預先配置的波特率,該波特率決定數據傳輸的速度和時間。
SPI中的時鐘信號可以使用時鐘極性和時鐘相位屬性進行修改。這兩個屬性協(xié)同工作以定義何時輸出以及何時對它們進行采樣。時鐘極性可由主機設置,以允許在時鐘周期的上升沿或下降沿輸出和采樣。時鐘相位也可以由主機設置,以便在時鐘周期的第一個邊沿或第二個邊沿上進行輸出和采樣,無論是上升還是下降。
從設備選擇
主設備可以通過將從設備的CS / SS線設置為低電壓電平來選擇要通話的從設備。在空閑非傳輸狀態(tài)中,從選擇線保持在高電壓電平。主機上可能有多個CS / SS引腳,以允許多個從機并聯(lián)連接。如果只有一個CS/SS引腳,則可以通過菊花鏈將多個從器件連接到主器件。
多個從設備
SPI可以設置為使用單個主設備和單個從設備進行操作,也可以設置通過單個主設備控制多個從設備。有兩種方法可以將多個從站連接到主站。如果主機有多個從機選擇引腳,則從機可以并聯(lián)連接,如下所示:
如果只有一個從選擇引腳可用,則從器件可以菊花鏈式連接,如下所示:
MOSI和MISO
主機通過MOSI線串行發(fā)送數據到從機。從器件接收MOSI引腳上的主器件發(fā)送的數據。從主設備發(fā)送到從設備的數據通常首先以最高有效位發(fā)送。
從機還可以通過串行的MISO線路將數據發(fā)送回主機。從從設備發(fā)送回主設備的數據通常首先以最低有效位發(fā)送。
SPI數據傳輸步驟
1.主機輸出時鐘信號:
SPI的優(yōu)點和缺點
優(yōu)點
沒有啟動和停止位,因此數據可以連續(xù)流式傳輸而不會中斷
沒有復雜的從機尋址系統(tǒng),如I2C
比I2C更高的數據傳輸速率(幾乎快兩倍)
單獨的MISO和MOSI線,因此可以同時發(fā)送和接收數據
缺點
使用四根線(I2C和UART使用兩根)
無法確認數據已成功接收(I2C已執(zhí)行此操作)
沒有錯誤檢查,如UART中的奇偶校驗位
僅允許單個主機
最后
以上就是本次的分享,如果覺得文章不錯,轉發(fā)、在看,也是我們繼續(xù)更新得動力。
猜你喜歡:
串口打印知多少?
串口通訊你真的會了嗎?不妨看看這些經驗
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!