什么是USB堆栈

  • 本文关键字:堆栈 USB usb
  • 更新时间 :
  • 英文 :


我想知道USB堆栈的含义及其示例。我学习了很多关于USB的知识,我读了一些书,比如USB,但没有提到"USB堆栈"。

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

之所以使用"堆栈"一词,是因为软件组件通常是分层的,每个组件都使用其下一层的服务

您也可能听说"网络堆栈"、"LAMP堆栈"或其他类似短语。维基百科上有一篇关于解决方案堆栈的文章,这也是同样的想法。

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

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

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

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

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

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

最新更新