解決符合嵌入式設計的USB連接的技術方案
曾幾何時,設計帶有一個或多個USB端口的嵌入式系統(tǒng)非常簡單,因為大多數(shù)設備(及其各自的驅(qū)動軟件)非常相似,所以除了遵循參考設計之外,設計師幾乎無能為力。不再。位于許多現(xiàn)代MCU上的USB連接后面的芯片已經(jīng)發(fā)展并進行了調(diào)整,以滿足粗糙的嵌入式系統(tǒng)環(huán)境的需求。 MCU制造商現(xiàn)在提供各種支持USB的產(chǎn)品,這些產(chǎn)品具有各種級別的硬件加速,可滿足各種應用的價格和性能目標。
也許最大的創(chuàng)新領域是MCU如何執(zhí)行請求,確認,錯誤檢查以及與USB協(xié)議相關的其他功能。在不經(jīng)常使用MCU的USB接口或傳輸小塊數(shù)據(jù)的應用中,使用軟件執(zhí)行協(xié)議的例行信令和握手,數(shù)據(jù)包檢查和錯誤檢測任務可能很好。但是,如果您的應用需要頻繁和/或大型USB事務處理,則可能會對MCU的有限處理資源造成太大負擔。
直到最近,唯一的解決方案是使用獨立的USB外設控制器,如賽普拉斯半導體的CY7C63801或Microchip的USB3300-EZK?,F(xiàn)在,一些制造商提供具有集成USB控制器內(nèi)核和其他功能的MCU,可以處理幾乎所有與USB相關的任務。
例如,Atmel的AVR XMEGA系列8/16位MCU具有全速USB控制器內(nèi)核,除了卸載常規(guī)協(xié)議功能外,還使用Ping-Pong緩沖器來減少或消除重置發(fā)送丟棄的數(shù)據(jù)包(NACK)以實現(xiàn)更高效的傳輸。這種組合允許接口以USB全速率規(guī)范支持的最大11 Mbps(或有效數(shù)據(jù)速率高達8.72 Mbits/s)運行或接近,同時僅消耗CPU處理能力的7%。許多Atmel MCU還支持專有的多數(shù)據(jù)包傳輸模式,該模式使用硬件邏輯通過將大多數(shù)大容量存儲設備使用的512字節(jié)數(shù)據(jù)塊拆分為塊傳輸協(xié)議支持的64字節(jié)數(shù)據(jù)包來提高USB塊傳輸?shù)男?。相同的機制還可以將傳入的多數(shù)據(jù)包傳輸重新組合成更大的數(shù)據(jù)塊,而無需任何CPU干預。
進一步推動硅食品鏈,Energy Micro在其基于EFM32 32位Cortex-M3的Gecko MCU系列的許多變體上提供了多種性能增強功能。大多數(shù)外圍功能(包括串行通信和USB端口)的活動由單獨的低功耗反射總線協(xié)調(diào)(圖2)。除了防止數(shù)據(jù)傳輸消耗任何主系統(tǒng)總線的帶寬之外,來自一個外設的事件和信號可以用作其他外設的輸入信號或觸發(fā),并以這種方式確保時序關鍵操作和降低的軟件開銷。此外,內(nèi)置3.3 V穩(wěn)壓器還允許用戶通過USB鏈路提供的電源運行MCU。
圖1:Energy Micro的EFM32 MCU架構(gòu)包括外圍反射系統(tǒng),這是一個獨立的外圍總線,允許智能外設(包括USB端口)執(zhí)行數(shù)據(jù)傳輸,幾乎不會干擾CPU或影響主處理器總線。 (由Energy Micro提供。)MCU制造商也在提供USB技術的改進,這對嵌入式和更傳統(tǒng)的應用都有好處。例如,幾個MCU現(xiàn)在提供片上定時電路,消除了與USB接口的定時時鐘中傳統(tǒng)使用的參考晶體(及其相關的無源元件)相關的成本和PCB面積。直到最近,基于晶體的定時源才能保持USB收發(fā)器每1 ms(±0.0005 ms)執(zhí)行的幀起始信號交換所需的0.05%精度。 Silicon Labs向其C8051系列8位MCU推出了C8051F38x,C8051T62x和C8051T32x,其中包括一個片上時鐘調(diào)諧電路,可從輸入的USB數(shù)據(jù)包中恢復其時序信息。 2012年初,他們的“Precision 32”SiM3U1xx系列也推出了這一功能,這是32位處理器的業(yè)界首創(chuàng)。
Atmel的XMEGA系列8/16位MCU還提供無晶體操作,Microchip將為其PIC16系列推出一系列新型微控制器(例如最近發(fā)布的“未來產(chǎn)品”8位PIC16F1459)精密內(nèi)部振蕩器或自動時鐘調(diào)諧電路,可從輸入的USB數(shù)據(jù)包中恢復其定時信息。
Power
在嵌入式系統(tǒng)中,USB收發(fā)器的功耗可占整體功率預算的很大一部分,因此了解控制它的因素非常重要。雖然圖3中的公式最初是為Microchip的USB PIC單片機的數(shù)據(jù)表開發(fā)的,但它們提供了一種有用的方法來計算MCU嵌入式USB收發(fā)器使用的電流。從總體方程中的術語PZERO(邏輯“0”的百分比)和PIN(輸入流量的百分比)的關系來看,很快就會發(fā)現(xiàn)功耗取決于應用,因為它根據(jù)數(shù)量和值而變化。傳輸?shù)臄?shù)據(jù)。
圖2:USB收發(fā)器消耗的功率可以使用相對簡單的公式計算,該公式描述了收發(fā)器的特性,它正在發(fā)送和接收的數(shù)據(jù),以及它所連接的電纜的長度。 (由Microchip Technologies提供。)
在這些示例中需要注意的另一個有趣的事情是,IN流量為零的百分比會影響從總線吸取的電流量。許多設計人員使用邏輯“0”作為數(shù)據(jù)變量的默認值,但重要的是要注意,與使用“1s”相比,這實際上可以略微增加系統(tǒng)電流。另請注意,這只是IN流量的考慮因素,即從USB外設到USB主機的流量。
現(xiàn)在,許多類別的USB外設都使用USB作為需要100 mA或更低電流的應用的事實上的電源。對于需要低于500 mA的應用,決策變得更加困難,因為自供電集線器不太常見,許多設計人員仍然選擇使用單獨的總線電源。
對于要求超過500 mA的應用,USB規(guī)范包括電池充電規(guī)定,允許從系統(tǒng)中提取高達1.5A的電流。遺憾的是,由于支持電池充電規(guī)范的主機系統(tǒng)相對較少,外圍設備制造商不愿意生產(chǎn)可以利用它的設備。您將看到這種電池充電規(guī)格適用于某些基于USB的手機或平板電腦充電器。電池充電規(guī)范包括一種廉價(雖然效率低)的方式來實現(xiàn)充電器電路,只需通過一個電阻(《200Ω)短接USB連接的D +和D-引線,這種技術在大多數(shù)廉價的基于USB的手機中都會遇到/平板電腦充電器。從信令的角度來看,為主機實現(xiàn)電池充電規(guī)范v1.2非常簡單。所需要的只是0.5和0.7V之間的電壓源,可以在該范圍內(nèi)提供250μA電流,但不會將1.5k上拉電壓拉至2.2 V以下的3.0 V。此電壓源應連接到D-并在分離設備時啟用,并在設備連接時禁用。圖4是一個簡單的原理圖,通過運算放大器,二極管,兩個電阻和一條控制線來實現(xiàn)這一目標。
圖3:一個簡單的電路,允許USB主機使用其可選的高功率電池充電模式。 (由Microchip Technologies提供。)
在外設上實現(xiàn)BCv1.2規(guī)范要復雜一些。它需要兩個這樣的電壓源電路,兩個恒流吸收器,以及USB外設上的更多代碼實現(xiàn),但它仍然在普通嵌入式設計人員的掌握之中。然而,不愿制造商投資支持其主機系統(tǒng)中的高功率充電選項所需的額外單位成本,導致業(yè)內(nèi)一些“雞與蛋的僵局”。幸運的是,如果PC制造商和其他USB主機設備制造商決定提供能夠支持平板電腦和與資源緊密集成的其他移動外圍設備的更高功率要求的基于臺式機的產(chǎn)品,這可能在未來幾年內(nèi)發(fā)生變化他們的主機系統(tǒng)。
USB功能通過與各種USB設備進行通信,以及在單根電纜中添加可提供高達500 mA電流的電源選項,為系統(tǒng)增加了便利性和靈活性。正如我們所指出的,通過添加集成MCU或獨立USB解決方案,可以將USB通信設計到嵌入式系統(tǒng)中。將USB融入嵌入式設計的主要考慮因素包括USB交易的大小和頻率,USB收發(fā)器的功耗以及是否涉及USB電池充電規(guī)范(v1.2)。我們提供并討論了集成USB MCU和獨立控制器的示例。