2012-02-03 186 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栈等)。