一種3線制半雙工SPI接口設計
串行外圍設備接口SPI(serial peripheralinterface)總線技術是Motorola公司推出的一種微處理器、微控制器及其外設間的一種全/半雙工同步串行數據接口標準,具有連接線少、傳輸效率高等特點,因其硬件功能很強,與SPI有關的軟件就相當簡單,使CPU有更多的時間處理其他事務。
SPI接口一般采用4條連接線:串行時鐘線(SCK)、主機輸出/從機輸入數據線(MOSI)、主機輸入/從機輸出數據線(MISO)和低電平使能的從機選擇線(SS),有的還帶有中斷信號線(INT),半雙工或單向模式則不需要主機輸出/從機輸入數據線(MOSI)。為了在減少引腳的基礎上完成主從機的雙向通訊,本文采用半雙工機制實現了一種3線制雙向SPI總線模塊,即通過使能信號實現數據傳輸的方向控制,因此將主機輸出/從機輸入(MOSI)線和主機輸入/從機輸出線(MISO)線合并為一條雙向信號線。該模塊是某射頻芯片中的接口模塊,其作用是實現基帶芯片對射頻芯片的控制以及數據交換,而且為了便于和射頻電路集成,該模塊最終以硬IP形式實現。
1 SPI總線協議
射頻芯片的SPI接口具有兩個主要特征:Slave工作模式和半雙工方式通訊。
SPI接口信號描述如表1。

接口時序要求如下:
1)輸出時序
當SEN為高電平時,SPI接口處于輸出狀態。每次數據傳輸開始于SCK信號的上升沿。數據傳輸過程中,數據由SCK信號控制,并遵循下列規則:數據傳輸時,低位在前,高位在后;每個輸出數據位在SCK下降沿采樣;當本幀數據輸出達到24 bit時,結束數據輸出;當本幀數據輸出超過24 bit時,則多余位數全為高電平。
2)輸入時序
當SEN為低電平時,SPI接口處于輸入狀態。每次數據傳輸開始于SEN信號的下降沿,結束于其上升沿。數據傳輸過程中命令和數據有SCK和SEN信號控制,并遵循下列規則:數據傳輸時,低位在前,高位在后;每個輸入數據在SCK下降沿移入MOSI;當本幀數據輸入為24 bit時,當SEN轉為高電平時,將已輸入的24 bit數據寫入RF IC內部寄存器;當本幀數據輸入不足24 bit或多于24 bit時,放棄本幀輸入,等待下一幀。
射頻SPI接口的最大特點就是采用半雙工通訊機制,串行數據的輸入/輸出共用一條數據線,因此SPI接口數據通路的設計和普通的4線制SPI接口完全不同。
2 實現方案
2.1 總體結構
SPI接口電路主要由讀/寫控制器、串行寄存器組、輸出寄存器組和內部定時器四部分構成,如圖1所示。

在SPI接口模塊中,數據交換的核心是串行寄存器組,讀、寫控制器根據外部方向選擇信號SEN交替控制串行寄存器組的輸人和輸出。
評論