新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于STC15的U盘实时海量数据采集系统设计

一种基于STC15的U盘实时海量数据采集系统设计

作者:时间:2014-04-21来源:网络收藏

第二是操作沁恒公司提供的FILE SYS文件系统库,通过移植、裁减该文件系统库,在U盘中创建一个EXCEL格式的文件ZYZ_ADC.XLS,这是系统软件设计的核心所在。具体步骤是:首先单片机发送CMD_SET_USB_MODE命令设置工作在主机模式下,然后调用FILE SYS文件系统库中的DiskConnect函数等待U盘连接,U盘可以由自动检测并产生中断通知,也可以由单片机定时发送命令检测。U盘连接成功后,在进行操作之前必须由单片机发送CMD_DISK_MOUNT进行初始化,并检测磁盘是否准备就绪,确认磁盘准备就绪后,调用文件系统库函数CH376FileOpen,打开磁盘中已经创建好的文件,如果该文件不存在,则调用文件系统库函数CH376FileCreate并在磁盘中创建一个新的文件,设定其参数为“/ZYZ_ADC.XLS”即完成了在U盘中创建了一个名为ZYZ_ADC.XLS的EXCEL格式文件。另外,文件创建成功后为方便向文件中添加数据,还需要将该文件移置到U盘中所有已有文件的末尾,可调用文件系统库函数CH376ByteLocate,设定参数为0xFFFFFFFF即可移动该文件至所有文件之后。以上一切准备就绪后就可以向文件中写入数据了,最后就是保存文件并更新文件长度,涉及到的文件库函数是CH376GetFileSize。在U盘中创建EXCEL文件的软件流程图如图3所示。

本文引用地址:http://www.eepw.com.cn/article/245758.htm

 

 

第三是向已创建的EXCEL文件中写入A/D采集数据和时钟芯片中的日期、时间信息。系统软件是将EXCEL文件中的所有已采集的数据以字符形式存储的,因此对于采集的电压、日期、时间等二进制数据要转换成字符串形式。另外,EXCEL文件中的数据信息是以单元格的形式存储的,即每一次采集的数据存储在一个单元格中,因此在调用sprintf函数时,将采集的数据信息写入EXCEL文件时用“t”切换单元格,比如将采集的日期、时间、单元信息分别显示在3个不同的单元格中的函数格式为:

 

STC15和CH376的实时海量数据采集系统设计

 

 

 

2 系统测试结果

为了验证上述系统能否完成将A/D采集来的海量数据信息存入U盘中创建的EXCEL文件中,选用了2 GB的金士顿U盘作为测试对象,系统上电后插上U盘,即可看到CH376模块中USB读写指示灯变亮并且U盘指示灯闪烁数下,这表明U盘读写成功。然后,按下数据采集控制开关,可以看到U盘指示灯开始不停地闪烁,表示数据采集正在进行中,通过串口调试软件的打印窗口如图4所示,可以清楚地看到文件创建成功,数据写入文件的详细过程。

 

 

图4中File size=1表示创建了一个新文件,其大小为1 K,下面即是不停地向文件中写入日期、时间、电压等采集信息。待系统运行一段时间后取下U盘,将U盘重新插在PC上即可在U盘中发现一个新建的名为ZYZ_ADC.XLS的文件,打开该文件,如图5所示,可以看到系统采集到的日期、时间、电压等采样信息完整地存在于该文件中。

 

 

结语

本文提出的基于系列单片机和CH376的实时海量数据采集系统设计方案中,由于CH376内置了文件系统,使单片机的操作更为方便,单片机只需要发送命令和数据就可以在U盘中创建文件、读写数据。因此开发人员用简便的方法就可以实现利用U盘存储A/D转换器采集来的海量数据,该方案设计简单而且数据存储能力强大,能够存储海量数据,具有一定的实用价值。

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


晶振相关文章:晶振原理

上一页 1 2 下一页

关键词: STC15 CH376

评论


相关推荐

技术专区

关闭