如果必須隔離也連接到PC的設(shè)備,則USB接口是自然的選擇。USB廣泛的行業(yè)支持和簡單的結(jié)構(gòu)(USB電纜中只有四根線)使其成為流行的PC接口。使用SPI接口連接到嵌入式系統(tǒng)的USB控制器易于電氣隔離。SPI接口可以以任何速度運行,由簡單的單向信號組成。
介紹
通用串行總線 (USB) 已成為將外圍設(shè)備連接到個人計算機的標準方式。如果您需要對要連接到PC的設(shè)備進行電氣隔離,USB是一種自然的連接接口,因為它具有廣泛的行業(yè)支持。兩個明顯的隔離應用是醫(yī)療和工業(yè),前者將基于 PC 的儀器連接到患者身上,后者可能發(fā)生較大的電源軌偏移。
USB 信令基礎(chǔ)知識
USB 以三種速度運行:
低速,1.5Mbps
全速,12Mbps
高速,480Mbps
本文討論全速 (12Mbps) USB 連接的光隔離。12Mbps器件以足夠的帶寬工作,用于有用的數(shù)據(jù)傳輸,并采用的數(shù)據(jù)速率對于使用廉價光耦合器的設(shè)計來說是可管理的。
USB連接器包含四根導線:兩根用于供電(VBUS和GND),兩根用于移動USB數(shù)據(jù)(D+和D-)。VBUS導線提供5伏電源,最高可達500毫安。D+和D-信號是雙向的,以12Mbps(每比特單元83ns)的信令速率工作。D+和D-信號電壓為3.3V。
USB 隔離挑戰(zhàn)
圖1.有三種可能的接口可以隔離 USB 外設(shè):站點 1,USB 總線本身;站點2,收發(fā)器接口;和站點 3,應用程序界面。在大多數(shù)當前設(shè)計中,SIE和收發(fā)器是集成的,使得接口(2)無法訪問。
USB外設(shè)是使用圖1所示的框圖構(gòu)建的。從右到左考慮這個數(shù)字,USB收發(fā)器連接到D+和D-線,并在OE(輸出使能)控制引腳的控制下驅(qū)動或接收數(shù)據(jù)。中間模塊是USB串行接口引擎(SIE),將總線信號(由收發(fā)器看到和發(fā)送)轉(zhuǎn)換為數(shù)據(jù)字節(jié)和USB信號,供實現(xiàn)USB外設(shè)的應用使用。最左邊的模塊是應用電路,可能是微處理器、ASIC 或數(shù)字信號處理器 (DSP)。
標記為 1、2 和 3 的灰色矩形顯示了放置光耦合器的三個可能位置,以將 USB 設(shè)備與主機電氣隔離。
圖2.此示波器跡線顯示數(shù)據(jù)包開頭的 USB D+ 和 D- 信號(圖 1 中的站點 1)。83ns的位時間和緊密匹配的上升/下降時間使得難以通過光隔離器保持信號保真度。D+和D-是雙向的,使隔離進一步復雜化。
站點 1
在USB總線線上光隔離不切實際有幾個原因,如圖2所示:
信號速率為12MHz,對于高性價比隔離器來說太高了。
D+和D-信號必須仔細匹配傳播延遲和偏斜,這是光隔離器難以實現(xiàn)的。
情況更加復雜,因為總線是雙向的,但隔離器是單向的。此外,在集成收發(fā)器的外設(shè)中,OE信號(指示方向)無法訪問。
站點 2
使用外部收發(fā)器的 USB 外設(shè)公開收發(fā)器接口。因此,可以考慮將這些單向信號用于光隔離。然而,該站點存在與站點1相同的問題:數(shù)據(jù)速率太高,并且確實有更多的信號以12MHz運行需要隔離。VPO、VMO、RCV、VPI 和 VMI 都以 12MHz 速率運行,需要仔細匹配延遲和偏斜。此外,在將SIE和收發(fā)器集成在同一芯片中的現(xiàn)代USB設(shè)計中,很少可以訪問此接口。
站點 3
這是最有希望進行隔離的地方。該接口的運行速度可以比USB數(shù)據(jù)和線速慢,并且該接口可以完全由單向信號構(gòu)建。事實上,理想的接口將使用少量單向信號,其工作速率遠低于USB 12MHz信號速率。
滿足這些要求的理想接口是SPI(串行外設(shè)接口),最初由摩托羅拉定義,現(xiàn)在在許多半導體類型中廣泛使用。SPI由于其簡單性和性能而是一個非常流行的接口。
SPI 信令基礎(chǔ)知識
SPI 信號 | 描述 | 評論 |
SS# | 從設(shè)備選擇 | 選擇用于數(shù)據(jù)傳輸?shù)男酒?,由主站提?/strong> |
MOSI | 主輸出從輸入 | 單向數(shù)據(jù)引腳 |
MISO | 主輸入從輸出 | 單向數(shù)據(jù)引腳 |
SCLK | 串行時鐘 | 串行時鐘,由主機提供 |
表1顯示了四個SPI接口信號。SPI是一個主從接口,其中主站發(fā)起并向單個從機執(zhí)行事務。主機提供從選擇(SS#)信號和串行時鐘(SCLK)以同步數(shù)據(jù)傳輸。SPI接口有四種時鐘模式,反映兩種模式信號,稱為CPOL(時鐘極性)和CPHA(時鐘相位)。這些信號以(CPOL,CPHA)的形式表示。
圖3顯示了微處理器和SPI從器件之間的SPI數(shù)據(jù)傳輸。圖 3 使用最常見的 SPI 模式 (0,0)。在模式(0,0)下,時鐘處于低電平處于非活動狀態(tài),SPI主機在第一個SCLK正邊沿之前提供MOSI數(shù)據(jù)。SPI數(shù)據(jù)在SCLK下降沿上發(fā)生變化,并在主器件和從器件的上升沿上采樣。
圖3.在模式 (0,0) 下運行的 SPI 接口。如果 SCLK 信號設(shè)為低電平有效(靜態(tài)為高電平),則同一接口可以在模式 (1,1) 下工作。這些低頻信號易于光學隔離。
SPI接口易于在任何微處理器上實現(xiàn),即使是不包含硬件SPI單元的微處理器。只需四個通用 IO (GPIO) 引腳即可構(gòu)建圖 3 信號,以及通過直接切換 IO 引腳來讀取和寫入字節(jié)的子程序。
圖4顯示了當USB外設(shè)控制器使用SPI接口時,SPI和USB之間的數(shù)據(jù)速率差異。在此圖中,控制微處理器用作USB鍵盤,并定期閃爍LED。圖5中的SPI流量表示一次LED閃爍(切換輸出位);USB 流量是請求鍵盤數(shù)據(jù)的 USB 主機。
這兩種總線之間的數(shù)據(jù)速率差異是巨大的。顯然,較低頻率的單向SPI信號比12MHz雙向USB總線信號更容易隔離。使用SPI信號,隔離解決方案變得非常簡單,可以定制為在任何頻率下運行,以適應光隔離器的特性。
圖4.SPI數(shù)據(jù)速率與USB信令速率的比較。SPI信號便于通過光耦合器傳輸。
產(chǎn)生圖4的系統(tǒng)如何協(xié)調(diào)操作USB控制器的SPI總線與USB信號速率之間的數(shù)據(jù)速率差異?USB的優(yōu)點之一是它是“自節(jié)流”的,內(nèi)置流量控制。它通過使用稱為“NAK”(否定確認)的握手來完成對數(shù)據(jù)流的控制,外圍設(shè)備告訴請求數(shù)據(jù)的主機它尚未準備好數(shù)據(jù),主機應稍后重試。
SPI 數(shù)據(jù)速率和 USB NAK
圖5.USB 總線跟蹤顯示外設(shè)響應主機輸入數(shù)據(jù)請求的速度較慢。主機請求數(shù)據(jù)包 362-364 中的數(shù)據(jù)。外設(shè)已準備好數(shù)據(jù)包420中的數(shù)據(jù)。中間的 IN-NAK 數(shù)據(jù)包演示了 USB 流控制。外設(shè)使用 NAK 進行響應,直到準備好數(shù)據(jù)。
圖 5 顯示了 USB 流控制機制的實際應用。從數(shù)據(jù)包 362 開始,主機發(fā)出請求。數(shù)據(jù)包09倒數(shù)第二個字節(jié)中的363表示主機從外設(shè)請求9個字節(jié)的數(shù)據(jù)。外設(shè)確認收到數(shù)據(jù)包 364 中的請求,然后忙于解碼請求并將請求的數(shù)據(jù)加載到其端點 0 數(shù)據(jù) FIFO 中。慢速外設(shè)需要一些時間來響應此請求,相對較慢的SPI總線速度進一步增加了響應時間。Get_Descriptor-Configuration
在 988.667 微秒之后(數(shù)據(jù)包 364 之后),主機開始在數(shù)據(jù)包 366 中請求請求的數(shù)據(jù)。外圍設(shè)備還沒有數(shù)據(jù),因此 USB 硬件會自動響應 NAK 握手,指示“我正忙,請稍后再試”。主機在數(shù)據(jù)包 368 中再次嘗試,并從外圍設(shè)備獲得相同的 NAK 應答。此 IN-NAK 進程一直持續(xù)到數(shù)據(jù)包 419,此時外設(shè)最終加載了請求的數(shù)據(jù)并為其端點零武裝以進行數(shù)據(jù)傳輸。現(xiàn)在,外設(shè)不是 NAK,而是使用數(shù)據(jù)包 9 中的 420 字節(jié)數(shù)據(jù)包進行響應,主機在數(shù)據(jù)包 421 中確認該數(shù)據(jù)包。
IN-NAK對(圖5中的虛線矩形)可以出現(xiàn)任意次數(shù),這意味著SPI接口的運行速率沒有下限。這允許設(shè)計人員微調(diào)SPI數(shù)據(jù)速率,以適應光耦合器的選擇,從而實現(xiàn)實用且經(jīng)濟高效的設(shè)計。
隔離式 USB 設(shè)計示例
圖6.隔離式 USB 設(shè)計的示意圖。左側(cè)由USB總線本身供電,右側(cè)使用隔離電源。在SPI接口上提供隔離使設(shè)計變得簡單,并且不受嚴格的USB總線時序的影響。
圖6是圍繞廉價微處理器構(gòu)建的電路:Atmel? AtTiny13 (U6)、HCPL-2531光耦合器 (U3-5) 和 MAX3420E (U1),MAX6E (U1)是一種USB外設(shè)控制器,具有與其寄存器組的SPI接口。盡管U6不包含硬件SPI單元,但SPI接口可以通過“位敲擊”一些GPIO引腳輕松管理。U1 提供 2 個通用輸入和 1 個通用輸出引腳,以替換(并添加到)U1 用于實現(xiàn) SPI 接口的引腳。此設(shè)計使用兩個輸出引腳驅(qū)動 LED 指示燈 D6 和 D<>,并使用一個輸入引腳連接按鈕 PB<>。由于U<>包含自己的IO引腳,由SPI接口控制,因此這些IO本質(zhì)上與U<>隔離,不需要單獨隔離。
圖7.隔離接口兩側(cè)的SPI SCLK信號。頂部:ISOVCC = 8.3V,ISOGND = 5V.底部:由 USB 供電:VCC = 3.3V,GND = 0V。
圖7顯示了隔離接口兩側(cè)SCLK信號的示波器走線。兩條跟蹤的基線設(shè)置在屏幕底部。頂部跡線顯示由U6生成的SCLK信號,但偏移了5V。
圖8.SCK隔離(頂部)和MAX342E(底部),示為擴展刻度。
圖8是圖7的擴展標度版本,展示了光耦合器的性能。光耦合器的吞吐延遲約為0.5μs,本設(shè)計選擇電阻值。中心的短 SCLK 脈沖由驅(qū)動 SCLK IO 引腳的 U6 代碼的一部分產(chǎn)生。U6 代碼的這一部分如圖 9 所示。
圖9.AtTiny13匯編代碼讀取MAX3420E寄存器。SPI接口時序可以在這里進行微調(diào),以提供光耦合器的成本/性能權(quán)衡。
就在標簽之前,SCK信號被驅(qū)動為低電平,然后立即再次被驅(qū)動為高電平。(和 是匯編宏,無需更改代碼即可輕松為特定電路板布局分配 IO 引腳。
通過在這兩個語句之間插入一些NOP指令,可以延長圖8中的窄脈沖,從而為使用速度較慢(即成本較低)的光耦合器創(chuàng)造可能性。此過程說明了SPI接口為光隔離應用提供的靈活性。
結(jié)論
由于USB數(shù)據(jù)信號的高速、雙向特性和嚴格的匹配要求,電氣隔離USB一直是一個挑戰(zhàn)。如果隔離 USB 控制器和應用處理器之間的接口(圖 3 中的站點 1),隔離問題將變得更加簡單,因為此接口可以以任何速率運行。Site 3的較低信令速率使其非常適合低成本光耦合器解決方案。與任何隔離設(shè)計一樣,需要隔離的線路越少,越能節(jié)省成本。SPI接口是隔離的理想候選者,因為它僅使用四個低速單向信號。由于MAX3420E使用簡單的SPI接口連接到任何控制器,因此為嵌入式系統(tǒng)添加USB功能提供了理想的方法,并具有提供簡單隔離方案的額外優(yōu)勢。MAX3421E也可以用于隔離式USB主機應用,MAX3420E既可以用作外設(shè),也可以用作主機,使用與MAX<>E相同的SPI接口。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17113瀏覽量
184421 -
連接器
+關(guān)注
關(guān)注
99文章
15390瀏覽量
140612 -
usb
+關(guān)注
關(guān)注
60文章
8191瀏覽量
273127
發(fā)布評論請先 登錄
全速USB和高速USB的識別過程分析
使用數(shù)字隔離器簡化醫(yī)療和工業(yè)應用中的USB隔離
12Mbps的全速USB,隔離USB主機和外設(shè)的方法
全速USB控制芯片SL11的應用
基于CPLD的USB總線的隔離接口實現(xiàn)
ADuM4160全速/低速USB數(shù)字隔離器
基于CPLD的USB總線的隔離接口實現(xiàn)
全速/低速USB數(shù)字隔離器ADuM31601
通過USB2.0全速接口實現(xiàn)PIC控制器與閃存盤的連接過程研究

ADuM4160:全速/低速USB數(shù)字隔離器 數(shù)據(jù)手冊

ADuM3160:全速/低速2.5 kV USB數(shù)字隔離器數(shù)據(jù)手冊

ISOUSB111全速/低速隔離式USB轉(zhuǎn)發(fā)器數(shù)據(jù)表

ISOUSB211高速/全速/低速隔離式USB轉(zhuǎn)發(fā)器數(shù)據(jù)表

ADUM3160全速/低速USB數(shù)字隔離器技術(shù)手冊

ADUM4160全速/低速USB數(shù)字隔離器技術(shù)手冊

評論