您现在的位置:首页 > 技术资料 | 上载库存 |
智能测量系统中的海量数据存储技术
摘要:介绍了智能仪器中海量数据的存储方法,并设计了一种海量数据存储模块。该模块采用Compact FLASH电子盘实现了大量数据的存储,并通过串口通信与各种现场智能设备和工控系统进行数据交换。最后将其应用于智能测产系统中,并进行了现场实验。实验结果表明,该模块具有很高的可靠性,满足了使用要求。 关键词:海量数据存储 电子盘 精准农业 智能测产 在一些智能仪器中,经常需要进行大量的数据采集和存储操作。例如,在精准农业作业中需要采集田地中每一个采样点的经度、纬度、产量和湿度等信息。采样点有成千上万个,产生了大量的数据,保证这些现场数据的可靠存储是测控系统设计中的关键问题之一。对基于PC机的智能仪器,这些数据可直接以DOS或WINDOWS文件的形式存入硬盘;而对于基于单片机的现场设备,则由于系统处理速度慢、没有操作系统支持和存储容量小等原因,难以满足上述要求。通常单片机所支持的存储单元的RAM、EEPROM或小容量的FLASH存储芯片,它们的一个共同特点是受寻址空间的限制,不能满足海量存储的要求。 该存储模块由微处理芯片、扩展I/O芯片、电子盘、IDE接口以及串行接口电路等组成。它通过串口与外部设备进行命令和数据的传输,通过IDE接口实现对电子盘的操作,由微处理芯片来协调和控制各部分的工作,这样便构成了基于单片机系统的海量存储系统。 1 存储模块的组成结构 CF卡存储模块由串口、微处理芯片、I/O扩展芯片、IDE接口、电子盘组成。 1.1 CF卡的结构和读写控制 微控制器通过82C55A组成的I/O扩展电路和IDE接口来控制CF卡。由于CF卡与IDE(INTEGRATED Drive ELECTRONICS)设备接口具有兼容性,这里IDE接口实际上实现了CF读卡器的功能,完成了50引脚CF卡接口到40引脚标准IDE接口的转换。所以借助于该IDE接口电路,微控制器读写CF卡采用的软硬件结构与控制IDE硬盘完全相同。下面对IDE接口作一简单介绍。 IDE接口引脚图如图2所示。其中,D(15...0)是数据线,GND为地线,IOW、IOR分别为写、读信号,RESET为复位信号,/CS0、/CS1、HA(2...0)为地址信号,I/O CHRDY为驱动器就绪信号。 IDE接口基于寄存器结构,所有的输入输出均通过对相应的寄存器进行操作来实现。表1为在/CS0、/CS1、HA2、HA1、HA0信号和读、写信号控制下所选择的寄存器名称及其地址。 表1 IDE接口寄存器地址
IDE接口的操作时序为: (1)等待驱动器将状态寄存器中的Bit7(BUSY位)清零。 (2)向相关的寄存器写操作硬盘所需的参数,即写扇区数寄存器、扇区号寄存器、柱面号寄存器、磁头寄存器等。 (3)向命令寄存器写命令代码。 (4)使中断使能位有效。 (5)等待驱动器置DRY#,发中断请求。 IDE接口有两种读写方式:LBA(逻辑块地址)和CHS(柱面/磁头/扇区)方式。本模块使用CHS方式。 微控制芯片采用51系列的SST89E564RD芯片,该芯片中含有1K的RAM(On-Chip RAM)和64K+8K字节的内置电可擦除存储器(FLASH ROM),支持在线编程(ISP),系统开发非常简便。对于电子盘的读写只能以扇区为单位,一个扇区有512字节,因此一次读写最少要有512字节。这就要求芯片中要有一个大于512字节的数据存储区,所以采用含有1K内存的SST89E564RD芯片是比较合适的,可以节省一个外接的数据存储器。 串口的作用是实现与外部设备之间的命令和数据传输。SST89E564RD共有两个串口,一个用来实现与单片机系统之间的通信,另一个用来实现与PC机之间的通信。与PC机相连的串口采用一个MAX232芯片来实现电平转换。这样,该模块可以在现场接收来自于单片机采集系统的数据并实时存储,而存储的数据也能被PC机读取,并进行事后数据分析。 标准的IDE接口有40个引脚,其中控制和数据引脚共有24个,这对于51系列芯片来说是无法控制的,所以需要一个I/O扩展芯片82C55A来将I/O口扩展到24个,以实现标准IDE接口和微控制器的连接。图3所示为82C55A的扩展I/O电路,图4为CF卡的IDE接口电路。 2 CF卡存储模块的程序结构 CF卡存储模块的程序采用C51语言编写,主要包括主程序和初始化、写扇区、读扇区和串口输入输出子程序等。其程序流程图如图5所示。串口输入采用硬件中断方式。程序能够接收来自于两个串口的命令并执行相应的数据读写操作。 在初始化子程序中完成初始化串口和电子盘,设置串口的工作方式和合适的波特率,并且使电子盘处于工作状态。 当接收到来自于串口输入的写扇区命令后,系统将在规定时间内等待扇区号的输入和数据的输入。如果超出规定时间,则系统会加到主程序的等待状态,这样防止系统进入别致个死循环。然后系统就会驱动IDE接口,把数据写入指令的扇区中。 对于读扇区命令,同样它也会在规定的时间内等待扇区号的输入,然后从指定的扇区中读出数据,并从串口将这些数据送出。 3 存储模块的应用 在精准农业的谷物产量在线测量过程中,需要实时采集收割机作业点的GPS位置信息、收割机行走速度、谷物的瞬时产量和湿度等信息,经过数据处理得到田间每一位置的作物产量信息,并及时存储起来。通过农业专家决策系统分析现场采集的田间产量信息,掌握土地的生产潜力差异,从而为下一年农业耕作提供指导,以实现“按需投入,提高资源利用率”。 自2002年5月以来,多次将该在线测产系统用于小麦和水稻收割过程的在线测产实验,该系统一直运行稳定,实现了数据的可靠存储和读取。实验中采集了大量现场数据,为进一步进行精准农业的研究奠定了坚实基础。 本文讨论了基于单片机的智能仪器海量数据存储方法,并设计了一种通用模块。为了验证其性能,还将该模块应用于精准农业的智能测产系统中。实验表明,此模块不仅成本低,而且运行可靠,为嵌入式测控系统的数据和工作参数的存储提供了很好的解决方案。
|