标题:
嵌入式U盘读写器接口技术和系统设计(2)
[打印本页]
作者:
yuyang911220
时间:
2016-11-21 10:02
标题:
嵌入式U盘读写器接口技术和系统设计(2)
UFI是针对USB移动存储而制定的命令块协议,它规定了主机和设备进行信息交换所使用的命令块、数据和状态信息,Bulk-Only传输协议定义了传输这些信息的方法,其中UFI命令块是封装在CB W包中的CBWCB,设备通过读取CBWCB确定具体要执行何种操作命令(如读命令),如何完成这个命令(如从闪存的哪个地址读,需要读取的长度),设备将命令的执行状态封装成CSW返回给主机。UFI用于大多数命令的12字节命令块的描述,结构如图4所示,其中各参数意义如下:
1)操作命令代码。指明所需要执行的操作命令;
2)逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为0。
3)逻辑块地址。命令操作的起始地址。
4)传输长度,指明请求传输的数据量,通常以"扇区"作单位,但是有几个命令是以"字节"作单位的,对于这些命令,传输长度域可以以不同的名字标识,若此域的值为0,则表面没有数据需要传输。
5)参数列表长度,用于指定发送到设备的字节数,这个域典型的应用于发送到设备的参数命令块(如模式参数、诊断参数等),若此域的值为0,则表面没有数据需要传输。
6)分配长度,指明主机已经分配的用于返回数据的最大字节长度,若此值为0,则表明没有数据需要传输。
2.3 FAT32
FAT是Microsoft较早推出的文件系统,具有高度的兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT由引导扇区、FAT1表、FAT2表、目录和文件区组成(其中FAT2表是FAT1表的备份)。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的,FAT将块映射成扇区,原理相同,FAT将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为"簇"。通常情况下,每扇区512字节的原则是不变的,簇的大小一般是2n(n为整数)个扇区的大小。所以以簇为单位而不以扇区为单位进行磁盘的分配,是因为当区分容量较大时,采用512字节的扇区管理,会增加FAT表的项数和大文件存取的消耗,使文件系统效率不高。
引导扇区DBR(DOS Boot Record)通常占用分区的第0扇区,共512字节,FAT表紧随其后。DBR的第一部分是一个x86跳转指令、厂商标志和操作系统版本号,接下来的从偏移0x0B开始的是一段描述能够使可执行引导代码找到相关参数的消息,通常称之为BPB。最后是引导程序代码以及扇区结束标志。BPB中记录了扇区大小、簇的扇区数、保留扇区数、FAT表大小和文件系统类型等重要参数,用于文件的索引和定位计算。
2.4 软件系统模块
USB读写器软件由主模块、USB模块、BULK模块、FAT模块和中断处理模块组成。各模块之间相互协调调用,共同完成对U盘文件的读写创建。
USB模块负责检测USB设备的移入/移出,对插入的设备进行枚举,分配设备地址端点号,配置设备接口端点描述符,建立BULK_ONLY输入/输出通道,BULK模块则在已建立的BULK_ONLY输入/输出通道发送CBW数据包,并接收CSW数据包,通过CBW中嵌入的CBWCB信息确定对U盘读/写操作的扇区位置和大小,FAT模块主要完成簇和扇区间的索引定位,即在U盘内寻址,利用BPB中的参数计算给定扇区的所在簇以及进入休眠状态,等待外部中断唤醒。
中断处理模块是在中断唤醒后根据中断类型进入不同功能子模块的,也是整个软件系统的核心部分。中断模块接收到串口或并口数据后,根据内部命令字要求进行解析,命令字要求如图5所示,串口或并口数据接收流程如图6所示。
3 应用测试结果
在人造金刚石压力机压力锤头裂纹检测中,采用声发射技术进行实时监控,一旦出现异常立即停机报警,为了对出现异常时的数据进一步分析,需要将现场数据带回研究室。利用基于嵌入式的U盘读写器可以免去现场布线的麻烦,还可以省去PC机端驱动软件的开发,直接将现场数据写入U盘,方便地利用PC机中安装的MATLAB进行数据的详细分析处理。
结语
基于嵌入式U盘读写器的设计实现可以方便地将下位机数据存储到普通U盘,彻底解决了工业控制中上下位机之间数据传输难的问题,也为以后其他领域的应用创造了前提条件,如长途客车中的黑匣子、家庭老人健康监测,随着USB技术和闪存技术的进一步发展,该设备应用领域将会逐步扩展,市场前景良好。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0