<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > USB端口找到新居,落戶嵌入式系統(tǒng)

          USB端口找到新居,落戶嵌入式系統(tǒng)

          作者:ECN資深技術編輯 Jon Titus 時間:2004-09-24 來源:電子產品世界 收藏

          2004年5月B版

            安裝過PC的人員都知道,通用串行接口(USB)具有與即插即用相似的性能。因而,將移植到系統(tǒng)是一種方便的控制外部設備的辦法。畢竟USB只有兩條信號線和兩條電源連接線,設計一個不會有什么困難吧。這一任務說起來簡單,對設計者卻有不少困難。不過,供應商可以提供從板卡到軟件的一切幫助。

            在一個系統(tǒng)上添加的最簡單的辦法是采用基于Windows的計算機。很多單板機(圖1)提供了內置的USB端口,并且運行Windows 軟件。許多USB外設都裝有現成可用的Windows驅動器。當你需要采用實時操作系統(tǒng)(RTOS)時,任務就會變得困難起來。若干家公司提供了能夠簡化USB端口設計的芯片和軟件,還可以獲得在片上系統(tǒng)添加端口的知識產權(IP)許可證。

            USB設備可以扮演主控或外設的雙重角色。外設無需太高的智能度,但主USB端口卻要求具備處理能力和控制軟件。USB(OTG)規(guī)范考慮到讓某些外設可以具備有限的主控功能,這樣USB設備能在沒有PC基主控器的情況下實現通信。

            最新標準(USB 2.0)提供的總線速率是1.5Mbit/s(低速)、12Mbit/s(全速)和480Mbit/s(高速)??上?,很多用戶認為標有“USB 2.0”字樣的設備一直在480Mbit/s的速率工作。但很多遵循USB 2.0的設備是在較慢的傳輸速率下工作。

            在規(guī)劃一個應用時,你要確切知道使用什么USB設備——打印機、海量存儲單元還是I/O控制器。然后,決定你需要多少端口,是否需要主控、外設還是兩種端口都要。大多數嵌入式應用并不需要外設端口。

            你在評估端口配置時,應該決定你的數據率需求。例如,雖然一個應用可以平均10Mbit/s的速率進行數據傳輸,但也可能需要以更高的速率傳輸突發(fā)性數據。請記住,要實現更高的數據傳輸,就需要在USB連接的兩端采用更大的緩沖區(qū)。你可能需要將性能要求稍微降低一些以減少設計所需的昂貴緩沖。

            如果你對數據率沒有把握,可以從USB主控芯片廠商那里購買開發(fā)板,然后在PC上對你的應用進行模擬。主控芯片供應廠商包括TransDimensions,Cypress半導體,NEC和Philips半導體公司。以TransDimension為例,它提供2端口和3端口的主控芯片和軟件。另外,很多公司也出售作為USB外設控制器的芯片。

            主控制器芯片的支持軟件有多種,從支持Philips ISP1561的基于Windows的驅動器,到支持TransDimension器件的多種RTOS軟件。Cypress提供用于EZ主控IC的Linux和VxWorks驅動器。所有的USB主控端口都需要一個“堆棧”,它的簡單含義是軟件的分層布置,如圖2所示。各層形成從底部物理層(連線和芯片)一直到頂部應用軟件層的結構。

            在物理層,芯片和IP廠商已經采用了標準的軟件-接口連接,它們可以簡化嵌入式設計中主控器的運用。這樣,堆棧往往遵循如下標準:開放式主控制器接口(OHCI)、通用主控制器接口(UHCI),或者更新的為USB2.0規(guī)范開發(fā)的增強型主控制器接口EHCI。這些規(guī)范描述了主控制器所用的寄存器級操作。通過這些標準的采用,芯片制造商提供了驅動器軟件的通用接口。OHCI、UHCI和EHCI規(guī)范明確了主控制器寄存器和驅動器軟件之間的互操作。

            通常,硬件抽象層,或者包裝層將堆棧和驅動器與特定微處理器的具體實現細節(jié)屏蔽開來。設計者可以獲得包裝層的源代碼,因此能對它進行修改,以便適應所選定的具體微處理器和RTOS。如果你不想深入了解這一層的軟件細節(jié),可以由供應商對包裝層進行定制開發(fā)。你可能會發(fā)現,啟動項目時即采用兼容的微處理器、堆棧、RTOS和USB主控制器將使開發(fā)變得更為容易。

            除了堆棧,開發(fā)者還將需要控制外設的驅動器。雖然Windows、Windows CE和Linux可以調用用于多種外設的、種類極為豐富的驅動程序,但你還是會發(fā)現其他操作系統(tǒng)沒有提供同樣的多種選擇。IC廠商們提供了USB級驅動器,它們可以提供控制同類器件所需的一組最小的函數集。各類器件包括打印機、照相機、人機接口、海量存儲設備、通信器件等等。例如,打印機類的驅動可以獲知打印機的狀態(tài)、打印機初始化、發(fā)出并接收打印機數據、以及打印機復位。

            這樣一來,你就很可能找出一種與特定RTOS和處理器一起工作的打印機類驅動器。不過,打印機制造商可以在該類驅動器的基礎上獲得功能更強的驅動器,這些驅動器通常稱為同類軟件庫。但是,如果你計劃控制一個定制的I/O設備,還要準備編寫自己的驅動器。

            雖然,一臺PC無論用戶需要與否都可以存儲成百上千的USB設備驅動器,但嵌入式系統(tǒng)卻不具備此般靈活性。所以,你可能只采用那些能確保與你的系統(tǒng)一起工作的外設。由于很多嵌入式應用的磁盤空間有限,而只配備幾種常用器件的驅動器。記住,如果你不能確定與嵌入式系統(tǒng)相連的器件的話,得到的就不是一個好設計。在你考慮軟件和驅動器時,請詳細規(guī)定與USB端口通信的設備的具體情況。

            在某些情況下,對小尺寸、高可靠性或者大批量生產的器件的需求會將一個嵌入式系統(tǒng)從電路板 “擠壓”成為一塊芯片。因此,工程師們必須獲得知識產權的許可證,將其集成到ASIC或者FPGA中。若干公司以IP形式提供USB主控控制器。Mentor Graphics公司提供一種全速USB控制器Inventra,它可以用作一個主控或者外設。Synopsys公司提供DesignWare核,它有多種類型的USB端口。最后,ARC公司提供若干種USB設計的許可證。各家公司以VHDL或Verilog代碼的形式提供其USB核。

            幸運的是,USB核帶有標準的硬件接口,如ARC公司為其微處理器開發(fā)先進高速總線(AHB),它可以用于多種其它的處理器核。IP廠商還可以支持由虛擬插座接口聯盟(Virtual Socket Interface Alliance)制定的外圍虛擬部件接口(PVCI)標準。如果你決定去獲取USB IP的許可證,務必確保它適合所選定的RTOS。IP許可證廠商可提供一系列兼容的軟件產品和開發(fā)工具。另外,IP廠商自己可在軟件方面提供幫助。

            可惜,USB設計考慮的范圍遠非本文所能完全覆蓋。建議讀者閱讀其它相關書刊和資料?!?BR>



          關鍵詞: USB端口 嵌入式

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();