看一下Linux下USB驱动的架构(二)

看一下Linux下USB驱动的架构(二),第1张

前言

前面简单聊了一下USB驱动的整体框架(一),下面看一下驱动主机的《USB驱动框架》。

主机游戏框架

看一下Linux下USB驱动的架构(二),poYBAGL7ZtaAfHtxAACPuQ4INgI097.png,第2张
 

USB核心(USBD)是整个USB驱动的核心部分,USBD来自从USB主机接收到USB驱动端的非端设备进行处理,然后传送给上层的驱动端;同时也接收上层格式的数据流,相应的数据处理后承接交给USB主机驱动。所以它是一个上启下的作用。

重要结构体

usb_hcd -- 主机驱动器

看一下Linux下USB驱动的架构(二),poYBAGL7ZwuAINa5AAEIXdrUudo154.png,第3张看一下Linux下USB驱动的架构(二),poYBAGL7ZxGAZWOLAAFvq0LRaAI469.png,第4张看一下Linux下USB驱动的架构(二),poYBAGL7ZxeAQKLQAAA3VD_4TEc814.png,第5张


hc_driver -- 控制器 *** 作函数

看一下Linux下USB驱动的架构(二),pYYBAGL7Z2WAACHiAAFtAT0FpUM620.png,第6张看一下Linux下USB驱动的架构(二),poYBAGL7Z2qAeTpgAAFwFZWe1Zw332.png,第7张看一下Linux下USB驱动的架构(二),poYBAGL7Z3CAM7ibAAHWM8qwW5w433.png,第8张看一下Linux下USB驱动的架构(二),pYYBAGL7Z3WAf_uRAAHNXgmNCbs553.png,第9张看一下Linux下USB驱动的架构(二),pYYBAGL7Z4aAStTNAADVL0J2ZQM145.png,第10张

调用usb_submit_urb ()提交一个USB请求之后,该函数调用usb_hcd_submit_urb(),并最终调用usb_hcd的驱动成员(hc_driver类型)的urb_enqueue()函数。

ehci_hcd -- ECHI主机

看一下Linux下USB驱动的架构(二),poYBAGL7Z8GAPBkwAAE5qNkU7Kw725.png,第11张看一下Linux下USB驱动的架构(二),poYBAGL7Z8qALuU2AAHBVOdhZcQ950.png,第12张看一下Linux下USB驱动的架构(二),pYYBAGL7Z9GAMIMkAAG1dSedspo811.png,第13张看一下Linux下USB驱动的架构(二),poYBAGL7Z9eAANvXAAD-njb6OOw626.png,第14张

ECHI HCD驱动属于HCD驱动的实例,用ehci_hcd结构体来表示,它通常会作为usb_hcd结构体的私有数据(hcd_priv)。

API函数

看一下Linux下USB驱动的架构(二),poYBAGL7Z_2AWYnaAAGhsA1_it4031.png,第15张看一下Linux下USB驱动的架构(二),pYYBAGL7aAOAJvTIAABFTl1QHxs098.png,第16张

该drivers/usb/ehci-hcd.c中实现了EHCI主机驱动的工作,具体的驱动只要简单调用ehci_init_driver()就可以/看一下主机的具体实现:

看一下Linux下USB驱动的架构(二),pYYBAGL7aBqAftY-AACVF7whuxQ055.png,第17张看一下Linux下USB驱动的架构(二),pYYBAGL7aAOAJvTIAABFTl1QHxs098.png,第16张

这个函数就是初始化hc实例_驱动程序,这个函数带的通用hc_driver ,而第二个参数可以是hc_driver实例的reset()、port_power(另外一个驱动程序)一些额外的专利数据。

看一下Linux下USB驱动的架构(二),poYBAGL7aEeAZNeVAAEnDJ50Lbs737.png,第19张看一下Linux下USB驱动的架构(二),pYYBAGL7aEyAR3_7AAC5IZuEsDc761.png,第20张

上面是Linux已经很好 *** 作的ehci接口函数,基本都是通用的,所以不需要自己再实现。

xhci主机的驱动方式和ehci基本一样,在/drivers/usb/host/xhci.c中实现XHCI主机驱动的工作。具体的驱动只要简单调用xhci_init_driver()即可。



审核编辑:刘清

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/3000212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存