综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章接口电路正文
 
S3C44BOX开发板的USB设备接口实现方案
发布日期:2006-07-04 作者:张 龙 李 波 来源:PLC&FA

关键词: S3C44BOX   Nand-Flash存储器   Bulk-Only传输   UFI命令

1  引言
S3C44BOX开发板是一个广泛应用于学习嵌入式技术的平台,一般开发板都带有USB开发接口,并提供了一部分资料,主要是关于USB主机对设备的枚举和配置的,本文是在此基础上将该开发板扩展做成一个USB海量存储类设备,实现了开发板与PC机的通讯,用于开发板与PC机之间的大文件传输及应用程序的下载。

2  实现方案
2.1  硬件扩展
硬件扩展连接如图1所示。
图1是三星的Nand-Flash存储器 K9F5608U0BY与S3C44B0X的接口电路。在嵌入式控制器上,S3C44BOX开发板自带Philips的PDIUSBD12设备端接口芯片,通过该芯片扩展出一个USB的设备接口。因为此接口是USB的设备接口,所以只能和USB的主控芯片(USB HOST),这里我使用的PC机的USB端口。
2.2  软件构架

图1     Nand-Flash存储器K9F5608U0BY与S3C44B0X的接口电路
通过USB设备接口芯片,采用Bulk- Only传输方式,将此设备做成一个海量存储器,使用嵌入式控制器具有U盘功能。这样,一来嵌入式设备的应用程序可以直接通过U盘这种途径下载到嵌入式控制器的Flash存储器中;二来,为嵌入式设备引入FAT文件系统,使其与U盘的闪存兼容,这样,可以使用嵌入式设备在共同的Flash上创建文件,然后通过U盘功能方便的复制到PC机上。
(1) 主流程
在S3C44BOX开发板系统中,嵌入式USB设备与PC机的通讯主流程图如图2所示:

图2     嵌入式USB设备与PC机的通讯主流程图
根据图2,可以看到当S3C44BOX开发板连接到主机时,首先实现USB主机对设备的枚举和配置,使主机确认设备的功能,并提供资源,这一部分是通过标准USB请求处理完成和实现的。一般开发板都带有处理标准USB请求程序,在这里就不详细分析。
当配置过程完成后,主机和设备就可以传输数据了。由于主机要支持的设备是USB闪存盘,它是USB的MassStorage类设备,这里Mass Storage类采用单批量Bulk-Only的传输协议,子类则采用UFI命令集。
Bulk-Only传输协议中传输流程如图3所示。

图3     Bulk-Only传输协议中传输流程
这里,主机向设备发送命令字CBW(Command Block Wrapper),USB设备通分析并执行相应操作,将执行状态通过状态字CSW(Command Status Wrapper)返回主机。
UFI命令集主要是应用在软磁盘接口设备中,也可以应用在类似于Flash存储设备中,实现对USB闪存盘设备内的Flash进行读和写,任何Mass Storage类设备也可以采用此协议,只要这种Flash存储设备通过软件模拟了这种接口就可以。
(2)端点请求处理流程
主流程中Bulk-Out端点请求处理流程如图4所示:

图4     主流程中Bulk-Out端点请求处理流程
在这里,主机向设备发送命令字CBW(Command Block Wrapper),USB设备通分析并执行相应操作,对于海量存储类设备,USB协议中约定了几类不同的命令集,属于海量存储类设备的子类,给不同的设备用。例如,子类号02为DVD设备,04为软盘驱动器,06为通用SCSI类设备。在本例中,配置为软盘驱动器类设备。主机向设备发送的命令都属于UFI 命令集。由于实现的功能为大文件的传输,故只对少数几个命令提供了支持,如读磁盘扇区、写磁盘扇区、查询设备状态。执行完后,USB设备向主机返回CSW 状态字。对于不支持的命令,只需向主机发送空响应。
主流程中Bulk-In端点请求处理流程如图5所示:

图5     主流程中Bulk-In端点请求处理流程图
以上就基本完成了通讯的实现流程。这里还要说明的一点是,作为海量存储类设备的 UFI类,主机将以访问磁盘的方式来访问设备。所以,在使用前,我们需要按磁盘分区表(FAT表)的格式对一片RAM进行格式化。在本例中采用了 FAT16的格式。FAT16系统中,第一个512字节为引导扇,此扇区包含BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,FAT扇区数、FAT拷贝数、根目录表项最大值等,可根据具体的系统设定。由于篇幅所限,FAT16表的细节请感兴趣的读者参考有关资料。本例中支持四种对RAM盘的操作:读/写磁盘扇区、查询磁盘大小和弹出设备。对于读/写操作,只需要将主机请求读/写的扇区数转换成为RAM盘的地址,将数据写入或读出就可以了。文件发送完毕后,在Windows 2000下选择弹出设备操作,设备收到后会终止USB连接。

结束语
USB接口不仅硬件连接方便而且数据传输速度很快。在这里通过Flash扩展,实现了开发板与PC机之间的大文件传输,可以很方便的为开发板下载程序或大文件, 有很强实用性。


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于S3C44BOX的远程监测系统的设计与实现 (07-23)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号