玩ARM7板,开发U盘

preview
需积分: 0 17 下载量 138 浏览量 更新于2008-06-10 收藏 35KB DOC 举报
在本文中,我们将探讨如何利用一块ARM7开发板来开发U盘。ARM7是一种广泛应用的微处理器架构,常用于嵌入式系统,如移动设备、工业控制和消费电子产品。在这个项目中,开发者使用了一块来自深圳得技通电子的基于S3C44B0X的ARM7开发板,该板载有一个PDIUSBD12接口芯片,用于实现USB通信。 开发者将ZLG提供的D12源代码DEMO的底层函数移植到ADS1.2环境下,这是一个常用的ARM开发工具链。移植过程主要是调整和适配代码,确保在新的开发环境中能够正常编译和运行。 接下来,关键步骤是配置设备的描述符,这些描述符向主机提供了设备的能力和特性信息。在USB设备中,接口描述符定义了设备的接口数、类、子类和协议。对于U盘,接口描述符的类设置为0x08(大容量存储类),子类设置为0x06(UFI或SCSI-2协议),协议代码设置为0x50(单批量传输协议)。此外,端点描述符定义了数据传输的端点,这里除了端点0外,还有3个端点,但开发者并未使用端点1。 在设备枚举完成后,主机将发送一个类特定请求,以获取设备的最大逻辑单元号(LUN)。这个请求在控制处理函数`control_handler(void)`中被处理,根据请求类型,调用对应的处理函数。 整个U盘开发过程中,开发者选择使用查询方式而不是中断,这意味着程序会不断地检查是否有新的USB事件,而非等待中断事件发生。这种方法虽然可能增加CPU负荷,但在某些简单应用中是足够的。 这个项目的难点在于理解和配置USB协议,尤其是USB类请求和设备描述符的设置。开发者提到,尽管他个人对ARM并不熟悉,但通过参考现有的DEMO和文档,他成功地实现了U盘功能。这表明,只要有实践和学习的决心,即使非计算机专业背景的人也可以完成类似项目。 开发者鼓励读者动手实践,认为这是提升技能的关键。他分享了自己从新手到熟练的过程,并提供了一个可以参考的起点,希望对那些对USB通信感兴趣的初学者有所帮助。无论你的背景如何,只要你愿意动手尝试,都有可能做出属于自己的U盘项目。
orcd
  • 粉丝: 85
  • 资源: 194
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜