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