基于STM32的数据采集系统设计外文翻译资料

 2022-11-06 16:15:27

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


基于STM32的数据采集系统设计

摘要:

在机器刚出现故障的时候,如何去发现故障的机械设备是很重要的一个行业性难题。为了实现对旋转机械的有效监控,我们开发一个基于STM32的信号采集系统。在这个论文中,我们给出了整个系统的设计方案,,同时我们解释了如何实现对多通道振动信号X,Y和Z旋转轴的数据迅速获取,也解释了在获取数据后如何实现对数据进行实时显示。我们设计的系统具有简单的结构特点、低功耗、小型化的优点。

copy; 2013年提交人Elsevierb.v。由Elsevierb.v出版。

2013年国际信息会议组织者负责的甄选和同行审查技术与定量管理

关键词:STM32 ,数据采集, 实时操作微机系统 ,mu;C/OS-Ⅱ

一、简介

对旋转机械振动进行的实时数据采集,可以有效地预测,评估和诊断设备运行状态,行业可以通过对数据进行迅速地实时地采集和实时分析,,就可以达到监测旋转的机械状态的目的,同时也可以保证设备的安全运行。为了减少机器出错次数,减少机器维修时间,提高经济效率,我设计出了这个故障检测系统。故障诊断系统的目的是通过对旋转机械的振动信号采集,然后对采集的数据进行检测来诊断这些设备是否正常运行,通过这些诊断分析就可以及时的判断出设备的运行状态,从而保证了设备的正常高速运行,减少了机器的维护时间和维护开支。在工业领域的实际应用中, 这个系统是通过采集设备的运行参数用以监测设备的运行状态。这个故障诊断系统的核心部分是数据采集模块。通过我的研究发现,这个工作中传统的方式是通过数据采集卡的方式采集数据,将从采集卡中采集的数据发送到计算机中,和特定的软件将传输的数据进行采集。这个方式拥有很多的不足。本文的主要涉及到知识有STM32开发与AMR平台技术。STM32开发与AMR技术平台已成为在传统的嵌入式系统中主流开发技术同时它们在收集数据方向具有高实时、多参数、高精度的特点,而在数据存储方面具有大容量、小型化和易便携的特点,并且他们具有发展的多元交流模式和远程数据传输能力,用以满足实际的采集系统多任务的实际需求。

这篇文章中将要介绍的系统是基于微小控制mu;C/OS-Ⅱ控制器的信号采集系统。因此,为了满足实际采集系统多任务的需求,本文新颖的设计了基于STM32的微小控制mu;C/OS-Ⅱ器件构成的信号采集系统。

二、数据采集系统的架构

数据采集​​作为监测设备的关键技术,最近我们对这个采集系统已经做了大量的工作。一个基于FPGA的嵌入式并行数据采集系统是被优化设计出来了,这个数据采集系统将使合理划分和分配高速和低速A / D变成了可能 [5]。相反,它使用了高速A / D转换器和Stratix II系列FPGA进行数据采集和处理,其中这个系统最主要贡献是使用紧凑型外设组件互连,这使得系统具有模块化,坚固性和可扩展性的特点[6]。不过这个系统在特殊条件下才可以实现远程控制,本文介绍基于Windows CE的嵌入式操作系统平台和mu;C/OS –Ⅱ控制器设计出来的远程采集和控制系统,这个系统同时也采用了GPRS无线技术[7-8]。为了实现多用户的数据共享,这个系统已经建立了嵌入式动态网站,用于ARM9的数据采集、管理、传播和Linux操作系统[9]。这个数据采集终端设备是基于ARM7、微处理器LPC2290和嵌入式实时系统mu;C/OS – Ⅱ工作的,这个系统用来解决多通道小信号和多通道传输的实时采集[10]。在另一方面,两个基于DSP的并行系统专门用于在旋转机器上的数据采集,并且内部信号调节器用于适应传感器输出到输入范围的采集,然后在由所设计的软件进行收集信号后的处理工作,而最常见的软件结构是基于DAS和基于FPGA的,这样所设计的程序也是依赖于DAS的消耗。

图一 系统硬件框架

我设计的这个系统可以满足低功耗,低成本和可移动性的市场要求,在图一中,介绍了本文设计的数据采集系统的设计总体结构图。这个系统是通过以下几个步奏来实现系统功能的,首先系统通过SPI接口,会获取到数据,这个获取到的数据是通过​​用三轴加速度传感器采集到,在采集到数据后,将数据送入到STM32控制器的内部,STM32控制器内部采用12位A / D转换模块,而且整个过程是在无干扰的情况下并行采集数据的。在最后我们通过我们系统中的240x400 LCD和触摸屏模块来实时显示采集的数据。

2.1 STM32微控制器

我们系统中的处理器用的是一个32位RISC STM32F103VET6,我们拿这个处理器与同类其它产品相比的时候发现,当TM32F103VET6工作在72MHZ的时候,具有其它产品没有的性能强,功耗低,时间真实和成本消耗低的优点。TM32F103VET6的处理器包括:512K FLASH,64K SRAM,它同时具有五个通信串行端口包含CAN总线,一个USB 2.0 SLAVE模式接口和一个以太网接口,而且还有两个RS232端口。这篇文章所使用的系统通过扩展SST25VF016B的串行存储器SPI总线接口来作为收集大量数据时的临时存储空间,此外,我们所使用的A / D转换器具有12位分辨率,并且最快转换高达1us,这个转换器同时具有3.6 V满量程系统。此外这个系统中我还设计了系统电源电路,复位电路,RTC电路和GPIO端口用来保证系统的需要和正常运行。

2.2 数据采集

机器状态是否正常运行主要是取决于它的振动信号。在本文中,为了获取振动的旋转机械转子数据,我们使用振动加速度传感器MMA7455L,它可以从Free-scale公司的x轴,y轴和z轴收集数据。振动加速种类传感器具有低成本、小尺寸,高灵敏度和大干扰情况下动态范围很小的优点。MMA7455L主要是由重力感应单元和信号调理电路组成,并且这个传感器的处理器具有信号预处理之前放大微小数据的特点。

在我们系统的数据采集过程中,采样阶段的误差主要是由量化过程所引起的,而且量化误差主要是取决于A / D转换器的位数,当我们将量化过程中最大电压视为V max时,AD转换器的位看为n,并且量化过程为:Q = V max / 2n,则量化所产生的误差服从均匀分布在[ - q / 2,q / 2] [13]

当e是平均误差的时候,我们就把 是叫做误差方差,把S/N叫做SNR。

本文设计的STM32最多可以构建三个12位并行ADC,这三个12位并行ADC的理论指标为72dB,实际运用中的动态范围在54dB到60dB之间,当ADC的2或3位受到噪声影响的时候,它在60dB的动态影响测量范围可达1000次。 对于绝大多数的振动信号来说,这个系统的最大采样率是10kHZ,可以满足实际工作中的需求,并且在实际过程中收集频率一般较高,所以我们在平时的设计中多用8-12位的AD转化器,然后我在这次的系统设计中的一个优点是是选择内置的12位A / D转换器,这样可以用来满足本实验中振动信号采集的精度和降低机器的成本。

2.3 存储和显示

因为有时候我们需要进行实时的数据采集,所以我们设计出了具有64K * 12bit容量的片上系统SRAM。它的工作过程是首先三轴加速度传感器系统连接到控制器SPI接口上,当接收到采集数据请求的时候,它将开始收集数据,然后把收集到的数据通过传输数据DMA进行传输并存储在SRAM芯片中,直到数据缓冲器饱和,在数据缓冲器饱和之后,它就向CPU发送一个中断信号,在CPU响应中断请求之后,CPU就立即从FIFO读取所有通道数据,最后把读取的数据结果结果直接显示在显示屏LCD上。 我们设计的这个系统是有能力,可以快速,实时和高效地收集原始数据并进行可视化显示。

3. 软件设计

3.1mu; C/OS-Ⅱ的移植

为了保证收集数据的实时性和收集数据安全性的要求,在这个设计的系统中,一种开放的和很小型的RTOS源代码被提出来使用了。这个操作语言也可以容易地被削减,转移和固化,它的基本功能包括任务管理和资源,管理,存储管理和系统管理。 RTOS嵌入式系统可以支持64个任务,它的系统最多56个用户任务,以及4个任务他的最高和最低优先级将保留在系统中。mu; C/OS-Ⅱ中分配任务的优先级是根据每个任务的重要性,操作系统中执行每个任务是根据优先级的先后顺序和每个任务拥有的独立优先权来进行判断每个任务的优先级顺序。 这个操作系统的内核非常的浓缩和简单,它的多任务功能和其他的系统相比拥有很好的性能,它可以移植到从8位到64位的处理器。这个系统中的可以修改的三个文件系统结构:OS_CPU_C.H,OS_CPU.C,OS_CPU_A.ASM。

主要的移植步骤如下所示:

A.OS_CPU_C.H

它定义了处理器中的数据类型,堆栈的长度和增长方向。 因为不同微处理器具有

不同的字符长度,所以mu;C / OS-II移植包括一系列类型定义,这些类型定义语句确保系统移植的可能性,并将修订后的代码如下:

typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef un,signed 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()定义为打开和关闭中断,它们必须设置为堆栈OS_STK和CPU寄存器长度的32位。 此外,有定义堆栈指针OS_STK_GROWTH堆栈生长方向从高地址到低地址。

B.OS_CPU.C

我们要根据处理器来修改函数OSTaskStkInit(),在没有特许要求的情况下,剩下的九个用户界面函数和钩子函数可以为设为null,他们这些产生的代码仅在OS_CFG.H文件中的OS_CPU_HOOKS_EN设置为1时才有效。 这里面的堆栈初始化函数OSTaskStkInit()将会返回到堆栈指针的新顶部。

OS_CPU_A.ASM

系统中的大多数移植工作都是在这些文档中完成的,并具有修改以下的功能。

OsStartHighRdy()用于运行最优先的就绪任务,它将负责堆栈指针SP从TCB控制块的最高优先级任务,恢复CPU,然后由任务进程创建用户开始控制过程。

OSCtxSw()用于任务切换,当当前任务就绪队列具有较高优先级任务时,CPU将启动OSCtxSw()任务切换以运行较高优先级任务和当前任务存储在任务堆栈中。

OSIntCtxSw()具有与OSIntSw()类似的功能,以确保实时性能系统,当中断来时,它将直接运行较高优先级的任务,并且不会存储当前任务。

OSTickISR()用于处理时钟中断,需要中断来调度其实现当较高优先级的任务正在等待时钟信号。

OS_CPU_SR_Save()和OS_CPU_SR_Restore()完成,在进入时切换中断,留下关键代码两个函数由关键保护函数OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。

在上述的强制运行工作结束后,mu; C/OS-Ⅱ可以运行处理器。

3.2 软件构架

图2为我们展示了系统软件体系结构,这个系统中为了方便显示可视化的数据,我们将mu;C/GUI3.90和mu;C/OS-Ⅱ都移植到系统中,这样系统在显示可视化数据时候可以更加优化,减少显示的步骤。我们的系统中一共包含六个任务,如数据采集,数据传输,LCD显示器,触摸屏驱动器,mu;C/GUI 按键接口。这个系统在运作时候首先,我们应该设定任务优先级和基于优先级的任务调度。这个过程需要完成所需的驱动程序设计数据采集​​,例如A / D驱动,触摸屏驱动和系统初始化,此时同时进行系统的初始化,其中包括:硬件平台的初始化,系统时钟的初始化,中断源配置,GPIO端口配置,串口初始化和参数配置,以及LCD初始化。这个系统的采样过程的具体步骤是这样的,首先通道模块向AD通道发送采样命令,然后通知接收模块发送采样开始命令,接收器模块准备接收,大数据将存储在存储器中模块,完成第一次采样后,通道模块将发送完整命令采样到接收器模块,接收器向存储模块发送中断请求以停止数据存储,然后数据将显示在LCD触摸屏上。数据采集​​过程如图3所示

图二 系统软件体系结构

图三 流程图的数据采集

4. 实验

嵌入式系统的实验已经完成,数据采集来自加速度MMA7455L,在采集数据时候,MA7455L是被安装在旋转机台上。 数据采集显示为如图4和图5所示,系统可以选择三个通道从三个通道收集振动信号X,Y和Z轴方向,本文采样频率为5KHZ,并且我们收集振动信号从同一通道处的不平衡状态的正常状态。 结果表明我们的系统可以显示实时数据采集和快速预测初步诊断。

图四 正常数据采集

图五 不平衡数据采集

5. 结论

这篇文章设计了一台实时嵌入式信号采集系统,这个故障系统是为了故障发生频率高的旋转电机而准备的。 该系统基于低成本微控制器,振动信号的采集由具有高性能的三轴加速度传感器拾取,这个系统通过旋转电机的x,y和z轴来采集数据,采集的过程具有低成本和高灵敏

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[139058],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。