Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设备和主机之间的USB交互(端点-缓冲区-主机控制器)_Usb_Buffer_Interrupt_Endpoint - Fatal编程技术网

设备和主机之间的USB交互(端点-缓冲区-主机控制器)

设备和主机之间的USB交互(端点-缓冲区-主机控制器),usb,buffer,interrupt,endpoint,Usb,Buffer,Interrupt,Endpoint,据我所知: USB设备(鼠标)在存储到主机ist的传出数据的端点中有一个中断 主机在端点轮询此中断,并将数据写入缓冲区 我在哪里可以找到这个缓冲区?我非常努力地在我的主板(USB…控制器…缓冲区)的技术手册中找到它,但我找不到这个寄存器 那么,HostController是使用自己的缓冲区将端点存储在来自设备的数据中,还是主机控制器将其映射到其他寄存器 如果有动作(如鼠标移动或单击),USB主机控制器是否会导致中断? 我在哪里可以找到这些存储/缓冲数据 我正在使用ubuntu,通过查看/pr

据我所知:

  • USB设备(鼠标)在存储到主机ist的传出数据的端点中有一个中断
  • 主机在端点轮询此中断,并将数据写入缓冲区

我在哪里可以找到这个缓冲区?我非常努力地在我的主板(USB…控制器…缓冲区)的技术手册中找到它,但我找不到这个寄存器

那么,HostController是使用自己的缓冲区将端点存储在来自设备的数据中,还是主机控制器将其映射到其他寄存器

如果有动作(如鼠标移动或单击),USB主机控制器是否会导致中断? 我在哪里可以找到这些存储/缓冲数据

我正在使用ubuntu,通过查看
/proc/interrupts
,我可以找到
EHCI\u HCD:USB2
控制器,该控制器带有连接的USB设备(鼠标)的IRQ号

也许任何人都可以帮助我理解这个usb Enpoint=>HostController=>Interrupt---机制


非常感谢你

在哪里可以找到这个缓冲区?我非常努力地在我的主板(USB…控制器…缓冲区)的技术手册中找到它,但我找不到这个寄存器

该缓冲区以URB的形式来自HID类驱动程序。所以它是一个软件缓冲区

那么,HostController是使用自己的缓冲区将端点存储在来自设备的数据中,还是主机控制器将其映射到其他寄存器

如前所述,主机控制器中没有用于存储数据的寄存器。主机控制器使用HCD传递的软件缓冲区

如果有动作(如鼠标移动或单击),USB主机控制器是否会导致中断?我在哪里可以找到这些存储/缓冲数据

不,不会有任何中断。您将轮询中断端点以获取状态。主机控制器使用中断来通知传输完成,在您的情况下,该传输是中断传输

为了清楚起见,请参见下面的传输描述符图。主机控制器使用“缓冲指针”分别存储或检索输入和输出事务中的数据。要了解有关传输描述符的更多信息,请阅读EHCI规范


亲爱的@Shaibal。谢谢你的回答。那么,当URB完成时,主机控制器会导致中断吗?注册到通用中断控制器?为了通知核心?pic“缓冲指针”的来源是什么。。。我找不到USB规范中描述的传输描述符。你有这个的来源吗?Best Regardsys主机控制器在三种情况下导致中断-传输完成、端口更改事件、主机内部错误。中断将被注册到通用中断控制器。请参阅英特尔的“ehci规范”文档。第3章第5节介绍数据结构图和缓冲区的详细信息。:)