在数据采集和测量仪器尤其是便携式设备中,需要可支持大容量数据储存的便携式设备,本文介绍一种超大容量的RS232/485串口转SD/TF内存卡数据存储器,数据存储器采用模块化设计,不需要用户对现有设备进行改造,实现数据实时存储。
系统结构:
数据自动存储的客观要求
在许多测量过程中,不仅要求读取简单的仪表值,而且还需要对一段时间的数据进行科学的分析和处理以取得预测和分析的目的。在这种情况下,可能要求测量时间长,采集要求自动进行,无需人工值守,所以数据必须自动存储;另一个原因,采集数据的频率比较高,人的观察不能满足实际需要,这就要求对采集的据进行有效的存储。
为实现系统高可靠性、高效率的工作,必须采用基于ARM架构的高性能32位嵌入式微处理器作为系统的管理核心,通过与高效的嵌入式操作系统相结合,采用独特的动态内存分配算法,以此管理文件系统对内存的消耗和释放,提高数据的传输效率,避免数据丢失,实现实时数据的可靠存储。
SD/TF卡与ARM接口软件设计:
a 首先初始化SD/TF卡、检查状态、扇区读写等基本操作。文件系统层按照PC文件系统要求设计,如FAT表、文件目录表等兼容PC机的文件管理系统,从而能够大大简化后端数据的分析和处理。文件操作层包括文件的建立、读写、删除等。
b 当检测到有串口数据,系统自动在SD/TF卡上创建一个事先定义好的文件夹,目录下生成一个存储数据文件,进行实时数据存储。文件夹名称可通过配置软件自定义命名,例如2011年的数据,文件夹名称可以定义为20111001;数据存储文件为.TXT文件,系统自动创建,自动编号,不重复覆盖,便于文件管理。
c 由于数据采集系统的限制和具体环境的要求,便携式RS232/485数据存储必需适合长期无人值守、速度快、通用性好。为了能够长期进行数据存储除了采用更大容量的SD/TF卡外,如果几G甚至几十G的数据同时存储在同一个文件中,这样大量的数据后端分析和处理必定会给我们造成巨大的麻烦,因此要求便携式数据存储的FAT32文件系统的处理更加完善、更加智能化。这就需要探索一种更好的文件管理方式,经过多次的实验与尝试,采用定时创建数据存储文件进行存储,有利于对数据进行更有效的管理,更好的分析处理。例如:假定用户通过配置软件设置间隔24个小时即一天(根据用户设备具体的存储数据量大小情况决定时间)创建一个数据储存文件,那么N天后,文件夹20111001下将自动创建有N个TXT文件分别为0001.TXT、0002.TXT……N.TXT,各个时段的数据将完整的保存在相对应的文件中,不丢失任何字节。
d 在一些特定应用场合,并不需要对数据进行实时处理和显示,只是记录下原始数据,将其作为一个“黑匣子”,为后端处理做准备。这就需要SD/TF卡可以循环使用,当数据量达到已设定的存储卡容量后,自动覆盖原有的存储文件。
f 以往的大容量数据储存系统只具有被动的接收数据进行保存功能,然而随着技术的不断更新,已经远远不能满足现有数据采集设备的需求;更多的用户设备,需要由数据储存系统处于主机状态,主动发送握手信号,用户设备接收到信号后被动反馈信息,然后由数据储存系统存储数据。串行通信接口由用户来控制,用户可以设置10多条不同的“轮询”指令,和间隔时间。系统在主程序中初始化,采用串行口工作方式由系统主机向数据设备进行呼叫,定期读取数据或者写入数据,其程序流程图如下 :
硬件接口设计:
a 提供RS232/485接口,支持2400~115200宽范围波特率。串口全透明数据传输,无需传输协议,透明保存用户的数据,100%可靠存储,支持高达14K 字节/秒的数据储存能力。
耐震动设计:
无论是在存储管道在线检测数据,还是无人航载信息黑匣子都需要数据存储设备具有一定强度的耐震动能力,对此硬件设计上采用自锁式卡座,内嵌存储卡,具有防震功能;避免由于意外使存储卡与卡座接触不良,而造成数据无法储存。
蜂鸣器报警功能:
对于重要数据,丢失数据给我们带来的损失是惨痛的,系统软件设计了系统出错报警。系统上电后,首先对SD/TF卡进行初始化,初始化成功蜂鸣器响一下,说明系统运行正常;蜂鸣器长响为出错报警。
典型应用
数据的传输
数据传输是存储在内存卡中的数据到达计算机的有效途径,数据上传到计算机最常用的是串行(RS232)接口,现在由于USB技术的不断成熟,通过USB可以方便快捷实现数据传输,而且可以满足速率和设备外观的要求,但是USB的驱动程序设计是比较复杂的工作,我们采用特殊的处理方式,无需安装驱动便具有USB拷贝数据功能,U盘式管理, 方便快捷。
结论
在数据采集和测量仪器尤其是便携式设备中,数据存储和传输是不可避免的问题,大量的重要数据是否能可靠的保存至关重要。