如果必須隔離也連接到PC的設(shè)備,則USB接口是自然的選擇。USB廣泛的行業(yè)支持和簡(jiǎn)單的結(jié)構(gòu)(USB電纜中只有四根線)使其成為流行的PC接口。使用SPI接口連接到嵌入式系統(tǒng)的USB控制器易于電氣隔離。SPI接口可以以任何速度運(yùn)行,由簡(jiǎn)單的單向信號(hào)組成。
介紹
通用串行總線 (USB) 已成為將外圍設(shè)備連接到個(gè)人計(jì)算機(jī)的標(biāo)準(zhǔn)方式。如果您需要對(duì)要連接到PC的設(shè)備進(jìn)行電氣隔離,USB是一種自然的連接接口,因?yàn)樗哂袕V泛的行業(yè)支持。兩個(gè)明顯的隔離應(yīng)用是醫(yī)療和工業(yè),前者將基于 PC 的儀器連接到患者身上,后者可能發(fā)生較大的電源軌偏移。
USB 信令基礎(chǔ)知識(shí)
USB 以三種速度運(yùn)行:
低速,1.5Mbps
全速,12Mbps
高速,480Mbps
本文討論全速 (12Mbps) USB 連接的光隔離。12Mbps器件以足夠的帶寬工作,用于有用的數(shù)據(jù)傳輸,并采用的數(shù)據(jù)速率對(duì)于使用廉價(jià)光耦合器的設(shè)計(jì)來(lái)說(shuō)是可管理的。
USB連接器包含四根導(dǎo)線:兩根用于供電(VBUS和GND),兩根用于移動(dòng)USB數(shù)據(jù)(D+和D-)。VBUS導(dǎo)線提供5伏電源,最高可達(dá)500毫安。D+和D-信號(hào)是雙向的,以12Mbps(每比特單元83ns)的信令速率工作。D+和D-信號(hào)電壓為3.3V。
USB 隔離挑戰(zhàn)

圖1.有三種可能的接口可以隔離 USB 外設(shè):站點(diǎn) 1,USB 總線本身;站點(diǎn)2,收發(fā)器接口;和站點(diǎn) 3,應(yīng)用程序界面。在大多數(shù)當(dāng)前設(shè)計(jì)中,SIE和收發(fā)器是集成的,使得接口(2)無(wú)法訪問(wèn)。
USB外設(shè)是使用圖1所示的框圖構(gòu)建的。從右到左考慮這個(gè)數(shù)字,USB收發(fā)器連接到D+和D-線,并在OE(輸出使能)控制引腳的控制下驅(qū)動(dòng)或接收數(shù)據(jù)。中間模塊是USB串行接口引擎(SIE),將總線信號(hào)(由收發(fā)器看到和發(fā)送)轉(zhuǎn)換為數(shù)據(jù)字節(jié)和USB信號(hào),供實(shí)現(xiàn)USB外設(shè)的應(yīng)用使用。最左邊的模塊是應(yīng)用電路,可能是微處理器、ASIC 或數(shù)字信號(hào)處理器 (DSP)。
標(biāo)記為 1、2 和 3 的灰色矩形顯示了放置光耦合器的三個(gè)可能位置,以將 USB 設(shè)備與主機(jī)電氣隔離。

圖2.此示波器跡線顯示數(shù)據(jù)包開頭的 USB D+ 和 D- 信號(hào)(圖 1 中的站點(diǎn) 1)。83ns的位時(shí)間和緊密匹配的上升/下降時(shí)間使得難以通過(guò)光隔離器保持信號(hào)保真度。D+和D-是雙向的,使隔離進(jìn)一步復(fù)雜化。
站點(diǎn) 1
在USB總線線上光隔離不切實(shí)際有幾個(gè)原因,如圖2所示:
信號(hào)速率為12MHz,對(duì)于高性價(jià)比隔離器來(lái)說(shuō)太高了。
D+和D-信號(hào)必須仔細(xì)匹配傳播延遲和偏斜,這是光隔離器難以實(shí)現(xiàn)的。
情況更加復(fù)雜,因?yàn)榭偩€是雙向的,但隔離器是單向的。此外,在集成收發(fā)器的外設(shè)中,OE信號(hào)(指示方向)無(wú)法訪問(wèn)。
站點(diǎn) 2
使用外部收發(fā)器的 USB 外設(shè)公開收發(fā)器接口。因此,可以考慮將這些單向信號(hào)用于光隔離。然而,該站點(diǎn)存在與站點(diǎn)1相同的問(wèn)題:數(shù)據(jù)速率太高,并且確實(shí)有更多的信號(hào)以12MHz運(yùn)行需要隔離。VPO、VMO、RCV、VPI 和 VMI 都以 12MHz 速率運(yùn)行,需要仔細(xì)匹配延遲和偏斜。此外,在將SIE和收發(fā)器集成在同一芯片中的現(xiàn)代USB設(shè)計(jì)中,很少可以訪問(wèn)此接口。
站點(diǎn) 3
這是最有希望進(jìn)行隔離的地方。該接口的運(yùn)行速度可以比USB數(shù)據(jù)和線速慢,并且該接口可以完全由單向信號(hào)構(gòu)建。事實(shí)上,理想的接口將使用少量單向信號(hào),其工作速率遠(yuǎn)低于USB 12MHz信號(hào)速率。
滿足這些要求的理想接口是SPI(串行外設(shè)接口),最初由摩托羅拉定義,現(xiàn)在在許多半導(dǎo)體類型中廣泛使用。SPI由于其簡(jiǎn)單性和性能而是一個(gè)非常流行的接口。
SPI 信令基礎(chǔ)知識(shí)
| SPI 信號(hào) | 描述 | 評(píng)論 |
| SS# | 從設(shè)備選擇 | 選擇用于數(shù)據(jù)傳輸?shù)男酒?,由主站提?/strong> |
| MOSI | 主輸出從輸入 | 單向數(shù)據(jù)引腳 |
| MISO | 主輸入從輸出 | 單向數(shù)據(jù)引腳 |
| SCLK | 串行時(shí)鐘 | 串行時(shí)鐘,由主機(jī)提供 |
表1顯示了四個(gè)SPI接口信號(hào)。SPI是一個(gè)主從接口,其中主站發(fā)起并向單個(gè)從機(jī)執(zhí)行事務(wù)。主機(jī)提供從選擇(SS#)信號(hào)和串行時(shí)鐘(SCLK)以同步數(shù)據(jù)傳輸。SPI接口有四種時(shí)鐘模式,反映兩種模式信號(hào),稱為CPOL(時(shí)鐘極性)和CPHA(時(shí)鐘相位)。這些信號(hào)以(CPOL,CPHA)的形式表示。
圖3顯示了微處理器和SPI從器件之間的SPI數(shù)據(jù)傳輸。圖 3 使用最常見(jiàn)的 SPI 模式 (0,0)。在模式(0,0)下,時(shí)鐘處于低電平處于非活動(dòng)狀態(tài),SPI主機(jī)在第一個(gè)SCLK正邊沿之前提供MOSI數(shù)據(jù)。SPI數(shù)據(jù)在SCLK下降沿上發(fā)生變化,并在主器件和從器件的上升沿上采樣。

圖3.在模式 (0,0) 下運(yùn)行的 SPI 接口。如果 SCLK 信號(hào)設(shè)為低電平有效(靜態(tài)為高電平),則同一接口可以在模式 (1,1) 下工作。這些低頻信號(hào)易于光學(xué)隔離。
SPI接口易于在任何微處理器上實(shí)現(xiàn),即使是不包含硬件SPI單元的微處理器。只需四個(gè)通用 IO (GPIO) 引腳即可構(gòu)建圖 3 信號(hào),以及通過(guò)直接切換 IO 引腳來(lái)讀取和寫入字節(jié)的子程序。
圖4顯示了當(dāng)USB外設(shè)控制器使用SPI接口時(shí),SPI和USB之間的數(shù)據(jù)速率差異。在此圖中,控制微處理器用作USB鍵盤,并定期閃爍LED。圖5中的SPI流量表示一次LED閃爍(切換輸出位);USB 流量是請(qǐng)求鍵盤數(shù)據(jù)的 USB 主機(jī)。
這兩種總線之間的數(shù)據(jù)速率差異是巨大的。顯然,較低頻率的單向SPI信號(hào)比12MHz雙向USB總線信號(hào)更容易隔離。使用SPI信號(hào),隔離解決方案變得非常簡(jiǎn)單,可以定制為在任何頻率下運(yùn)行,以適應(yīng)光隔離器的特性。

圖4.SPI數(shù)據(jù)速率與USB信令速率的比較。SPI信號(hào)便于通過(guò)光耦合器傳輸。
產(chǎn)生圖4的系統(tǒng)如何協(xié)調(diào)操作USB控制器的SPI總線與USB信號(hào)速率之間的數(shù)據(jù)速率差異?USB的優(yōu)點(diǎn)之一是它是“自節(jié)流”的,內(nèi)置流量控制。它通過(guò)使用稱為“NAK”(否定確認(rèn))的握手來(lái)完成對(duì)數(shù)據(jù)流的控制,外圍設(shè)備告訴請(qǐng)求數(shù)據(jù)的主機(jī)它尚未準(zhǔn)備好數(shù)據(jù),主機(jī)應(yīng)稍后重試。
SPI 數(shù)據(jù)速率和 USB NAK

圖5.USB 總線跟蹤顯示外設(shè)響應(yīng)主機(jī)輸入數(shù)據(jù)請(qǐng)求的速度較慢。主機(jī)請(qǐng)求數(shù)據(jù)包 362-364 中的數(shù)據(jù)。外設(shè)已準(zhǔn)備好數(shù)據(jù)包420中的數(shù)據(jù)。中間的 IN-NAK 數(shù)據(jù)包演示了 USB 流控制。外設(shè)使用 NAK 進(jìn)行響應(yīng),直到準(zhǔn)備好數(shù)據(jù)。
圖 5 顯示了 USB 流控制機(jī)制的實(shí)際應(yīng)用。從數(shù)據(jù)包 362 開始,主機(jī)發(fā)出請(qǐng)求。數(shù)據(jù)包09倒數(shù)第二個(gè)字節(jié)中的363表示主機(jī)從外設(shè)請(qǐng)求9個(gè)字節(jié)的數(shù)據(jù)。外設(shè)確認(rèn)收到數(shù)據(jù)包 364 中的請(qǐng)求,然后忙于解碼請(qǐng)求并將請(qǐng)求的數(shù)據(jù)加載到其端點(diǎn) 0 數(shù)據(jù) FIFO 中。慢速外設(shè)需要一些時(shí)間來(lái)響應(yīng)此請(qǐng)求,相對(duì)較慢的SPI總線速度進(jìn)一步增加了響應(yīng)時(shí)間。Get_Descriptor-Configuration
在 988.667 微秒之后(數(shù)據(jù)包 364 之后),主機(jī)開始在數(shù)據(jù)包 366 中請(qǐng)求請(qǐng)求的數(shù)據(jù)。外圍設(shè)備還沒(méi)有數(shù)據(jù),因此 USB 硬件會(huì)自動(dòng)響應(yīng) NAK 握手,指示“我正忙,請(qǐng)稍后再試”。主機(jī)在數(shù)據(jù)包 368 中再次嘗試,并從外圍設(shè)備獲得相同的 NAK 應(yīng)答。此 IN-NAK 進(jìn)程一直持續(xù)到數(shù)據(jù)包 419,此時(shí)外設(shè)最終加載了請(qǐng)求的數(shù)據(jù)并為其端點(diǎn)零武裝以進(jìn)行數(shù)據(jù)傳輸。現(xiàn)在,外設(shè)不是 NAK,而是使用數(shù)據(jù)包 9 中的 420 字節(jié)數(shù)據(jù)包進(jìn)行響應(yīng),主機(jī)在數(shù)據(jù)包 421 中確認(rèn)該數(shù)據(jù)包。
IN-NAK對(duì)(圖5中的虛線矩形)可以出現(xiàn)任意次數(shù),這意味著SPI接口的運(yùn)行速率沒(méi)有下限。這允許設(shè)計(jì)人員微調(diào)SPI數(shù)據(jù)速率,以適應(yīng)光耦合器的選擇,從而實(shí)現(xiàn)實(shí)用且經(jīng)濟(jì)高效的設(shè)計(jì)。
隔離式 USB 設(shè)計(jì)示例

圖6.隔離式 USB 設(shè)計(jì)的示意圖。左側(cè)由USB總線本身供電,右側(cè)使用隔離電源。在SPI接口上提供隔離使設(shè)計(jì)變得簡(jiǎn)單,并且不受嚴(yán)格的USB總線時(shí)序的影響。
圖6是圍繞廉價(jià)微處理器構(gòu)建的電路:Atmel? AtTiny13 (U6)、HCPL-2531光耦合器 (U3-5) 和 MAX3420E (U1),MAX6E (U1)是一種USB外設(shè)控制器,具有與其寄存器組的SPI接口。盡管U6不包含硬件SPI單元,但SPI接口可以通過(guò)“位敲擊”一些GPIO引腳輕松管理。U1 提供 2 個(gè)通用輸入和 1 個(gè)通用輸出引腳,以替換(并添加到)U1 用于實(shí)現(xiàn) SPI 接口的引腳。此設(shè)計(jì)使用兩個(gè)輸出引腳驅(qū)動(dòng) LED 指示燈 D6 和 D<>,并使用一個(gè)輸入引腳連接按鈕 PB<>。由于U<>包含自己的IO引腳,由SPI接口控制,因此這些IO本質(zhì)上與U<>隔離,不需要單獨(dú)隔離。

圖7.隔離接口兩側(cè)的SPI SCLK信號(hào)。頂部:ISOVCC = 8.3V,ISOGND = 5V.底部:由 USB 供電:VCC = 3.3V,GND = 0V。
圖7顯示了隔離接口兩側(cè)SCLK信號(hào)的示波器走線。兩條跟蹤的基線設(shè)置在屏幕底部。頂部跡線顯示由U6生成的SCLK信號(hào),但偏移了5V。

圖8.SCK隔離(頂部)和MAX342E(底部),示為擴(kuò)展刻度。
圖8是圖7的擴(kuò)展標(biāo)度版本,展示了光耦合器的性能。光耦合器的吞吐延遲約為0.5μs,本設(shè)計(jì)選擇電阻值。中心的短 SCLK 脈沖由驅(qū)動(dòng) SCLK IO 引腳的 U6 代碼的一部分產(chǎn)生。U6 代碼的這一部分如圖 9 所示。

圖9.AtTiny13匯編代碼讀取MAX3420E寄存器。SPI接口時(shí)序可以在這里進(jìn)行微調(diào),以提供光耦合器的成本/性能權(quán)衡。
就在標(biāo)簽之前,SCK信號(hào)被驅(qū)動(dòng)為低電平,然后立即再次被驅(qū)動(dòng)為高電平。(和 是匯編宏,無(wú)需更改代碼即可輕松為特定電路板布局分配 IO 引腳。
通過(guò)在這兩個(gè)語(yǔ)句之間插入一些NOP指令,可以延長(zhǎng)圖8中的窄脈沖,從而為使用速度較慢(即成本較低)的光耦合器創(chuàng)造可能性。此過(guò)程說(shuō)明了SPI接口為光隔離應(yīng)用提供的靈活性。
結(jié)論
由于USB數(shù)據(jù)信號(hào)的高速、雙向特性和嚴(yán)格的匹配要求,電氣隔離USB一直是一個(gè)挑戰(zhàn)。如果隔離 USB 控制器和應(yīng)用處理器之間的接口(圖 3 中的站點(diǎn) 1),隔離問(wèn)題將變得更加簡(jiǎn)單,因?yàn)榇私涌诳梢砸匀魏嗡俾蔬\(yùn)行。Site 3的較低信令速率使其非常適合低成本光耦合器解決方案。與任何隔離設(shè)計(jì)一樣,需要隔離的線路越少,越能節(jié)省成本。SPI接口是隔離的理想候選者,因?yàn)樗鼉H使用四個(gè)低速單向信號(hào)。由于MAX3420E使用簡(jiǎn)單的SPI接口連接到任何控制器,因此為嵌入式系統(tǒng)添加USB功能提供了理想的方法,并具有提供簡(jiǎn)單隔離方案的額外優(yōu)勢(shì)。MAX3421E也可以用于隔離式USB主機(jī)應(yīng)用,MAX3420E既可以用作外設(shè),也可以用作主機(jī),使用與MAX<>E相同的SPI接口。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17530瀏覽量
189130 -
連接器
+關(guān)注
關(guān)注
100文章
15718瀏覽量
144550 -
usb
+關(guān)注
關(guān)注
60文章
8331瀏覽量
280170
發(fā)布評(píng)論請(qǐng)先 登錄
全速USB和高速USB的識(shí)別過(guò)程分析
使用數(shù)字隔離器簡(jiǎn)化醫(yī)療和工業(yè)應(yīng)用中的USB隔離
12Mbps的全速USB,隔離USB主機(jī)和外設(shè)的方法
全速USB控制芯片SL11的應(yīng)用
基于CPLD的USB總線的隔離接口實(shí)現(xiàn)
ADuM4160全速/低速USB數(shù)字隔離器
基于CPLD的USB總線的隔離接口實(shí)現(xiàn)
全速/低速USB數(shù)字隔離器ADuM31601
通過(guò)USB2.0全速接口實(shí)現(xiàn)PIC控制器與閃存盤的連接過(guò)程研究
ADuM4160:全速/低速USB數(shù)字隔離器 數(shù)據(jù)手冊(cè)
ADuM3160:全速/低速2.5 kV USB數(shù)字隔離器數(shù)據(jù)手冊(cè)
ISOUSB111全速/低速隔離式USB轉(zhuǎn)發(fā)器數(shù)據(jù)表
ISOUSB211高速/全速/低速隔離式USB轉(zhuǎn)發(fā)器數(shù)據(jù)表
ADUM3160全速/低速USB數(shù)字隔離器技術(shù)手冊(cè)
ADUM4160全速/低速USB數(shù)字隔離器技術(shù)手冊(cè)

全速USB連接的光隔離研究
評(píng)論