stm32f4 USB项目开发详解

一、USB总体概况1.1、USB通信过程简介设备插到主机上主机开始检测设备类型(高速/全速/低速)复位设备主机开始对设备枚举(根据枚举得到的各种信息加载合适的驱动程序,比如根据信息知道是一个鼠标设备,则加载鼠标的驱动程序对接下来的数据进行处理)枚举完成后主机要发送令牌包(IN / OUT)查询有效端点是否有数据,有数据时设备自然会返还给主机...
摘要由CSDN通过智能技术生成

一、USB总体概况

 

1.1、USB通信过程简介

  1. 设备插到主机上
  2. 主机开始检测设备类型(高速/全速/低速)
  3. 复位设备
  4. 主机开始对设备枚举(根据枚举得到的各种信息加载合适的驱动程序,比如根据信息知道是一个鼠标设备,则加载鼠标的驱动程序对接下来的数据进行处理)
  5. 枚举完成后主机要发送令牌包(IN / OUT)查询有效端点是否有数据,有数据时设备自然会返还给主机

 

1.2、USB枚举过程简介

  1. 主机获取设备描述符(部分)
  2. 主机对从机设置设备地址(非零,相当于我们的学号id)
  3. 主机再次获取从机设备描述符(全部)
  4. 主机获取配置描述符(了解从机配置,接口,端点)情况
  5. 如果有字符串描述符还有获取字符串描述符
  6. 设置配置请求,就是激活配置,如果没有这一步对应的配置就不可用
  7. 针对不同的类,获取它们独特的类描述符(比如HID报告描述符)

注意:

  1. 上面的枚举1-4,6步骤是必须的,
  2. 主机和从机通信时,从机时不能主动发数据给主机的,必须要等主机给从机发送令牌包后,根据主机的需求发送相应的数据

 

1.3、USB 配置  接口  端点  的关系

  1、一个设备可以有多个配置,不同的配置对应不同的功能

    比如,一个USB接口CDROM,作为一个设备,

    它具有两种功能,1读取光盘 和  2播CD,所以有2Configuration描述符

  2、一个功能的实现要涉及许多接口,

    比如CD播放机使用时,需要音频接口,同时还需要控制CD机的接口。 

  3、一个接口又有许多端点组成,一般真正通信都是针对端点进行的,比如用端点0来进行控制枚举传输

    stm32  支持8个双向端点,16个单向端点,每个端点只能时一个方向(OUT / IN),除了端点0

 

 

 

 、

二、区分高速全速 低速设备的方法

 

d+上面接电阻:全速/高速设备             d-  上接电阻:低速设备

 

 、

三、USB设备插拔检测机制

3.1、没有插上usb设备主机情况

  1. D+D-数据线上的下拉电阻起作用,使得二者都在低电平;主机端看来就是个SE0状态;
  2. 同样地,当数据线上的SE0状态持续一段时了,就被主机认为是断开状态 

 

 

3.2、 插上usb设备时

 

当主机检测到某一个数据线电平拉高并保持了一段时间,就认为有设备连上来了

主机必需在驱动

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值