基于STM32的数据采集系统的设计外文翻译资料
2022-08-29 23:25:29
英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
基于STM32的数据采集系统的设计
摘要
机械设备故障的早期检测是工业中最为着重关心的问题之一。为了有效检测旋转的机械设备, 我们在本文中构建了一种基于STM32微控制器的mu;C/OS-Ⅱ的信号采集系统。 我们在整体设计方案中给出了包括X,Y和Z轴的多通道震动信号的快速获取和实时的显示。我们的系统具有结构简单、低能耗以及微型化的特点。
关键词: STM32,数据采集,嵌入式系统,mu;C/OS-Ⅱ
第1章 引言
通过对旋转机械震动的实时采集,可以有效地预测、评估和诊断设备的运行状态, 在工业中对振动数据进行快速采集和实时地分析可以监测机械的运行状态,从而保证设备的安全运行。为了防止故障,减少维护的时间并提高经济效益, 故障诊断系统的目的就是能够通过对旋转机械设备震动信号的获取来对设备进行监测, 并处理采集的数据,这样就会使设备的运行状态得到及时的判断 。数据采集模块是故障诊断系统的核心部分 [1-4].在工业领域的实际应用中, 通过获得设备的运行参数来监测设备当前的状态。在传统的数据采集系统中,从采集卡中获取的数据通常被发送到计算机中,开发出具体的软件来进行数据采集。本文主要的贡献是设计了基于ARM技术的STM32平台,它已经成为嵌入式系统中的传统主流技术,面向高实时性,多参数,高精度的方向进行数据采集,而数据的存储也变得具有大容量,更小型化和便携,并向多路通信模式与长距离数据传输发展。为了满足实际监测系统中多任务的需求,本文中设计了一种基于STM32微控制器的mu;C/OS-Ⅱ信号采集系统。
第2章 数据采集系统的体系结构
数据采集作为监控设备关键技术,近来已经有许多工作以此展开进行了研究。通过基于FPGA的嵌入式并行数据采集系统是一种优化的设计,这使得它更能合理地对高速和低速A / D进行分配 [5]。与之前不同的是,它利用高速A/D转换器和 Stratix II 系列FPGA进行数据搜集和处理,其中的主要贡献是运用了紧凑型外围器件互联(Compact Peripheral Component Interconnect),使得该系统具有模块化,健壮性和可扩展性的特点[6]。但是在一些特殊情况下还需要进行远程控制,本文介绍了基于Windows CE 与mu;C/OS-Ⅱ的嵌入式操作系统平台并利用GPRS无线技术来设计的远程采集与控制系统。为了完成多用户间的数据共享,它通过ARM9与Linux操作系统建立了嵌入式的动态网站用于数据采集、管理和传播[9]。数据采集终端设备是基于ARM7微处理器LPC2290和嵌入式实时操作系统mu;C/OS-Ⅱ设计,以解决实时采集多路小信号和多路传输的问题[10]。另一方面, 两个并行的基于DSP的系统专用于旋转机械设备的数据采集,而内部信号调节器则用于调整传感器的输出以适应信号采集的输入范围,再利用设计的软件进行信号的后期处理,而最常见的结构是基于DSP和FPGA, 并且这样的程序也会依赖于DSP的成本。
为了满足市场上对低功耗、低成本和便携性的需求, 本文所提出的数据采集系统总体结构框图如图2.1所示。通过SPI接口, 系统通过三个轴向上的加速度传感器收集到数据并传入STM32内的12位A/D转换器进行处理, 这个过程是互不干扰的并行采集。 我们的系统采用240x400的LCD触摸屏来实时地显示收集的数据。
图2.1系统硬件架构
2.1 STM32微控制器
我们的系统是以一个32位的 RISC STM32F103VET6作为处理器,与同类产品相比,STM32F103VET6 工作频率为 72MHZ, 具有强劲的性能和实时性以及低功耗、低成本的特点。该处理器包括512K 闪存, 64K 静态随机存储, 它使用包含CAN总线、一个USB2.0从模式和一个以太网接口的5个串口进行通信,同时也包含了两个RS232端口。本文所描述的系统通过SPI总线接口扩展了SST25VF016B串行存储器,在收集大量数据时作为临时的存储器。此外, 我们12位分辨率的A/D转换器 最快转换速度可达1us ,系统满量程为3.6V。除了设计的系统供电电路外,还有复位电路、RTC电路以及GPIO端口用于保证系统的需求和正常的运行。
2.2 数据采集
机器工作状态的正常与否主要取决于振动信号。在本文中, 为获取旋转机械转子的震动数据,我们使用了飞思卡尔公司的MMA7455L震动加速度传感器,它能同时收集到x、y以及z轴的数据。 这种震动加速度传感器具有低成本、体积小、高灵敏度、较大动态范围以及干扰小的优点。MMA7455L主要由重力感应单元和信号调节电路组成,该传感器会在对信号处理之前将小信号进行放大。
在系统的数据采集过程中, 采样级的误差主要由量化产生,此误差主要依赖于A/D转换器的位数。我们设最大电压为Vmax, A/D转换器位数为n, 则量化单位 Q = V max/2n, 量化误差服从均匀分布 [- q / 2, q / 2] [13].
其中为平均误差,为误差方差,S/N为信噪比。
本文中经过设计的STM32最多可建立 3个12位并行的ADC,理论上的指标为72dB,而由于2到3位受到噪声的影响,实际的动态范围在54到60dB之间,动态的测量范围可以达到1000倍的60dB。对于绝大多数的振动信号,10kHZ的最大采样速率就能满足实际需求,较高频率的采集通常在8-12位的AD中使用,因此本次工作的贡献之一就是使用了内置的12位A/D转换从而以更低的成本满足了震动信号采集的精度需求。
2.3. 存储与显示
我们设计的系统具有64K*12bit的片上静态存储,实时的数据采集是有必要的。该过程中三轴加速度传感器系统通过SPI接口与控制器相连,当收到采集请求信息时它就会开始采集数据,然后数据被传输到DMA并被保存到SRAM芯片知道数据缓存已满,它就会向CPU发出中断信号,CPU从FIFO 中读取所有信道的数据,并直接将结果显示在LCD屏幕上。我们的系统能够快速,实时和高效地收集原始数据,并直观地显示出来。
第3章 软件设计
3.1 移植mu;C/OS-II
为了满足数据采集中对实时性和安全性的要求,在本系统中, 应使用一种开放源码的轻量型实时操作系统,同时它也应当是易于剪裁、移植和固化的, 其基本功能包括任务管理、资源管理、存储管理和系统管理。该实时嵌入式操作系统能够支持64位任务,最多支持56位用户任务, 4个最高与最低的优先级的任务将被保留在系统中。mu;C/OS-II 依据任务的重要性来为它们分配优先级,该操作系统依据优先级顺序来执行任务,每个任务都具有独立的优先级。 此操作系统的内核是精简的,并且其多任务功能与其他相比较为优越。它可以被移植到各种8位到64位的处理器中。在系统中的移植是通过修改以下三个文件系统结构: OS_CPU_C.H ,OS_CPU.C,OS_CPU_A.ASM。主要的移植过程如下:
A. OS_CPU_C.H
它定义了数据类型、处理器中的堆栈长度和生长方向。由于不同的微处理器具有不同的字长,因此C/OS-II的移植包括了一系列的类型定义以保证其可移植性。修改后的代码如下:
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef unsigned short INT16U;
typedef signed short INT16U;
typedef unsigned int INT32U;
typedef signed int INT32S;
typedef float FP32;
typedef double FP64;
typedef unsigned int OS_STK;
typedef unsigned int OS_CPU_SR;
Cortex-M3 处理器定义了OS_ENTER_CRITICAL () 和 OS_EXIT_CRITICAL () 作为中断的开关, 它们必须设置为32位堆栈OS_STK和CPU寄存器的长度。此外,定义了堆栈指针OS_STK_GROWTH,堆栈的生长方向为从高地址到低地址。
B. OS_CPU.C
要按照处理器来对OSTaskStkInit()函数进行修改,其余9个用户界面函数和钩子函数若无特殊要求可为null,仅当OS_CFG.H.文件中的OS_CPU_HOOKS_EN 被设置为1时这些函数才会产生代码。堆栈初始化函数OSTaskStkInit ()返回新的栈顶指针。
OS_CPU_A.ASM
大多数移植工作在以下文档中完成,对下面的函数进行修改:
OsStartHighRdy() 被用于运行最优先就绪的任务,它将从最高优先级任务的TCB控制块负责堆栈指针SP并恢复CPU,然后由用户创建的任务流程开始控制过程。
OSCtxSw () 用于任务切换,当当前任务就绪队列有较高优先级的任务时,CPU将启动OSCtxSw()切换去运行优先级较高的任务,并存储在任务堆栈中的当前任务。
OSIntCtxSw ()具有与 OSIntSw ()类似的功能,为了保证系统的实时性能,它会直接运行较高优先级任务时中断来,并且不会存储当前任务。
OSTickISR ()用于处理时钟中断,当较高优先级的任务在等待时钟信号时需要中断来进行调度。
OS_CPU_SR_Save () 和OS_CPU_SR_Restore () 用于完成进入和离开关键代码时的中断切换,二者都是通过关键代码保护函数OS_ENTER_CRITICAL () 和OS_EXIT_CRITICAL 来实现。
以上工作完成后mu;C/OS-II即可在处理器中运行。
3.2 软件架构
图3.1展示了系统的软件架构,以便直观地显示数据,mu;C/GUI 3.90与mu;C/OS-II被移植到系统中,我们的系统包含六个任务如:数据采集,数据传输,LCD显示,触摸屏驱动,按键管理以及mu;C/GUI 界面。首先,我们应当设定任务的优先级并根据该优先级来进行任务的调度。这就需要在数据采集之前先完成所需的驱动程序设计,例如A/D驱动、触摸屏驱动和系统初始化,而初始化则包括:硬件平台初始化,系统时钟初始化,中断源配置,GPIO端口配置,串口初始化和参数配置以及LCD的初始化。该过程中通道模块发送采样命令至AD通道,然后通知接收模块已经发送了开始采样的命令,接收模块准备好接收并将大量数据存放到存储模块中,当第一次采样完成后,通道模块将采样完成的命令发送到接收模块,接受器便会向存储模块发送一个中断请求使其停止数据存储,然后数据便会被显示到LCD触摸屏上。图3.2展示了数据采集的过程。
图3.1 系统软件架构 图3.2 数据采集流程
第4章 实验
通过利用安装在旋转电机挡板上的MMA7455L加速度传感器进行数据采集我们完成了对该嵌入式系统的实验。采集到的数据如图4.1与图4.2所示,此系统能够选择三个通道,分别从X、Y和Z轴三个方向上收集震动信号,在本文中使用的采样频率为5KHz,我们在相同的通道中收集从正常状态到不平衡状态下的震动信号,结果表明我们的系统可以实时显示采集到的数据并快速进行初步的预测和诊断。
图4.1正常数据采集 图4.2非平衡数据采集
第5章 结论
本文设计了一种针对于旋转机械设备高频率运行故障的嵌入式实时数据采集系统,本系统建立在一种低成本的微控制器上,并利用一种具有高灵敏度和低成本的三轴加速度传感器进行震动信号的获取,获取X、Y和Z轴上的数据。我们设计了系统的硬件结构并分析了数据采集模块的工作原理。并提出利用mu;C/OS-II 系统进行数据采集的任务管理和调度,使其具有精简的结构以及较低的成本。更重要的是该系统实时地收集和分析旋转机械设备上的振动信号并迅速地给出诊断结果。
致 谢
本工作受到国家自然科学基金会(51175169)、十一五科技规划项目(2012BAF02B01)、湖南省科技规划项目(2009FJ4055)以及湖南省教育厅科研基金(10K023)的支持。
考文献参
[1]Cheng, L., Yu, H.,旋转机械智能维护单元的研究, 计算机集成制造系统, vol. 10, Issue: 10, page 1196-1198, 2004.
[2]Yu, C., Zhong, Ou., Zhen, D., Wei, F., .监控管理平台在嵌入式故障诊断系统中的设计与实现, 计算机工程, vol. 34 , Issue: 8, page 264-266, 2008.
[3]Bi, D.Gui, T., Jun, S., Dynam . 高速混合气体旋转冲压发动机的表现, 震动与冲击, vol. 28, Issue: 9, page 79-80, 2009.
-
Hai, L., Jun, S., 基于故障诊断系统的数据采集模块驱动程序的研究, 机床与液压, vol
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[146823],资料为PDF文档或Word文档,PDF文档可免费转换为Word