打印

USB开发系列——U盘开发

[复制链接]
1461|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
insignal|  楼主 | 2012-9-3 11:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 insignal 于 2012-9-3 11:35 编辑



以下文字内容版权归北京飞易来科技有限公司所有,未经许可,请勿转载!

开发U盘,很重要的工作就是管理nand flash,这关系到U盘的可靠性、寿命、成本等。这些和USB就没有太多关系了,这里不讲。
另外一个重要部分就是U盘命令的解析,这主要关系到U盘的兼容性,以下就讨论这个内容。
U盘遵循MSC mass storage class和BOT bulk only transport协议。这两个协议比较简单,BOT当中的13个case需要仔细斟酌,必须全部支持,建议使用状态机方式来实现;注意Serial Number,同一种U盘的Serial Number必须不同,否则插上去多个U盘,PC只能识别出一个。
麻烦的是U盘需要支持的SCSI命令集,www.t10.org上SCSI命令集一大堆,到底要支持哪些。没有完整的文档说明U盘必须要支持哪些命令。要获取这些命令,最简单的方法就是找一个U盘,用bushound把数据都抓下来进行分析。(所以,别看现在U盘满大街都是,但做出第一个U盘的人是挺厉害的)
开发U盘需要参考到SPC、SBC、SMC等规范,当然不是全部要看,需要哪部分就看哪部分。
一个基本可用的U盘,需要支持的命令有:
Unit Test Ready
Inquiry Data
REQUEST SENSE
Read Capacity
Read Format Capacity
Read10
Write10
VERIFY10
解析完这些命令一个基本上可用的U盘就可以实现了。
如果要继续深入,兼容性做得更好,windows2000->win8、linux、mac都能支持,在解析命令时需要一些小的技巧;另外,还需要额外支持一些命令。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:★所有产品免驱动 ▲USB转SPI/I2C/UART芯片 ▲模拟USB键盘鼠标芯片 ▲USB继电器/光耦 ★freeeasy-life.com

8

主题

232

帖子

1

粉丝