基于STM32的频谱测量系统的设计
频谱测量在射电频谱测量的研究中十分重要。传统的频谱测量仪器非常笨重,功耗也比较大,如今许多科学工作者的射电频谱测量工作逐渐转向环境恶劣的工作场所,工作者需要每隔一段时间去检查一次系统工作情况,这样就需要系统可以实现数据存储功能,便于数据分析[1]。而资源的匮乏就对频谱测量系统提出了低功耗的要求。本设计从实际出发以超外差测量频谱和锁相环技术来得到频谱及U盘存储数据等方式解决这些问题。
1 频谱测量原理
本系统采用了超外差频谱测量和中高频调谐的方法实现了频谱的测量[2],此方法很大程度上减少了干扰并且提高了系统的稳定性,并通过锁相环技术的运用实现了液晶屏上显示采集的波形,然后将数据存入U盘[3]。
2 系统硬件设计
整个系统主要由STM32F103控制芯片、锁相环电路模块、按键、液晶显示、存储模块、A/D采集、环路滤波器组成,硬件电路结构图如图1所示。
2.1 主控芯片硬件电路
考虑到需要的I/O数、运行速度、A/D采集精度和性价比等因素,本系统采用STM32F103ZET6芯片,自带512 KB大容量Flash,3个12位A/D转换器使系统采样精度高,转换速率快。其性能稳定、功耗低,温度适用范围大,外围模块丰富。
2.2 液晶显示电路
本系统选择了卓力恩科技的ZLG240128F-BTSSWE-YBC的液晶屏,其分辨率为240×128,液晶的温度一般是-30 ℃~70 ℃之间,对周围环境的局限性相对较小,从而脱离了上位机,而且增加了人机的友好交互效果。
2.3 数据存储电路
为了使系统在低功耗情况下快速、精准地存储数据信息,本系统选择CH378文件管理控制芯片,选择8位并口方式与单片机连接,可实现U盘或SD卡的快速读写,支持12 Mb/s全速和480 Mb/s高速USB通信,其最大可支持容量为32 GB[4],其应用框图如图2所示。
2.4 锁相环电路
锁相环路主要通过ADI公司的ADF4351芯片的分频器灵活控制输出频率,为了得到更合适的环路稳定性和频率锁定时间,本系统采用三阶无源滤波器(其环路带宽为75 kHz~150 kHz,相位裕度取47°~55°)以及HXO-32的10 MHz晶振[5],滤波电路如图3所示。
3 系统软件设计
软件程序是在MDK5开发环境中用C语言编写的,根据人机交互程度的不同将系统工作模式分为全自动、半自动、全手动三种模式。程序中增加了对采集数据的软件处理,采用平均算法使数据获得较高的精准度和稳定度,并使用8位并行传输方式进行数据存储。
3.1 程序流程图
本系统包含三种模式,这里主要介绍全手动模式。全手动模式程序流程图如图4所示。程序主要包含初始化程序、主程序和U盘检测程序等。初始化程序是对系统参数的设置,保证了各部分功能正常进行。
3.2 矩阵键盘的软件实现
为了实现按键的中断级别最高,系统采用了扫描的方法进行检测,并给予延时消除抖动以保证系统的稳定性[6]。各按键功能说明表如表1所示。
3.3 点频输出计算方法
ADF4351的点频输出的计算方法可根据式:
以及系统的参考晶振频率RFIN=10 MHz求得INT和FRAC的值。根据其值可将输出模式设置为小数模式或者整数模式,由此将上述所求值放入对应寄存器中即可[7]。
软件的扫频划分为7个段来编程,调用AetPLL函数即可完成点频配置,通过程序循环进而完成多频扫描,并通过软件配置低噪声模式及防反冲脉冲宽度配置可以改善相位噪声和杂散性能,通过减少周跳扩展了PFD的线性范围,从而加快了锁定时间[8]。扫频程序配置流程图如图5所示。
3.4 扇区方式存储数据
全手动模式下的扇区存储通过单片机控制CH378写入扇区数,以返回的中断标志来判断是否已经存储成功[9]。连续存储大量数据时,可以在关闭文件时更新数据长度或者间隔一段时间更新,这样不仅可以增加数据存储的时间利用率,又可以延长U盘的寿命。全手动模式下扇区存储流程如图6所示。
4 实验结果
图7为频谱测量的硬件实物图,系统通过参数值的调制最终可实现在35 MHz~4.4 GHz整个频段的每个频点都可以输出较好的频谱,图8为锁相环输出点频1 500 MHz的频谱,其环路带宽为124 kHz,相位裕度为49.3°。
系统的操作界面是人机交互的关键,用户可根据自己的需求选择系统的工作模式,模式选择界面如图9所示,全手动参数配置界面如图10所示,图11为480 MHz带宽下1 200 Mz频率信号在液晶中呈现的频谱。
当系统采集完数据以后,将数据存入到U盘中TXT格式的文本中,取出后对数据进行分析,图12为部分文档数据的结果。
5 结论
本文主要介绍了以STM32F103ZET6为主控芯片的频谱测量系统,系统可实现频谱的测量,并通过按键操作实现液晶显示以及数据存储。本系统功耗低、易操作、便于携带且具有存储功能,在野外通信测量活动、勘探活动中有着很好的应用前景。
参考文献
[1] 窦玉江.太阳射电观测的微波技术研究[D].北京:北京师范大学,2009.
[2] LIN M C,TSAI G R,TU Y C.FPGA-based specturm analyzer with high area efficiency by goertzel algorithm[J].IEEE Computer Society,2008(743):157-159.
[3] 邓旭亮,李晓军.超外差频谱分析仪频率下限扩展技术研究[J].科技信息:科学教研,2008(22):414-415.
[4] ZHANG H,ZHAO R,TIAN C.Design and implementation of the music player based on interface chip CH378[C].Seventh International Conference on Advanced Communication and Networking,2015:40-43.
[5] 高立俊.基于ADIsimPLL 3.1的锁相环环路滤波器设计[J].现代电子技术,2013,36(15):56-58.
[6] 余江,曹云建,熊韬.一种2~4 GHz宽带接收机的小型化前端设计[J].无线电通信技术,2016,42(2):96-98.
[7] 李菁.手持式频谱仪本振电路的研究与实现[D].成都:电子科技大学,2015.
[8] 谭成豪,许建明.试述51系列单片机矩阵键盘编程[J].科技传播,2011(6):225.
[9] 郭佳欣,单彦虎,任勇峰.基于CH378的通用大容量数据记录器的设计与实现[J].电子器件,2016,39(6):1429-1434.
作者信息:
孙 威,殷兴辉,王新君
(河海大学 计算机与信息学院,江苏 南京211100)
基于LabVIEW的飞行器参数测量平台设计
孙春虎,陈海波,方愿捷
(巢湖学院 机械与电子工程学院,安徽 巢湖 238000)
基于LabVIEW设计了一种飞行器加速度、角速度及姿态角测量平台系统。硬件系统采用计算机、6轴惯性导航模块及USB转TTL模块;软件系统基于LabVIEW编写了飞行器加速度、角速度及姿态角的三维数据测量平台系统。该系统还可应用于船舶、汽车导航系统的加速度、角速度及姿态角的三维数据测量显示。实验结果表明,该系统易于控制,能方便地观察加速度、角速度及姿态角的三维数据曲线,并且当6轴惯性导航模块改变状态时,输出曲线均能随之改变并能快速达到新的稳定状态。
6轴惯性导航模块; USB转TTL模块;LabVIEW;串口通信
通过对飞行器的实时加速度(惯性)的测量,并进行积分,可获得飞行器实时速度和实时位置数据。根据惯性导航系统,从当前点的位置根据连续测得的运载体航向角和速度可推算出其下一点的位置,因而可连续测出飞行器的当前位置。实时角速度是飞行器研制过程中很重要的参数之一,它决定了飞行器能否稳定飞行,因而在飞行器飞行时必须知道每一时刻的飞行器角速度。飞行器姿态角的测量意义在于确定飞行器的当前姿态,以便进行姿态控制[1]。
本文利用计算机、6轴惯性导航模块及USB转TTL模块,结合Labview软件实现飞行器加速度、角速度及姿态角的三维数据测量显示。该系统还可应用于船舶、汽车导航系统的加速度、角速度及姿态角的三维数据测量显示。
实验结果表明该系统易于控制,能方便地观察加速度、角速度及姿态角的三维数据曲线,并且当6轴惯性导航模块改变状态时,输出曲线均能随之改变并快速达到新的稳定状态。
1测量系统总体设计
测量系统总体设计如图1所示。
测量系统总体设计包括:计算机系统、USB转TTL模块及6轴惯性导航模块。计算机系统主要是装有LabVIEW软件的计算机,USB转TTL模块用于计算机系统与6轴惯性导航模块的相互通信,6轴惯性导航模块用于测量实时加速度、角速度及姿态角。
2测量系统硬件设计
测量系统硬件设计主要包括:USB转TTL模块设计和6轴惯性导航模块设计。
2.1USB转TTL模块设计
由于USB串口采用的是RS232电平,为负逻辑,而6轴惯性导航模块采用的是TTL电平,为正逻辑,因而要使两者通信就必须进行电平转换,以实现电平的一致性。USB转TTL模块原理图[2]如图2所示。
USB转TTL模块通过USB口的管脚1供电,管脚2、3用于电脑发送或接收RS232电平数据,P1口用于6轴惯性导航模块发送或接收RS232电平数据。
2.26轴惯性导航模块设计
6轴惯性导航模块[3]采用高精度陀螺加速度计MPU6050,模块内部集成了姿态解码器,结合动态卡尔曼滤波算法,姿态测量精度0.01°,稳定性极高;数据输出接口有串口和I2C口,I2C接口可以满足高级用户访问底层测量数据的需求,但无姿态输出,且所测数据均为X、Y、Z轴上的三维数据;波特率有115 200 bit/s和9 600 bit/s两种模式,对应的数据输出帧率分别为100 Hz和20 Hz。6轴惯性导航模块管脚图如图3所示。
由图3可知:管脚1~4用于串口数据通信,管脚5~8用于I2C口数据通信,本文选用串口数据通信。
3测量系统数据包内容和计算公式分析
测量模块发送到计算机的每帧数据分为3个数据包,分别为加速度包、角速度包和姿态角包。由于这3个数据包分析方法相同,这里只以姿态角包为代表进行内容和计算公式的分析。
姿态角包的内容如表1所示。当计算机接收到连续两个数据内容为0x55、0x53时,则可判断此时接收到的数据包为姿态角包;从下一个数据开始的连续6个数据为X、Y、Z轴上的三维数据;每维数据为16 bit,以低字节、高字节的次序传送。
姿态角X、Y、Z轴上的三维数据(滚转角、俯仰角和偏航角)计算公式如式(1)、式(2)、式(3)所示。
由式(1)、(2)、(3)可以看出:计算滚转角、俯仰角和偏航角时都需要将高字节数据左移8 bit,然后与低字节按位或得到16 bit数据,再除以32 768,最后乘以180即可得到各自角度。若此时16 bit数据小于32 768时,则此时角度为正值;否则此时角度为负值。
4测量系统软件设计
测量系统软件设计包括:前面板设计;串口读写设计;加速度、角速度和姿态角度读取及计算设计;加速度、角速度和姿态角显示设计。
4.1前面板设计
前面板设计[4]如图4所示。 通过前面板可以对串口号、波特率、数据位等通信参数进行设置;加速度、角速度和角度输出控制开关可以在波形图表上显示相关量的三维数据曲线;AX、AY、AZ为加速度三维数据显示;WX、WY、WZ为角速度三维数据显示;RX、RY、RZ为姿态角三维数据显示。
4.2串口读写设计
VISA配置节点用于通信的初始化设置;VISA写节点用于向6轴惯性导航模块写入初始化控制字,以选择通信接口模式和波特率设定;延时500 ms是使6轴惯性导航模块有足够的时间完成初始化;VISA串口字节数节点用于统计输入缓冲区的字节数;VISA读节点从读取缓冲区读取指定字节数的数据。串口读写设计[5~6]如图5所示。
4.3加速度、角速度和姿态角读取及计算设计
由于加速度、角速度和姿态角读取及计算过程相似,这里只以姿态角为代表进行读取和计算设计。姿态角读取与计算设计[7]如图6所示。
搜索1维数组函数用于找到角度包的包头及在数组中的位置;然后就可以根据表1和式(3)求解角度的三维数据RX、RY、RZ;图中子VI函数实现姿态角的正负值判别与处理。
4.4加速度、角速度和角度显示设计
加速度、角速度和姿态角显示设计的目的是:当这3个控制开关任何1个按下时,波形图表应显示该控制量所对应的三维数据曲线。如果同一时刻有两个以上按键按下,那么在1个波形图表上将显示6条或9条数据曲线,造成相互重叠且不方便观察,因此,任一时刻只允许1个控制按键按下,显示3条曲线。程序框图[8]如图7所示。
5测量系统实验结果及分析
实验1:将串口设为COM4、波特率9 600 bit/s、数据位8位、停止位1位、无校验位;根据系统总体图连好硬件,并把6轴惯性导航模块放在某一固定位置保持不动;分别打开加速度、角速度和姿态角开关,运行LabVIEW程序;所得到对应的三维数据曲线如图8~图10所示。
实验2:将串口设为COM3、波特率9 600 bit/s、数据位8位、停止位1位、无校验位;根据系统总体图连好硬件,并把6轴惯性导航模块先放在某一固定位置;打开姿态角开关,然后运行LabVIEW程序;等输出波形稳定后,再把6轴惯性导航模块放到另一固定位置。所得到姿态角的三维数据曲线如图11所示。
由图8可以看出,此时加速度三维数据AX、AY、AZ输出波形还是很稳定的,且AX≈1.04 m/s2、AY≈1.09 m/s2、AZ≈10.42 m/s2。
由图9可以看出,此时角速度三维数据WX、WY、WZ输出波形还是较稳定的,且WX≈-1.71 rad/s、WY≈0.79 rad/s、WZ≈-1.16 rad/s。
由图10可看出,此时姿态角三维数据RX、RY、RZ输出波形是非常稳定的,且RX≈5.80°、RY≈-5.54°、RZ≈0°。
由图11可看出,当6轴惯性导航模块位置改变时,姿态角三维数据RX、RY、RZ输出波形也会快速改变并进入一种新的稳定状态,且稳定时RX≈17.28°、RY≈-5.52°、RZ≈-2.46°。
由实验1、实验2可得出结论:该加速度、角速度及姿态角检测系统还是很稳定和精确的;且当6轴惯性导航模块位置改变时,检测系统也能快速响应并显示新的稳定位置数据,具有很强的实时显示特性。
6结论
本文所设计的飞行器加速度、角速度和姿态角测量显示系统具有较强的稳定性和精确性;并能对飞行器的位置变化产生快速响应和实时显示特性。所设计的飞行器加速度、角速度和姿态角测量系统具有一定的参考与应用价值。
参考文献
[1] 黄和悦.DIY四轴飞行器--基于MSP430F5系列单片机与Android[M].北京:电子工业出版社,2004.
[2] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009.
[3] 李尧.四旋翼飞行器控制系统设计[D]. 大连:大连理工大学,2013.
[4] 张重雄,张思维.虚拟仪器技术分析与设计[M]. 北京:电子工业出版社,2012.
[5] 李晴.基于Labview的串口通信应用[J]. 常州信息职业技术学院学报,2009,8(3):8-10.
[6] 吕向锋,高洪林,马亮,等.基于LabVIEW串口通信的研究[J]. 国外电子测量技术,2009,28(12):27-29.
[7] 畅国忠,周泓,余锋,等.基于VISA的事件处理方法与实现[J]. 测控技术,2009,19(9):45-48.
[8] 卢海峰,江朝元,阳小光.基于串口通信的在线监测系统关键技术研究[J]. 仪器仪表学报,2006,27(S3):2043-2044.
AET会员年终大福利!
相关问答
电子测量 技术与仪器专业毕业到底都是干什么啊?我..._测量员...后,主要从事的工作是研制、设计、生产、维修、应用各种电子测量仪器和设备。具体来说,包括以下几个方面:1.电子测量仪器的研制和设计:根据市场需求...
电子测量 技术与仪器这个专业怎么样?就业如何?根据你自己所学的专业有这个把握,找工作是没问题的,毕业之后找工作是不容易,在没找到工作之前先找其他的工作干一段时间,以便在以后的工作中积累经验和知识,一...
电子测量 仪器的使用方法?电子测量仪器是用来测量电子器件、电路参数和信号特征的仪器。根据使用的对象和功能特点,电子测量仪器种类繁多,包括万用表、示波器、信号发生器、频谱分析仪...
shark 电子测量 系统使用步骤?一、频谱分析仪的使用频谱分析仪在频域信号分析、测试、研究、维修中有着广泛的应用。它能同时测量信号的幅度及频率,测试比较多路的信号及分析信号的组成,还...
用 电子 血压计 测量 血压,为什么心跳会这样高 _千问健康最近小孩子给我买了个电子血压计回来,让我随时都方便测血压,其他人测量都是蛮正常的,可是我的对门的邻居,她从来没有什么病史,也没有检查过身体和测量过血压...
伏安法测电阻时,可从每个 测量点 求电阻和做图法求电阻,讨论其...[最佳回答]作图法求电阻直观、两种方法没有太大的优劣差别、图像往往是直观的、图像的斜率代表一定的意义、
电子 温度计怎么 测量 准确?电子体温计,在测量前要将体温计先装上电池,开机后可以听到滴的一声,然后将体温计的探头插入需要测量的部位。如果进行腋下体温测量,可以将探头放入腋窝中心...
电子测量 工具有哪些?.1.测量电压:电压表或三用表;2.测量电流:电流表或三用表;3.测量电阻:三用表(万用表)的欧姆档;.1.测量电压:电压表或三用表;2.测量电流:电流表或三用表;3...
通用技术的一道 设计 题~假如要求 电子 公布栏的两端必须是水平...[最佳回答]如果地面是水平的,那就拿个绳子一头栓上个重点的东西,到公布栏两头一比划就出来了.更简单的方法是拿个圆的或者球形的东西放到上面,往哪儿滚就是哪...
电子 三测仪功能?电子三测仪包括壳体、臂带、控制器、通讯模块和读卡模块,臂带安装于所述壳体的外侧,控制器、通讯模块和读卡模块均位于所述壳体内,且通讯模块和读卡模块均与所...