基于STM及的通道同步数据采集系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于S T M及的通道同步数据采集系统设计
文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]
基于STM32及AD7606的16通道同步数据采集系统设计
摘要:
介绍了基于STM32及AD7606的同步数据采集系统的软硬件设计。主控芯片采用基于ARMCortex-M4内核的STM32F407IGT6,实现对AD采集数据的实时计算并通过以太网络进行数据传输。A7606为16位、8通道同步采样模数数据采集系统[],利用两片AD7606,可以实现对16路通道的实时同步采样。经过测试,该系统可以实现较高精度的实时数据采集。
0引言
[此处找书介绍STM32],该芯片主频可达168MHz,具有丰富的片内外设,并且与前代相比增加了浮点运算单元(FloatingPointUnit,FPU),使其可以满足数据采集系统中的
[介绍AD7606]
1系统总体方案设计
整个系统由传感器模块、信号调理模块、数据采集模块、处理器STM32、及通信模块及上位机系统组成。系统整体结构框图如图1所示。本系统是为液态金属电池性能测试设计,需要测量电池的充放电电压、电流以及交流加热系统的电压、电流,并以此计算出整个液态金属电池储能系统的效率。因此两片AD7606的16个通道分为两组,每组8个通道,这两组分别测量4路直流、交流的电压和电流信号。AD7606通过并行接口与STM32连接,STM32读取AD采样数据后进行计算,并将数据通过网络芯片DP83848通过UDP协议发送给上位机。上位机负责显示各通道采集信息、绘制波形以及保存数据等。
图1系统整体结构框图
2系统硬件设计
2.1模拟信号采集电路设计
模拟信号的采集包含直流电压、电流,交流电压、电流四部分。直流信号的采集分别使用霍尔电压传感器HNV025A和霍尔电流传感器HNC100B,两种传感器的电路原理图类似,仅以霍尔电压传感器电路原理图为例说明,如图2-1所示。HNV025A为电流型霍尔电压传感器,可以提高信号的抗干扰能力,其输入输出电流比为10mA/25mA。因此在图中被测电压经过电阻R1转换为电流信号,传感器输出的电流信号经过R2变为电压信号。R3和C1组成一阶低通滤波器进行滤波。
图2-1直流电压信号采集原理图
交流电压、电流信号的调理电路同样类似,以交流电压信号采集为例,其电路原理图如图2-2所示。交流电压互感器变比为2mA/2mA,运放T1及电阻R3组成电流-电压转换电路,R2和C1是为了补偿电压互感器的相移,电容C2用来去耦和滤波。
图2-2交流电压信号采集原理图
2.2数据采集模块设计
数据采集模块由两片AD7606组成,AD7606与STM32之间的电路连接示意图如图2-3所示。
图2-3SD7606与STM32连接示意图
(1)AD7606提供了三种接口选项【参考】:并行接口、高速串行接口和并行字节接口。其中并行接口具有最高的数据传输速度,并且与STM32的
FSMC(Flexible?Static?Memory?Controller,可变静态存储控制器)兼容。因此两片AD7606与STM32通过并行接口方式连接。AD7606的数据线DB0~DB15分别连接对应的FSMC数据线,片选信号分别接到FSMC接口片选信号PG9_FSMC_NE2和PG12_FSMC_NE4上。
(2)AD7606的BUSY引脚电平为高时表示AD正在进行转换,变低表示转换完成。将BUSY 引脚接到STM32的外部中断引脚并配置为下降沿触发,这样可以在AF转换完成后及时读取数据。
(3)OS[0..2]为过采样配置引脚,通过控制STM32相关GPIO的电平可以是AD7606工作在不同的过采样状态。
(4)CONVST_A,CONVST_B为转换触发信号,上升沿触发。对于每一个AD7606来说,CONVST_A控制模拟通道1~4,CONVST_B控制模拟通道5~8。由于需要对所有通道同步采样,因此将CONVST_A,CONVST_B引脚同时连接在一个触发信号引脚上以实现同步采样。(5)REFOUT引脚为外部基准电压输入引脚。AD7606可以配置为使用内部基准电压或外部基准电压。当两片AD7606同时工作时,使用外部基准电压可以保证所有输入通道转换精度的一致性。外部基准电压源选择ADR421,ADR421为2.5V基准电源,具有出色的噪声性能、稳定性和精度【参考】,可以满足AD对基准电压源的精度要求。
2.3通讯模块设计
本系统中数据通过以太网络传输,与传统串行通讯相比,可以实现更高的数据传输速度,同时便于实现对设备的远程访问以及将多套系统共同接入网络。
3系统软件设计
软件的开发是在KeilMDK开发环境下进行的,应用程序主要包括STM32F4的初始化、AD7606采样程序配置、LWIP协议栈的移植、数据处理等。初始化部分包括GPIO初始化、内存管理初始化、定时器初始化以及各项计算系数初始化等;AD7606采样程序配置主要包含FSMC配置、中断配置、数据读取、过采样配置等;LWIP协议栈移植包括编写DP83848驱动程序、修改LWIP源码、实现UDP发送接收数据等;数据处理部分包括根据采样数据计算所需要的电压、电流有效值、功率等等。
程序运行时,首先进行初始化操作,之后会在AD7606的触发引脚CONVST_A,CONVST_B上产生预设的固定频率和脉宽的脉冲信号,脉冲信号的上升沿触发AD进行采集,此时AD7606的BUSY信号引脚为高,转换结束后BUSY变低,由此产生外部中断,在中断程序中读取AD的采样结果。有两个缓冲区交替存储AD的采样结果,当一个缓冲区存
满时再进行各项参数计算,此时AD的采样结果将保存在另外一个缓冲区中。双缓冲区的机制保证了在计算过程中缓中区中的数据不会被AD实时采样的数据所覆盖而导致计算错误。计算所得到的结果会定时发送给上位机。
上下位机之间通过UDP协议进行数据传输,在主函数中会循环检测是否接收到上位机的命令数据,如果接收到数据,则根据既定的命令代码执行不行的操作。每一帧发送的数据通信格式如图3-1所示:
根据命令号的不同,已经实现的功能有:修改定时发送数据时间间隔、请求实时波形数据、AD复位、传感器校零、AD过采样率设置等。
4系统精度测试与分析
为测试系统精度,选择。。。作为参考标准。
理想的霍尔传感器在输入为零时输出电流也应为零,不过实际的霍尔传感器即使输入为零时也会有很小的输出电流,这样会对测量结果造成一定的直流偏置。通过上文提到的传感器校零操作,可以将此直流偏置对测量结果的影响减少到最小。具体方法是在霍尔传感器输入为零时保存此时的AD采样值,然后在之后的实际测试中将每个采样值均减去此值。下面的测试结果均为将传感器校零后的测试结果。