烽火社区

标题: 基于LABVIEW上位机界面的STM32F0 DISCOVERY多路数据采集系统 [打印本页]

作者: hzk    时间: 2014-2-25 09:16 PM
标题: 基于LABVIEW上位机界面的STM32F0 DISCOVERY多路数据采集系统

基于LABVIEW上位机界面的STM32F0 DISCOVERY多路数据采集系统

[attach]33149[/attach]

方案计划

一、应用背景

在一般的工业控制应用项目中,都需要涉及到数据采集部分,即利用各种传感器将不同的环境变量(数字量、电压、电流、温度、湿度、压力、方向和距离等)采集,并送至控制器进行转换处理。控制器对得到的相关信息进行判断后,进行相应的控制处理。在进行控制处理的过程中,有些需要人工进行干预,这就要求各种传感器的信息必须在一定的界面(液晶屏、串口终端、上位机界面)上进行实时显示。

二、功能说明

本方案计划实现一种基于LABVIEW上位机界面的STM32F0 DISCOVERY 多路数据采集系统,利用STM32F0 DISCOVERY 板载芯片STM32F051R8T6上的12ADC实现高精度数据采集,并将采集到的数据发送至LABVIEW上位机界面显示。

1STM32F051R8T6 ADC模块具有16路外部通道和3路内部通道,在此方案中,利用普通电位器产生电压来模拟各种环境变量的信号。增加DS18B20温度传感器模块。

2、上位机界面除正常的波形数据显示界面外,视情况增加一些额外演示功能。增加控制板载LED灯闪烁效果,将采集到的数据发送TXT文件中保存功能。

3、利用LABVIEW自带的VISA串口实现和STM32F0 DISCOVERY板子的通信。

三、工具说明

硬件:STM32F0 DISCOVERY 开发板 软件:LABVIEW8.2 or LABVIEW8.6

方案实施进度表

1、拿到STM32F0--开发板硬件

2、解决STM32FO开发板和开发环境的调试

3、解决STM32FO--串口通信模块和ADC模块。

4 解决STM32FO--DS18B20温度传感器模块程序移植。

5、解决LABVIEW开发环境调试

6、解决LABVIEW串口通信模块调试

7、解决ADC数据的载入并计算显示波形。

8、解决ADC数据的TXT文件保存功能

9、解决开关按钮控制STM32F0 DISCOVERY--板载LED的演示功能。

10、增加额外功能或修改并美化系统界面

方案设计

一、硬件设计

由于该方案采用STM32F0 DISCOVERY进行开发,硬件设计并不复杂。

硬件系统框图如下:

[attach]33150[/attach]


1 硬件系统框图

硬件系统电路原理图如下:

[attach]33151[/attach]


2 硬件系统电路原理图

硬件系统实物图如下所示

[attach]33152[/attach]

3 硬件连接实物图

二、系统软件设计

该方案的主要工作在于系统软件的代码设计,包括下位机驱动设计和LABVIEW上位机界面的程序设计。由于本人对STM32了解较少,故先编写了一部分驱动文件,包括USART串口驱动,SYSTICK系统定时器、NVIC中断管理、DS18B20(移植MSP430LM3S系列)ADC(DMA方式驱动)。考虑到时间问题,和LABVIEW的串口通信通讯采用简单的软件查询方式实现,也没有增加复杂的控制协议,比如(帧头+数据+校验码)的方式,这种在工业通信中应用比较普遍。

驱动文件浏览图如下:[attach]33153[/attach]


4 驱动文件浏览图

项目工程文件浏览图如下:

[attach]33154[/attach]


5 项目工程文件浏览图

LABVIEW上位机程序界面采用LABVEIW8.6软件进行开发。采用事件驱动方式。界面前面板如下图所示。

[attach]33155[/attach]

6 上位机程序界面。

上位机软件的详细使用,见文档LABVIEW上位机软件说明书V1.0.pdf》。

界面的部分源程序界面如下:

[attach]33156[/attach]

7—串口设置部分

[attach]33157[/attach]

图8温度传感器部分处理

[attach]33158[/attach]

图9—ADC DMA通道数据处理。

由于串口通信采用8位数据方式,对非STM32产品来讲,总线都是8位方式,而对于STM32来说,是16位方式,这样就需要在串口通信时,将DS18B20ADC采集的数据16位数据拆分成两个8位数据分别发送,发送后再进行一些处理。这对于一些刚接触LABVIEW的新手来讲,可能也是一个问题吧。

方案点评

对于工业应用或一般项目应用的数据采集来讲,该方案仅仅是提供了一个框架或思路,还有很多需要改进或优化的方向,实际中的项目远比此复杂的多,通信数据的解析和算法的处理也不是一两个VI程序就能完善的,为了更加直观,本人的VI已项目文件方式实现,目的是让自己和相关的人形成一个良好的习惯,就像写MCU的驱动一样,分成了很多小模块。

在此提出一些改进或优化的方向,留给感兴趣的人研究。

1LED灯的延时控制在上位机界面中实现调整。

2、串口通信协议可以增加帧头、帧尾和校验。

3ADC数据采集保存方式合并到一个文件中,见文档LABVIEW上位机软件说明书V1.0.pdf》。


视频地址:

http://v.youku.com/v_show/id_XNDgwMzM0MjQ4.html




Fengye5340

20121228





=======================================================

基于LABVIEW上位机界面的STM32F0 DISCOVERY多路数据采集系统(附件大全)






作者: 消失の昨天wdzfd    时间: 2014-2-25 09:21 PM
此强帖采用STM32F0 实现了MCU和labview的串口通信,并通过控制LED灯、DS18B20以及多路ADC采集,并将数据保存的精彩内容,是一个非常经典的labview控件的应用,涉及labview编程的方方面面,非常值得学习,特此推荐给大家!

作者: lovemail    时间: 2014-2-25 09:40 PM
我就在用STM32F030探索套件 都发了 几篇文章  哈哈    美女应该多搞些原创有价值的帖子  [attach]33159[/attach]
作者: 南风hny    时间: 2014-2-25 09:49 PM

呵呵,你发布的STM32F030内容了吗?在哪里?只看到一个F4的介绍,我现在在整理板块,等有时间了就会把自己的原创发上来哦



作者: fsy_1979ELeAcer    时间: 2014-2-25 09:57 PM
@冰山一角,看到你发的都是些官网例程修改的内容哦
作者: 回复用户4    时间: 2014-2-25 10:02 PM
呵呵,你发布的STM32F030内容了吗?在哪里?只看到一个F4的介绍,我现在在整理板块,等有时间了就会把自己的原创发上来哦

作者: 无望    时间: 2014-2-25 10:18 PM
[attach]33160[/attach]  自己写的,难道跑马灯 和定时器 自己还能有什么创意么?
作者: TonyYU    时间: 2014-2-26 07:46 AM
[attach]33161[/attach]
作者: MHB520    时间: 2014-2-26 09:23 AM
支持小雨儿
作者: pc_based    时间: 2014-2-26 06:38 PM
这些东西别人都已经在网上发过了哦,冰哥
作者: wxw123321    时间: 2014-2-27 06:56 PM
活动慢慢会有的,论坛上有很多丰富的资料,可以让你逐步学习哦
作者: Skate    时间: 2014-3-7 02:26 PM
支持楼主啊!!




欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2