首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于μC/OS-Ⅱ的嵌入式USB控制软件的实现
来源:本站整理  作者:佚名  2011-08-22 14:31:14




    USB Host检测到有DevICe插入后,进行总线复位。然后Host使用默认地址0读取设备描述符。获取设备描述符的USB设备请求命令结构体为:
    g.jpg
    h.jpg
    第1次读取设备描述符时,Host首先发送setup包;之后进入主机读取数据阶段,Host发送in包,Device返回一个18 B的设备描述符,可以用一个结构体将其读回。最后Host发送0 B的数据包作为状态相应,设备返回ACK作为应答。用逻辑分析仪抓包,3个包如图3所示。

m.jpg


    第1次读取设备描述符后,Host依次进行地址分配、第2次读取设备描述符、读取配置描述符、读取描述符集、设置配置、读取配置状态和读取接口状态,方法和第1次读取设备描述符的方法一样。
i.jpg
3.2 U盘兼容性
    在设备枚举阶段将会碰到很多关于U盘兼容性的问题。
    (1)总线复位时间。不同型号的U盘对于总线复位时间的要求是不同的,比如金士顿1 GB的U盘需要的复位时间至少280 ms。在实现中为保险起见,给予400 ms的复位时间。
    (2)有些U盘的端点0是8 B payload的,大多数是64 B。对于8 B payload的U盘,要严格从第1次获取设备描述符时返回的第8字节获取payload,否则尽管枚举过程仍然能通过,但是后面在分析32字节的配置描述符时候会出现问题,没有收到完整的配置描述符是分析不出端点1和端点2的地址以及端点payload的。
    (3)在枚举阶段获取字符串描述符的时候,要进行判断。因为有些U盘不支持返回字符串描述符,用if语句判断,如果获取不到字符串描述符就跳过,不要返回失败。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:112,914.10000 毫秒