usb驱动开发1——学习准备

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


此系列是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的端点(可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kcyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值