CSDN话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
博客写作背景----项目中解决的问题
最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用labview编写上位机程序进行处理。为啥用labview呢,如今用于测试工程的软件开发平台有很多,VC++、VB和Delphi等传统软件开发平台为众多编程人员所熟悉,也可以用来开发测试软件,但这种开发方式对测试人员要求很高,需要自己将各种数据处理方法用计算机语言实现,还要对用于数据通信的各种连接总线(如RS232、GPIB、USB等)非常熟悉,绝大多数测试工程人员难以做到,或者需要花大量的时间来研究,而懂得这些编程方法的人员又不一定懂得测试,因此,用这种平台开始测试工程软件难度大、周期长、费用高、可扩展性差。顺应形势发展,一些专业测试软件开发平台纷纷推向市场,如HPVEE、组态软件平台、TPS平台等,但这些平台的专用性太强,可扩展性、通用性比较差。
而LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),LabVIEW是NI公司推出的专业测试软件开发平台,是NI的测试软件旗舰产品,是图形化编程环境的引领者,是测试软件开发的趋势。LabVIEW是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。LabVIEW支持多种系统平台,在任何一个平台上开发的LabVIEW应用程序都可以直接移植到其他平台上。LabVIEW具有很强的开放性,是一个开放的开发环境,能和第三方软件轻松连接。通过LabVIEW可以把现有的应用程序和.NET组件、ActiveX、DLL等相连,可以和MATLAB混合编程,也可以在LabVIEW中创建能在其他软件环境中调用的独立执行程序或动态连接库。LabVIEW支持常用网络协议,如传输控制协议(TCP/IP)和用户数据报协议(UDP),方便网络、远程测试系统的开发。LabVIEW的基本编程单元是图标,不同的图标表示不同的功能模块。用LabVIEW编写程序的过程也就是将多个图标用线连起来的过程,连线表示功能模块之间存在数据的传递。被连接的对象之间的数据流控制执行顺序,并允许有多个数据通路同步运行。其编程过程近似人的思维过程,直观易学,编程效率高,无须编写任何文本格式的代码,易为多数工程技术人员接受。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点–做题思路
stm32f103是一款12位分辨率的ad采集单片机。分辨率是一个设备所能检测出的输入信号的最小变化量。模拟输入的分辨率受ADC的位数制约,ADC的位数为n时,可将输入信号量化为2的n次幂份,如3位ADC的量化份数为8份,可用含有3个bit的数字信号量000~111表示。ADC位数越高,所能够分辨出的最小电压变化量越小,所转换成的数字信号也就能够越精确地恢复原始信号。
12位ADC和3位ADC分别对同一模拟信号进行转换得到的数字信号,显然16位ADC得到的数字信号还原能力更强。数据采集卡的分辨率一般有8位、12位和16位等几种选择,能够量化的份数分别为256、4096和65536份。
使用VI对stm32单片机的数据进行波形显示:
新建一个名为“使用易用VI进行单通道波形采集.vi”的VI,添加AI Acquire Waveform.vi并配置为使用设备1、通道0、电压范围-10V~+10V、采样率1000点/秒、每通道采样数500个,然后添加波形图表显示采集数据,所得的程序框图如图所示。安装并配置好数据采集卡后,运行程序观察采集效果。
新建一个名为“3通道波形采集.vi”的VI,添加AI Acquire Waveforms.vi,并仿照上一步中的方法配置该VI的各个参数,使用通道0~2进行三个通道的同时波形采集。所得程序框图及运行效果
使用中级VI同样也可实现
该程序展示了使用中级VI进行波形采集的一般步骤。
使用AI Start.vi启动采集任务,并指定采样率/扫描率;
使用AI Config.vi配置采集任务的控制信息和各个参数;
使用AI Read.vi一次读入一段波形数据,包含指定长度的若干个信号点;
使用AI Clear.vi清除缓冲区,释放资源;
错误信息簇连接至错误信息处理相关的VI,自动汇报错误,此步可选。