EFI Driver Model(下)-USB 驱动设计

1、USB简介

  通用串行总线(英语:Universal Serial Bus,缩写:USB)是一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。最新一代是USB4,传输速度为40Gbit/s,三段式电压5V/12V/20V,最大供电100W ,新型Type C接口允许正反盲插。
  USB是一个外部总线标准,规范电脑与外部设备的连接和通讯。USB接口具有热插拔功能。USB接口可连接多种外设,如鼠标和键盘等。USB是在1994年底由英特尔等多家公司联合在1996年推出后,已成功替代串口和并口,已成为当今电脑与大量智能设备的必配接口。USB版本经历了多年的发展,到如今已经发展为USB4版本。对于大多数工程师来说,开发USB2.0接口产品主要障碍在于:要面对复杂的USB2.0协议、自己编写USB设备的驱动程序、熟悉单片机的编程。这不仅要求有相当的VC编程经验、还能够编写USB接口的硬件(固件)程序。所以大多数人放弃了自己开发USB产品。

2、USB枚举

USB Host

  一个USB系统只有一个USB Host。主计算机中的USB接口称为主控制器(Host Controller)。这个接口不是指USB端口,而是指USB系统和主计算机之间的连接接口,可能是由硬件、固件、软件组成。

USB bus

  被实现为Host Controller,且集成有Root Hub
  USB 接入后,进行USB枚举过程

  • 1、 hub 通过status change 管道(寄存器)反馈给host有设备接入或移除,device处于powered状态,port处于disabled状态。
  • 2、host检查change状态来查询是有设备接入还是移除。
  • 3、host确定有新设备接入之后,等待至少100ms来等待接入状态稳定和供电稳定;然后host发送 reset 端口命令。
  • 4、hub执行reset 端口命令,reset完成后端口被enable。此时device处于default状态并能从端口获取电流。
  • 5、host给device分配一个唯一的address,device进入Address状态。
  • 6、host读取device的设备描述符信息来去确定设备所支持的最大数据包大小。
  • 7、host读取device的配置信息,从配置0开始读到配置n-1。
  • 8、host根据配置信息以及如何使用usb device来设置device使用哪种配置。此时device处于configured状态,也即处于可用状态了。

3、USB驱动设计

  有几个类别的USB驱动程序合作在一个平台上提供USB驱动程序堆栈。下表列出了这些USB驱动程序

驱动类别 描述
USB主控制器驱动 使用USB主机控制器句柄上的PCI I/O协议,并生成USB2主机控制器协议。
USB bus driver 使用USB2主机控制器协议,并为USB总线上的每个USB控
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值