
Linux内核之USB驱动
文章平均质量分 73
usb驱动介绍
qxqxa
meizuo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
dwc3控制器是怎么处理otg
我们直接看支持otg的dwc3是怎么处理otg的,从设备开始看驱动,usb3_0的这个节点一般就是厂商自己定义的,主要包括中断,一般用于vbus检测,usb的插拔情况;为高就是DWC3_OTG_ROLE_DEVICE,为低就是DWC3_OTG_ROLE_HOST;xhci_init_driver将通用的xhci_hc_driver,赋值给xhci_plat_hc_driver;dwc3_core_init_mode根据设备树获得的模式,初始化控制器为对应模式,初始化控制器的操作函数:主机有主机的操作函数;原创 2024-04-26 22:03:18 · 1632 阅读 · 0 评论 -
usb通过wireshark抓包,并分析各描述符
安装很简单,在安装wireshark的时候,选中usbpcap就行了。原创 2023-12-08 20:19:51 · 6252 阅读 · 0 评论 -
USB主机驱动分析
ehci_hc_driver实现了绝大多数ECHI主机驱动的工作,具体的EHCI实例简单地调用ehci_init_driver(struct hc_driver *drv,const struct ehci_driver_overrides *over)来初始化hc_driver即可,上层通过usb_submit_urb提交1个USB请求后,该函数调用usb_hcd_submit_urb,并最终调用至usb_hcd的driver成员(hc_driver类型的urb_enqueue成员函数)原创 2024-04-11 17:03:46 · 455 阅读 · 0 评论 -
USB设备的检测,枚举和数据传输
USB采用差分信号传输,使用的是NRZI编码方式:数据为0时,电平翻转;数据为1时,电平不翻转。如果出现6个连续的数据1,则插入一个数据0,强制电平翻转,以便时钟同步。上面的一条线表示的是原始数据序列,下面的一条线表示的是经过NRZI编码后的数据序列。同步信号的抓包如下。原创 2023-12-23 22:11:19 · 1374 阅读 · 0 评论 -
configfs配置usb gadget原理
usb gadget configfs模块的初始化函数为gadget_cfs_init。该函数调用后,会向configfs注册一个子系统,子系统使用configfs_subsystem结构体描述。子系统中又可分为组,使用config_group描述,组内又有成员,使用config_item描述。原创 2023-12-09 17:43:15 · 2801 阅读 · 1 评论 -
USB设备热插拔流程解析
usb_hcd_poll_rh_status函数中,调用主机控制器的hub_status_data函数获取端口状态。如果端口的状态有变化,那么length > 0,把获取到的端口状态的数组拷贝到urb->transfer_buffer中,就是前面的hub->buffer中,同时调用usb_hcd_giveback_urb函数。在usb_hub_init函数中完成了注册hub驱动,然后创建一个工作队列hub_wq,每当有设备连接到USB接口时;sdio的话,主机驱动初始化的时候,会去枚举卡;原创 2024-04-15 16:55:24 · 1205 阅读 · 0 评论