1
摘要
由于人民生活水平提高而带来巨大的消费需求、信息产业的推进、电信
运营业的发展,信息产业市场空间将得到进一步拓展。在这良好的经济环境
下,嵌入式系统领域也得到进一步的拓宽与发展。嵌入式系统是以应用为中
心、以计算机技术为基础、可剪的软硬件来适应系统对功能、可靠性、成本、
体积、功耗严格要求的专用计算机系统。嵌入式系统广泛地应用在信息终端、
工业控制和信息家电等领域,且随着嵌入式产品应用领域的日益增长,USB
外设的应用范围也随之扩大,在加上 USB 规范的完善和成熟,USB 外设的种
类不断丰富,应用领域也不断扩大,为此在嵌入式系统中实现对 USB 外设控
制也变得日益迫切。在传统的应用中,主要是 PC 扮演着主机的角色。根据 USB
的规范,可以看到在 USB 的拓朴结构中居于核心地位的是主机,每一次的数
据传输都必须由主机发起和控制。USB(通用串行总线)用于将适用 USB 的外
围设备(device)连接到主机(host),是实现二者之间数据传输的外部总线结
构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在
中速和低速的外设,应用是很广的。
本课题是基于嵌入式系统的 USB 开发设计,通过 USB 实现了 Flash 文件
系统的读写,在设计中用到了 FAT16 文件系统以及 USB1.1 传输协议,设计
中的最大的难点是 PDIUSBD12 的固件编程,该程序包括初始化其所有端口、
存储区、定时器和中断服务程序的主循环程序,中断服务程序,设备标准请
求程序以及对 NAND Flash 读写程序代码。本设计的目的是要用开发板做一个
类似于 U 盘的设备,通过 USB 电缆于 PC 连接,实现 PC 端到开发板的数据快
速传输。当 USB 电缆连接了开发板与主机以后,首先主机按照 USB1.1 协议
发送描述符请求,客户端根据请求要的描述符进行回复,所有的描述符发送
完成以后,客户端会被主机认成一个 USB 海量存储设备;接着主机发出 SCSI
指令,用于读取 FLASH 或者是 SDRAM 上的 FAT 文件系统扇区信息,如果信息
能够正确读取,主机将把开发板上的 FLASH 或者是 SDRAM 识别为一块可移动
磁盘,开发者只要通过 PC 端的资源管理器,就可以实现对开发板上存储资
源的操作。
关键词:USB FAT16 文件系统 FLASH