USB主机控制器ECHI】的更多相关文章

USB主机控制器ECHI 2017年10月24日 15:44:11 阅读数:239 1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1)      • OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1)      • EHCI: Enhanced Host Controller Interface (…
USB 的全称是 Universal Serial Bus,顾名思义:通用串行总线. 提到总线,联想一下,在你心目中总线总是用来干嘛的?还记得 I2C 总线? I2C 总线上挂有二条信号线,一条是 SCL. SDA,这二货是干嘛滴?传输数据!对,就是用来传输数据的.换句话说,就是用来通信的. 既然是用来通信的,那自然就要用通信协议来规范通信. 在 USB 的世界里有一种协议叫 USB 协议, 这协议太复杂了,一时半载的难以消化,这里我们并不深入 USB 协议. 10.1 USB 总线简介 USB…
1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1)      • OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1)      • EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”) USB的拓扑结构决定了主机控制器就…
转自:http://blog.chinaunix.net/uid-20543183-id-1930831.html   ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 Usb是一个很复杂的系统.在usb2.0规范中,将其定义成了一个分层模型.linux中的代码也是按照…
文章目录 1. 简介 2. Usb Core 驱动设备模型 2.1 Usb Device Layer 2.1.1 device (struct usb_device) 2.1.2 driver (struct usb_device_driver) 2.1.3 bus (usb_bus_type) 2.2 Usb Interface Layer 2.2.1 device (struct usb_interface) 2.2.2 driver (struct usb_driver) 2.2.3 bu…
在内核目录下先配置支持USB设备,无论你是什么设备,这一步都是必须的,USB驱动和其他的驱动不同,它分为USB设备驱动,另外还有USB-Host主机控制器的驱动,配置如下: Device Drivers  ---> SCSI device support  ---> <*> SCSI device support <*> SCSI disk support 以上是为了支持U盘挂载,U盘在Linux中被识别为SCSI设备. Device Drivers  --->…
什么是USB OHCI规范? OHCI(Open HCI)是目前使用比较广泛的三种USB主机控制器规范之一.USB体系结构是由四个主要部分组成:客户软件/USB驱动,主机控制器驱动(HCD),主机控制器(HC)和USB驱动.前两者由软件实现,后两者由硬件实现.而OHCI就是规范了主机控制器驱动和主机控制器之间的接口,以及它们的基本操作.在主机控制器驱动和主机控制器之间,有两个通信通道,第一个是应用位于HC的一套可操作寄存器,它们包括控制寄存器.状态寄存器和列表指针寄存器:另一个通道是应用称为主机…
回到struct usb_hcd,继续努力的往下看. kref,usb主机控制器的引用计数.struct usb_hcd也有自己专用的引用计数函数,看hcd.c文件. static void hcd_release (struct kref *kref) { struct usb_hcd *hcd = container_of (kref, struct usb_hcd, kref); kfree(hcd); } struct usb_hcd *usb_get_hcd (struct usb_h…
总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧.,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_control_msg->usb_start_wait_urb->usb_submit_urb->usb_hcd_submit_urb.这个山头儿,王中之王就是drivers/usb/core/hcd.h里定义的struct usb_hcd. /*----------------------…
前面分析了usb的四大描述符之端点描述符,接口描述符(每一个接口对应一个功能,与之配备相应驱动),配置描述符,最后分析设备如何包括这些描述符.首先记住,在usb的世界里,设备大于配置,配置大于接口,接口包含多个设置,接口也可以理解为功能,所有端点的集合构成一个功能.废话少说,看一下usb设备结构体定义吧! struct usb_tt; /** * struct usb_device - kernel's representation of a USB device * @devnum: devi…