- UID
- 872339
|
摘要:设计了一种基于STC15单片机的U盘实时海量数据采集系统。该系统利用USB接口芯片CH376时U盘进行读写操作,利用实时时钟芯片DS1 2887实时采集记录数据的时间,将采集到的海量数据以EXCEL文件形式存储在U盘中。实验结果表明,该方案能够采集、存储海量数据而且还兼顾成本低、通用性强、移动性好等优点,具有一定实用价值。
引言
在工业数据采集中,数据的存储担负着记录系统运行状态的责任,基于单片机的数据采集仪表以其成本低廉、操作简单、工作可靠而得到大批量应用。鉴于单片机数据采集系统的以上优势提出了一种基于STC15系列单片机和CH376的U盘海量存储数据方案,该方案利用南京沁恒公司推出的USB接口芯片CH376对U盘进行读写操作,完成超速信息的转存,并采用沁恒公司提供的FAT文件系统库,将采集到的数据以文件的形式存储在U盘中,操作者可以方便地利用PC机对采集到的数据进行分析和处理。
1 系统设计
系统主要框图如图1所示,主要是以STC15F2K60S2单片机为核心,通过扩展外同接口而使其以低成本的优势满足大容量数据采集存储的要求。被测信号经过前端调理电路的放大与滤波处理后进入单片机的片内A/D转换模块,此时采样数据存储于单片机内部开辟的缓冲数组中,当缓冲区满后通过控制CH376向U盘写入采样数据,并同时将DS12887内的时间信息写入文件中。
1.1 STC15F2K60S2单片机简介
STC15F2K60S2系列单片机是STC公司生产的单时钟/机器周期(1T)的单片机,采用STC—Y5超高速CPU内核。STC15F2K60S2系列单片机是高速/高可靠/低功耗/超强抗干扰的一代8051单片机,采用第八代加密技术,加密性超强,指令代码完全兼容传统8051。内部集成高精度R/C时钟,可设置5~35 MHz的工作频率,彻底省掉外部昂贵的晶振和外部复位电路,具有3路CCP/PWM/PCA和8路高速A/D转换器,内置2 KB大容量SRAM,2组高速异步串行通信端口UART1/UART2,一组高速同步通信端口SPI,广泛地用于一般的现代工业控制领域。
1.2 CH376模块设计
1.2.1 USB接口芯片CH376简介
CH376是南京沁恒公司推出的一款U盘和SD卡文件管理控制芯片,用于单片机或嵌入式系统读写U盘或者SD卡中的文件。CH376支持USB设备方式和USB主机方式,并且内置了USB通信协议的基本固件,内置了处理海量存储Mass-Storage设备的专用通信协议的固件,内置了SD卡的通信接口固件,内置了FAT16和FAT32以及FAT12文件系统的管理固件,支持常用的USB存储设备(包括U盘/USB硬盘/USB闪存盘/USB读卡器)和SD卡(包括标准容量SD卡和高容量HC-SD卡以及协议兼容的MMC卡和TF卡)。
CH376支持3种通信接口:8位并口、SPI接口或者异步串口,单片机/DSP/MCU/MPU等控制器可以通过上述任何一种通信接口控制CH376芯片,存取U盘或者SD卡中的文件或者与计算机通信。CH376芯片内部集成了USB-SIE和Phy-I/O、CRC数据校验、USB-Host控制器、USB-Dev ice控制器、SD卡SPI-Host控制器、被动并行接口、SPI—Slave控制器、异步串口、双口SRAM、FIFO、高速MCU、固件程序、晶体振荡器和PLL倍频器、电源上电复位电路等。其主要特点概括为:
①支持1.5 Mbps低速和12 Mbps全速USB通信,兼容USB V2.0;
②支持USB-HOST主机接口和USB-DEVICE设备接口,支持动态切换主机方式与设备方式;
③内置USB通信协议的基本固件处理海量存储Mass-Storage设备的专用通信协议固件,SD卡的通信接口固件以及FAT16/FAT32和FAT12文件系统的管理固件;
④提供文件管理功能、文件读写功能和磁盘管理功能;
⑤提供2 MB速度的8位被动并行接口,提供2 MB/24 MHz速度的SPI设备接口,提供最高3 Mbps速度的异步串口;
⑥支持5 V/3.3 V/3 V电源电压,支持低功耗模式。
1.2.2 CH376硬件电路设计
USB接口芯片CH376模块硬件电路设计如图2所示。单片机与CH376采用的是硬件总线8位并口连接方式,这样无需用I/O模拟CH376读写时序,简化了软件的设计。CH376芯片通过8位被动并行接口的D7~D0、RD#、WR#、PCS#、A0直接连接到STC15F2K60S2单片机的系统总线上,其中D7~D0连接STC15F2K60S2的数据总线P0.7~P0.0引脚上,RD#、WR#引脚与STC15F2K60S2的对应引脚相连,INT#引脚连到STC15F2K60S2的外部中断INT0上,采用中断方式处理USB数据传输,PCS#连接STC15F2K60S2的P2.6引脚来控制CH376的使能,A0连到STC15F2K60S2的P2.0引脚。因此,CH376命令寄存器的地址可选为BDF1H,数据寄存器的地址可选为BCF0H。
另外,R2用于限制作为USB主机提供给外部USB设备的电流,电容C1用于CH376内部电源节点退耦,C1是容量为4 700 pF~0.02μF的独石或者高频瓷片电容。电容C3和C4用于外部电源退耦,C3是容量为0.1μF的独石或者高频瓷片电容。晶振Y1用于时钟振荡电路,USB—HOST主机方式要求时钟频率比较准确,晶振Y1的频率为12 MHz±0.4‰。振荡电容C6、C7是可选的,根据晶振Y1的特性选择,容量在0~22 pF。
1.2.3 CH376软件设计
系统利用单片机将片内A/D转换器采集到的数据通过CH376存入U盘中需要完成三件事:
第一是要完成单片机读写CH376,由于CH376是以硬件并行总线的方式与单片机连接的,单片机读写CH376就不需要用I/O模拟时序了,确定CH376的命令端口地址和数据端口地址后,直接向命令端口地址写入相应命令,向数据端口地址写入相应数据即完成了写入操作。读操作时也只需要将命令端口或数据端口的值直接赋给一个变量,单片机读取的状态或数据就保存在该变量中了。 |
|