微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB协议架构及驱动架构

USB协议架构及驱动架构

时间:12-15 来源:互联网 点击:

a) root_hub传输

若为root hub,将调用rh_urb_enqueue(),共有两种传输事务(控制传输和中断传输)

[cpp]view plaincopy

  1. staticintrh_urb_enqueue(structusb_hcd*hcd,structurb*urb)
  2. {
  3. if(usb_endpoint_xfer_int(&urb->ep->desc))//中断传输
  4. returnrh_queue_status(hcd,urb);
  5. if(usb_endpoint_xfer_control(&urb->ep->desc))//控制传输
  6. returnrh_call_control(hcd,urb);
  7. return-EINVAL;
  8. }

b) 非root_hub传输
对于非常root_hub传输,它调用:
status = hcd->driver->urb_enqueue(hcd, urb, mem_flags);

c) 批量传输
root_hub本身没有批量传输流程,按照控制传输流程,控制传输最终要通过switch语句跳转到Bulk-Only传输流程中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top