適合工業應用的魯棒SPI/I2C通信
發布時間:2022-06-14 來源:ADI 責任編輯:wenwei
【導讀】對於控製器和外設之間的短距離電路板內連接,串行外設接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標準。由於存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執行器和數據轉換器製造商廣泛采用。當控製器和外設位於同一電路板上、共享同一接地層且相距不遠(不大於1米)時,這些接口的實現相當簡單。
評估和設計支持
電路評估板
CN0564參考設計板(EVAL-CN0564-ARDZ)
設計和集成文件
原理圖、布局文件、物料清單
電路功能與優勢
對於控製器和外設之間的短距離電路板內連接,串行外設接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標準。由於存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執行器和數據轉換器製造商廣泛采用。當控製器和外設位於同一電路板上、共享同一接地層且相距不遠(不大於1米)時,這些接口的實現相當簡單。
但是,狀態監控、工廠自動化、樓lou宇yu自zi動dong化hua和he結jie構gou監jian控kong等deng應ying用yong要yao求qiu外wai設she位wei於yu遠yuan程cheng位wei置zhi,通tong常chang遠yuan離li控kong製zhi器qi。係xi統tong設she計ji人ren員yuan傳chuan統tong上shang利li用yong中zhong繼ji器qi或huo具ju有you更geng高gao驅qu動dong強qiang度du的de驅qu動dong器qi來lai擴kuo展zhan這zhe些xie接jie口kou,其qi代dai價jia是shi整zheng體ti成cheng本ben和he功gong耗hao增zeng加jia。
圖1所示電路輕而易舉地解決了長距離、魯棒SPI/I2C通信的問題,對電路元件數量、工作速度或軟件複雜性則沒有任何影響。為了在高噪聲、惡劣的工業環境中無錯誤運行,器件必須能承受較大地電位差。SPI/I2C擴展器具有魯棒的收發器,可在±25V(SPI通信)和±15V(I2C通信)的擴展共模範圍內工作,支持長達1200米的距離。每個鏈路由位於電纜任一端的單個器件組成,電源電壓範圍為3V至5.5V,而單獨的邏輯電源允許I2C或SPI接口從1.62V至5.5V電源供電。擴展器還提供了用於故障監測的內部控製接口;當長距離監測設備時,這非常重要。
圖1.EVAL-CN0564-ARDZ簡化功能框圖
ADI公司的Circuits from the Lab™電路由ADI工(gong)程(cheng)師(shi)設(she)計(ji)構(gou)建(jian)。每(mei)個(ge)電(dian)路(lu)的(de)設(she)計(ji)和(he)構(gou)建(jian)都(dou)嚴(yan)格(ge)遵(zun)循(xun)標(biao)準(zhun)工(gong)程(cheng)規(gui)範(fan),電(dian)路(lu)的(de)功(gong)能(neng)和(he)性(xing)能(neng)都(dou)在(zai)實(shi)驗(yan)室(shi)環(huan)境(jing)中(zhong)以(yi)室(shi)溫(wen)條(tiao)件(jian)進(jin)行(xing)了(le)測(ce)試(shi)和(he)檢(jian)驗(yan)。然(ran)而(er),您(nin)需(xu)負(fu)責(ze)自(zi)行(xing)測(ce)試(shi)電(dian)路(lu),並(bing)確(que)定(ding)對(dui)您(nin)是(shi)否(fou)適(shi)用(yong)。因(yin)而(er),ADI公司將不對由任何原因、連接到任何所用參考電路上的任何物品所導致的直接、間接、特殊、偶然、必然或者懲罰性的損害負責。
電路描述
I2C信號標準綜述
I2C是用於雙向雙線接口的串行協議,可將EEPROM、模數和數模轉換器、I/Ojiekoujiqitawaishelianjiedaoqianrushichuliqi。youyujiandanqiekekuozhan,tazaichuanganqilingyufeichangshouhuanying。zongxianshangkeyicunzaiduogeqijian,meigeqijiandouyouzijideweiyidizhi。tazhixuyao2條線便可在器件之間傳輸數據。這2條線包括:
SCL - 串行時鍾信號線
SDA - 用於在控製器和外設之間發送和接收數據的串行數據線
SCL和SDA信號是開漏邏輯,I2C總線規範和用戶手冊(規範 - I2C總線)中定義了邏輯電平和時序規格
給定I2C總線上可以存在的外設數量受地址空間和最大400 pF的總線總電容限製。開漏邏輯具有相對較高的阻抗和較低的噪聲抗擾度,這就要求所有外設以低阻抗連接到公共接地回路,並且在100kHz時,最大總線長度以大約一米為限。CN0564則不同,它具有差分收發器,可將總線長度擴展至1200米,並能承受控製器和外設之間最高±15V的共模壓差。
SDA本質上是雙向的,在事務處理過程中,控製器與外設之間的數據流向會改變方向。雖然不是很常見,但是I2C支持時鍾延展,即外設可以讓SCK保持低電平以減慢時鍾速率。因此,SCL也是雙向的。I2C的雙向性質使其不便於利用緩衝器擴展、隔離或轉換到其他物理層,這需要多種邏輯電平和其他非標準技術。
常見I2C總線速度為100 kHz標準模式和400 kHz快速模式。LTC4331控製器接口支持最高2000 kHz的所有常見I2C時鍾速率。然而,在高時鍾頻率和長電纜的情況下,強烈建議使用完全支持SCL時鍾延展的控製器。(更多信息請參閱LTC4331數據手冊)
SPI信號標準綜述
串行外設接口(SPI)是一種同步串行通信接口規範,用於短距離通信,主要用在嵌入式係統中。與I2C不同,SPI的定義不嚴格。它支持多種時鍾頻率、邏輯電平和時序關係,需要仔細檢查控製器和外設規格。SPI是全雙工通信(即數據既可從控製器流向外設,同時也可從外設流向控製器)。
SPI物理層由4個信號組成:
SCLK - 串行時鍾,通常由控製器驅動
MISO - 控製器數據輸入、外設數據輸出
MOSI - 控製器數據輸出、外設數據輸入
- 片選使能與外設通信。每個外設需要一條線。
SPI引腳使用推挽邏輯(而不是開漏),控製器和外設之間的邏輯電平必須匹配。每個外設都需要自己的信號,這使SPI總線的物理擴展進一步複雜化。
圖2.SPI配置模式
時鍾和數據之間支持四種不同的時序關係,分別稱為模式0、1、2、3,對應於四種可能的時鍾配置。每個事務都是在片選線被驅動到邏輯低電平時開始(片選通常是低電平有效信號)。片選、數據和時鍾線之間的確切關係取決於時鍾極性(CPOL)和時鍾相位(CPHA)的配置。這四種模式總結在圖2中。
LTC4332最多支持3個遠程外設,每個外設都有自己的線。每個外設的SPI模式都可以獨立設置為模式0、1、2或3。數據從控製器透明地傳輸到外設,但從外設到控製器的數據會引入一個字的延遲。有關更多信息,請參閱一字延遲 - SPI讀取命令部分。
係統拓撲
CN0564使用LTC4331和LTC4332來擴展I2C和SPI信號,距離最長可達1200米。每個鏈路由一對器件組成,控製器側配置為本地模式(REMOTE引腳接低電平),外設側器件配置為遠程模式(REMOTE引腳接高電平)。
電路描述
LTC4332/LTC4331將來自控製器的SPI/I2C信號編碼為差分信號,然後通過雙絞線電纜傳輸。在電纜的遠端,差分信號由遠程LTC4332/LTC4331接收並解碼回SPI/I2C,然後路由到遠程外設。正常工作時,遠程外設會鏡像本地控製器產生的事件。
可選波特率
LTC4332/LTC4331可以使用可選速度索引(如表1和表2所示)改變鏈路波特率——即數據在本地和遠程鏈路之間傳輸的速度。此速度索引通過配置鏈路和接口時序選擇引腳SPEED1和SPEED2來設置,這兩個引腳均為三態輸入。
電纜上的可選波特率支持根據應用要求平衡性能與電纜長度。但是,鏈路兩側的速度配置必須相同。
表1.LTC4331鏈路速度與電纜長度的關係
表2.LTC4332鏈路速度與電纜長度的關係
增加電纜傳輸長度
LTC4332/LTC4331利用高速差分收發器在最長1200米的鏈路上通信。I2C/SPI信號轉換為差分信號以實現高速高質量信號傳輸、噪聲抗擾度和共模抑製。對於給定的速度設置,必須遵守表1(適用於LTC4331)和表2(適用於LTC4332)中給出的電纜長度規格,否則鏈路不會工作。表中的值是在實驗室環境中使用Cat5E以太網電纜測得。請注意,實際最大電纜長度取決於電纜類型和應用環境。
共模電壓和ESD魯棒性
差分收發器工作在±25V(SPI擴展器)和±15V(I2C擴展器)的擴展共模範圍內,因此它適合於高噪聲環境或存在地電位差的係統(參見圖1)。
接口引腳(LTC4331 A和B引腳,LTC4332 A、B、Y和Z引腳)具有故障保護功能,可承受最高±60V的電壓。接口引腳還有異常魯棒的靜電放電(ESD)保護特性。在所有工作模式下,或在未供電時,接口引腳能承受相對於GND和VCC(帶4.7μF電容接GND)的±40kV HBM ESD(人體模型測試),而不會發生閂鎖或損壞。
另外,LTC4331/LTC4332 ESD均通過了國際電工委員會(IEC) ESD和EFT(電氣快速瞬態)測試。IEC ESD應力在峰值電流、幅度和上升時間方麵均超過了HBM測試,而EFT測試提供了長時間的重複應力。這種保護等級可確保LTC4332/LTC4331在各種實際危險下都能如常運行。
一字延遲 - SPI讀取命令
在I2C通信的情況下,LTC4331(本地)- LTC4331(遠程)鏈路是透明的;遠程外設顯示為本地控製器的本地器件。
但是,對於SPI擴展器解決方案,LTC4332(本地)- LTC4332(遠程)在讀訪問期間會引起一個字的延遲。從SPI控製器發送到外設的數據會經曆與控製器啟動的接口時鍾(SCK)相同的延遲,因此兩者在整個數據鏈路上會保持同步。
在相反方向上,僅當第一時鍾沿到達外設時,外設才將MISO數據發送到控製器。此數據在返回控製器的路徑上會經曆第二次延遲,因此MISOshujuhuibutongbu,pianchaweidianlanchuanshuyanchideliangbei。wulishangjiaoyuandeqijianjiangxuyaodadajiangdishizhongsulvyishiyingmeigebitekuanduneidechuanshuyanchi。weilekefuzhezhongxianzhi,LTC4332將移位寄存器引入MISO信號路徑,如圖3所示。
圖3.將移位寄存器引入MISO信號路徑以適應傳輸延遲
電路描述
因此,對遠程外設的SPI寫請求是軟件透明的,但對遠程外設的SPI讀請求會產生一個字的延遲,這意味著讀取命令需要擴展一個字。若不如此,則當片選取消置位時,LTC4332 MISO移位寄存器中的最後一個字會丟失。WORD_LENGTH寄存器(參見LTC4332數據手冊中的寄存器映射)表示LTC4332上MISO信號路徑中的移位寄存器的深度,決定了SPI控製器何時開始在MISO線上接收有效數據。例如,若WORD_LENGTH為8,則在置為有效後經過8個時鍾周期,用戶將開始接收有效MISO數據。
故障監控
LTC4331/LTC4332引腳表示通信鏈路的狀態,驅動到低電平時表示遠程I2C/SPI總線已加入本地I2C/SPI總線。
LTC4331/LTC4332支持中斷信號,LTC4331上為引腳,LTC4332上為引腳。這些信號從遠程總線鏡像到本地總線。在遠程端,中斷引腳是輸入,可以連接到相連I2C/SPI外設的中斷輸出。在本地端,/用作開漏輸出,可以連接到共享本地中斷線。如果使能,本地LTC4331/LTC4332的控製接口將使用/引腳報告鏈路和故障事件。本地側ALERT/INT輸出是遠程/與內部端點中斷信號的邏輯“與”結果。
本地側LTC4331/LTC4332還可以通過讓ON引腳保持低電平至少180ms來觸發遠程側複位。如果鏈路斷開,遠程LTC4331/LTC4332會在180ms後自動複位。遠程複位會禁用所有遠程側輸出,直到重新建立鏈路通信。
圖4.讀/寫故障監控寄存器的控製接口時序圖
LTC4331/LTC4332控製接口
要配置LTC4331/LTC4332鏈路本地側的控製接口,可使用單獨的內部可尋址外設。通過配置引腳A1和A2,可為本地LTC4331的內部接口分配一個唯一的I2C地址。LTC4332則提供了單獨的片選引腳,允許用戶與內部SPI可尋址寄存器通信。
圖5.LTC4332(左側)和LTC4331(右側)的內部框圖
LTC4331/LTC4332控製接口支持讀取速度配置、鏈路狀態和中斷/警報狀態,以及訪問其他I2C/SPI特定選項。LTC4331可以配置為將I2C地址轉換為遠程外設,從而擴展I2C地址空間並防止地址衝突。LTC4332允許每個CS引腳使用獨立的SPI模式配置,以及配置字長(用於確定所接收的數據延遲)。有關更多信息,請參閱LTC4331和LTC4332數據手冊。
PCB尺寸
PCB設計中的元件密度增加會導致複雜的問題。為了編碼SPI或I2C,通常需要額外的微控製器,這會增加解決方案成本和尺寸,但使用CN0564的話,遠程側無需額外的微控製器。這樣可實現更小的傳感器解決方案,其占用的PCB麵積更小,從而降低製造總成本,並為其他元件留下更多空間以提供更多特性。
圖6.LTC4331(I2C擴展器)和LTC4332(SPI擴展器)的本地EVAL-CN0564-ARDZ節點和遠程節點
擴展傳感器接口功能
更長傳輸距離的傳感器接口傳統上使用模擬信號技術,例如0-10V或4-20 mA。例如,在狀態監控應用中,集成電子壓電(IEPE)傳(chuan)感(gan)器(qi)接(jie)口(kou)是(shi)振(zhen)動(dong)傳(chuan)感(gan)器(qi)最(zui)常(chang)用(yong)的(de)信(xin)號(hao)標(biao)準(zhun)。它(ta)為(wei)振(zhen)動(dong)傳(chuan)感(gan)器(qi)提(ti)供(gong)恒(heng)定(ding)電(dian)流(liu)源(yuan),傳(chuan)感(gan)器(qi)輸(shu)出(chu)電(dian)壓(ya)通(tong)過(guo)相(xiang)同(tong)線(xian)路(lu)讀(du)回(hui)。當(dang)傳(chuan)輸(shu)交(jiao)流(liu)信(xin)號(hao)內(nei)容(rong)時(shi),這(zhe)種(zhong)雙(shuang)線(xian)係(xi)統(tong)可(ke)以(yi)簡(jian)化(hua)係(xi)統(tong)設(she)計(ji),但(dan)不(bu)提(ti)供(gong)額(e)外(wai)的(de)故(gu)障(zhang)監(jian)控(kong)或(huo)配(pei)置(zhi)能(neng)力(li)。
LTC4332/LTC4331則支持靈活的配置和處理,發生故障事件時可直接在數字輸出傳感器上輕鬆調試。
常見變化
當本地和遠程地電位之差超過容許的±25V (LTC4332)或±15V (LTC4331)時,需要使用電氣隔離。使用ADUM141E或ADUM140E之類的數字隔離器,可以將I2C/SPI信號與EVAL-CN0564-ARDZ上的本地LTC4331/ LTC4332進行電氣隔離,如圖7所示。
ADUM5020可為本地LTC4331/LTC4332提供高達100mA的隔離電源。
圖7.包含對數據和電源信號進行電氣隔離的框圖
電路評估與測試
以下部分介紹CN0564如何設置和測試。EVAL-CN0564-ARDZ可以與Arduino或Arduino兼容設備配合使用,以利用EVAL-ADXL357Z讀取加速度數據,從而輕鬆評估SPI (LTC4332)和I2C (LTC4331)擴展器。以下部分側重於在EVAL-CN0564-ARDZ上設置SPI擴展器(本地和遠程LTC4332)。
有關完整的設置詳情,以及SPI和I2C擴展器(本地和遠程LTC4331/LTC4332)上的設置說明,請訪問EVAL-CN0564-ARDZ用戶指南。
設備要求
● 帶USB端口的PC
● EVAL-CN0564-ARDZ評估板
● EVAL-ADXL357評估板
● EVAL-XLMOUNT1
● Arduino UNO Rev 3
● USB A型轉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(遠程側)連接到EVAL-ADXL357
4. 使用雙絞線中的跳線將LTC4332(本地側)連接到LTC4332(遠程側)
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。本地側的速度索引應與遠程側相同。
f. 應將P1跳線放置到位,使得其引腳2和3相連。同樣,還應將P2跳線放置到位,使得其引腳2和3相連。這將選擇速度索引8以匹配本地側的速度索引。
g. 正確放置P19跳線,使得其引腳1和2相連。這會將本地LTC4332上的ON引腳連接到IOREF。這將使能輸入。
圖8.本地和遠程LTC4332上的跳線配置
係統測試
將EVAL-ADXL357Z和遠程LTC4332安裝在EVAL-XLMOUNT1上,然後接通為電路板供電的電源。現在應能夠在EVAL-CN0564-ARDZ板上看到3個LED閃爍(本地2個LED,遠程側1個LED)。完整係統框圖參見圖9。
MEMS加速度計(遠程側EVAL-ADXL357Z上)讀取的X、Y和Z數據將顯示在Arduino串行監視器上。退出Arduino串行監視器並運行Python Real Time ADXL357 Data Plotter可執行文件,查看加速度數據的實時圖,如圖10所示的圖形。
X、Y和Z加速度(g)數據由python腳本存儲在三個單獨的文件中,可以在包含可執行文件的位置中找到。
電路評估與測試
圖9.采用ADXL357和Arduino UNO Rev 3的EVAL-CN0564-ARDZ係統測試設置
電路評估與測試
圖10.加速度數據的實時圖
也可以獲得圖11所示的FFT分析,以使用所獲得的X、Y和Z數據識別目標頻率。FFT分析常用於監視旋轉部件的健康狀況。預測性維護(PdM)是智能行業的關鍵組成部分,其涉及在運行期間監控設備以檢測潛在故障的預警跡象。有關如何分析狀態監控(CbM)係統中的振動數據的更多信息,請參閱此文章。
圖11.Z軸加速度數據的FFT分析
ESD警告
ESD(靜電放電)敏感器件。帶電器件和電路板可能會在沒有察覺的情況下放電。盡管本產品具有專利或專有保護電路,但在遇到高能量ESD時,器件可能會損壞。因此,應當采取適當的ESD防範措施,以避免器件性能下降或功能喪失。
Circuits from the Lab電路僅供與ADI公司產品一起使用,並且其知識產權歸ADI公gong司si或huo其qi授shou權quan方fang所suo有you。雖sui然ran您nin可ke以yi在zai產chan品pin設she計ji中zhong使shi用yong參can考kao電dian路lu,但dan是shi並bing未wei默mo認ren授shou予yu其qi它ta許xu可ke,或huo是shi通tong過guo此ci參can考kao電dian路lu的de應ying用yong及ji使shi用yong而er獲huo得de任ren何he專zhuan利li或huo其qi它ta知zhi識shi產chan權quan。ADI公司確信其所提供的信息是準確可靠的。不過,Circuits from the Lab電路是以“原樣”的方式提供的,並不具有任何性質的承諾,包括但不限於:明示、暗示或者法定承諾,任何適銷性、非侵權或者某特定用途實用性的暗示承諾,ADI公司無需為參考電路的使用承擔任何責任,也不對那些可能由於其使用而造成任何專利或其它第三方權利的侵權負責。ADI公司有權隨時修改任何參考電路,恕不另行通知。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 1200餘家企業齊聚深圳,CITE2026打造電子信息產業創新盛宴
- 掌握 Gemini 3.1 Pro 參數調優的藝術
- 築牢安全防線:電池擠壓試驗機如何為新能源產業護航?
- Grok 4.1 API 實戰:構建 X 平台實時輿情監控 Agent
- 電源芯片國產化新選擇:MUN3CAD03-SF助力物聯網終端“芯”升級
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




