摘要
USB(Universal Serial Bus)是一种通用串行总线。是一种快速、灵活的总线接口。与其它通信接口比较,USB接口的最大特点是易于使用,这也是USB的主要设计目标。作为一种高速总线接口,USB适用于多种设备,比如数码相机、MP3播放机、高速数据采集设备等。易于使用还表现在USB接口支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预。
本论文简要介绍USB(通用串行总线)大容量存储设备类,给出USB控制PDIUSBD12和闪存K9F2808的原理框图,并以这两个芯片为例设计出存储设备的电路图,最后列出程序流程图并加以调试。
论文主要对以下几个方面作了研究:
①USB系统枚举过程的实现。
②K9F2808数据读写控制。
③文件系统在K9F2808上实现。
④绘制整体电路图并编相应各部分程序。
该设计主要以PDIUSBD12与K9F2808芯片研究为核心。主要包括USB接口、USB总线结构、USB协议、FAT16/32文件系统结构及各部分相关源程序调试及其运行等几大部分。
关键词:USB PDIUSBD12 K9F2808 移动闪存
目录
摘要 I
Abstract II
目录 III
1绪论 1
1.1 PC接口简介 1
1.2 USB 接口分析 1
1.3 USB 器件的选择 2
1.4 Mass Storage协议与FAT16文件系统 2
2 USB总线结构 4
2.1 总线拓扑结 4
2.2 USB设备 4
2.2.1 USB HUB 6
2.2.2 即插即用 6
2.2.3 设备电源 7
2.2.4 设备的挂起 7
2.3 USB主机 7
2.4 USB数据流 8
2.5 USB的端点 11
3协议 13
3.1 Mass Storage 协议 13
3.2 Bulk-Only传输协议 17
3.3 SCSI指令集 19
3.4 FAT16 文件系统 23
3.4.1 FAT 文件系统结构 23
3.4.1 FAT 区 26
3.4.2根目录区(Root Directory Region) 27
3.4.3文件和目录数据区 28
3.4.4 Flash盘的FAT结构 29
4固件程序的实现 31
4.1主循环——MAINLOOP.C 31
4.2 中断服务程序——D12ISR.C 33
4.2.1 控制端点处理 34
4.2.2 普通端点处理 35
4.2.3 总线复位和挂起改变 36
4.2.4 数据提交函数 36
4.3 标准设备请求处理——D12SETUP.C 37
4.3.1 获取状态 GET STATUS(00H) 37
4.3.2 清除特性 CLEAR FEATURE(01H) 38
4.3.3 设置特性 SET FEATURE(03H) 38
4.3.4 设置地址 SET ADDRESS(05H) 39
4.3.5 获取描述符 GET DESCRIPTOR(06H) 41
4.3.6 获取配置信息GET CONFIGURATION(08H) 41
4.3.7 设置配置SET CONFIGURATION(09H) 42
4.3.8 获取接口信息 GET INTERFACE(0AH) 42
4.3.9 设置接口 SET INTERFACE(0BH) 42
4..4 NAND FLASH操作程序——NFLASH32.C 43
4.4.1 块擦除函数 43
4.4.2 页拷贝函数 44
4.4.3 写预处理函数 45
4.4.4 写FLASH函数 45
4.4.5 读预处理函数 46
4.4.6 读FLASH函数 46
5固件调试 48
5.1检查USB器件是否正常工作 48
5.2设备枚举 48
5.3 BULK_ONLY传输协议命令处理 49
5.4 FLASH的读写 50
结论 52
致谢 53
参考文献 54
附录 A USB接口芯片命令总汇 55
A1.初始化命令 56
A2.数据流命令 60
A3.数据流命令 67