你的位置:首頁 > 互連技術(shù) > 正文

適合工業(yè)應用的魯棒SPI/I2C通信

發(fā)布時間:2022-06-14 來源:ADI 責任編輯:wenwei

【導讀】對于控制器和外設之間的短距離電路板內(nèi)連接,串行外設接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標準。由于存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執(zhí)行器和數(shù)據(jù)轉(zhuǎn)換器制造商廣泛采用。當控制器和外設位于同一電路板上、共享同一接地層且相距不遠(不大于1米)時,這些接口的實現(xiàn)相當簡單。


評估和設計支持


電路評估板


CN0564參考設計板(EVAL-CN0564-ARDZ)


設計和集成文件


原理圖、布局文件、物料清單


電路功能與優(yōu)勢


對于控制器和外設之間的短距離電路板內(nèi)連接,串行外設接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標準。由于存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執(zhí)行器和數(shù)據(jù)轉(zhuǎn)換器制造商廣泛采用。當控制器和外設位于同一電路板上、共享同一接地層且相距不遠(不大于1米)時,這些接口的實現(xiàn)相當簡單。


但是,狀態(tài)監(jiān)控、工廠自動化、樓宇自動化和結(jié)構(gòu)監(jiān)控等應用要求外設位于遠程位置,通常遠離控制器。系統(tǒng)設計人員傳統(tǒng)上利用中繼器或具有更高驅(qū)動強度的驅(qū)動器來擴展這些接口,其代價是整體成本和功耗增加。


圖1所示電路輕而易舉地解決了長距離、魯棒SPI/I2C通信的問題,對電路元件數(shù)量、工作速度或軟件復雜性則沒有任何影響。為了在高噪聲、惡劣的工業(yè)環(huán)境中無錯誤運行,器件必須能承受較大地電位差。SPI/I2C擴展器具有魯棒的收發(fā)器,可在±25V(SPI通信)和±15V(I2C通信)的擴展共模范圍內(nèi)工作,支持長達1200米的距離。每個鏈路由位于電纜任一端的單個器件組成,電源電壓范圍為3V至5.5V,而單獨的邏輯電源允許I2C或SPI接口從1.62V至5.5V電源供電。擴展器還提供了用于故障監(jiān)測的內(nèi)部控制接口;當長距離監(jiān)測設備時,這非常重要。


1654504059670993.gif

圖1.EVAL-CN0564-ARDZ簡化功能框圖


ADI公司的Circuits from the Lab?電路由ADI工程師設計構(gòu)建。每個電路的設計和構(gòu)建都嚴格遵循標準工程規(guī)范,電路的功能和性能都在實驗室環(huán)境中以室溫條件進行了測試和檢驗。然而,您需負責自行測試電路,并確定對您是否適用。因而,ADI公司將不對由任何原因、連接到任何所用參考電路上的任何物品所導致的直接、間接、特殊、偶然、必然或者懲罰性的損害負責。


電路描述


I2C信號標準綜述


I2C是用于雙向雙線接口的串行協(xié)議,可將EEPROM、模數(shù)和數(shù)模轉(zhuǎn)換器、I/O接口及其他外設連接到嵌入式處理器。由于簡單且可擴展,它在傳感器領域非常受歡迎??偩€上可以存在多個器件,每個器件都有自己的唯一地址。它只需要2條線便可在器件之間傳輸數(shù)據(jù)。這2條線包括:


SCL - 串行時鐘信號線


SDA - 用于在控制器和外設之間發(fā)送和接收數(shù)據(jù)的串行數(shù)據(jù)線


SCL和SDA信號是開漏邏輯,I2C總線規(guī)范和用戶手冊(規(guī)范 - I2C總線)中定義了邏輯電平和時序規(guī)格


給定I2C總線上可以存在的外設數(shù)量受地址空間和最大400 pF的總線總電容限制。開漏邏輯具有相對較高的阻抗和較低的噪聲抗擾度,這就要求所有外設以低阻抗連接到公共接地回路,并且在100kHz時,最大總線長度以大約一米為限。CN0564則不同,它具有差分收發(fā)器,可將總線長度擴展至1200米,并能承受控制器和外設之間最高±15V的共模壓差。


SDA本質(zhì)上是雙向的,在事務處理過程中,控制器與外設之間的數(shù)據(jù)流向會改變方向。雖然不是很常見,但是I2C支持時鐘延展,即外設可以讓SCK保持低電平以減慢時鐘速率。因此,SCL也是雙向的。I2C的雙向性質(zhì)使其不便于利用緩沖器擴展、隔離或轉(zhuǎn)換到其他物理層,這需要多種邏輯電平和其他非標準技術(shù)。


常見I2C總線速度為100 kHz標準模式和400 kHz快速模式。LTC4331控制器接口支持最高2000 kHz的所有常見I2C時鐘速率。然而,在高時鐘頻率和長電纜的情況下,強烈建議使用完全支持SCL時鐘延展的控制器。(更多信息請參閱LTC4331數(shù)據(jù)手冊)


SPI信號標準綜述


串行外設接口(SPI)是一種同步串行通信接口規(guī)范,用于短距離通信,主要用在嵌入式系統(tǒng)中。與I2C不同,SPI的定義不嚴格。它支持多種時鐘頻率、邏輯電平和時序關(guān)系,需要仔細檢查控制器和外設規(guī)格。SPI是全雙工通信(即數(shù)據(jù)既可從控制器流向外設,同時也可從外設流向控制器)。


SPI物理層由4個信號組成:


SCLK - 串行時鐘,通常由控制器驅(qū)動


MISO - 控制器數(shù)據(jù)輸入、外設數(shù)據(jù)輸出


MOSI - 控制器數(shù)據(jù)輸出、外設數(shù)據(jù)輸入


- 片選使能與外設通信。每個外設需要一條線。


SPI引腳使用推挽邏輯(而不是開漏),控制器和外設之間的邏輯電平必須匹配。每個外設都需要自己的信號,這使SPI總線的物理擴展進一步復雜化。


1654504040695458.gif

圖2.SPI配置模式


時鐘和數(shù)據(jù)之間支持四種不同的時序關(guān)系,分別稱為模式0、1、2、3,對應于四種可能的時鐘配置。每個事務都是在片選線被驅(qū)動到邏輯低電平時開始(片選通常是低電平有效信號)。片選、數(shù)據(jù)和時鐘線之間的確切關(guān)系取決于時鐘極性(CPOL)和時鐘相位(CPHA)的配置。這四種模式總結(jié)在圖2中。


LTC4332最多支持3個遠程外設,每個外設都有自己的線。每個外設的SPI模式都可以獨立設置為模式0、1、2或3。數(shù)據(jù)從控制器透明地傳輸?shù)酵庠O,但從外設到控制器的數(shù)據(jù)會引入一個字的延遲。有關(guān)更多信息,請參閱一字延遲 - SPI讀取命令部分。


系統(tǒng)拓撲


CN0564使用LTC4331和LTC4332來擴展I2C和SPI信號,距離最長可達1200米。每個鏈路由一對器件組成,控制器側(cè)配置為本地模式(REMOTE引腳接低電平),外設側(cè)器件配置為遠程模式(REMOTE引腳接高電平)。


電路描述


LTC4332/LTC4331將來自控制器的SPI/I2C信號編碼為差分信號,然后通過雙絞線電纜傳輸。在電纜的遠端,差分信號由遠程LTC4332/LTC4331接收并解碼回SPI/I2C,然后路由到遠程外設。正常工作時,遠程外設會鏡像本地控制器產(chǎn)生的事件。


可選波特率


LTC4332/LTC4331可以使用可選速度索引(如表1和表2所示)改變鏈路波特率——即數(shù)據(jù)在本地和遠程鏈路之間傳輸?shù)乃俣取4怂俣人饕ㄟ^配置鏈路和接口時序選擇引腳SPEED1和SPEED2來設置,這兩個引腳均為三態(tài)輸入。


電纜上的可選波特率支持根據(jù)應用要求平衡性能與電纜長度。但是,鏈路兩側(cè)的速度配置必須相同。


表1.LTC4331鏈路速度與電纜長度的關(guān)系

1654504021772834.png


表2.LTC4332鏈路速度與電纜長度的關(guān)系

1654504008220855.png


增加電纜傳輸長度


LTC4332/LTC4331利用高速差分收發(fā)器在最長1200米的鏈路上通信。I2C/SPI信號轉(zhuǎn)換為差分信號以實現(xiàn)高速高質(zhì)量信號傳輸、噪聲抗擾度和共模抑制。對于給定的速度設置,必須遵守表1(適用于LTC4331)和表2(適用于LTC4332)中給出的電纜長度規(guī)格,否則鏈路不會工作。表中的值是在實驗室環(huán)境中使用Cat5E以太網(wǎng)電纜測得。請注意,實際最大電纜長度取決于電纜類型和應用環(huán)境。


共模電壓和ESD魯棒性


差分收發(fā)器工作在±25V(SPI擴展器)和±15V(I2C擴展器)的擴展共模范圍內(nèi),因此它適合于高噪聲環(huán)境或存在地電位差的系統(tǒng)(參見圖1)。


接口引腳(LTC4331 A和B引腳,LTC4332 A、B、Y和Z引腳)具有故障保護功能,可承受最高±60V的電壓。接口引腳還有異常魯棒的靜電放電(ESD)保護特性。在所有工作模式下,或在未供電時,接口引腳能承受相對于GND和VCC(帶4.7μF電容接GND)的±40kV HBM ESD(人體模型測試),而不會發(fā)生閂鎖或損壞。


另外,LTC4331/LTC4332 ESD均通過了國際電工委員會(IEC) ESD和EFT(電氣快速瞬態(tài))測試。IEC ESD應力在峰值電流、幅度和上升時間方面均超過了HBM測試,而EFT測試提供了長時間的重復應力。這種保護等級可確保LTC4332/LTC4331在各種實際危險下都能如常運行。


一字延遲 - SPI讀取命令


在I2C通信的情況下,LTC4331(本地)- LTC4331(遠程)鏈路是透明的;遠程外設顯示為本地控制器的本地器件。


但是,對于SPI擴展器解決方案,LTC4332(本地)- LTC4332(遠程)在讀訪問期間會引起一個字的延遲。從SPI控制器發(fā)送到外設的數(shù)據(jù)會經(jīng)歷與控制器啟動的接口時鐘(SCK)相同的延遲,因此兩者在整個數(shù)據(jù)鏈路上會保持同步。


在相反方向上,僅當?shù)谝粫r鐘沿到達外設時,外設才將MISO數(shù)據(jù)發(fā)送到控制器。此數(shù)據(jù)在返回控制器的路徑上會經(jīng)歷第二次延遲,因此MISO數(shù)據(jù)會不同步,偏差為電纜傳輸延遲的兩倍。物理上較遠的器件將需要大大降低時鐘速率以適應每個比特寬度內(nèi)的傳輸延遲。為了克服這種限制,LTC4332將移位寄存器引入MISO信號路徑,如圖3所示。


1654503973505174.gif

圖3.將移位寄存器引入MISO信號路徑以適應傳輸延遲


電路描述


因此,對遠程外設的SPI寫請求是軟件透明的,但對遠程外設的SPI讀請求會產(chǎn)生一個字的延遲,這意味著讀取命令需要擴展一個字。若不如此,則當片選取消置位時,LTC4332 MISO移位寄存器中的最后一個字會丟失。WORD_LENGTH寄存器(參見LTC4332數(shù)據(jù)手冊中的寄存器映射)表示LTC4332上MISO信號路徑中的移位寄存器的深度,決定了SPI控制器何時開始在MISO線上接收有效數(shù)據(jù)。例如,若WORD_LENGTH為8,則在置為有效后經(jīng)過8個時鐘周期,用戶將開始接收有效MISO數(shù)據(jù)。


故障監(jiān)控


LTC4331/LTC4332引腳表示通信鏈路的狀態(tài),驅(qū)動到低電平時表示遠程I2C/SPI總線已加入本地I2C/SPI總線。


LTC4331/LTC4332支持中斷信號,LTC4331上為引腳,LTC4332上為引腳。這些信號從遠程總線鏡像到本地總線。在遠程端,中斷引腳是輸入,可以連接到相連I2C/SPI外設的中斷輸出。在本地端,/用作開漏輸出,可以連接到共享本地中斷線。如果使能,本地LTC4331/LTC4332的控制接口將使用/引腳報告鏈路和故障事件。本地側(cè)ALERT/INT輸出是遠程/與內(nèi)部端點中斷信號的邏輯“與”結(jié)果。


本地側(cè)LTC4331/LTC4332還可以通過讓ON引腳保持低電平至少180ms來觸發(fā)遠程側(cè)復位。如果鏈路斷開,遠程LTC4331/LTC4332會在180ms后自動復位。遠程復位會禁用所有遠程側(cè)輸出,直到重新建立鏈路通信。


1654503952307062.gif

圖4.讀/寫故障監(jiān)控寄存器的控制接口時序圖


LTC4331/LTC4332控制接口


要配置LTC4331/LTC4332鏈路本地側(cè)的控制接口,可使用單獨的內(nèi)部可尋址外設。通過配置引腳A1和A2,可為本地LTC4331的內(nèi)部接口分配一個唯一的I2C地址。LTC4332則提供了單獨的片選引腳,允許用戶與內(nèi)部SPI可尋址寄存器通信。


1654503925425903.gif

圖5.LTC4332(左側(cè))和LTC4331(右側(cè))的內(nèi)部框圖


LTC4331/LTC4332控制接口支持讀取速度配置、鏈路狀態(tài)和中斷/警報狀態(tài),以及訪問其他I2C/SPI特定選項。LTC4331可以配置為將I2C地址轉(zhuǎn)換為遠程外設,從而擴展I2C地址空間并防止地址沖突。LTC4332允許每個CS引腳使用獨立的SPI模式配置,以及配置字長(用于確定所接收的數(shù)據(jù)延遲)。有關(guān)更多信息,請參閱LTC4331和LTC4332數(shù)據(jù)手冊。


PCB尺寸


PCB設計中的元件密度增加會導致復雜的問題。為了編碼SPI或I2C,通常需要額外的微控制器,這會增加解決方案成本和尺寸,但使用CN0564的話,遠程側(cè)無需額外的微控制器。這樣可實現(xiàn)更小的傳感器解決方案,其占用的PCB面積更小,從而降低制造總成本,并為其他元件留下更多空間以提供更多特性。


35.jpg

圖6.LTC4331(I2C擴展器)和LTC4332(SPI擴展器)的本地EVAL-CN0564-ARDZ節(jié)點和遠程節(jié)點


擴展傳感器接口功能


更長傳輸距離的傳感器接口傳統(tǒng)上使用模擬信號技術(shù),例如0-10V或4-20 mA。例如,在狀態(tài)監(jiān)控應用中,集成電子壓電(IEPE)傳感器接口是振動傳感器最常用的信號標準。它為振動傳感器提供恒定電流源,傳感器輸出電壓通過相同線路讀回。當傳輸交流信號內(nèi)容時,這種雙線系統(tǒng)可以簡化系統(tǒng)設計,但不提供額外的故障監(jiān)控或配置能力。


LTC4332/LTC4331則支持靈活的配置和處理,發(fā)生故障事件時可直接在數(shù)字輸出傳感器上輕松調(diào)試。


常見變化


當本地和遠程地電位之差超過容許的±25V (LTC4332)或±15V (LTC4331)時,需要使用電氣隔離。使用ADUM141E或ADUM140E之類的數(shù)字隔離器,可以將I2C/SPI信號與EVAL-CN0564-ARDZ上的本地LTC4331/ LTC4332進行電氣隔離,如圖7所示。


ADUM5020可為本地LTC4331/LTC4332提供高達100mA的隔離電源。


1654503891763012.gif

圖7.包含對數(shù)據(jù)和電源信號進行電氣隔離的框圖


電路評估與測試


以下部分介紹CN0564如何設置和測試。EVAL-CN0564-ARDZ可以與Arduino或Arduino兼容設備配合使用,以利用EVAL-ADXL357Z讀取加速度數(shù)據(jù),從而輕松評估SPI (LTC4332)和I2C (LTC4331)擴展器。以下部分側(cè)重于在EVAL-CN0564-ARDZ上設置SPI擴展器(本地和遠程LTC4332)。


有關(guān)完整的設置詳情,以及SPI和I2C擴展器(本地和遠程LTC4331/LTC4332)上的設置說明,請訪問EVAL-CN0564-ARDZ用戶指南。


設備要求


●    帶USB端口的PC


●    EVAL-CN0564-ARDZ評估板


●    EVAL-ADXL357評估板


●    EVAL-XLMOUNT1


●    Arduino UNO Rev 3


●    USB A型轉(zhuǎn)USB B型電纜


●    跳線


●    5V/3.3V電源


開始使用


1.    下載為評估EVAL-CN0564-ARDZ評估板上的SPI或I2C擴展器而提供的Arduino草圖,并使用它對Arduino進行編程。


2.    將EVAL-CN0564-ARDZ板插入Arduino Uno Rev 3


3.    將EVAL-CN0564-ARDZ上的LTC4332(遠程側(cè))連接到EVAL-ADXL357


4.    使用雙絞線中的跳線將LTC4332(本地側(cè))連接到LTC4332(遠程側(cè))


5.    跳線連接如下:


a.    正確放置P10跳線,使得P10上的引腳2和3在EVAL-CN0564-ARDZ上相連。這將選擇5V電源選項。


b.    JP1跳線應放置到位置D,以將本地LTC4332上的從器件/片選引腳連接到Arduino UNO Rev 3上的D10引腳。


c.    JP5跳線應放置到位置A,以將本地LTC4332上的引腳連接到Arduino UNO Rev 3上的D6引腳。


d.    JP3跳線應放置到位置B,以將本地LTC4332上的中斷引腳連接到Arduino UNO Rev 3上的D2引腳。


e.    默認情況下,遠程LTC4332選擇速度索引8。本地側(cè)的速度索引應與遠程側(cè)相同。


f.     應將P1跳線放置到位,使得其引腳2和3相連。同樣,還應將P2跳線放置到位,使得其引腳2和3相連。這將選擇速度索引8以匹配本地側(cè)的速度索引。


g.    正確放置P19跳線,使得其引腳1和2相連。這會將本地LTC4332上的ON引腳連接到IOREF。這將使能輸入。


37_副本.jpg

圖8.本地和遠程LTC4332上的跳線配置


系統(tǒng)測試


將EVAL-ADXL357Z和遠程LTC4332安裝在EVAL-XLMOUNT1上,然后接通為電路板供電的電源?,F(xiàn)在應能夠在EVAL-CN0564-ARDZ板上看到3個LED閃爍(本地2個LED,遠程側(cè)1個LED)。完整系統(tǒng)框圖參見圖9。


MEMS加速度計(遠程側(cè)EVAL-ADXL357Z上)讀取的X、Y和Z數(shù)據(jù)將顯示在Arduino串行監(jiān)視器上。退出Arduino串行監(jiān)視器并運行Python Real Time ADXL357 Data Plotter可執(zhí)行文件,查看加速度數(shù)據(jù)的實時圖,如圖10所示的圖形。


X、Y和Z加速度(g)數(shù)據(jù)由python腳本存儲在三個單獨的文件中,可以在包含可執(zhí)行文件的位置中找到。


電路評估與測試


1654503847800197.gif

圖9.采用ADXL357和Arduino UNO Rev 3的EVAL-CN0564-ARDZ系統(tǒng)測試設置


電路評估與測試


1654503831671122.gif

圖10.加速度數(shù)據(jù)的實時圖


也可以獲得圖11所示的FFT分析,以使用所獲得的X、Y和Z數(shù)據(jù)識別目標頻率。FFT分析常用于監(jiān)視旋轉(zhuǎn)部件的健康狀況。預測性維護(PdM)是智能行業(yè)的關(guān)鍵組成部分,其涉及在運行期間監(jiān)控設備以檢測潛在故障的預警跡象。有關(guān)如何分析狀態(tài)監(jiān)控(CbM)系統(tǒng)中的振動數(shù)據(jù)的更多信息,請參閱此文章。


1654503813413990.gif

圖11.Z軸加速度數(shù)據(jù)的FFT分析


ESD警告


ESD(靜電放電)敏感器件。帶電器件和電路板可能會在沒有察覺的情況下放電。盡管本產(chǎn)品具有專利或?qū)S斜Wo電路,但在遇到高能量ESD時,器件可能會損壞。因此,應當采取適當?shù)腅SD防范措施,以避免器件性能下降或功能喪失。


Circuits from the Lab電路僅供與ADI公司產(chǎn)品一起使用,并且其知識產(chǎn)權(quán)歸ADI公司或其授權(quán)方所有。雖然您可以在產(chǎn)品設計中使用參考電路,但是并未默認授予其它許可,或是通過此參考電路的應用及使用而獲得任何專利或其它知識產(chǎn)權(quán)。ADI公司確信其所提供的信息是準確可靠的。不過,Circuits from the Lab電路是以“原樣”的方式提供的,并不具有任何性質(zhì)的承諾,包括但不限于:明示、暗示或者法定承諾,任何適銷性、非侵權(quán)或者某特定用途實用性的暗示承諾,ADI公司無需為參考電路的使用承擔任何責任,也不對那些可能由于其使用而造成任何專利或其它第三方權(quán)利的侵權(quán)負責。ADI公司有權(quán)隨時修改任何參考電路,恕不另行通知。



推薦閱讀:


手機無線充電器壞了

電解電容

新推出的同步SAR模數(shù)轉(zhuǎn)換器的片內(nèi)校準優(yōu)勢

功率半導體冷知識:功率器件的功率密度

25kW SiC直流快充設計指南(第五部分):控制算法、調(diào)制方案和反饋

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉