什么是USB堆栈?

Ahm*_*med 7 usb

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

Gre*_*ill 8

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

使用术语"堆栈"是因为软件组件通常彼此叠加,每个组件使用其下面的层的服务.

您可能还会听到"网络堆栈","LAMP堆栈"或其他类似短语.维基百科有一篇关于解决方案堆栈的文章,这是一个相同的想法.

  • 正确的是,"堆栈"跨越不同的实现层,包括许多不同类型的组件,包括USB的硬件. (2认同)
  • 不.堆栈的重点是*硬件驱动程序*(软件组件)特定于硬件芯片.不同的硬件芯片可能需要不同的硬件驱动程序,但重要的是堆栈的其余部分可以保持不变. (2认同)

qdo*_*dot 7

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

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

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

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

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

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