2012-02-03 187 views
6

我想知道USB堆棧的含義及其示例。我學習了很多關於USB的知識,而且我簡單地閱讀了一些USB這樣的書,但沒有提到「USB棧」。什麼是USB協議棧?

回答

8

術語「堆棧」是指抽象數據結構(與此無關)或執行特定功能的軟件集合。在「USB堆棧」的情況下,它是允許通過USB鏈路進行通信的硬件,固件,內核模塊,驅動程序和用戶程序的集合。

使用術語「堆棧」是因爲軟件組件通常層疊在一起,每個組件都使用其下層的服務。

您也可能聽說過「網絡堆棧」或「LAMP堆棧」或其他類似的短語。維基百科有一篇關於Solution stack的文章,這是一個想法。

+1

所以它不僅僅是指軟件? http://www.google.com/imgres?um=1&hl=zh-CN&sa=N&biw=1366&bih=600&tbm=isch&tbnid=Bp8R0jm6_crSPM:&imgrefurl=http://www.jungo.com/st/embedded_usb_otg.html&docid=LIDLc6Q-lKTWaM&imgurl = HTTP://www.jungo.com/st/images/otg_feb05.jpg&w=530&h=355&ei=CDMsT5jPGZGUOpChrYEO&zoom=1&iact=hc&vpx=107&vpy=150&dur=3239&hovh=184&hovw=274&tx=178&ty=72&sig=106979144409125464825&page=1&tbnh=113&tbnw=168&start = 0&ndsp = 21&ved = 1t:429,r:0,s:0 – Ahmed 2012-02-03 19:19:50

+2

正確的說,「堆棧」貫穿不同層次的實現,包括許多不同類型的組件,包括USB中的硬件。 – 2012-02-03 19:20:40

+1

而堆棧依賴於硬件?每個芯片有不同的堆棧? – Ahmed 2012-02-03 19:26:26

6

USB棧,就是基於對「軟件棧」通用的概念,如TCP/IP協議棧,GSM棧等短語

它的框架下,往往通過USB設備製造商,或OS提供開發人員,這使得其他開發人員可以專注於其實施的肉,而不必擔心正確實施較低級別的USB。

在USB的情況下,基本上有通信的層(每個人稱之爲略有不同):

  • 鏈路層(串行IO) - 與差分線轉換和信令的交易,並解​​碼該流爲二進制數據,往往在硬件
  • USB分組層 - 涉及USB數據包的結構
  • USB所需的功能 - 枚舉,緩衝區,端點
  • USB高層API - 音頻,HID等,也有自己的restricti需求和需求。

它類似於現代操作系統的TCP/IP協議棧:

  • 物理層(通常由硬件完成以太網卡上)
  • 鏈路層(MAC地址層,往往在做硬件以太網卡上)
  • 網絡層(IP,路由)
  • 傳輸層(TCP)
  • 您的應用程序特定層(HTTP棧等)。