USB OTG技术及其在存储测试中的应用
扫描二维码
随时随地手机看文章
存储测试是在对被测对象无影响或影响在允许范围的条件下,在被测体或测试现场放置微型数据采集与存储测试仪,现场实时完成信息的快速采集与记忆,事后回收并由计算机处理和再现测试信息的一种动态测试技术。存储测试的主要技术特点是现场实时快速完成动态数据采集与存储记忆,特别是在多种恶劣环境和紧凑设计条件下完成动态参数测试,事后回收处理再现。传统的存储测试仪存在着如下不足:
(1)存储介质置于仪器内部,回读数据必须将整个仪器伺收。由于存储测试所面临的测试环境复杂,往往加装了复杂、笨重的防护体或置于掩体中,给仪器的拆卸回收造成了困难。而户外回读分析数据往往受条件所限难以续施。 (2)随着存储测试技术的发展,存储测试所面临的对豫和环境日趋复杂,测试时间和所需容量灵活多变,并逐步加大。由于传统的存储测试仪设计结构所限,不同容量就意味着要重新设计生产新的仪器。
(3)当前的计算机主板普遍集成了USB接口,存储测试仪一贯采用的"大端口"如:并口、串口等已逐渐被抛弃。一些新推出的主板甚至只集成了。USB 口。存储测试仪接口必须适应这一转变,通过一定的措施实现基于。USB 口的通信。本设计采用南京沁恒公司的CH375和Atmel的ATmega32单片机所设计的存储测试仪有效克服了以上的不足,在实际应用中取得了良好的效果。U盘作为新型移动存储设备,以体积小、速度快、抗震动、通用性强的特点备受青睐。该系统通过单片机对U盘进行读写操作,采集数据按文件方式直接存储到U盘,可以有效提高数据保存速度及可靠性。特别适合于长时问、大容量数据采集的场合,方便了与PC等上位机进行数据交换,从而实现现场采集数据、室内分析数据。通过更换U盘可以灵活选择系统容量,极大地提高了存储测试仪的通用性,降低了测试成本。
2 USB OTG及海量存储设备协议
作为USB 2.0的补充规范USB OTG(On The Go)以其双重强大功能使USB设备摆脱了对PC的完全依赖,USB外设在无PC主机参与的情况下可以直接互连以进行通信。USB通信以分层方式进行,总体上可分为功能层、USB设备层和总线接口层。U盘属于USB家族内的海量存储(USB Mass Storage)设备,是一种基于块/扇区的随机存储设备,他与主机之间采用"控制/批量/中断"(CBI)方式或"批量"(Bulk-Only)方式与主机通信。USB通信协议规范十分复杂,'USB海量存储协议包括CBI,Bulk-Only,ATA和UFI等4个独立的子类规范。前2个子规范定义了数据/命令/状态在USB总线上的传输方法,后2个子规范定义了存储介质的操作命令。其中,ATA命令规范用于硬盘,UFI命令规范则是针对USB移动存储制定的。U盘在进行数据保存之前,必须先按某个文件系统的规定进行格式化。相对于计算机硬盘来说U盘的存储容量要小得多,因此在U盘中FAT16文件系统可取得比较高的综合效率且兼容性较好,广泛地应用于U盘之类的移动存储设备中。FAT16文件系统结构分为5个部分:MBR区,DBR区,FAT区,FDT区,DATA区。其中MBR区为主引导记录区,DBR区为操作系统引导记录区,FAT区存放文件分配表,FDT区存放文件目录表,DATA区是真正意义上的数据存储区。
3 系统硬件设计
系统采用AVR高档机系列中功能强大的单片AT-mega32作为中央处理芯片,选用南京沁恒电子公司的CH375作为USB主机控制芯片。硬件系统的工作原理框图如图1所示:
500)this.style.width=500;" border="0" />
ATmega32是一款基于AVR RISC结构的低功耗8位单片机,外接:16 MHz晶振性能可达:16 MI/S。AT-mega32包含了32 kB的系统内可编程FLASH,1kBE2PROM,2kB SRAM,32个通用I/O 口,32个通用工作寄存器,一个8路10位具有可选增益差分输入的A/D转换器,支持多种接口方式。丰富的片上存储器空间极大地提高了对U盘操作时的工作效率,多样化的外围接口方便了系统的扩展,高效的CPU指令集可以使系统获得比较高的采样率。CH375具有8位数据总线和读、写、片选控制线以及中断输出,同时支持5 V和3.3 V电源电压,遵循USB 1.1规范。因此CH375作全速USB Host。主机接口时只需外加晶振和电容,就可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。由于读写U盘或移动硬盘时一般都是以扇区模式进行的,为了进一步提高执行效率可以适当增大磁盘数据缓冲区和文件数据缓冲区(都是512 B的整数倍),并且缓冲区越大,执行的效率越高,所以外扩了32 kB的RAM 62256。传感器信号经模拟电路调理之后由A/D转换器MAX 153量化成数字信号,在单片机ATmega32的控制下循环存入62256。待触发信号到来之后,按照程序预设的负延迟点数将62256扣的数据连同后续到来的信号全部经由CH375存入外挂的U盘,直至写满在U盘中新建的文件并关闭。同时由系统所设置的状态灯指示工作已完成。[!--empirenews.page--]
实际设计中ATmega32与CH375接口部分的原理图如图2所示:
500)this.style.width=500;" border="0" />
4 系统软件设计
USB大容量存储设备软件结构示意图3所示:
500)this.style.width=500;" border="0" />
一般情况下,单片机或嵌入式系统处理USB存储设备的文件系统需要实现图3左边的几个层次,右边是USB存储设备的内部结构层次。由于CH375不仅是一个通用的USB-HOST硬件接口芯片,还内置了相关的固件程序,简化了外部编程。内置固件包含上图左边的UFI命令层,USB基本传输命令层及Bulk-Only协议层,所以实际的单片机程序只需要处理FAT文件系统层,并且即使这一层也可以由CH 375的U盘文件级子程序库实现。CH375以C语言子程序库提供了。USB存储设备的文件级接口,这些应用层接口API包含了常用的文件级操作,可以移植并嵌入到各种常用的单片机程序中。
这里采用ICC AVR软件来编写ATmega32的程序,并调用CH375所提供的AVRU盘文件级子程序库CH375HFB.A。程序运行并初始化后,系统进入待触发状态。检测到触发信号到来之后,通过CH375FileCreate新建文件,将AD所采集的数据通过CH375FileWrite写入U盘,文件写满之后调用CH375FileClose关闭文件。采集结束之后直接取下外接的U盘便可以拿回室内分析。由于采用了文件管理模式,所需操作十分简单,就像平常读取U盘中的文件一样。
5 结 语
经测试该系统在实际使用时达到了预想效果,克服了以前存储测试仪的一些不足。尤其对于缓变大容量信号的采集取得了良好效果。由于CH375只支持USB1.1协议,并且采用了单片机作为控制器负责管理整个系统的运行,势必影响到仪器的采样率。因此,选用支持USB 2.0协议的OTG器件,同时采用性能更好的控制器如DSP,CPLD等可极大地提高仪器的采样速率,以适应更高的需求。