usb host controller & usb core & usb device driver之间的关系

 

 

使用USB设备时,两个模块是必须的:

usb核心模块:usbcore      

usb主机控制器驱动( host controller driver ),如ehci_hcd、ohci_hcd、uhci_hcd、xhci、musb等等

usbcore:

       usbcore负责实现一些核心的功能,为别的设备驱动程序提供服务,提供一个专用于访问和控制usb硬件的接口,而不用去考虑系统当前存在哪种主机控制器。Core、host主机控制器和USB驱动之间的关系如图所示。

         Usb core的代码会对整个USB系统初始化,比如申请struct bus_type usb_bus_type,然后会扫描usb总线,看线上连接了哪些USB设备,或者说root hub上连接了哪些usb设备,比如说一个usb键盘,那么就为它准备一个struct device,根据它的情况,为这个struct device赋值,并插入到device链表中来。如果root hub上又连了普通hub,那么还要扫描这个hub上有什么设备,并将这些设备加入到usb_type_type的devices链表。Drivers链表是每一个driver本身去bus上登记的。

主机控制器(host controller-HC):

         主机控制器驱动(HCD)必须位于USB软件的最底层,HCD提供主机控制器硬件的抽象,隐藏硬件的细节,在主机控制器之下是物理的usb及所有与之连接的USB设备。而HCD只对usbcore负责。Usbcore将用户的请求映射到相关的HCD,用户不能直接访问HCD。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值