[原创] 基于LABVIEW的STM32F0多路数据采集系统(源码+视频)

fengye5340   2013-2-26 12:32 楼主
             基于LABVIEW的STM32F0多路数据采集系统(源码+视频)
原始方案计划
  一、应用背景
       在一般的工业控制应用项目中,都需要涉及到数据采集部分,即利用各种传感器将不同的环境变量(数字量、电压、电流、温度、湿度、压力、方向和距离等)采集,并送至控制器进行转换处理。控制器对得到的相关信息进行判断后,进行相应的控制处理。在进行控制处理的过程中,有些需要人工进行干预,这就要求各种传感器的信息必须在一定的界面(液晶屏、串口终端、上位机界面)上进行实时显示。
  二、功能说明
       本方案计划实现一种基于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--开发板硬件--(2012-10-29 1043分收到开发板)
      2、解决STM32FO开发板和开发环境的调试--(2012-10-29 1655分完成板载LED闪灯程序测试)
      3、解决STM32FO--串口通信模块和ADC模块。--(2012-10-30 1710分完成串口模块调试,2012-11-01 1722分完成ADC模块调试)
     4   解决STM32FO--DS18B20温度传感器模块程序移植。(2012-11-02 1656分完成程序测试)
     5、解决LABVIEW开发环境调试(2012-11-06 1120分完成程序测试)
     6、解决LABVIEW串口通信模块调试(2012-11-09 1710分完成程序测试)
     7、解决ADC数据的载入并计算显示波形。(2012-11-13 1720分完成程序测试)
     8、解决ADC数据的TXT文件保存功能(2012-11-16 增加TXT文件保存功能)
     9、解决开关按钮控制STM32F0 DISCOVERY--板载LED的演示功能。(2012-11-14 1634分完成程序测试)
     10、增加额外功能或修改并美化系统界面(2012-11-20 完成系统界面设计)
方案设计
  一、硬件设计
       由于该方案采用STM32F0 DISCOVERY进行开发,硬件设计并不复杂。内容见附件。
       二、系统软件设计
       该方案的主要工作在于系统软件的代码设计,包括下位机驱动设计和LABVIEW上位机界面的程序设计。由于本人对STM32了解较少,故先编写了一部分驱动文件,包括USART串口驱动,SYSTICK系统定时器、NVIC中断管理、DS18B20(移植MSP430LM3S系列)ADC(DMA方式驱动)。考虑到时间问题,和LABVIEW的串口通信通讯采用简单的软件查询方式实现,也没有增加复杂的控制协议,比如(帧头+数据+校验码)的方式,这种在工业通信中应用比较普遍。
       上位机软件的详细使用,见文档LABVIEW上位机软件说明书V1.0.pdf》。
       由于串口通信采用8位数据方式,对非STM32产品来讲,总线都是8位方式,而对于STM32来说,是16位方式,这样就需要在串口通信时,将DS18B20ADC采集的数据16位数据拆分成两个8位数据分别发送,发送后再进行一些处理。这对于一些刚接触LABVIEW的新手来讲,可能也是一个问题吧。
方案点评
    对于工业应用或一般项目应用的数据采集来讲,该方案仅仅是提供了一个框架或思路,还有很多需要改进或优化的方向,实际中的项目远比此复杂的多,通信数据的解析和算法的处理也不是一两个VI程序就能完善的,为了更加直观,本人的VI已项目文件方式实现,目的是让自己和相关的人形成一个良好的习惯,就像写MCU的驱动一样,分成了很多小模块。
在此提出一些改进或优化的方向,留给感兴趣的人研究。
1、LED灯的延时控制在上位机界面中实现调整。
2、串口通信协议可以增加帧头、帧尾和校验。
3、ADC数据采集保存方式合并到一个文件中,见文档《LABVIEW上位机软件说明书V1.0.pdf》。
进程贴
    一、STM32F0 #02进程帖(一)---LED闪灯和串口通信功能的实现

    二、STM32F0 #02进程帖(二)---串口实现DS18B20温度传感器温度显示

    三、STM32F0 #02进程帖(三)---STM32F051 ADC单通道数据采集(中断方式实现)

    四、STM32F0 #02进程帖(四)---基于LABVIEW的多路数据采集系统界面

视频地址:
   




[ 本帖最后由 fengye5340 于 2013-3-1 11:23 编辑 ]

回复评论 (17)

很好的资料,值得收藏,谢谢
点赞  2014-2-27 17:05
请问您,这个怎么实现和labview串口通信呢,因为STM32discovery链接电脑没有分配串口啊
点赞  2014-5-14 13:01
          非常好的资料,正好拿来学习学习。感谢楼主的分享。
点赞  2014-5-30 17:16
很好的资料,值得收藏,谢谢
点赞  2014-7-12 14:43
收藏了,下来学习学习。
点赞  2014-7-14 15:24
收藏了,下来学习学习。
点赞  2014-8-21 18:16

收藏了,下来学习学习
点赞  2015-8-28 21:21
马克一下。
点赞  2015-9-1 09:12
学习一下labview
点赞  2016-7-13 13:42

收藏了,下来学习学习。
点赞  2018-1-10 13:26
很不错的资料
点赞  2018-1-10 13:38
收藏了,感觉很厉害的样子啊!!
我在想 我知道什么
点赞  2018-1-23 15:56
感谢您的分享!
点赞  2019-4-12 13:42
学习到了一个很好的思路,谢谢楼主
点赞  2019-5-22 15:45

在ZH上发现了这个网站,好多教程都可以看。赞

点赞  2019-7-27 11:05

真的好东西!!!

点赞  2019-10-23 16:17

LV画面做到真好

چوآن شـين
点赞  2022-4-2 22:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复