傅少琪 宣鑫璐 郦泱泱 冯家龙 龙春晓
绍兴文理学院 浙江 绍兴 312000
摘 要:虚拟仪器是将仪器技术、计算机技术、总线技术和软件技术紧密的融合在一起,利用计算机强大的数字处理能力实现仪器的大部分功能,打破了传统仪器的框架,形成的一种新的仪器模式。本设计将虚拟仪器技术用于信号发生器的设计。该系统具有产生正弦波、方波、三角波、锯齿波及PWM波的功能,能够调节一定范围内的频率、周期、占空比等参数。本文介绍了信号发生器的相关理论,给出了信号发生器的基本原理框图,在分析本系统功能需求的基础上,介绍了Labview、STM32的编程模式中所涉及到的技术问题。本设计是虚拟仪器模拟真实仪器的尝试,实践证明虚拟仪器是一种优秀的解决方案,能够实现各种硬件可以完成的任务。
关键词:Labview上位机;stm32下位机;串口通讯;信号发生器
本设计是虚拟仪器模拟真实仪器的尝试,实践证明虚拟仪器是一种优秀的解决方案,能够实现各种硬件可以完成的任务。如果运用虚拟仪器技术构建系统,代替常规仪器、仪表,不但可以满足实验教学的需要、节约大量的经费、降低实验室建设成本,而且能够提高教学科研的质量与效率。
1 总体设计结构
首先完成上位机与下位机实现各自基础功能的程序,上位机实现基础波形的输出,频率等参数可调,并配置好串口,利用串口助手模拟下位机,实现与下位机的通信;下位机利用串口接收上位机数据,通过DA输出。
2 系统模块设计
2.1 Labview上位机
首先在Labview程序框图中找到基本函数发生器,在我们需要的参数的端口点击右键创建输入控件,如图2-1所示,需要注意的是显示波形的波形图需要在前面板中得到。
不过这只是信号发生器的雏形,想要将波形信号输出到下位机还需要用到VISA串口,在此次设计中使用到VISA串口配置:用来配置串口的波特率等参数;VISA写入:将波形数据写入串口输出;VISA关闭:关闭串口。但是波形信号是一个动态信号,我们需要将动态信号转化成为数组,再将数组转换成字符串输入到VISA写入的写入缓冲区,因为在Labview的程序框图中正好有将动态信号转换成数组,将数组转换成字符串的函数,而且VISA写入只能写入字符串,因此我们将动态的波形数据进行如上的处理。
2.2 STM32下位机
要实现下位机DA输出波形,首先要接收上位机输出的字符串数据,将字符串数据通过串口接收,存储到一个变量中,再将变量存储到数组中,这样就可以将输入的字符串存储到数组中,并且可以随时调用,实现了上位机与下位机的通信。定义好数组长度,当接收数据长度等于定义长度时,标志位赋值为1,进入中断,然后开始处理数据。对得到的数据进行处理,用公式对频率等参数进行赋值,并通过DA输出选择的波形。
3 信号发生器系统调试
3.1 模块调试
(1)Labview上位机调试
Labview的上位机调试主要是输出波形的调试以及与下位机串口通信的调试,我们暂时使用虚拟串口和串口助手来进行相关的调试。首先打开虚拟串口,设置COM1与COM2相连,然后串口助手选择COM1端口,Labview前面板操作界面的VISA资源名选择COM2端口,设置波特率为115200,这样就能够让串口助手与Labview实现通信,模拟实现了上位机与下位机的通信。
(2)STM32下位机调试
连接好串口及ST-LINK仿真器,打开keil程序进行调试,同时打开Labview上位机,选择正确串口并运行,在keil中选择msg及msg_buff两个数组观察是否接收到正确的数据。上位机选择频率为10Hz,幅值为1V的三角波输出,观察数组接收到的数据是否准确。
3.2 整体集成调试
首先连接好上位机与下位机的串口,运行上位机程序,从示波器中观察波形是否与上位机输出的数据一致,下面给出调试结果:
(1)上位机输出频率为100HZ,占空比为50%,幅值为1V的方波,从示波器观察下位机输出的波形,得到的为赋值≈1V,频率=100HZ,占空比=50%的方波,改变占空比=80%,下位机的输出占空也相应改变。成功实现方波。
(2)上位机输出频率为100HZ,占空比为50%,幅值为1V的三角波,在示波器上得到相应的波形,改变频率为2Khz,幅值为2V,下位机输出波形也相应改变,三角波成功实现。
(3)正弦波,在集体调试正弦波时,我们看到正弦波底部有些许失真,可能是偏移量没有控制好,我们将生成正弦波的函数修改成如下图所示的样子,将偏移量由加上2047即二分之一的4095来实现。
4 结论
本设计将虚拟仪器技术用于信号发生器的设计。该系统具有产生正弦波、方波、三角波、及PWM波的功能,能够调节一定范围内的频率、周期、占空比等参数。将仪器技术、计算机技术、总线技术和软件技术紧密的融合在一起,利用计算机强大的数字处理能力实现仪器的大部分功能,打破了传统仪器的框架,形成的一种新的仪器模式。
参考文献:
[1] 周大鹏,常峰,何光普.基于虚拟仪器的函数信号发生器设计[J].乐山师范学院学报,2009,24(5):34-35
[2]刘连生,王海兵.基于虚拟仪器信号发生器设计与实现[J].中国明航大学学报,2007,25(7):122-123
[3]曹会国.基于Labview的虚拟仪器VI(virtual instrument)及应用[J].潍坊学院学报,2005,5(3):14-15