幾乎所有的現代系列MCU具有USB外設。因為USB是一個標準的,則可能期望所有USB實現都是相同的。如果是的話,你會通過各種符合標準,而且還提供了額外的功能和特性,可能只是做一個特定的MCU適合您的下一個設計的實現驚訝。本文將介紹一些差異化的USB功能,你會發現,在流行的MCU系列。一旦你了解一些關鍵的不同,你可以更好地尋找,將提供完美的適合你的下一個設計的實現。
USB基礎知識
同時在硬件和軟件的水平 - 通用串行總線或USB,已由于其簡單的物理層接口,它的靈活性,并且易于整合越來越流行。標準化和集成連接器可以很容易地接口的MCU的USB連接線,共同驅動程序和應用程序接口,或API,可以很容易地訪問通過USB連接來傳輸和接收信息的數據包所需要的數據和控制元件。現成的參考設計,評估板和代碼示例進一步簡化基于MCU的實施。最近引入的在USB 3.1標準,具有高達10 Gbit / s的數據信號速率示出了標準的不斷發展和可能是左右對許多,許多年。
USB使用非對稱拓撲結構,包括一臺主機的在連接“金字塔”,用于管理整個網絡的頂部。下游的USB端口(通常稱為器件或功能)中的所有連接成直接主機或經由中間集線器,可以在星型拓撲擴展網絡。主機可以有多個主機控制器,每個控制器管理多達127個端口。 USB通信使用的管道,或邏輯信道,即一個主控制器和一個設備的端點之間進行連接。 USB設備最多可以有32個端點(在16和16出)。有兩種類型的管道:一個流,以用于數據傳輸,以及一個消息,用于短命令和狀態轉移。數據傳輸可以是同步(以保證數據速率),中斷傳輸(當需要快速,低延遲的傳輸),或批量傳輸(通常用于文件傳輸,其中的延遲和數據傳輸速率并不重要)。
之一的USB標準的更多有用的方面是,有多個數據傳輸速率可能的(低速1.5 Mbit / s的,全速在12兆比特/秒,高速在480兆比特/秒,超5 Gbit / s的,和超高速+個10Gbit / s)和主機可以確定用于使用特殊枚舉過程的每個設備的數據速率。這簡化了連接管理和便于應用程序集中于剛傳輸數據,而不是管理建立低層的物理連接。
一些產品培訓模塊可從Digi-Key的討論顯著詳細的USB標準(從FDTI和伍爾特電子,等等),如果讀者希望深入挖掘。然而,這篇文章的目的,上述描述足以讓我們來看看一些不同的特點和基于微控制器的USB外設功能,以更好地滿足特定應用的要求,具有最佳的USB-實現功能設置。
USB實現
對于一些USB的基本知識的了解,我們就可以開始看看不同類型的MCU供應商在他們的設備所提供的實現。因為微控制器經常被發現控制USB外圍設備,如傳感器,指點設備和音頻設備(僅舉幾例),而不是在主機控制器更經常在個人電腦和手持設備發現我們將通過觀察一個示例函數實現啟動在Spansion的FM3 MCU系列中,尤其是Spansion公司MB9AF3 MCU。
Spansion的MB9AF3 MCU采用了ARM的Cortex-M3的CPU,并擁有多種先進的外設,包括電機控制定時器,高速ADC,UART,SPI,I2C,DMA,和外部總線接口。一個USB外設同時具有一個主機和功能接口和功能的方框圖顯示在圖1中。的CPU接口,在右側的圖,可以訪問端點緩沖器,其中數據傳輸的位置。進出緩沖器是由經由UDC接口的USB數據控制器(UDC)管理。中斷可用于通知的數據傳輸的狀態的CPU和在CPU接口提供從CPU或DMA控制器訪問緩沖器。
Spansion公司MB9AF3 MCU USB功能框圖
圖1:飛索MB9AF3 MCU USB功能框圖。 (Spansion公司提供)
該飛索USB實現的關鍵要素是源USB時鐘,端點,緩沖器的數量,和DMA訪問到端點緩沖器。這些特征可以,因為它們不是由USB標準規定不同MCU供應商之間變化。例如,USB時鐘由片上PLL可使用MCU的主時鐘源,。這消除了對外部時鐘減少了元件數量。并非所有的USB外設包括此功能。
從圖1還可以看到有6個端點緩沖區。緩沖區的數量廣泛使用不同的執行落實。對于簡單的應用,少數緩沖器可能是足夠的,但有可能是多個緩沖器的要求,這可能是因為有多個元件(例如,幾個不同的傳感器由MCU管理),或者因為多個緩沖區將簡化軟件實現由分離一個外設的不同的應用。
最后,USB實現之間的差異化的公共區域包括使用DMA的。常它是更有效的有來自CPU的獨立管理,從而CPU可以操作的其它更復雜的任務,或可放在一個低功耗狀態,直到有足夠的數據可開始處理端點緩沖區。該MB9AF3 MCU提供了訪問端點緩沖區的DMA控制器,還提供了一些中斷,可用于更輕松地管理緩沖區傳輸。尋找這些功能時,電源效率是您的應用程序的關鍵。
端點控制
您需要端點的數量可以選擇您的USB外設時,是一個關鍵的區別。的靈活性有與每個端點的量可以是在選擇中的一個重要因素,也是。例如,賽普拉斯的PSoC CY8C24794有一個USB外設有五個端點和每個人都可以被單獨分配響應中斷,批量或同步IN或OUT請求。圖2示出了各種可分配給每個端點任務。選擇性這一級別避免了顯著量的,否則將被需要的確定任務的類型,然后控制轉移到所需的常規處理器開銷。
表賽普拉斯的PSoC CY8C24794(點擊查看全尺寸)
圖2:賽普拉斯的PSoC CY8C24794 USB工作模式表。 (賽普拉斯提供)
Cypress的USB實現使用共享內存來存儲端點數據,這可能會導致訪問瓶頸,但使用的PSoC存儲器仲裁(PMA)的優先處理器和USB外圍設備之間的訪問。這保證了移動指令由處理器連續流甚至在USB流量的最大速率處理將進行維修。
所述USB PMA具有足夠的靈活性,使得端點數據不需要被處理接收到下一USB分組之前。這是通過簡單地改變信道的寫入位置或讀位置寄存器值完成的。例如,當一個中斷收到的資料表明,一個包已經收到,而不是處理數據,然后使終端接收更多的數據,你可以簡單地改變寫地址所使用的端點自由區的PMA通道的USB內存。通過這樣做,你讓USB SIE接收更多數據,而M8C正在處理先前接收的數據。類似的方法可用于制備數據到由IN事務的方式被發送。
當比較端點實現確保你不僅要看支持的端點的數量,而且在靈活性和軟件支持USB外設提供量。這可以提高性能,降低功耗,并簡化編碼。
USB在旅途中
USB也發展到可以很容易地創建智能的USB設備,可以在任何一個主機或功能模式動態連接。這個“在轉到”的能力使得有可能使用該設備作為外設(也許作為存儲裝置),然后作為宿主(或許以控制和功率的傳感器,記錄心臟速率活性)。這種能力是在各種的IoT應用中特別有用。 Microchip的DSPIC33EP256 MCU,例如,支持USB主機,設備和外出模式。在許多情況下,這樣就可以看到什么低功耗的設施,可為USB外設是重要的低功率運行是在旅途中應用很重要。
Microchip的DSPIC33EP256 MCU使USB外圍設備來操作,即使在一些低功耗模式。例如,當CPU被放置在空閑模式的周仍可操作。在空閑模式下,CPU的時鐘被切斷,并大大降低了這種動態功耗。 USB模塊可以繼續運行,當CPU處于空閑狀態,一旦收到需要CPU干預的消息時,CPU可以帶出空閑的。 USB外設和CPU都可以放在一個更低的功耗狀態,睡眠,甚至更多的權力將被保存。該USB活動中斷可用于從休眠模式喚醒器件,只要有USB總線上的總線活動。
您可能需要從您的USB外設的另一項功能是先進的測試功能。特別是,如果您使用的是USB首次一些你可能要具體包括板級測試功能的USB端口。 Microchip的DSPIC33EP256 MCU有一個特殊的USB測試模式,可以產生對USB輸出即用于板級測試有用的連續測試碼模式。正如圖3此測試模式生成連續的JK / JK位序列來切換USB輸出產生一個簡單的“眼圖”常用來測試信號的完整性。
Microchip的DSPIC33EP256單片機圖
圖3:Microchip的DSPIC33EP256 MCU USB測試模式。 (Microchip的提供)
USB高端微控制器
USB不僅在低收入和中端MCU的發現,它是高端設備的一個非常有用的接口也是如此。例如,德州儀器F28M35H52C1RFPT是一款雙核MCU具有非常先進的處理能力,它包括一個USB外設與在轉到能力。如圖中F28M35H52C1RFPT(圖4)的框圖,USB外設,在圖的左上方,經由從AHB總線矩陣訪問的AHB總線連接到ARM Cortex-M3的CPU。
德州儀器的框圖F28M35x協奏曲MCU(點擊查看全尺寸)
圖4:德州儀器F28M35x協奏曲MCU框圖。 (德州儀器提供)
在ARM Cortex-M3 CPU充當通道控制器,負責管理所有的通信端口。這是當USB包含在高端設備,使得USB通信可以正確地對所有其他的,競爭的,通信端口進行優先排序的一個重要功能。例如,通常的USB端口用于外部文件存儲和數據傳輸活動,可能需要提出了很高的優先級,以便處理不拖延數據缺乏。
結論
有許多不同的方法來實現USB和了解一些通過各種MCU系列提供的主要功能和差異化的功能是非常重要的。這是很容易找到合適的適合你的下一個USB應用,當你知道了一些最常見和最重要的差別。
評論
查看更多