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

本文介绍了USB系统的两大核心组件:usb核心模块与主机控制器驱动。usb核心模块负责初始化USB系统、扫描USB总线上的设备并将它们注册到系统中;主机控制器驱动则提供了对硬件的抽象,隐藏了具体硬件的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

使用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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值