微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的大容量数据存储技术的应用研究

基于单片机的大容量数据存储技术的应用研究

时间:01-31 来源:互联网 点击:

0 引言

在现场测控系统中,RTU(远程测控终端)存储容量、存储数据的转移问题始终是RTU的重要环节。RTU的存储容量一般为几十K~几百K字节,数据转移通常采用不掉电静态RAM、EEPROM存储模块,或采用便携式计算机通过串行口读取RTU数据。无论采用哪种方法都存在一定的局限性。首先存储容量小,对于大量的数据存储显得比较紧张。对于数据转移,如果采用存储模块,虽然携带方便但不是通用设备,其成本较高,同时不能与计算机兼容,要将存储模块的数据录入计算机还需要专用的读取设备;如果采用便携式计算机读取RTU数据,虽然读取方便,但在野外便携式计算机也是一个不小的包袱。

随着USB(Universal Serial Bus)技术的发展,计算机的移动存储介质普遍采用U盘或移动硬盘。U盘的存储容量以MB为单位,移动硬盘的存储容量以GB为单位,它们相对于RTU原先的存储模块来说都是海量存储,所有数据存也无需进行压缩处理,可以在文件级与计算机兼容。即便是对于那些小数据量存储的RTU,虽然只依靠单片机内部的 FLASH就能满足存储要求,然而采用USB接口就能方便地用一个U盘分别读出多个RTU的数据。

如今,USB技术已经越来越普及和成熟,低成本、高稳定性、较高的数据传输速率和即插即用的方便性,使其备受硬件厂商的青睐。随着数据采集和嵌入式用户对移动存储的需求越来越大,具有USB接口的存储设备以其优异的性价比和灵活性常用来进行数据的存储和交换,所以在嵌入式系统中实现对优盘或移动硬盘的直接读写是非常有价值的。

1USB设备开发的一般过程

1.1 USB接口芯片的选择

在进行一个USB设备开发之前,首先要根据具体使用要求选择合适的USB接口芯片,它是总线在主机方面的接口,用于支持USB设备通过USB连到主机上。

目前,市场上供应的USB控制器主要有两种:带USB接口的单片机和纯粹的USB接口芯片。前者的好处在于开发者对系统结构和指令集很熟悉,开发工具简单,但对于简单或低成本系统,价格高将会是最大的障碍。而纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器进行协议处理和数据交换。这类芯片的特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构作很大的改动)41]。

1.2 硬件电路设计

在选定USB控制芯片后,如果是带USB接口的单片机,那就是一般单片机应用系统的开发;反之,就是如何把USB接口芯片与单片机应用系统融合的问题,一般的USB接口芯片都支持多种并行总线结构,可以方便地与多种单片机接口。

1.3 软件设计

设计完USB主控器与系统中CPU和存储器的接口电路后,就要开发主机系统上的主要外设驱动程序,USB的核心驱动以及USB主控制器驱动程序了,由主机系统控制USB数据的传送动作,响应来自外设的USB标准请求,完成各种数据的交换工作和事件处理。

软件设计中要注意的是先要考虑USB总线延时问题。理论上USB总线工作在全速时的最小响应周期为1毫秒,但是实际上的响应周期可能会到几十毫秒。其原因是多方面的,比如驱动程序、多重缓冲区等。这是在实时控制项目设计时首先要考虑的因素之一。

1.4 调试

因为每一次USB的传输过程,都有时效要求,等待时间过长,通信过程也就中止了,因此不适合用硬件仿真器来设断点调试。可采用串口辅助调试过程,即在固件代码中加入类似于Printf的语句,向串口输出一些信息。借此,可以知道程序运行到哪,以及运行到某处时相应的变量或寄存器值。

调试工作基本分三步进行:首先对单片机部分借助PC调试软件(芯片生产商提供或从网上下载Bus Hound,WINRT-USB 等调试软件)将设备端的USB协议(主要有描述符请求、端口配置、地址设置以及基本数据交换)调通。然后,用调试好的USB设备接口来开发、调试PC 软件。最后,加上USB设备端的其它用户程序,对整个完整的系统进行调试。

2 应用实例

下面从硬软件两方面具体介绍本案例,重点分析了初始化问题。本例研究开发了一种基于单片机的USB总线的HOST接口,使得可以接入标准的USB DEVICE,针对大容量数据固态存储的技术需要,在单片机上研究实现FAT32(兼容FAT16)的文件系统,从而使得USB的Mass Storage类设备可以自由接入,现场采集的数据可以以文件的形式存储记录。这样,就大大拓宽了传统的数据测控终端在长时间大容量的数据存储技术上的限制。

本例采用MSP430F149单片机作为核心处理部件,Philps公司的ISP1161A1为USB主控芯片,由MSP430F149控制 ISP116

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top