什么是USB堆栈?

时间:2012-02-03 19:11:14

标签: usb

我想知道USB堆栈的含义及其示例。我研究了很多关于USB的知识,我简单地读了一些像USB这样的书,但没有提到“USB堆栈”。

2 个答案:

答案 0 :(得分:8)

术语“堆栈”指的是抽象数据结构(与此无关),或者指执行特定功能的软件集合。对于“USB堆栈”,它是允许通过USB链接进行通信的硬件,固件,内核模块,驱动程序和用户程序的集合。

使用术语“堆栈”是因为软件组件通常是彼此叠加的,每个组件都使用它下面的层的服务。

您可能还会听到“网络堆栈”,“LAMP堆栈”或其他类似短语。维基百科有一篇关于Solution stack的文章,这是一个相同的想法。

答案 1 :(得分:6)

USB堆栈,只是基于“软件堆栈”的通用概念的短语,例如TCP / IP堆栈,GSM堆栈等。

这是通常由USB设备制造商或操作系统开发人员提供的框架,它使其他开发人员能够专注于实现,而不是担心正确实现较低级别的USB。

在USB的情况下,基本上存在层次的通信(每个人都称它们略有不同):

  • 链路层(串行IO) - 处理差分线路转换和信令,并将流解码为二进制数据,通常用于硬件
  • USB数据包层 - 处理USB数据包的结构
  • USB必需功能 - 枚举,缓冲区,端点
  • USB更高级别的API - 音频,HID等,它们有自己的限制和需求。

它类似于现代操作系统的TCP / IP堆栈:

  • 物理层(通常在以太网卡上的硬件中完成)
  • 链路层(MAC地址层,通常在以太网卡上的硬件中完成)
  • 网络层(IP,路由)
  • 传输层(TCP)
  • 您的应用程序特定层(HTTP堆栈等)。