隨著串行端口從臺式機和筆記本電腦中消失,通用串行總線 (USB) 現(xiàn)在是各種需要連接到 PC 的外圍設(shè)備的通用接口,無論是作為開發(fā)平臺還是商業(yè)產(chǎn)品。在這個由兩部分組成的系列的第一部分中,我們快速回顧了 USB 接口標(biāo)準(zhǔn)及其在嵌入式系統(tǒng)中不斷發(fā)展的作用。在這篇結(jié)論性文章中,我們將仔細研究在集成和獨立 USB 解決方案之間進行選擇,并研究 MCU 制造商在其 USB 連接中添加的一些創(chuàng)新功能,以幫助您的產(chǎn)品在具有挑戰(zhàn)性的應(yīng)用中競爭。我們將總結(jié)一些設(shè)計技術(shù),您可以使用這些技術(shù)使 USB 連接更符合嵌入式設(shè)計的要求。
決定何時整合
正如我們在第一部分中簡要討論的那樣,有幾個因素會影響最好是使用具有片上 USB 功能的 MCU 實現(xiàn) USB 連接還是使用單獨的 USB 控制器。在許多需要簡單 USB 連接的情況下,Atmel 的ATmega8U、Microchip Technology 的8 位PIC18F13K50或Silicon Labs 的 C8051F系列(圖 1)等集成解決方案幾乎是不費吹灰之力。

圖 1:具有集成 USB 收發(fā)器的簡單 8 位 MCU,例如 Silicon Labs 的 C8051 系列,是實現(xiàn)許多嵌入式設(shè)計的便捷且經(jīng)濟高效的方式。(由 Silicon Labs 提供。)
在需要支持特定 USB 協(xié)議類(例如 UART-to-USB 或 USB-to-SPI)的應(yīng)用中,選擇變得更加細致入微。例如,如果項目涉及使用 RS-232 接口更新現(xiàn)有產(chǎn)品以支持 USB,則使用單獨的 USB-UART 橋接器,例如 Microchips 的MCP2200 Silicon Labs 的CP2104或Texas Instruments 的 TUSB3410提供更短的開發(fā)周期和更少的制造供應(yīng)鏈中斷。如果原始設(shè)計基于速度較慢、功能較弱的 MCU,獨立控制器也可能特別有用,MCU 可能沒有額外的處理能力(或存儲空間)來支持協(xié)議/格式轉(zhuǎn)換所涉及的附加任務(wù)。
應(yīng)用優(yōu)化的 USB 芯片有助于微調(diào)您的設(shè)計
曾幾何時,設(shè)計具有一個或多個 USB 端口的嵌入式系統(tǒng)非常簡單,因為大多數(shù)設(shè)備(及其各自的驅(qū)動程序軟件)都非常相似,因此設(shè)計人員除了遵循參考設(shè)計外幾乎無能為力。不再。許多現(xiàn)代 MCU 上的 USB 連接背后的芯片已經(jīng)發(fā)展并適應(yīng)了復(fù)雜的嵌入式系統(tǒng)環(huán)境的需求。MCU 制造商現(xiàn)在提供各種支持 USB 的產(chǎn)品,這些產(chǎn)品具有各種級別的硬件加速,以滿足各種應(yīng)用的價格和性能目標(biāo)。
也許最大的創(chuàng)新領(lǐng)域是 MCU 如何執(zhí)行與 USB 協(xié)議相關(guān)的請求、確認、錯誤檢查和其他功能。在不經(jīng)常使用 MCU 的 USB 接口或傳輸小塊數(shù)據(jù)的應(yīng)用中,使用軟件執(zhí)行協(xié)議的例行信令和握手、數(shù)據(jù)包檢查和錯誤檢測任務(wù)可能沒問題。但是,如果您的應(yīng)用程序需要頻繁和/或大量 USB 事務(wù),它們可能會對 MCU 有限的處理資源造成過重的負擔(dān)。
直到最近,唯一的解決方案是使用獨立的 USB 外圍控制器,例如 Cypress Semiconductor 的CY7C63801或 Microchip 的USB3300-EZK. 現(xiàn)在,一些制造商提供具有集成 USB 控制器內(nèi)核和其他功能的 MCU,可以處理幾乎所有與 USB 相關(guān)的任務(wù)。
例如,愛特梅爾的AVR XMEGA系列 8/16 位 MCU 具有全速 USB 控制器內(nèi)核,除了卸載常規(guī)協(xié)議功能外,還使用乒乓緩沖器來減少或消除重新發(fā)送丟包 (NACK) 的需要,從而提高效率轉(zhuǎn)移。這種組合允許接口以或接近 USB 全速率規(guī)范支持的最大 11 Mbps 運行(有效數(shù)據(jù)速率高達 8.72 Mbits/s),同時僅消耗 CPU 處理能力的 7%。許多 Atmel MCU 還支持專有的多數(shù)據(jù)包傳輸模式,該模式使用硬件邏輯通過將大多數(shù)大容量存儲設(shè)備使用的 512 字節(jié)數(shù)據(jù)塊分解為塊傳輸協(xié)議支持的 64 字節(jié)數(shù)據(jù)包來提高 USB 塊傳輸?shù)男省?/p>
在硅食物鏈的更上游,Energy Micro在其基于EFM32 32 位 Cortex-M3 的 Gecko MCU 系列的許多變體上的 USB 端口中構(gòu)建了多項性能增強功能。大多數(shù)外圍功能的活動,包括串行通信和 USB 端口,由單獨的低功耗反射總線協(xié)調(diào)(圖 2)。除了防止數(shù)據(jù)傳輸占用任何主系統(tǒng)總線的帶寬外,來自一個外設(shè)的事件和信號還可用作輸入信號或其他外設(shè)的觸發(fā)器,從而確保時序關(guān)鍵操作并減少軟件開銷。此外,內(nèi)置的 3.3 V 穩(wěn)壓器還允許用戶使用 USB 鏈路提供的電源運行 MCU。

圖 2:Energy Micro 的 EFM32 MCU 架構(gòu)包括外設(shè)反射系統(tǒng),這是一種獨立的外設(shè)總線,允許智能外設(shè)(包括 USB 端口)在幾乎沒有 CPU 干預(yù)或影響主處理器總線的情況下執(zhí)行數(shù)據(jù)傳輸。(由能源微公司提供。)
MCU 制造商還提供了 USB 技術(shù)的改進,這對嵌入式和更傳統(tǒng)的應(yīng)用都有好處。例如,現(xiàn)在有幾個 MCU 提供片上計時電路,從而消除了與傳統(tǒng)上用于 USB 接口計時時鐘的參考晶體(及其相關(guān)無源元件)相關(guān)的成本和 PCB 空間。直到最近,為了保持 USB 收發(fā)器每 1 毫秒 (±0.0005 毫秒) 執(zhí)行的幀起始信號交換所需的 0.05% 精度,還需要一個基于晶體的定時源。Silicon Labs 推出了C8051F38x、C8051T62x和C8051T32x其 C8051 系列 8 位 MCU 包括一個片上時鐘調(diào)諧電路,該電路從傳入的 USB 數(shù)據(jù)包中恢復(fù)其時序信息。該功能還于 2012 年初在其“Precision 32” SiM3U1xx系列中引入,這是業(yè)界首創(chuàng)的 32 位處理器。
Atmel 的 XMEGA 系列 8/16 位 MCU 還提供無晶體操作,Microchip 將在其PIC16系列中引入許多新的微控制器(例如最近宣布的“未來產(chǎn)品”8 位 PIC16F1459)內(nèi)部振蕩器或自時鐘調(diào)諧電路,可從傳入的 USB 數(shù)據(jù)包中恢復(fù)其時序信息。
權(quán)力很重要
在嵌入式系統(tǒng)中,USB 收發(fā)器的功耗可能占總功耗預(yù)算的很大一部分,因此了解控制它的因素非常重要。盡管圖 3 中的公式最初是為 Microchip 的 USB PIC 微控制器的數(shù)據(jù)表使用而開發(fā)的,但它們?yōu)橛嬎?MCU 的嵌入式 USB 收發(fā)器使用的電流提供了有用的方法。從整個方程中 PZERO(邏輯“0”的百分比)和 PIN(輸入流量的百分比)項之間的關(guān)系,很快就可以看出,功耗取決于應(yīng)用,因為它會根據(jù)傳輸?shù)臄?shù)據(jù)。

圖 3:USB 收發(fā)器消耗的功率可以使用一個相對簡單的公式來計算,該公式描述了收發(fā)器的特性、它正在發(fā)送和接收的數(shù)據(jù)以及它所連接的電纜的長度。(由 Microchip Technologies 提供。)
在這些示例中要注意的另一個有趣的事情是,IN 流量的百分比為零會影響從總線汲取的電流量。許多設(shè)計人員使用邏輯“0”作為數(shù)據(jù)變量的默認值,但需要注意的是,與使用“1”相比,這實際上可能會略微增加系統(tǒng)電流。另請注意,這只是對 IN 流量的考慮,即從 USB 外設(shè)到 USB 主機的流量。
許多類別的 USB 外設(shè)現(xiàn)在使用 USB 作為實際電源,用于需要 100 mA 或更少電流的應(yīng)用。對于需要小于 500 mA 的應(yīng)用,決定變得有點困難,因為自供電集線器不太常見,而且許多設(shè)計人員仍然選擇使用單獨的總線電源。
對于需要超過 500 mA 的應(yīng)用,USB 規(guī)范包括一項電池充電規(guī)定,允許從系統(tǒng)中汲取高達 1.5A 的電流。不幸的是,由于支持電池充電規(guī)范的主機系統(tǒng)相對較少,外圍設(shè)備制造商不愿生產(chǎn)可以利用它的設(shè)備。您將在某些基于 USB 的手機或平板電腦充電器中看到此電池充電規(guī)范。電池充電規(guī)范包括一種廉價(盡管效率低下)的方式來實現(xiàn)充電器電路,只需通過電阻器(《 200 Ω)短接 USB 連接的 D+ 和 D- 引線,您將在最便宜的基于 USB 的手機中遇到這種技術(shù)/平板電腦充電器。
從信號的角度來看,為主機實現(xiàn)電池充電規(guī)范 v1.2 相當(dāng)簡單。所需要的只是一個介于 0.5 和 0.7V 之間的電壓源,該電壓源可以在該范圍內(nèi)提供 250μA 電流,但不會將 1.5k 上拉電阻拉至低于 2.2V 的 3.0V(圖 4)。此電壓源應(yīng)連接到 D- 并在設(shè)備分離時啟用,并在設(shè)備連接時禁用。圖 4 是一個簡單的原理圖,它將通過一個運算放大器、一個二極管、兩個電阻器和一個控制線來實現(xiàn)。

圖 4:允許 USB 主機使用其可選的高功率電池充電模式的簡單電路。(由 Microchip Technologies 提供。)
在外設(shè)上實現(xiàn) BCv1.2 規(guī)范要復(fù)雜一些。它需要兩個這樣的電壓源電路、兩個恒定電流吸收器,以及在 USB 外設(shè)上的更多代碼實現(xiàn),但它仍然在普通嵌入式設(shè)計人員的掌握范圍內(nèi)。
然而,制造商不愿投資于支持其主機系統(tǒng)中的大功率充電選項所需的額外單位成本,這導(dǎo)致了行業(yè)內(nèi)的“雞與蛋僵局”。幸運的是,如果 PC 制造商和其他 USB 主機設(shè)備制造商決定提供能夠支持平板電腦和其他與資源緊密集成的移動外圍設(shè)備更高功率要求的桌面產(chǎn)品,這種情況可能會在未來幾年內(nèi)改變他們的主機系統(tǒng)。
USB 功能通過支持與各種 USB 設(shè)備的通信以及添加可在單根電纜中提供高達 500 mA 電流的電源選項,為系統(tǒng)增加了便利性和靈活性。正如我們所指出的,通過添加集成 MCU 或獨立 USB 解決方案,可以將 USB 通信設(shè)計到嵌入式系統(tǒng)中。將 USB 集成到嵌入式設(shè)計中的主要考慮因素包括 USB 事務(wù)的大小和頻率、USB 收發(fā)器的功耗以及是否涉及 USB 電池充電規(guī)范 (v1.2)。我們提供并討論了集成 USB MCU 和獨立控制器的示例。
評論