U盘开发之USB协议

    周末这两天,过的太失败了,诸事不顺,下次出门前一定先看看黄历。

    用USB协议分析仪抓了一个U盘启动流程的包,对于了解USB协议和U盘启动有很大的帮助。

    USB Protocol

 

    原始抓包是一帧一帧的USB协议包,很不直观,LeCroy这个软件提供了强大的分析功能,抓包时设置了过滤条件,解析SCSI命令,并按应用层展开,最终的效果如上图所示。

    从左向右,最左一栏是transaction,HS表示High Speed, Control是传输模式,其它传输模式是Bulk,Interrupt,Isochronous。ENDP是端点。点击Data左上方的箭头,可以展开查看当前数据,可以用文本和16进制两种方式。

    制作启动U盘时,有三种方式,FDD HDD ZIP,通常都是HDD,如果用extlinux制作的话,默认就是HDD,这个兼容性最好。

    USB启动流程,首先读取固件的描述符,得到设备类型,接口信息,端点信息,识别为Mass Storage,就发送标准的SCSI命令,读取U盘的第一个扇区,即MBR,读完后,读取引导信息。

    关于启动U盘的制作,参见extlinux的官网,USB的重枚举,可以看Cypress的官方文档和USB2.0协议。这里只是做个抛砖引玉的简单介绍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值