【導(dǎo)讀】對于控制器和外設(shè)之間的短距離電路板內(nèi)連接,串行外設(shè)接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標(biāo)準(zhǔn)。由于存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執(zhí)行器和數(shù)據(jù)轉(zhuǎn)換器制造商廣泛采用。當(dāng)控制器和外設(shè)位于同一電路板上、共享同一接地層且相距不遠(yuǎn)(不大于1米)時,這些接口的實現(xiàn)相當(dāng)簡單。
評估和設(shè)計支持
電路評估板
CN0564參考設(shè)計板(EVAL-CN0564-ARDZ)
設(shè)計和集成文件
原理圖、布局文件、物料清單
電路功能與優(yōu)勢
對于控制器和外設(shè)之間的短距離電路板內(nèi)連接,串行外設(shè)接口(SPI)和Inter-Integrated Circuit (I2C)接口是流行的事實上的通信標(biāo)準(zhǔn)。由于存在廣泛的硬件和軟件支持,SPI和I2C已被傳感器、執(zhí)行器和數(shù)據(jù)轉(zhuǎn)換器制造商廣泛采用。當(dāng)控制器和外設(shè)位于同一電路板上、共享同一接地層且相距不遠(yuǎn)(不大于1米)時,這些接口的實現(xiàn)相當(dāng)簡單。
但是,狀態(tài)監(jiān)控、工廠自動化、樓宇自動化和結(jié)構(gòu)監(jiān)控等應(yīng)用要求外設(shè)位于遠(yuǎn)程位置,通常遠(yuǎn)離控制器。系統(tǒng)設(shè)計人員傳統(tǒng)上利用中繼器或具有更高驅(qū)動強(qiáng)度的驅(qū)動器來擴(kuò)展這些接口,其代價是整體成本和功耗增加。
圖1所示電路輕而易舉地解決了長距離、魯棒SPI/I2C通信的問題,對電路元件數(shù)量、工作速度或軟件復(fù)雜性則沒有任何影響。為了在高噪聲、惡劣的工業(yè)環(huán)境中無錯誤運(yùn)行,器件必須能承受較大地電位差。SPI/I2C擴(kuò)展器具有魯棒的收發(fā)器,可在±25V(SPI通信)和±15V(I2C通信)的擴(kuò)展共模范圍內(nèi)工作,支持長達(dá)1200米的距離。每個鏈路由位于電纜任一端的單個器件組成,電源電壓范圍為3V至5.5V,而單獨的邏輯電源允許I2C或SPI接口從1.62V至5.5V電源供電。擴(kuò)展器還提供了用于故障監(jiān)測的內(nèi)部控制接口;當(dāng)長距離監(jiān)測設(shè)備時,這非常重要。
圖1.EVAL-CN0564-ARDZ簡化功能框圖
ADI公司的Circuits from the Lab?電路由ADI工程師設(shè)計構(gòu)建。每個電路的設(shè)計和構(gòu)建都嚴(yán)格遵循標(biāo)準(zhǔn)工程規(guī)范,電路的功能和性能都在實驗室環(huán)境中以室溫條件進(jìn)行了測試和檢驗。然而,您需負(fù)責(zé)自行測試電路,并確定對您是否適用。因而,ADI公司將不對由任何原因、連接到任何所用參考電路上的任何物品所導(dǎo)致的直接、間接、特殊、偶然、必然或者懲罰性的損害負(fù)責(zé)。
電路描述
I2C信號標(biāo)準(zhǔn)綜述
I2C是用于雙向雙線接口的串行協(xié)議,可將EEPROM、模數(shù)和數(shù)模轉(zhuǎn)換器、I/O接口及其他外設(shè)連接到嵌入式處理器。由于簡單且可擴(kuò)展,它在傳感器領(lǐng)域非常受歡迎??偩€上可以存在多個器件,每個器件都有自己的唯一地址。它只需要2條線便可在器件之間傳輸數(shù)據(jù)。這2條線包括:
SCL - 串行時鐘信號線
SDA - 用于在控制器和外設(shè)之間發(fā)送和接收數(shù)據(jù)的串行數(shù)據(jù)線
SCL和SDA信號是開漏邏輯,I2C總線規(guī)范和用戶手冊(規(guī)范 - I2C總線)中定義了邏輯電平和時序規(guī)格
給定I2C總線上可以存在的外設(shè)數(shù)量受地址空間和最大400 pF的總線總電容限制。開漏邏輯具有相對較高的阻抗和較低的噪聲抗擾度,這就要求所有外設(shè)以低阻抗連接到公共接地回路,并且在100kHz時,最大總線長度以大約一米為限。CN0564則不同,它具有差分收發(fā)器,可將總線長度擴(kuò)展至1200米,并能承受控制器和外設(shè)之間最高±15V的共模壓差。
SDA本質(zhì)上是雙向的,在事務(wù)處理過程中,控制器與外設(shè)之間的數(shù)據(jù)流向會改變方向。雖然不是很常見,但是I2C支持時鐘延展,即外設(shè)可以讓SCK保持低電平以減慢時鐘速率。因此,SCL也是雙向的。I2C的雙向性質(zhì)使其不便于利用緩沖器擴(kuò)展、隔離或轉(zhuǎn)換到其他物理層,這需要多種邏輯電平和其他非標(biāo)準(zhǔn)技術(shù)。
常見I2C總線速度為100 kHz標(biāo)準(zhǔn)模式和400 kHz快速模式。LTC4331控制器接口支持最高2000 kHz的所有常見I2C時鐘速率。然而,在高時鐘頻率和長電纜的情況下,強(qiáng)烈建議使用完全支持SCL時鐘延展的控制器。(更多信息請參閱LTC4331數(shù)據(jù)手冊)
SPI信號標(biāo)準(zhǔn)綜述
串行外設(shè)接口(SPI)是一種同步串行通信接口規(guī)范,用于短距離通信,主要用在嵌入式系統(tǒng)中。與I2C不同,SPI的定義不嚴(yán)格。它支持多種時鐘頻率、邏輯電平和時序關(guān)系,需要仔細(xì)檢查控制器和外設(shè)規(guī)格。SPI是全雙工通信(即數(shù)據(jù)既可從控制器流向外設(shè),同時也可從外設(shè)流向控制器)。
SPI物理層由4個信號組成:
SCLK - 串行時鐘,通常由控制器驅(qū)動
MISO - 控制器數(shù)據(jù)輸入、外設(shè)數(shù)據(jù)輸出
MOSI - 控制器數(shù)據(jù)輸出、外設(shè)數(shù)據(jù)輸入
- 片選使能與外設(shè)通信。每個外設(shè)需要一條線。
SPI引腳使用推挽邏輯(而不是開漏),控制器和外設(shè)之間的邏輯電平必須匹配。每個外設(shè)都需要自己的信號,這使SPI總線的物理擴(kuò)展進(jìn)一步復(fù)雜化。
圖2.SPI配置模式
時鐘和數(shù)據(jù)之間支持四種不同的時序關(guān)系,分別稱為模式0、1、2、3,對應(yīng)于四種可能的時鐘配置。每個事務(wù)都是在片選線被驅(qū)動到邏輯低電平時開始(片選通常是低電平有效信號)。片選、數(shù)據(jù)和時鐘線之間的確切關(guān)系取決于時鐘極性(CPOL)和時鐘相位(CPHA)的配置。這四種模式總結(jié)在圖2中。
LTC4332最多支持3個遠(yuǎn)程外設(shè),每個外設(shè)都有自己的線。每個外設(shè)的SPI模式都可以獨立設(shè)置為模式0、1、2或3。數(shù)據(jù)從控制器透明地傳輸?shù)酵庠O(shè),但從外設(shè)到控制器的數(shù)據(jù)會引入一個字的延遲。有關(guān)更多信息,請參閱一字延遲 - SPI讀取命令部分。
系統(tǒng)拓?fù)?/p>
CN0564使用LTC4331和LTC4332來擴(kuò)展I2C和SPI信號,距離最長可達(dá)1200米。每個鏈路由一對器件組成,控制器側(cè)配置為本地模式(REMOTE引腳接低電平),外設(shè)側(cè)器件配置為遠(yuǎn)程模式(REMOTE引腳接高電平)。
電路描述
LTC4332/LTC4331將來自控制器的SPI/I2C信號編碼為差分信號,然后通過雙絞線電纜傳輸。在電纜的遠(yuǎn)端,差分信號由遠(yuǎn)程LTC4332/LTC4331接收并解碼回SPI/I2C,然后路由到遠(yuǎn)程外設(shè)。正常工作時,遠(yuǎn)程外設(shè)會鏡像本地控制器產(chǎn)生的事件。
可選波特率
LTC4332/LTC4331可以使用可選速度索引(如表1和表2所示)改變鏈路波特率——即數(shù)據(jù)在本地和遠(yuǎn)程鏈路之間傳輸?shù)乃俣取4怂俣人饕ㄟ^配置鏈路和接口時序選擇引腳SPEED1和SPEED2來設(shè)置,這兩個引腳均為三態(tài)輸入。
電纜上的可選波特率支持根據(jù)應(yīng)用要求平衡性能與電纜長度。但是,鏈路兩側(cè)的速度配置必須相同。
表1.LTC4331鏈路速度與電纜長度的關(guān)系
表2.LTC4332鏈路速度與電纜長度的關(guān)系
增加電纜傳輸長度
LTC4332/LTC4331利用高速差分收發(fā)器在最長1200米的鏈路上通信。I2C/SPI信號轉(zhuǎn)換為差分信號以實現(xiàn)高速高質(zhì)量信號傳輸、噪聲抗擾度和共模抑制。對于給定的速度設(shè)置,必須遵守表1(適用于LTC4331)和表2(適用于LTC4332)中給出的電纜長度規(guī)格,否則鏈路不會工作。表中的值是在實驗室環(huán)境中使用Cat5E以太網(wǎng)電纜測得。請注意,實際最大電纜長度取決于電纜類型和應(yīng)用環(huán)境。
共模電壓和ESD魯棒性
差分收發(fā)器工作在±25V(SPI擴(kuò)展器)和±15V(I2C擴(kuò)展器)的擴(kuò)展共模范圍內(nèi),因此它適合于高噪聲環(huán)境或存在地電位差的系統(tǒng)(參見圖1)。
接口引腳(LTC4331 A和B引腳,LTC4332 A、B、Y和Z引腳)具有故障保護(hù)功能,可承受最高±60V的電壓。接口引腳還有異常魯棒的靜電放電(ESD)保護(hù)特性。在所有工作模式下,或在未供電時,接口引腳能承受相對于GND和VCC(帶4.7μF電容接GND)的±40kV HBM ESD(人體模型測試),而不會發(fā)生閂鎖或損壞。
另外,LTC4331/LTC4332 ESD均通過了國際電工委員會(IEC) ESD和EFT(電氣快速瞬態(tài))測試。IEC ESD應(yīng)力在峰值電流、幅度和上升時間方面均超過了HBM測試,而EFT測試提供了長時間的重復(fù)應(yīng)力。這種保護(hù)等級可確保LTC4332/LTC4331在各種實際危險下都能如常運(yùn)行。
一字延遲 - SPI讀取命令
在I2C通信的情況下,LTC4331(本地)- LTC4331(遠(yuǎn)程)鏈路是透明的;遠(yuǎn)程外設(shè)顯示為本地控制器的本地器件。
但是,對于SPI擴(kuò)展器解決方案,LTC4332(本地)- LTC4332(遠(yuǎn)程)在讀訪問期間會引起一個字的延遲。從SPI控制器發(fā)送到外設(shè)的數(shù)據(jù)會經(jīng)歷與控制器啟動的接口時鐘(SCK)相同的延遲,因此兩者在整個數(shù)據(jù)鏈路上會保持同步。
在相反方向上,僅當(dāng)?shù)谝粫r鐘沿到達(dá)外設(shè)時,外設(shè)才將MISO數(shù)據(jù)發(fā)送到控制器。此數(shù)據(jù)在返回控制器的路徑上會經(jīng)歷第二次延遲,因此MISO數(shù)據(jù)會不同步,偏差為電纜傳輸延遲的兩倍。物理上較遠(yuǎn)的器件將需要大大降低時鐘速率以適應(yīng)每個比特寬度內(nèi)的傳輸延遲。為了克服這種限制,LTC4332將移位寄存器引入MISO信號路徑,如圖3所示。
圖3.將移位寄存器引入MISO信號路徑以適應(yīng)傳輸延遲
電路描述
因此,對遠(yuǎn)程外設(shè)的SPI寫請求是軟件透明的,但對遠(yuǎn)程外設(shè)的SPI讀請求會產(chǎn)生一個字的延遲,這意味著讀取命令需要擴(kuò)展一個字。若不如此,則當(dāng)片選取消置位時,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ū)動到低電平時表示遠(yuǎn)程I2C/SPI總線已加入本地I2C/SPI總線。
LTC4331/LTC4332支持中斷信號,LTC4331上為引腳,LTC4332上為引腳。這些信號從遠(yuǎn)程總線鏡像到本地總線。在遠(yuǎn)程端,中斷引腳是輸入,可以連接到相連I2C/SPI外設(shè)的中斷輸出。在本地端,/用作開漏輸出,可以連接到共享本地中斷線。如果使能,本地LTC4331/LTC4332的控制接口將使用/引腳報告鏈路和故障事件。本地側(cè)ALERT/INT輸出是遠(yuǎn)程/與內(nèi)部端點中斷信號的邏輯“與”結(jié)果。
本地側(cè)LTC4331/LTC4332還可以通過讓ON引腳保持低電平至少180ms來觸發(fā)遠(yuǎn)程側(cè)復(fù)位。如果鏈路斷開,遠(yuǎn)程LTC4331/LTC4332會在180ms后自動復(fù)位。遠(yuǎn)程復(fù)位會禁用所有遠(yuǎn)程側(cè)輸出,直到重新建立鏈路通信。
圖4.讀/寫故障監(jiān)控寄存器的控制接口時序圖
LTC4331/LTC4332控制接口
要配置LTC4331/LTC4332鏈路本地側(cè)的控制接口,可使用單獨的內(nèi)部可尋址外設(shè)。通過配置引腳A1和A2,可為本地LTC4331的內(nèi)部接口分配一個唯一的I2C地址。LTC4332則提供了單獨的片選引腳,允許用戶與內(nèi)部SPI可尋址寄存器通信。
圖5.LTC4332(左側(cè))和LTC4331(右側(cè))的內(nèi)部框圖
LTC4331/LTC4332控制接口支持讀取速度配置、鏈路狀態(tài)和中斷/警報狀態(tài),以及訪問其他I2C/SPI特定選項。LTC4331可以配置為將I2C地址轉(zhuǎn)換為遠(yuǎn)程外設(shè),從而擴(kuò)展I2C地址空間并防止地址沖突。LTC4332允許每個CS引腳使用獨立的SPI模式配置,以及配置字長(用于確定所接收的數(shù)據(jù)延遲)。有關(guān)更多信息,請參閱LTC4331和LTC4332數(shù)據(jù)手冊。
PCB尺寸
PCB設(shè)計中的元件密度增加會導(dǎo)致復(fù)雜的問題。為了編碼SPI或I2C,通常需要額外的微控制器,這會增加解決方案成本和尺寸,但使用CN0564的話,遠(yuǎn)程側(cè)無需額外的微控制器。這樣可實現(xiàn)更小的傳感器解決方案,其占用的PCB面積更小,從而降低制造總成本,并為其他元件留下更多空間以提供更多特性。
圖6.LTC4331(I2C擴(kuò)展器)和LTC4332(SPI擴(kuò)展器)的本地EVAL-CN0564-ARDZ節(jié)點和遠(yuǎn)程節(jié)點
擴(kuò)展傳感器接口功能
更長傳輸距離的傳感器接口傳統(tǒng)上使用模擬信號技術(shù),例如0-10V或4-20 mA。例如,在狀態(tài)監(jiān)控應(yīng)用中,集成電子壓電(IEPE)傳感器接口是振動傳感器最常用的信號標(biāo)準(zhǔn)。它為振動傳感器提供恒定電流源,傳感器輸出電壓通過相同線路讀回。當(dāng)傳輸交流信號內(nèi)容時,這種雙線系統(tǒng)可以簡化系統(tǒng)設(shè)計,但不提供額外的故障監(jiān)控或配置能力。
LTC4332/LTC4331則支持靈活的配置和處理,發(fā)生故障事件時可直接在數(shù)字輸出傳感器上輕松調(diào)試。
常見變化
當(dāng)本地和遠(yuǎn)程地電位之差超過容許的±25V (LTC4332)或±15V (LTC4331)時,需要使用電氣隔離。使用ADUM141E或ADUM140E之類的數(shù)字隔離器,可以將I2C/SPI信號與EVAL-CN0564-ARDZ上的本地LTC4331/ LTC4332進(jìn)行電氣隔離,如圖7所示。
ADUM5020可為本地LTC4331/LTC4332提供高達(dá)100mA的隔離電源。
圖7.包含對數(shù)據(jù)和電源信號進(jìn)行電氣隔離的框圖
電路評估與測試
以下部分介紹CN0564如何設(shè)置和測試。EVAL-CN0564-ARDZ可以與Arduino或Arduino兼容設(shè)備配合使用,以利用EVAL-ADXL357Z讀取加速度數(shù)據(jù),從而輕松評估SPI (LTC4332)和I2C (LTC4331)擴(kuò)展器。以下部分側(cè)重于在EVAL-CN0564-ARDZ上設(shè)置SPI擴(kuò)展器(本地和遠(yuǎn)程LTC4332)。
有關(guān)完整的設(shè)置詳情,以及SPI和I2C擴(kuò)展器(本地和遠(yuǎn)程LTC4331/LTC4332)上的設(shè)置說明,請訪問EVAL-CN0564-ARDZ用戶指南。
設(shè)備要求
● 帶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擴(kuò)展器而提供的Arduino草圖,并使用它對Arduino進(jìn)行編程。
2. 將EVAL-CN0564-ARDZ板插入Arduino Uno Rev 3
3. 將EVAL-CN0564-ARDZ上的LTC4332(遠(yuǎn)程側(cè))連接到EVAL-ADXL357
4. 使用雙絞線中的跳線將LTC4332(本地側(cè))連接到LTC4332(遠(yuǎn)程側(cè))
5. 跳線連接如下:
a. 正確放置P10跳線,使得P10上的引腳2和3在EVAL-CN0564-ARDZ上相連。這將選擇5V電源選項。
b. JP1跳線應(yīng)放置到位置D,以將本地LTC4332上的從器件/片選引腳連接到Arduino UNO Rev 3上的D10引腳。
c. JP5跳線應(yīng)放置到位置A,以將本地LTC4332上的引腳連接到Arduino UNO Rev 3上的D6引腳。
d. JP3跳線應(yīng)放置到位置B,以將本地LTC4332上的中斷引腳連接到Arduino UNO Rev 3上的D2引腳。
e. 默認(rèn)情況下,遠(yuǎn)程LTC4332選擇速度索引8。本地側(cè)的速度索引應(yīng)與遠(yuǎn)程側(cè)相同。
f. 應(yīng)將P1跳線放置到位,使得其引腳2和3相連。同樣,還應(yīng)將P2跳線放置到位,使得其引腳2和3相連。這將選擇速度索引8以匹配本地側(cè)的速度索引。
g. 正確放置P19跳線,使得其引腳1和2相連。這會將本地LTC4332上的ON引腳連接到IOREF。這將使能輸入。
圖8.本地和遠(yuǎn)程LTC4332上的跳線配置
系統(tǒng)測試
將EVAL-ADXL357Z和遠(yuǎn)程LTC4332安裝在EVAL-XLMOUNT1上,然后接通為電路板供電的電源?,F(xiàn)在應(yīng)能夠在EVAL-CN0564-ARDZ板上看到3個LED閃爍(本地2個LED,遠(yuǎn)程側(cè)1個LED)。完整系統(tǒng)框圖參見圖9。
MEMS加速度計(遠(yuǎn)程側(cè)EVAL-ADXL357Z上)讀取的X、Y和Z數(shù)據(jù)將顯示在Arduino串行監(jiān)視器上。退出Arduino串行監(jiān)視器并運(yùn)行Python Real Time ADXL357 Data Plotter可執(zhí)行文件,查看加速度數(shù)據(jù)的實時圖,如圖10所示的圖形。
X、Y和Z加速度(g)數(shù)據(jù)由python腳本存儲在三個單獨的文件中,可以在包含可執(zhí)行文件的位置中找到。
電路評估與測試
圖9.采用ADXL357和Arduino UNO Rev 3的EVAL-CN0564-ARDZ系統(tǒng)測試設(shè)置
電路評估與測試
圖10.加速度數(shù)據(jù)的實時圖
也可以獲得圖11所示的FFT分析,以使用所獲得的X、Y和Z數(shù)據(jù)識別目標(biāo)頻率。FFT分析常用于監(jiān)視旋轉(zhuǎn)部件的健康狀況。預(yù)測性維護(hù)(PdM)是智能行業(yè)的關(guān)鍵組成部分,其涉及在運(yùn)行期間監(jiān)控設(shè)備以檢測潛在故障的預(yù)警跡象。有關(guān)如何分析狀態(tài)監(jiān)控(CbM)系統(tǒng)中的振動數(shù)據(jù)的更多信息,請參閱此文章。
圖11.Z軸加速度數(shù)據(jù)的FFT分析
ESD警告
ESD(靜電放電)敏感器件。帶電器件和電路板可能會在沒有察覺的情況下放電。盡管本產(chǎn)品具有專利或?qū)S斜Wo(hù)電路,但在遇到高能量ESD時,器件可能會損壞。因此,應(yīng)當(dāng)采取適當(dāng)?shù)腅SD防范措施,以避免器件性能下降或功能喪失。
Circuits from the Lab電路僅供與ADI公司產(chǎn)品一起使用,并且其知識產(chǎn)權(quán)歸ADI公司或其授權(quán)方所有。雖然您可以在產(chǎn)品設(shè)計中使用參考電路,但是并未默認(rèn)授予其它許可,或是通過此參考電路的應(yīng)用及使用而獲得任何專利或其它知識產(chǎn)權(quán)。ADI公司確信其所提供的信息是準(zhǔn)確可靠的。不過,Circuits from the Lab電路是以“原樣”的方式提供的,并不具有任何性質(zhì)的承諾,包括但不限于:明示、暗示或者法定承諾,任何適銷性、非侵權(quán)或者某特定用途實用性的暗示承諾,ADI公司無需為參考電路的使用承擔(dān)任何責(zé)任,也不對那些可能由于其使用而造成任何專利或其它第三方權(quán)利的侵權(quán)負(fù)責(zé)。ADI公司有權(quán)隨時修改任何參考電路,恕不另行通知。
推薦閱讀: