時脈速率 資料轉換 傳播延遲 時脈回授 SPI 匯流排 MCU

加入時脈回授機制 SPI匯流排克服傳播延遲問題

2012-06-04
序列周邊介面(SPI)匯流排是同步全雙工序列資料連結,通常用於主要裝置如微控制器(MCU)與一個或多個從屬裝置,例如資料轉換器、數位輸入輸出(I/O)裝置、溫度感測器及電源管理控制器間的短距離資料交換。
在標準配置下使用時,SPI匯流排可達到20Mbit/s的高資料速率,而不影響時脈與資料間的同步。不過,現代的工業設計須要透過數位隔離器進行各種資料獲取及感測器電路的控制器電氣隔離(Galvanic Isolation)。這些隔離器會產生傳播延遲,依據介面時脈速率,而導致無法同步,且增加位元錯誤率(Bit-error Rate)。

為了協助於系統設計人員建立可靠的隔離SPI資料連結,本文將簡要說明SPI的運作原理,並建議針對補償增加的傳播延遲,以維持同步的解決方案。

SPI以三種介面線路運作

SPI使用下列三種介面線路,包括主要裝置開始資料傳輸的起始序列介面時脈SCK、從主要裝置傳輸到從屬裝置且標註(Designator)MOSI(Master-out Slave-in)及SIMO(Slave-in Master-out)資料的傳輸資料線路,以及自從屬裝置傳輸到主要裝置且標註MISO及SOMI資料的接收資料線路。

從主要裝置傳輸到從屬裝置且標註MOSI及SIMO資料的傳輸資料線路又區分成兩種,主出從入MOSI是主要裝置端的接腳標註,從入主出SIMO則為從屬裝置端的接腳標註。而自從屬裝置傳輸到主要裝置且標註MISO及SOMI的資料的接收資料線路,其主入從出MISO為主要裝置端的接腳標註,從出主入SOMI是從屬裝置端的接腳標註。

一般與介面相關的向前線路是從屬選取訊號/SS。介面流量控制不需要此訊號,不過此訊號可用於從屬裝置在連接晶片啟用(/CE)或晶片選取(/CS)接腳時的個別定址。

一般資料速率介於1M~20Mbit/s,位元組長度則介於8位元與12位元或這兩個值的倍數。資料傳輸是指資料交換的過程。主要裝置將資料傳送至從屬裝置時,從屬裝置會將資料傳送至主要裝置。因此,主要裝置與從屬裝置的內部移位暫存器採取環形設置,如圖1所示。

圖1 兩個移位暫存器形成晶片之間的環形緩衝

進行資料交換前,主要裝置和從屬裝置會載入含有記憶體資料的內部移位暫存器。一旦主要裝置起始時脈訊號,主要裝置會先透過MOSI線路將時脈輸出至移位暫存器MSB。同時,從屬裝置會透過SIMO讀取主要裝置的第一個位元,並且透過SOMI將時脈輸出至MSB。主要裝置會透過MISO讀取從屬裝置的第一個位元,並且將該位元儲存於記憶體,以供稍後處理之用。整個程序會持續到所有位元交換完畢,而且主要裝置將時脈閒置並透過/SS停用從屬裝置為止。

除設定時脈頻率外,主要裝置也會按照資料設定時脈極性和相位。CPOL和CPHA這兩個選項能夠使時脈訊號產生180度相移,讓資料產生半個時脈週期的延遲。圖2顯示相應的時序圖表。

圖2 時脈極性和相位的時序圖表

當CPOL=0,時脈在邏輯零點閒置時,如果CPHA=0,會在SCK的上升邊緣讀取資料,並且在下降邊緣變更;倘若CPHA=1,會在SCK的下降邊緣讀取資料,並且在上升邊緣變更。

反之,當CPOL=1,時脈在邏輯高位準閒置時,如果CPHA=0,會在SCK的下降邊緣讀取資料,並且在上升邊緣變更;倘若CPHA=1,則會在SCK的上升邊緣讀取資料,並在下降邊緣變更。

減少時脈頻率/資料輸出量

標準SPI介面配置的傳播延遲只會出現些微的時脈脈衝寬度,不過,隔離實作中(圖3)會使得介面時序出現大量傳播延遲。讓這個電路運作的唯一方法是,大幅減少時脈頻率及資料輸出量。

圖3 隔離式SPI介面

假設上升時脈邊緣在時間點X開始介面時序,而且主要裝置的時脈和傳輸資料在抵達時均受到從屬裝置在t=X+tP的隔離器傳播延遲。在回應時間tRSP後,從屬裝置將資料傳向主要裝置,接收資料也由於隔離器而出現延遲。因此,初始時脈邊緣與接收資料間的總延遲大約是隔離器傳播延遲的兩倍:tD=2.tP+tRSP(圖4)。

圖4 明顯傳播延遲的隔離式SPI介面

在高時脈速率下,會失去時脈和接收資料之間的同步。雖然從屬裝置仍然能夠在正確的時間進行傳輸資料的取樣,不過主要裝置在錯誤的時間進行接收資料的取樣,因此無法同步表示資料遺失及位元錯誤增加。

維持同步,可大幅降低時脈速率,直到時脈脈衝寬度擴大到大約傳播延遲的兩倍為止。

舉例來說,對於150Mbit/s高速數位隔離器,例如以3.3伏特(V)運作的ISO7231M,最大傳播延遲為34奈秒(ns),這至少需要T/2=2×34奈秒=68奈秒的時脈脈衝寬度。在50%負載週期下,這個脈衝寬度即為136奈秒時脈期間或7.35MHz時脈。不過,如此的傳輸速度無法充分發揮高速隔離器的功能。要充分發揮隔離器的最高速度,可使用時脈回授(Loopback)方法。

善用時脈回授功能

若要與SPI周邊進行高速和長距離通訊,必須補償資料連結的傳播延遲。最常用的方法是透過個別的資料線路回授主時脈,這類似於接收時脈,能夠針對從屬裝置所傳送的接收資料提供同步(圖5)。

圖5 降低時脈速率可維持同步性

在傳輸方向,主要裝置所傳輸的資料會與主時脈保持同步,而且從屬裝置很容易就能夠讀取這些資料。在相反的接收方向,從屬裝置所傳送的資料會與回授的時脈同步穿越,這兩者會呈現相同的隔離器傳播延遲(圖6)。

圖6 降低時脈速率可維持同步性

由於這兩個傳輸和接收資料串流現在有各自的時脈能夠同步執行,因此資料連結不受傳播延遲和時脈速度所影響,而能夠達到最大的速度。

要使用這種方法,最重要的是主要控制器必須提供兩個SPI連接埠,一個是在主模式中設定,另一個是在從屬模式內設定。目前新式的單晶片微控制器已可提供二、三和四個SPI連接埠,而且頻率均在20MHz以上,因此能夠滿足這方面的需求,而且現場可程式閘陣列(FPGA)能夠達到更高的時脈速率,例如50MHz至100MHz。高通道數的數位I/O模組一般需要如此的速度,在這種數位I/O模組中,多個SPI介面以菊花鏈(Daisy-chain)接配置運作,而且需要快速的序列速度。

SPI是同步全雙工介面,對於高速需求,以及數位隔離器或長傳輸連結所造成的長傳播延遲,可使用時脈回授確保介面穩定運作。

(本文作者任職於德州儀器)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!