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