此系列是fudan_abc_优快云博客-Linux那些事儿 之 我是U盘,Linux那些事儿之戏说USB,Linux那些事儿 之 戏说USB领域博主博文的整理,同时加入了自己的理解。很敬佩fudan_abc的文章,仔细学习和分析受益很多。注:fundan_abc所分析linux内核代码所用的版本是2.6.22.6。
Q:学习linux下的usb通信要怎样进行?
熟悉linux驱动开发,同时需要了解usb协议规范,对照linux下的usb驱动代码慢慢分析和学习
Q:为什么要开发usb?
在usb出现以前,设备接口多样化(有串口、并口等),而usb可以实现这些接口的统一和标准化,USB是为了解决速度、扩展能力、易用性应景而生的
Q:usb规范的发展经历了哪些?
Usb的发展经历了1.0、1.1、2.0(在2009年之前)三个阶段。控制器OHCI和UHCI虽然支持的都是1.1的控制器,但是支持的硬件范围不一样。每个USB2.0 控制器带有3个芯片,根据设备的识别方式将信号发送到正确的控制芯片。我们可以将1.1设备连接到2.0的控制器上使用,不过它只能达到1.1的速度。同时也可以将2.0的设备连接到1.1的控制器上,不过不能指望它能以2.0的速度运行。ehci-hcd模块支持的是USB2.0控制器的高速模式.(参考Linux对USB1.1和2.0都是支持的,通过看drivers/usb/host目录下的Kconfig文件,我们可以知道内核里支持的控制器。)
Q:usb总线拓扑什么结构?
树形结构

Q:usb数据怎样传输?
USB大树要想茁长成长也离不开USB协议。USB总线是一个单主方式的实现,是一种轮询方式的总线。协议规定所有的数据传输都必须由主机发起,host controller初始化所有的数据传输,各种设备紧紧围绕在主机周围。
USB通信最基本的形式是通过USB设备里一个叫endpoint的端点(可以

本文介绍了Linux下USB驱动开发的学习准备,包括熟悉Linux驱动开发和USB协议规范。USB的发展经历了1.0、1.1、2.0几个阶段,其总线拓扑为树形结构,数据传输通过endpoint进行,分为控制、中断、批量和等时四种类型。在Linux系统中,USB驱动涉及物理设备、客户软件和系统软件三层,通信基于管道,由主机发起。
最低0.47元/天 解锁文章
8119

被折叠的 条评论
为什么被折叠?



