TI技術分析:數字接口系列文章之SPI 總線
串行外設接口 (SPI) 總線是一種運行于全雙工模式下的同步串行數據鏈路。用于在單個主節點和一個或多個從節點之間交換數據。SPI總線實施簡單,僅使用四條數據信號線和控制信號線(請參見圖 1)。
盡管表1中的引腳名稱取自Motorola公司的SPI標準,但特殊集成電路的SPI端口名稱通常與圖1中所標示的名稱有所不同。
圖1 基本的SPI總線
表1 SPI引腳名稱分配
SPI數據速率通常介于1到70MHz 之間,字節長度范圍從8位和12位到這些數值的倍數位。
數據傳輸通常會包含一次數據交換。當主節點向從節點發送數據時,從節點也會向主節點發送數據。為此,主節點的內部移位寄存器和從節點被設置成環形(請參見圖 2)。
圖2 兩個移位寄存器形成一個內部芯片環形緩沖器
在數據交換之前,主節點和從節點使其內部移位寄存器加載存儲器數據。產生時鐘信號時,主節點會通過MOSI線同步輸出其移位寄存器。同時,從節點在SIMO處從主節點讀取第一位,并將其存儲到存儲器中,然后通過SOMI輸出MSB。主節點會在MISO處讀取從節點的第一位,并將其存儲到存儲器中以待稍后處理。整個過程將一直持續,直至交換完所有數據位,然后主節點使時鐘空閑并通過 /SS禁用從節點。
除設置時鐘頻率之外,主節點還會配置相對于數據的時鐘極性和時鐘相位。這兩個選項分別稱作CPOL和CPHA,能夠允許時鐘信號實現180度相移且數據延遲半個時鐘周期。圖3顯示了相應的時序圖。
圖3 時鐘極性和相位的時序圖
CPOL=0時,時鐘在邏輯0處空閑:
* 如果CPHA=0,數據會在SCK的上升沿上讀取,在下降沿上變化。
* 如果CPHA=1,數據會在SCK的下降沿上讀取,在上升沿上變化。
CPOL=1時,時鐘在邏輯高電平處空閑:
*如果CPHA=0,數據會在SCK的下降沿上讀取,在上升沿上變化。
*如果CPHA=1,數據會在SCK的上升沿上讀取,在下降沿上變化。
在SPI中,主節點可以與單個或多個從節點進行通信。在使用單個從節點的情況下,從選擇信號可以關聯到從設備的本地接地電位以允許永久接入。對于使用多個從節點的應用,可能有兩種結構:獨立和菊花鏈式從節點(請參見圖 4)。
圖4 主節點與獨立從節點(左)以及菊花鏈式從節點(右)進行通信
從節點獨立尋址時,主節點必須提供多個從選擇信號。該結構一般用在數據采集系統中,其中的多個模數轉換器 (ADC) 和數模轉換器 (DAC) 都必須單獨接入。
菊花鏈式從節點需要主節點提供唯一的從選擇信號,因此該結構要求同時啟用所有從節點,以確保菊花鏈內通過所有移位寄存器的數據流不會中斷。典型的應用為工業級I/O模塊中的級聯多通道輸入串行器和輸出驅動器。
作者簡介:
Thomas Kugelstadt現任TI高級系統工程師,主要負責定義新型高性能模擬產品以及探測和調節工業系統中低電平模擬信號的完整系統解決方案的開發工作。
在TI工作的20年間,他曾被派往歐洲、亞洲以及美國擔任過各種國際應用職位。 Thomas畢業于法蘭克福應用技術大學 (Frankfurt University of Applied Science),一畢業就成為一名見習工程師 (Graduate Engineer)。
評論