多通道数据采集卡 [基于STM32 的高精度、大容量、多通道同步数据采集存储系统的设计]

连 杰 田小超 中煤科工集团西安研究院有限公司 西安 710077

【文章摘要】

近些年来,随着计算机、电子技术的发展与进步,为数据采集、存储系统的开发与应用提供必要条件。基于此,本研究主要结合目前实际需求,分析设计了基于STM32 的高精度、大容量、多通道同步数据采集存储系统,研究了系统具体的功能需求及软硬件选择等,以期为数据采集存储系统的进一步发展提供更多机遇。

【关键词】

STM32 ;高精度;大容量;多通道;数据采集与存储

1 系统功能设计

在本系统的设计过程中,最关键的是要具备数据采集、存储及传输三个功能。其中,在数据采集设计方面,重点考虑的是采集精度和采集速度,前者主要通过A/ D 转换芯片的有效位数来反映,其精度随着A/D 转换芯片位数的升高而升高;而后者主要借助于采样率来反映,目前速率最高的A/D 转换芯片已达到了1.5Gb。选用A/D 转换芯片时,主要考虑的是A/D 采样位数(分辨率)、采样率和采样通道。系统对A/D 采集的需求有:3 个以上的通道同步采集,各个通道的采样率在0-100KSPS 之间,精度12 位及以上。基于这些需求, 本设计中选用AD7656,其性能指标如下: (1)输入通道:支持6 个通道同步采集;(2) 采样率:最高可达250KSPS;(3)采样位数: 16Bit。

在数据存储设计方面,最关键的是存储容量和速度。其中,在存储容量上, 选用容量大的存储器时,必须考虑相应的成本,因为存储容量增大,成本也会增加很多。本设计中,对存储容量的要求相对较低,只要求能够达到100M 以上;在存储速度上,不仅要考虑芯片本身擦除、页面编写的效率,同时还与程序算法的设计有着密切关系,其中包括坏块处理算法设计、文件系统设计、扇区读写管理算法设计等。在高速、实时、连续采集和存储的情况下,一方面要求系统不间断地进行信号采集,另一方面要求实现数据的实时存储,否则会造成数据丢失。因此,在本设计中,采用的是双缓冲区交替存储模式,在100KSPS 的采样率下,缓冲区的大小应超过840 字节,才能保证采集的数据能够完整地存到Flash 中。

在数据传输设计方面,该系统一般是在脱机状态下使用的,现场实时完成信息快速采集与存储,事后再回收存储器, 由计算机处理和再现被测信息。尽管无需进行数据的实时传输,但在后续的数据读取和处理过程中,大量的数据使得232、485 串口通信无法满足速度上的实际需求,而通用串行总线USB 凭借其即插即用、热拔插以及高传输速率的特性成为了设计过程中数据传输设计的首选。

2 系统总体设计

2.1 系统硬件设计

(1) 微处理器

本系统硬件设计的核心部分就是微处理器和USB 控制器,在二者有机结合的基础上才可以实现上位机和下位机之间的快速通信,从而使PC 机获取采集到的数据。目前,世界上的微处理器已经超过了千余种,按照数据总线的宽度主要划分成8 位、16 位、32 位三类。本研究中所设计的系统,结合其实际需要选择基于ARM Cortex-M3 内核的STM32 系列32 位处理器。STM32 系列微处理器性能优异、功耗超低,集成度高,拥有复位电路、精确的RC 振荡器等,并提供丰富的外设和USB 接口,便于进行USB 开发,并且还免费提供简单易用的开发工具。

(2)A/D 芯片

尽管STM32F103ZE 自带三个同步的ADC,支持21 通道采集,但最多只能做到3 通道同步采集,无法满足系统设计要求。因此本设计中选用美国ADI 公司生产的16 位的逐次逼近(SAR) 型A/D 芯片AD7656。AD7656 内部含有6 个A/D 转换器,最大转换速率达250KSPS,转换时间为3us, 支持6 个通道同步采集,并且内置低噪声、宽带采样保持放大器(T / H), 可来处理输入频率高达4.5MHz 的信号, 可以与微处理器(MCU) 或数字信号处理器(DSP) 连接,把多个ADC 连接到单个串行接口上。

(3)外围存储器

Flash 存储器有容量大、低功耗、易擦除等特点,Flash 存储器按其底层技术结构主要分为NAND 和NOR 两大类,由于数据采集存储系统中对存储的速度有很高的要求,基于本系统容量、成本、硬件设计等方面的考虑,主要选用Nand Flash 存储器K9F1G08UOB,它共有1024 块,64 页, 共132K 字节,总存储容量为1GB+32MB, 存储器每页有64 字节的冗余字节。

(4)USB 控制电路

STM32 的MCU 自带符合USB2.0 全速设备技术规范的通信连接的USB 从控制器。USB 从控制器提供STM32F103 和USB 总线进行数据交换的硬件接口,PC 主机和微处理器STM32 之间的数据传输通过共享一专用的数据缓冲区来完成,而数据缓冲区可以被USB 外设直接访问。当USB 模块处于非工作状态时,通过写控制寄存器可以将USB 置于低功耗模式,此时不消耗任何静态电流;当需要USB 工作时,可以通过对USB 线上数据传输的检测,在低功耗模式下唤醒USB。

2.2 系统软件设计

本系统需要完成数据采集、数据存储和数据传输三个基本功能,这三部分在系统软件的监控和任务调度下协同运行。首先,在数据采集部分,当检测到有外部触发信号时,打开定时器,定时中断处理部分主要完成6 个通道同步各采集一个点的工作流程,当达到采集时间后,关闭定时器,即停止A/D 转换。其次,在实时存储部分,由于系统在不间断地进行信号采集,因此需要进行数据的实时存储,否则将会丢失数据,造成数据不完整。存储过程采用双缓冲区模式。最后,在USB 通信部分, USB 控制器通过一个内部的16 位寄存器实现端口与专用缓冲区的数据交换。当检测到USB 有中断请求时,在所有的数据传输完成后,如果需要,则根据传输的方向, 发送或接收适当的握手分组,在数据传输结束时,USB 控制器将触发与端点相关的中断,通过读状态寄存器或者利用不同的中断来处理。

本系统软件设计流程主要是,系统上电之后先进行系统初始化,然后通过上位机设定相应的采集时间,当采集速率比较高时,相应的采集时间应相应短一些。若Flash 为空,通过外部触发信号启动A/D 转换,若Flash 不为空,用户可以通过USB 口从上位机读取Flash 中的文件,也通过外部按键对Flash 进行清空。当达到预先设定的采集时间之后,停止A/D 转换,用户可以采用USB 电缆线将系统连接到PC 机,通过USB 口读取Flash 中的数据文件。而在数据采集存储的过程中,是不允许接入USB 的。

3 结论

本研究对基于STM32 的高精度、大容量、多通道同步数据采集存储系统的研究,介绍了系统的主要功能需求以及系统相应芯片的选择与特点,硬件中采集、存储、通信传输以及必要的外围电路,软件采集、存储和通信的整体工作流程,以期能够为数据采集存储系统的进一步发展提供借鉴。

【参考文献】

[1] 郭红英, 高雁. 多通道同步数据采集器设计[J]. 大学物理实验,2012,02:23-25.

[2] 王静宜. 多通道大容量高速数据存储系统设计[D]. 中北大学,2014.

[3] 张旭, 亓学广, 李世光, 芮昱, 邱彪. 基于STM32 电力数据采集系统的设计[J]. 电子测量技术,2010,11:90-93

【作者简介】

连杰,男,1987-,陕西省西安市,目前就职于中煤科工集团西安研究院有限公司,主要研究地球物理勘探类仪器仪表制作028