【《基于Hi3861微处理器搭载HarmonyOS操作系统的放大电路检测装置设计》26000字】_第1页
【《基于Hi3861微处理器搭载HarmonyOS操作系统的放大电路检测装置设计》26000字】_第2页
【《基于Hi3861微处理器搭载HarmonyOS操作系统的放大电路检测装置设计》26000字】_第3页
【《基于Hi3861微处理器搭载HarmonyOS操作系统的放大电路检测装置设计》26000字】_第4页
【《基于Hi3861微处理器搭载HarmonyOS操作系统的放大电路检测装置设计》26000字】_第5页
已阅读5页,还剩48页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要该放大电路检测装置是由Hi3861微处理器搭载HarmonyOS操作系统、电源模块、迪文显示屏以及NIELVISⅢ实验板失真波形发生电路和信号发生模块组成。本装置采用频率为1Khz、峰峰值为20mV的正弦信号作为放大电路的输入信号,通过一个开关调节功率放大电路产生交越失真波形,三个开关电路控制改变电路静态工作点输出无失真波形、顶部失真、底部失真、双向失真失真波形。通过鸿蒙系统板上进行AD信号采集,之后对其进行快速傅里叶变换(FFT)对波形进行幅频特性的测量,并在迪文智能屏幕上显示。放大电路检测装置具有两个功能,首先是实现电路的基本检测功能,检测一些电阻阻值故障以及幅频特性曲线。通过波形可以判断失真类型,进而找出静态工作点偏高或偏低,最后判断阻值故障。其次是检测结果直观的显示,不同于普通测量仪器,该屏幕能在视觉上明显看出失真波形,并且可以显示描述波形失真程度的指标总谐波失真值(THD),大大提高了故障检测的效率。该检测研究装置与传统人工检测相比,节省了检测时间,降低了检测失误率。关键词:放大器非线性失真;鸿蒙系统;FFT;总谐波失真值目录第1章绪论 11.1本课题研究的背景和意义 11.2国内外研究现状 21.2.1失真信号电路检测 31.2.2失真信号数字检测 31.3课题主要研究内容和工作 111.4课题章节安排 11第2章设计理论分析 12.1电路故障检测原理 12.2FFT计算原理 22.3THD计算原理 112.4幅频特性曲线分析 11第3章系统硬件设计 13.1鸿蒙系统控制部分 13.2智能屏幕部分 23.3信号预处理电路部分 113.4失真波形发生电路部分 113.5电源部分 11第4章系统软件设计 14.1鸿蒙系统信号处理部分 14.1.1AD转换 14.1.2FFT算法 24.1.3幅频图像绘制 24.1.4THD计算 24.2屏幕C51开发部分 24.2.1按键响应处理 34.2.2亮度调节 34.2.3动态曲线绘制 44.3鸿蒙系统和屏幕通信部分 11第5章系统测试及结果 15.1失真波形发生结果 15.2幅频特性曲线结果 25.3信号处理计算结果 115.3.1FFT算法测试结果 115.3.2THD计算结果 115.4故障检测结果 11第1章绪论1.1本课题研究的背景和意义随着人们对通信传输系统需求的增加,例如传输频率的要求还有传输带宽的要求[1]等等,系统的设计难度也在与日剧增,人们希望设计出的电路可移植性强、兼容性强,那么与此同时这些系统的维修就变得越来越难。传统维修工程师的维修过程通常是首先采用一些电子检测设备测量电路相关的增益、功率等信息判断故障点,在对故障点周围线路和器件进行排查,这种检测方式虽然检测结果准确但识别效率略低,易受主观意愿影响。影响传输结果有很大一部分原因是在三极管的放大电路中,具有功率放大功能的电路一般能在系统中作为接收机的第一部分或发射机的最后一部分。信号的电压电流以及功率放大的过程中起到很大作用,在一定程度上决定了系统的各项性能以及能否稳定的输出。而放大电路主要由一些固有非线性特点的电子元件组成,这些非线性的特性导致待传输的信号失真,进而给传输过程带来搅扰。受该失真影响影响显著的是在正交频分复用(OFDM)调制技术[2]中,必不可少的非线性放大器会使OFDM信号发生载波频率偏移、信号误码率增大等现象,因此研究如何改善传输效果例如优化系统的自身性能调整功率分配是十分有必要的。除此之外,根据传输信号的频率的要求,在高频信号的传输过程中,系统传输效率是关键的影响因素,而对该传输系统来说,影响传输效率重要原因在于放大器的工作状态。当放大电路的工作状态在非线性区域时,放大器自身的输出放大特性就已经变了。为减少放大器工作在非线性区域的影响,有研究对功率放大器非线性失真优化设计进行了建模和仿真分析[3]。这就需要调整放大器工作过程中的元器件各项阻值,而在调整过程中,人工为精确的检测需要携带示波器、信号发生器、万用表等,这些设备增多给维修过程增加了很多负担。为减轻维修检测人力物力,需要有智能的检测设备来找出故障原因。集成度较高的电路自动检测故障系统随着对电路特性要求的提高已经成为关注较高的话题,对电路故障检测的准确度、检测响应时间甚至检测故障排除都提出了更高的要求。本装置设计思路是在搭建一个针对各领域应用较广泛的共基极放大电路或非线性工作区域中的功率放大电路进行故障检测,选择集成性较好的实验板来进行电路的搭建,选择处理性能较强及适配多终端的处理器进行信号处理,后期可以根据场景的需要设计其他的电路对其进行检测。本装置设计意义首先是在研究放大电路中这些非线性失真产生原因及如何将这种非线性失真直观的显示出来,为消除这种失真提供研究思路,或者研究方向支撑。其次作为放大电路失真检测研究设备,可以将其继续添加新的放大电路做进一步的完善并将其制作成教学实验设备产品或者简易放大电路故障检测。最后就是该装置通过不断的改进和优化,做好封装使其变成便携式、智能化、准确率高的放大电路故障检测设备。1.2国内外研究现状放大器给电路带来的非线性是一种无法避免的现象,而放大电路在输入标准波形后,通过分析信号波形特征,提取特征向量后,可以自动、快速地诊断出故障[4]。电路故障的检测也将通过波形来进行判断。目前在研究放大器非线性效应有以下几个检测研究方向,首先是信号通过硬件电路进行检测,从放大电路的输入输出电压电流的角度分析待测电路的输出失真情况,在待测放大器前后添加检测电路,分析放大器包含元器件的阻值和压降等,进而判断待测电路的故障原因;另一种是对模拟信号进行数字信号处理分析,在对失真波形直接进行模数转换之后采集数据,提取波形数据后研究信号失真检测算法例如傅里叶变换算法[5]进而对其检测。1.2.1失真信号电路检测文献[6]中设计了一种放大电路自动故障检测仪,这项设计在放大电路输入1KHz正弦信号时,用STM32处理器检测放大器输出信号的放大情况。通过计算电压电流的关系逐个检测对应电阻值,并根据硬件电路的特性绘制响应幅频特性曲线,进而锁定故障点周围的电阻阻值变化和其中故障产生的原因,相关系统框图如1.1。文献[7]同样进行了放大电路的设计,它研究目的是对低噪声高灵敏度的微弱信号进行检测和放大。介于传统的小信号检测设备中传感器部分存在易受周围电磁场干扰问题,该文装置采用的方案是将两级信号放大电路用于模数转换,有效的屏蔽掉噪声干扰。在系统末端采集信号时做了进一步调整,选择了用高阶阶滤波电路配和放大电路进行采集。另外为提高检测结果的准确性,外加了光耦隔离电路进行保护。本文在设计研究放大器的非线性失真时同样可以利用三极管放大电路的工作状态设计产生失真波形,并通过二级放大电路实现不同工作状态中不同失真波形的输出,再通过开关控制电路,尽量避免环境噪声的干扰,但检测电路自身是带有一定的误差干扰,遂在待测放大电路之后仅添加抬升电路用于处理器的数字信号处理,不采用专门的硬件检测电路。图1.1市面上自动检测系统总体框图对放大器输出波形进行检测时需要首先进行模数转换,对失真波形数字化处理,文献[8]一文中需要对放大电路的电流进行精准采集,将检测电阻、运算放大器电路及模数转换电路都集成在一块芯片上。通过对芯片各个引脚测量对应在电路内部进行的电流检测。根据测量电路需求进行电路以及版图设计,在对其进行基础的后端验证,设计出来嵌入芯片的一小部分。之后与逐次逼近寄存器型数模转换电路(ADC)进行比较,查看电路的放大增益效果。最后通过仿真测量检测电路,保证这块完整芯片的测量精度在合适的范围内。这种AD转换电路确实有更好的集成化,但被检测的电路有限制,可移植性差,也就只能满足小部分功能需求,而且嵌入芯片成本略高,本文设计中不采用硬件电路实现数模转换。1.2.2失真信号数字检测为检测系统的可移植性,本装置选择对失真波形进行的信息处理,并且为方便鸿蒙(HarmonyOS)处理器的软件方面设计,在对AD转换部分采用软件编程设计。这里就能体现鸿蒙系统的优势,不同于iOS、Android操作系统,鸿蒙系统是面向全场景式的操作系统[9],它有三个明显的优势特点。首先是微内核设计,它自身代码量只有同类型系统代码量的千分之一。内核代码量少也意味着可受功击概率降低,安全性提高了。其次内部解耦按模块划分,代码量少也是因为为适应不同的硬件,HarmonyOS系统把每一层划分不同功能,每一个功能形成几千个模块,每个模块的输入输出全部用“标签”写好,按照头文件说明该模块适合应用相应设备。这些模块相互独立,可以适用不同终端设备集成开发环境,不同终端交互可以直接在环境中链接,跨设备实现共享,实现了一次开发、多段部署。另外,鸿蒙具备独特的统一驱动框架,统一的传感算法库和驱动一起控制各种传感器外设,这种统一的驱动架构使得开发过程工作量降低并易于移植和调试。在本次设计中,模数转换(ADC)处理、快速傅里叶变换(FFT)的算法、测试OLED屏幕显示以及智能屏通信连接等后续信息处理都是选用鸿蒙操作系统编程实现的,以其模块化的特点处理起来更为灵活。在这些后续处理中有一个十分重要的步骤就是使用FFT检测失真波形的频谱特性。通过多年来对FFT算法的分析,这种算法在进行系统检测时会存在截断效应和栅栏效应。文献[10]中提到理论上傅里叶变换对象是整个时域信号,但实际应用中只对一定长度的信号进行变换,傅里叶变换有限长度的信号相当于实际信号傅里叶变换与矩形信号傅里叶变换的卷积,与理论中的傅里叶变换并不相同。这样FFT基本算法就存在对非整数次谐波频谱泄露现象,从而检测出谐波的幅度、相位和频率均存在较大误差,也就没有办法较为精确的估计失真波形相对标准波形的失真程度指标(THD)值。文献[11]中提出了用加窗频移算法对FFT算法进行优化,在原来的基础上对采样信号通过低通滤波器,来减少谐波的频谱泄露缺点。再通过频谱搬移,不断在频域上移动幅度谱线,使得原离散序列频谱和同步序列的频谱谱线重叠。对新得到的序列信号进行FFT,进而分析出各个谐波的幅值长度。这种算法确实一定程度上能抑制谱间频谱泄露,但是需要构造加窗函数频谱分析变得复杂了。文献[12]和文献[13]中都提出了一个算法改进方向:加速非整数次谐波处谱线的衰减速度。也就是对进行FFT运算得到信号谱序列实施特定的加权变换,得到一个新的频谱序列。这个频谱序列能将相邻的频谱信息带到自己的频谱分量中,减少了频谱泄露的序列点数,从而有效提高了FFT算法的准确度。这种算法只需对谱序列做简单处理,具有计算复杂度低的优点,本文的基于FFT的谐波检测就打算参考这种算法进行设计。在这些任务都完成之后,本检测系统较为重要的还有将检测结果显示出来,在显示屏幕的选择中,考虑采用拥有独立OS核和独立的GUI核双核迪文DGUS智能屏,该屏幕是基于T5LASIC的4.3寸480*800像素点阵的电容触摸屏。开发时支持用户运行C51代码开发和DGUSII人机交互界面开发,因此相当于自带一个外置的微处理器。根据文献[14]文献中对迪文屏界面开发的步骤,在界面配置完成后通过SD卡导入液晶屏中。该文献通信方式是采用了串口通信协议约定,由迪文屏发送,串口调试助手接收数据进行电流电压值的检测。为了解更多迪文屏与控制器的通信方式,文献[15]的设计需要用迪文屏和微控制器8051连接传输一些电路特性,同样采用了串行通信方式,数据一个字节一个字节次序发送或接收,节省引脚资源。该串行口通信用了一个改进方法一定程度上提高了传输效率,首先将数据存入串口缓存寄存器(SBUF),SBUF会用接收和发送寄存器保存数据,发送寄存器和接收寄存器有相同的变量命名和变量地址。虽然通信处理过程中只能单一处理,也就是只能进行发送或只能进行接收。但这样的操作让8051单片机使用同样地址和名字的情况下依然可以处理两种数据,大大节约了微控制器的地址空间以及寄存器资源,可以考虑该方案进行通信处理。这些放大电路检测方案已经发展成固定的产品模式,而且待测电路信号有甚高频、有微波频率,这也是基于这些频率在实际应用中确实更为广泛,需求更高,但是对于中频低频也是有一定的应用面的,本装置将会主要向这些频率上靠拢。目前为止,大部分产品已经变得智能化,可以实现联网互传多终端查看故障信息,可测量的指标也越来越多,测试准确度也在大大提高。但这些仪器设备使用场合还是有些受环境限制,测量方向也相对局限,开发成本也是较高,所以设计放大电路检测设备还是有必要的现实意义。1.3课题主要研究内容和工作本放大电路检测装置在设计出来能够实现放大电路的故障点检测,判断并显示电路故障点周围电阻故障原因。由于屏幕器件与鸿蒙开发板通信有一定的误差,为不影响演示,用OLED屏幕首先对放大电路进行故障检测,检查鸿蒙系统数字信号处理程序是否有误。经实验测试,该设备具有可行性,可实现基本故障检测,经进一步调整改进,可以满足预期效果。放大电路检测硬件实物图如1.2。图1.2放大电路检测系统实物图放大电路检测装置是由鸿蒙HarmonyOS系统板、电源模块、迪文显示屏以及NIELVISⅢ实验板失真波形发生电路和信号发生模块组成。放大电路是由ELVISⅢ实验板提供稳定正弦信号源,根据其不同工作状态改变偏置电路来改变静态工作点,设置五个波形发生通路:标准波形、顶部失真波形、底部失真波形、双向失真波形和交越失真波形,采用开关模拟故障点电阻短路或短路,进而控制五种通道的切换。输出口接到鸿蒙操作系统开发板上进行AD采集再进行FFT运算,最后实现五种波形输出,并在彩色智能触摸屏上显示波形、幅频特性曲线以及THD值,最后可以显示故障点情况。通过该测量装置可以简单、快速检测实现放大电路的输出失真情况以及故障点检测。本次自主设计放大电路检测装置研究重点主要在检测方法以及检测显示部分。有关待测放大电路具体实现只需选择使用较为广泛和电路结构简单的共基极放大电路和乙类互补功率放大电路。该装置的实现功能,第一检测放大电路故障点,共基极放大电路常见故障方式为电阻故障,电阻阻值变化直接影响该放大电路静态工作点。所以该设备重点在于通过输出波形通过快速傅里叶变换计算分析,进而判断静态工作区域,该故障放大电路失真波形的波形信息、傅里叶变换后结果、幅频特性曲线图以及谐波失真情况。在进行傅里叶变换之前由于显示设备幅度值需要限定在一定范围内,因此还需要设计针对放大电路失真信号抬升的电路,这个包含在检测系统里面。第二是将放大电路基本特性显示出来,测试结果的显示也是本次设计的重点。能将测试结果直接清晰的显示出来可以减少检测和维修的时间,而本实验检测设备设计结构合理,屏幕显示也能较为清晰的完成。1.4课题章节安排论文总体思路基于设备的整体结构来完成的,将从实物制作过程和程序设计思路两大部分详细介绍该检测系统的功能结构。硬件电路设计包含处理器模块、简要说明的待测放大电路、电源模块、显示模块。软件程序设计主要包含鸿蒙系统代码的设计和屏幕C51开发部分。论文具体内容如下:第一章主要说明该检测系统装置的研究设计背景和现实意义,对现阶段放大电路检测设备产品的研究现状和常用到的电路检测研究方法综述,并对论文整体内容安排进行介绍。第二章对放大电路检测设备的设计原理进行描述,包括各模块选择理论依据和工作原理、对放大电路研究时用到的模拟电路知识以及对信号进行处理时用到数字信号处理相关知识。第三章作为测试系统实物基础,该章节通过对硬件部分的介绍,研究分析电路检测的具体方案和设计制作过程。第四章详细介绍了软件设计部分,阐述了基于鸿蒙系统所实现的一些功能,包括程序设计思路和设计逻辑,还介绍需要和它进行串行通信的智能屏幕,包括它要进行的C51开发程序和GUI界面开发。第五章展示放大电路检测系统装置的调试结果,根据操作过程逐步介绍相应的测试结果,分析检测结果和检测精度,研究软硬件设计过程的缺点予以优化和改进。第2章设计理论分析待测放大器是选用共射极放大电路和乙类互补功率,通过设计控制偏置电路静态工作点使其产生顶部失真、底部失真、双向失真以及交越失真。选用这两种电路的原因是该电路使用范围广泛,在音频信号的传输设备等产品中都有用到。该放大电路有抗干扰能力强、放大增益高、电路结构简单等优势。本装置基于Hi3861处理器搭载HarmonyOS操作系统为核心的检测设备,在放大电路输出失真波形后要对其进行数字信号的分析。主要过程是通过鸿蒙系统的自带外设模数转换得到数字信号,再设计快速傅里叶变换(FFT)算法对其进行谱分析,得到其总谐波失真值和幅频特性曲线。放大电路检测系统主要结构控制图如2.1,信号源输出标准正弦信号可以直接输入到检测系统中进行测试,晶体管放大器为待测电路,也是失真波形的信号发生电路。该待测电路只允许有一个接入信号源的接口和一个检测接口。图2.1放大电路检测系统主要结构框图2.1电路故障检测原理当产生顶部失真、底部失真和双向失真时用共基极放大电路截止或截止失真失真,产生交越失真时电路为乙类功率互补放大电路。这些偏置电路都是利用了三极管的输出特性曲线来进行设计的。静态偏置电路中影响失真波形的静态工作点和晶体管的工作状态有直接关系。在正常可以导通的状态下,晶体管可工作在三个区域:放大区、截止区、饱和区。工作区域和三极管三个“管子”的相互导通电压有关系,主要是三极管的开启电压UON有关,跟三极管的材质有关,各个管子上的电流,包括集电极电流IC、发射极电流IE、基极电流IB有关,还跟管子间相互压降,有发射结电压UBE、集电结电压UCE有直接关系。这些电压会导致管子的正向偏置或反向偏置导致工作区域的变化,进而产生失真效果。首先需要明确,本次选用晶体管是NPN型管,和PNP型管输出倒相的情况,输入为标准正弦信号。当产生顶部失真时,是正半周期输出没有和输入放大一致发生失真。这是由于静态工作点较低,接近截止区,截止区发射结有较小的反向电流通过,但是还不足以达到开启电压。这时就发生截止失真现象。当产生底部失真时,是负半周期输出没有和输入放大一致发生失真。这是由于静态工作点较高,接近饱和区。饱和区中到达集电极的电子数量不多,因此集电极电流不会有较为明显的增大,这时就发生饱和失真现象。当产生双向失真时,是正、负半周期输出都没有和输入放大一致发生失真。这是由于输入信号电压峰值较高时,通过放大电路的放大,输出放大信号的电压波峰和波谷也会很高。当“头部”凌驾到放大范围最大值以上时,头部就相当于在饱和区,负半周期“脚部”小于最小值时,脚部就相当于在截止区。这时的信号是截止失真和饱和失真的叠加,这时就发生双向失真现象。交越失真的发生电路,一般是放大器的乙类互补功率放大电路。两只管子对称分布,分别对信号的正、负半个周期进行放大。也就是乙类放大器放大功效是半个周期半个周期的进行放大。而当发射结电压小到管子基本不导通时,两个管子都基本不导通,在正负半周期交替时,两只管子没有“商量”好,这时就发生交越失真现象。2.2FFT计算原理信号如果要提取出频域上的信息就需要进行傅里叶变换、拉普拉斯变换等,傅里叶变换就是为一个时域上的信号提取频谱信息的过程。在频域上就是离散谱的叠加构成了连续谱,我们需要把这些离散谱表示出来,就是每个点的叠加构成了一个多项式,选取点多了之后就成了一个信号的频域连续谱。这个多项式的表示公式是: (2.1)该多项式计算是可以直接表示频域信息,而多项式的算法计算次数是和变换区间长度的平方N2成正比的,当计算N值较大时计算量过大。这时想到用点值表示的方法是可以降低计算量的,如图2.2将这些点表示在单位圆上,n个等分的点可以用横坐标为实轴、纵坐标为虚轴表示成复数点。将这n个点对应模长为1的幅角,第K个点可以表示为是(cos2πk/n,sin2πk/n),用虚数表示是cos2πk/n+isin2πk/n。图2.2傅里叶点值复数图像表示令系数为w=e-j2π/N,将n个点的序列分成一个奇数子序列peven(n)和一个偶数子序列podd(n),则第k个点N点离散傅里叶变换(DFT)结果为: (2.2)表示出奇子序列在k点N/2点DFT为: (2.3)偶子序列在k点N/2点DFT为: (2.4)则原式可表示为: (2.5)又由于经过奇偶抽取分成后,奇偶序列分别都是N/2为周期,将序列划分为两段X1(k)和X2(k),则这n个序列的N点DFT又可以分解为: (2.6)其中前半部分频谱序列为: , (2.7)而后半部分频谱序列为: , (2.8)FFT基本算法流程大致是这样,其中在前半部分和后半部分公式计算时可以用流图符号蝶形运算来进行表示,蝶形运算配合完成了针对复数的运算,主要完成了一次复乘和两次复加。在直接进行傅里叶变换所用的计算次数和变换区间长度的平方成正比N2,而FFT的计算次数为NlogN,显然计算量是快很多。由于对整个时域进行傅里叶变换和对有限长度的信号进行变换时不同的,所以一般的FFT算法会发生频谱泄露。为尽量避免这种误差,有研究发现对频谱做一定的变换就可以稍微减小这种误差,尽量降低频谱泄露的程度。就是在频域中,频谱信号幅值收敛到最小值的速度尽量快,这就需要在原频谱xm(n)前面进行一定的加权得到新的输出频谱x1(n)。新频谱表达式为: (2.9)通过文献研究分析,频谱衰减特性有较为明显的改善,可以减小FFT自身带来的频谱泄露的误差,减少一些无关谐波对待测信号频谱的干扰。在放大电路数字信号检测装置中,FFT算法的准确度对设备的影响是非常大的,也是本设计主要需要研究改善优化的地方。2.3THD计算原理放大电路失真检测需要检测失真的程度,这时就要需要检测失真指标来进行定量计算。当输入信号是标准正弦信号时,输出信号在发生失真后的频率会在原输入信号的基频之外多出一些谐波分量,输出信号时域上表示为:(2.10)尤其是在经过一些放大电路后,不可避免会有一些非线性失真,在输入信号基波的基础上产生一些二次谐波、三次谐波等干扰。而这些谐波分量的电压均方根值比上输入信号基波电压的百分比即是总谐波失真(THD),公式为: (2.11)而在实际系统中当谐波的个数无限多时,第n次谐波的幅值An将会无限接近于0。在忽略掉后面的谐波后,占据主要的谐波就是前几次谐波,为计算简便,选择基波频率为1000Hz,计算只取前五次谐波的均方值,而在做显示时也只显示前五次的谐波幅值。THD已经作为很多产品衡量产品质量性能的重要指标,例如在音频传输设备中总谐波失真一般是小于0.5%,这是因为人耳保证分辨不出失真之后,为保证产品质量还应继续降低THD。总谐波失真是和频率、幅度有关,在频率方面,一个系统对信号输入频率是有范围,当超过这个范围信号的失真会非常明显。而输入信号的频率即基波也在一定程度上是影响总谐波失真的因素,相同的系统中不一样的基波频率带来的THD也是不一样的,为减少该方面的影响选择经研究实验表明影响最小的一千赫兹。输入信号的幅度影响体现在信号在基波处幅度陡然降低时,总谐波失真会非常明显的提升。在了解THD的含义之后,可以用THD来进行衡量整个数字信号处理的精确度。这是因为总谐波失真在衡量输出信号是失真信号时可以判断失真程度,而在输出信号是和输入信号是一致时就可以用它来描述和标准正弦信号不一致的程度,也就相当于这个装置的检测结果的准确度。相对来说在输入标准正弦信号之后,THD越小检测设备信号处理结果的精确度就越高,装置质量越好。2.4幅频特性曲线分析放大电路检测系统装置在进行失真检测时有需要直观显示频域性质的图像。将一个波形的幅度信息在频率上体现出来就像音乐在乐谱上的显示,可以清楚的看出一个信号的在哪些频率上有值同时可以看出在某个频率上的大小。在单纯针对标准正弦信号进行幅频性质测量时,发现只会在该频率上是有信号发生的,而经过放大电路的各种元器件的频率影响,因此信号在经过这些放大电路之后会发生幅值特性和相频特性的失真变化。在本放大电路检测装置中,为更直观的显示失真故障信息,添加了直接将幅频特性曲线进行显示的功能。在得到幅频特性失真波形幅频特性曲线时,是需要将待测的放大电路输出的失真波形首先进行AD模数转换。对转换后的数字信号进行FFT到频域上的频谱信号,得到的是复数结果可以进行处理得到幅值。自变量频率的处理是需要经过谐波频率计算公式的处理,N点的FFT实际上是在时域上将数字频率w(范围0~2π)分成了N份,而系统采样频率为fs,在模拟信号中这个数字信号频率对应了0~2π*fs的频率范围。在幅频特性曲线图中,对应每个点值属于模拟信号中的哪个频率就可以根据这个模拟信号和数字信号频率对应关系来进行判断,在N个点中第k个点的模拟频率公式为: (2.11)得到的幅频特性曲线是对称分布的,这是由于采样定理叙述中,输入信号的频谱是周期性延拓形成的。那么信号的频率在fs/2之外的部分在进行信号处理时容易发生频谱混叠的现象,一般会把信号按周期进行累加,最后只取fs/2频率以内的信号。那么根据采样定理,数字信号频谱以点数为自变量横轴肯定是关于N/2中心对称。在进入鸿蒙系统板上进行显示的过程,信号频率的检测可以直接通过FFT的结果进行分析,可以遍历到所以频率,但是对输入信号的电压值有一定的要求,迪文屏在进行动态曲线变量时需要对动态曲线设置曲线中心轴、中心轴对应数据以及纵轴放大倍数等,在电压值设置范围之外时图像显示会发生变化扭曲失真。为进一步避免这种失真对信号首先进行一步抬升信号处理,将信号在不影响正常波形的情况下对它进行电压的抬升。抬升电路本质上是将信号在图象上向纵轴平行移动,是方便进行数字信号分析的一步预处理。该电路制作过程中需要合理设计电路的各种阻值参数和输入电压,将信号抬升到合理的范围内。动态曲线变量的参数要求如图2-3。图2.3智能屏动态曲线变量第3章系统硬件设计作为整个装置的实物设计,本放大电路检测设备的硬件模块选择对检测效果有着至关重要的影响,基本模块主要有鸿蒙系统板模块、智能触摸屏显示模块、失真波形的产生电路、信号分析前预处理电路模块以及相关电源模块。首先是控制部分作为主要的处理分析“大脑”,选择要求是处理分析速度较强、适配多种类型放大电路,支持多类型终端通信,选择了国产操作系统鸿蒙系统相应的开发板BearPi-HMNano。本放大电路检测设备在鸿蒙系统上完成AD模数转换、FFT数字信号处理、各种放大电路失真参数特性的计算以及与智能屏幕的通信处理。本检测装置中待测放大电路主要完成标准正弦波的放大、顶部失真等四种失真波形的发生电路。也是比较典型的故障放大失真电路中共射型放大电路和乙类互补功率放大电路。信号预处理电路主要是抬升电路,将信号搬移到可进行处理的范围内,便于信号的正常处理。本放大电路故障检测装置很重要的功能是将故障显示出来,而显示屏幕的选择也是影响到检测装置质量。本放大电路检测装置选择迪文科技基于T5LASIC的4.3寸嵌入式电容触摸屏,该屏幕是双核彩色智能屏幕,支持迪文DGUS系统开发和C51系统开发。开发变量有显示控件、触控控件、动态曲线变量等,检测故障时较为直观且交互能力较强。最后是电源部分,待测放大电路需要输入标准正弦信号,该信号源由NIELVISⅢ提供。除此之外,根据三极管相关电路电源要求和运放的供电要求,在实验板提供15V、5V、3.3V基础上设计电路满足供电要求。放大电路检测系统的硬件模块框图如3.1。图3.1放大电路检测系统硬件模块框图3.1鸿蒙系统控制部分系统板选用的是小熊派基于鸿蒙系统研发的一套系统板,配套该公司物联网开发方案的一些案例扩展版。选用该系统板是因为小熊派制板清晰,源码程序结构完整逻辑性强,硬件接口人性化,有防错口处理保护主板。源码下载方便,部分外设接口程序开源,方便后续进行开发处理。主控芯片Hi3861V100是一款高度集成的2.4GHz的WiFi集成电路芯片,CPU主频在160MHz,内置288KB的ROM内存、2MB的FLASH,虽然体积小引脚少,该芯片仍支持低功耗。芯片具有强大的抗干扰能力和组网能力,可应用于智能终端物联网中。该系统板支持NFC通信协议NFCForumType2Tag及RF天线电路,同样支持WiFi通信IEEE802.11b/g/n协议各种传输速率。供电电源接口是USBType-C,工作电压是在USB供电5V,电源接口同样可以用来烧录调试程序使用。虽然该系统板的单一功能的外设接口较少,基本上每个接口都有多个复用功能,外围接口支持SDIO接口、SPI接口、I2C接口等,本放大电路检测设备主要用到了两种外设UART接口和一路ADC。系统板实物图如图3.2。图3.2放大电路主控板小熊派鸿蒙系统板鸿蒙系统在开发时需要非常严格和复杂的开发环境要求,首先是编译环境的要求,在初期的开发是只支持Linux系统服务器进行编译,需要在电脑中搭建Ubuntu16版本虚拟机。虚拟机中开发还需要交叉编译工具、编译构建工具、命令处理器、ninja编译脚本文件以及一些基础软件包。之后再Windows系统中进行软件代码编写开发,这个过程除了基本的编辑工具、烧录软件和串口驱动以外,还需要远程连接Linux编译服务器的连接工具。不过在开发过程中发现连接工具无法正常安装,本设备的鸿蒙系统板在编译工具和代码编写工具之间是直接用网络连接的,这就要求在需要编译调试操作时需要一直保证有网络热点,并且更换网络IP需要重新建立网络连接。需要在Linux虚拟机中先连接网络热点,通过指令安装Samba,之后在Windows上建立映射,映射出网络驱动器。每次打开虚拟机连接上网络后,在Windows上的网络位置就会有相应的共用网络盘。只有两边共用一个网络热点时,网络盘才能打开。Linux虚拟机界面图如3.3。图3.3Linux虚拟机编译界面鸿蒙系统在本检测设备设计使用开发时已经发布半年左右的时间,HarmonyOS的官网也随着开发人员的不断更新越来越完善,随着使用鸿蒙系统的爱好者不断增多一些开发细节方面也在不断的优化调整。小熊派的开发板随着实验功能的开发,源码细节也在不断的完善。针对小熊派系统板,开发的一些外设接口也在不断完善,包括内核开发、基础内容开发以及基于华为IoT平台的物联网内容开发都在不断添加新的功能。开发过程中,鸿蒙系统官方源码中有一些比较关键的子系统内容,其中本检测系统调用比较多的是iot_hardware,文件目录图如3.4,该文件中包含了Hi3861芯片相关外设的驱动内容。图3.4鸿蒙系统源码部分根目录在学习和测试鸿蒙系统的功能中,实现了除了原功能之外,针对放大电路检测系统的0.96OLED屏幕驱动的测试,显示实物图如3.5,该功能实现对放大电路检测系统的基础测试具有很重要意义,以OLED屏幕做显示终端的检测系统初步实现了和DGUS智能屏串口通信之前的部分检测实现。选用的是四针的I2C通信的OLED屏幕,对应的驱动库是SSD1306。在鸿蒙系统中使用了硬件子系统中的I2C接口,屏幕连接到了系统板上GPIO_13和GPIO_14,分别对应I2C0通道的数据线SDA和时钟线SCL。在代码编写上用到了矩形绘制显示、图形显示、数字字母汉字显示以及动态曲线显示。有较为清晰良好的显示结果功能,但是屏幕在显示幅频特性图时是有显示不清晰的现象,所以仅在测试时使用。图3.5鸿蒙系统实现0.96寸OLED显示功能3.2智能屏幕部分作为放大电路检测设备的重要显示功能,在准确的检测出故障信息之后能够比较清晰的将结果信息显示出来也是本次检测系统的重要一部分。分析放大电路检测系统结果需要显示的结果内容有失真波形的原始图像、失真波形的频谱图像、失真波形的总谐波失真值、各个谐波分量以及故障结果的简析。这里就需要显示设备具备显示图像、字符、按键功能,经过选型测试,使用OLED屏幕进行算法测试,最后用可交互的迪文智能屏幕进行故障检测结果的显示。选择屏幕是基于T5LASIC的DGUSⅡ的480*800像素点阵的液晶屏幕,该屏幕型号是DMG80480C043_01WTC。T5L芯片是迪文科技开发的双核芯片,支持DGUSⅡ系统核,用于界面以及变量的设计,还支持应用广泛的8051核,是对界面中的变量进行控制。第一个核是GUICPU独立核,运行DGUSⅡ系统。它是主要的界面设计结构,支持动画核图标为主的UI,图片格式靠硬件加速压缩,解压缩效率高。可以直接将外置存储器不改变图片质量情况下压缩到16MFlash中。另外触摸屏灵敏,最快400Hz触控打点检测。本放大电路检测设备按钮触控控件扫描可以利用定时器每30ms扫描一次,保证该按钮可以按下并随时进行下一步控制。第二个核是OSCPU独立核,运行C51程序系统。它是和8051单片机中主控芯片一样,支持64kb代码存储和32kb片内RAM。同时支持触摸电容屏在线仿真和调试。它支持通信串口较多,有22个IO口、4个UART、1个CAN接口。本放大电路检测装置只用到了UART2通信串口和鸿蒙系统板进行通信。两种核之间可以一同进行对屏幕界面进行设计开发是因为GUI设计有自己的配套软件程序DGUS_Tool,可以进行用户界面的设计和相关文件的生成。8051核可以直接访问7种不同的存储器,有自己的代码存储器、数据存储器、扩展SFR寄存器等。在GUI核设置好界面上变量之后,8051核可以直接对变量地址进行访问并对其进行控制。该屏幕的存储方式是需要存储在SD卡根目录DWIN_SET中,这个文件很熟悉,是可以在配置好界面各种变量之后,直接由配套软件自身生成的。但是在生成的文件夹中会自动存储背景图片和TFT格式的相关变量文件,这就要求在使用原工程的基础上删除或更改某一张界面时,不能覆盖掉原来的界面内容。SD卡要求8G以内、4KB扇区,并断电状态下插入屏幕中。屏幕会自动下载更新,显示“END”样字之后,断电拔出来SD卡,重新上电即可操作触控屏幕。整个下载过程是比配置各种文件是要容易很多,但是SD卡中各种硬件配置文件的存储时有很严格的要求,文件类型、文件命名以及文件大小都需要控制在一定范围内,否则在写配置文件中DGUS_Tool程序会直接报错提醒。基本存储文件类型如表3.1。表3.1本检测系统屏幕SD卡需要存储的文件类类型文件命名13*14*22_Config32*T5L51文件内容存储触控空间变量存储变量文件初始化配置文件图片图标的DGUS存储格式基于8051平台开发的文件根据放大电路检测设备实现的功能和自身特性,初步定主题为像素风,因为该像素风是有较强的视觉效果,故障检测结果看起来更直观,而且作为图像的开端像素对屏幕分辨率要求没有精修图片高。在一定的尺寸下,像素“表现力”更强一点,它的存储可以直接转换成像素点,有着强硬的线条和撞色。位图是图片的形成起源,像素风的发展是对原始电子显示的致敬,更是未来科技的创新。设计主题如图3.6,包含开始界面、目录界面、结果检测选择界面、结果显示界面、开关机界面以及用于调试的一些界面。图3.6检测系统在智能屏幕上主题GUI界面设计配套软件在进行设计步骤就是首先放置背景图片,之后在背景图片合适位置添加所需要的变量,对变量进行说明一般就是给变量设置变量地址等。本检测系统中,用到的数字显示变量需要给该变量设置数字字库、字体大小、颜色以及最重要的数据类型。这个数字的数据类型关系到C51开发中对该变量的控制和存储,此外对于4字节的浮点数还应对整数和小数位数进行设置。在按键控件中,可以设置按键返回值、按键页面切换以及按钮效果。按键返回值是用于C51开发过程中不同按键的设计处理。选择界面按钮效果如图3.7。图3.7检测系统结果选择界面按钮效果3.3信号预处理电路部分在信号数字处理过程中,鸿蒙系统的AD转换在最开始将该接口设置成下拉输出低电平电压,为数据处理方便将输出的信号电压做抬升处理。另一方面,DGUS屏幕在进行显示的时候,显示时需要设置出坐标轴上对应出的实际数值,而如果设置不合适C51核处理起来也比较吃力。在这种情况下,选择将信号的电压抬升到一个合适的范围,也就是在信号输入到鸿蒙系统板之前,对信号先进行一步预处理,预处理电路结构本质上就是差分比例运算放大电路。具体电路结构如图3.8,在该电路中用到了LM324的一个运放和四个100K的电阻。图3.8比例放大电路结构该差分比例运算放大电路中,放大器的正输入端需要接入待测电路的失真波形波形最大值为Vmax,在负输入端接入同样约-Vmax左右的电源信号,电路才能使信号抬升到一个合适的范围,该范围几乎都是正值。在这个电路中输出端会有一个反馈电路就是R8,重新接到负输入端。同时,为保证运放两端相对地来说电阻平衡,需要电阻对称分布,降低共模电压带来的信号误差,也就是要求R7=R9,R10=R8。根据差分比例运算放大电路结构输入输出电压公式: (3.1)根据该式,失真信号在通过这个差分比例运算放大电路后相当于将整个信号做了信号的抬升,输出电压Uo=Ui+Vmax。将该电路进行单独仿真测试,仿真电路测试图如3.9。图3.9预处理电路仿真预处理电路仿真测试结果图如3.10。图3.10预处理电路仿真测试结果该电路用到的放大器选择了价格低廉、运用广泛的LM324。该芯片具有四个运算放大器,预处理电路只用到了一个。而在电源部分有几个比较不太常见的电源,比如这里负输入端用到的-Vmax,本设备需要准备Vmax=1.5V,就需要通过放大电路得到。为节约资源,用该芯片一起搭建预处理电路和电源电路。预处理电路和电源电路硬件实物如图3.11。图3.11预处理电路和电源电路硬件结构3.4失真波形发生电路部分待测电路硬件搭建在了NIELVISⅢ实验室虚拟仪器套件上,选择该实验板是因为通过这个实验板可以代替信号发生器和示波器。该实验室套件是可以包含硬件电路、仪器仪表等,作为一体化开发实验板可以让使用者动手进行嵌入式设计。在硬件上进行实验操作时,还可以在电脑上进行控制或者实时波形监测。操作方法就是直接通过USB线跟电脑连接,通过电脑实时控制仪器仪表等设备,可以直接调试电路搭建情况。还搭载了可编程器件FPGA,由多路输出接口,可扩展外围设备多,设备之间还可以进行直接的通信。本次检测设备的开发过程中除了硬件电路的搭建还用到了示波器和信号发生器,在配套操作环境MeasurementsLive中进行控制,这个环境需要在实验板和电脑进行连接成功后自动弹出包含环境信息的文件夹,这个环境是一个网站的形式给出,受浏览器的限制,一些浏览器不匹配就会出现连接不上实验板的情况。示波器和信号发生器控制界面如图3.12。图3.12MeasurementsLive中示波器和信号发生器控制界面输入信号就是由NIELVISⅢ实验板提供的1KHz20mV的正弦波,将该小信号的正弦波通过放大电路产生正常放大出1.5V左右的无失真正弦波。设计共射型放大电路改变它的静态工作点,改变一些电阻使其短路或者短路,进而产生顶部失真、底部失真、双向失真。通过乙类功率放大电路使其在过零点处产生交越失真。电路仿真软件是选择Multisim,该软件包含器件全面,易上手操作。首先是共射放大电路,在不产生任何故障的情况下正常放大一个正弦小信号是只需要设计电阻和电容的阻值,使该电路的放大增益恰好是15/2即可。以基本共射放大电路进行分析,该类型放大电路的电压放大倍数公式为: (3.2)其中,在该式中,rbe是基极发射极间动态电阻阻值,Rb、Rc分别式基极或集电极上的阻值,由基极极输入集电极输出。本待测电路在设计时考虑到要在合适的位置放置四个开关便于进行控制失真类型的转换,选择了将几个失真电路整合成二级放大电路,用两个共射放大电路来进行完成。首先进行一级放大,放大倍数并不高,还带载电阻R4加上R3和并联电容47μF的C3,这一级放大并不做开关电阻,只是将信号进行一定倍数的放大。经过电容连接,信号可以无失真的传送到下一级,并且不影响彼此的静态工作点。在第一级上,Rb1=R6=100K,Rc1=R2=10K,在第二级放大中,Rb2=R9+R13=20K,Rc1=R2=2K。在下一级上进行静态工作点的调整。在顶部失真中,是由于放大器处于截止区,需要降低静态工作点,就想办法增大基极电压,在R9和R13的基础上增加了15KHz的R14,使Rb2=15K,可以有效的产生顶部失真现象。顶部失真产生电路图如3.13。图3.13顶部失真信号发生电路图在底部失真中,是放大器处于饱和区,需要升高静态工作点,就想办法减小基极电压,在R9和R13的基础上去掉R13,使Rb=15K,可以有效的产生底部失真现象。底部失真产生电路图如3.14。图3.14底部失真信号发生电路图在双向失真中,是放大器处于饱和截止区,在输入信号幅值设置不合适时会产生该现象。但在不改变输入信号情况就想办法同时使信号处于截止区和饱和区,微小调整静态工作点,就需要增大输入电流,减小基极和发射极之间的电阻阻值rbe,这时就去掉B-E间电阻R16,可以有效的产生双向失真现象。双向失真产生电路图如3.15。图3.15双向失真信号发生电路图在交越失真中,是乙类功率放大电路中在过零点处发生信号失真弯曲,需要小幅度调整静态电流,并且设计成乙类功率放大电路。选择了NPN型管2N3804和PNP型管2N3806,将一个无失真信号同时给它们,使其交替工作就可以有效的产生交越失真现象。交越失真产生电路图如3.16。图3.16交越失真信号发生电路图将正常无失真放大电路和四种失真波形发生电路通过开关电路集成到同一个电路中去,在Rb2电阻中放置两个开关分别控制R13和R14电阻的故障模拟。在B-E间给R16电阻放置一个开关进行模拟电阻故障。将正常无失真放大电路输出波形接入乙类功率放大电路中使其产生交越失真,那么需要在输出处放置一个开关来控制共射放大电路和该电路的切换。在multisim中失真波形发生总电路图如3.17,其中标红处为开关选择。图3.17待测电路总电路图3.5电源部分电源供电部分首先是鸿蒙系统板的供电直接由USB接口提供5V电源即可,插到电脑接口或充电宝上进行供电。DGUS屏幕的供电是5V接口,通过一个USB转TTL驱动得到5V电压,同样用USB供电即可。另外由于SD卡需要断电插拔不能带电操作,这时为操作方便设计一个小型开关电路控制供电。待测电路中需要两个不是特别常见的电源-5V和-1.5V。这两个电源在NIELV-ISⅢ电路中没提供,就利用现有LM324芯片设计了反相比例放大电路,电路结构如图3-18。图3.18得到-5V电源电路该反相比例放大电路正输入端是接地,负输入端接+5V。正负输入端对地电阻也应尽量一致,所以相当于引入了电压并联负反馈,则R1电阻R1=R2//R3。根据基本反比例运算放大电路的电压放大倍数公式: (3.3)根据该式,+5V输入到放大器负输入端之后,输出电压就是-5V,这样就得到了-5V。同理,在-1.5V电源电路中,需要输入+3.3V电压到放大器负输入端,R2=15K,R3=33K,根据式(3.3),得到输出电压就是-1.5V。得到这两个电压需要用到两个放大器,加上预处理电路用到的一个运放,一个LM324芯片是够用的,LM324芯片需要供电是+12V和-12V,接到实验板上即可。预处理电路和电源电路仿真如图3.19。图3.19预处理电路和电源电路结构第4章系统软件设计系统的软件测试部分作为控制整个放大电路检测装置检测过程的影响着检测的最终结果和精确度。软件部分主要由两个部分组成,一个是鸿蒙系统的软件编程部分,另一个是DGUS屏幕的C51开发部分。鸿蒙系统的软件编程功能有AD模数转换、FFT算法处理、频域结果分析得出THD和幅频特性曲线图。该装置软件部分整体流程框图如图4.1。该部分用VScode软件进行编程,用到鸿蒙系统在该软件上的配套插件HUAWEIDevEcoDeviceTool,该软件由华为公司开发,可用于HarmonyOS系统的编程烧录等过程,但不支持代码的编译。有关两个设备之间的通信方式是选择的UART异步串口通信,也需要通过编程完成通信过程。迪文屏幕中C51开发用到的编程软件是Keil软件,支持C语言程序的编写和调试甚至烧录过程。无需用其他软件进行烧录,直接导出hex文件,之后利用屏幕配套的智能转换工具转换成可以被屏幕识别的bin文件即可。图4.1放大电路检测装置的程序流程图4.1鸿蒙系统信号处理部分本检测设备中鸿蒙系统的程序需要完成的主要是AD模数转换、FFT算法编写、THD的计算以及幅频特性图,最后是和DGUS屏幕的UART串口通信。鸿蒙系统的软件编写软件是VisualStudioCode,该软件有HarmonyOS设备开发一站式集成IDE插件HUAWEIDevEcoDeviceTool,该插件支持鸿蒙系统程序编写、烧录、多种外设驱动、多设备协同模拟等功能。该插件在本检测装置设计研究时并不支持Windows编译,在软件程序设计完成之后,用ubuntu虚拟机Linux操作系统进行的编译。为处理直观方便,选择用Hiburn软件烧录进Hi3861芯片中。调试过程借助了终端仿真软件SecureCRT,进行串口Serial可视化调试。4.1.1AD转换鸿蒙系统板上共有七路ADC模数转换接口,本装置选用第一路ADC,ADCChannel1复用ADC的GPIO接口是GPIO_04。在系统板上接入预处理电路输出失真信号到GPIO_04,之后编写程序读取该通道的电压。为测量准确性,首先将GPIO_04引脚设置成下拉输出,使该引脚电压检测一直处在低电压模式。再接入信号电压后,电压值会跟随信号幅值进行变化,由于接入预处理电路,电压值基本都是正值,方便进行显示和后期处理。系统中对ADC外设的初始化设置放在文件wifiiot_adc.c中,该文件对ADC接口处理、通道选择、ADC电压读取函数AdcRead()都做了详细的定义。主要电压读取函数如图4.2,该程序调用了系统文件里的电压读取函数。图4.2AD转换子函数程序读取电压值函数表示读取ADC_CHANNEL_1的数值后存储在变量shuju中。设置出平均算法次数选择8次的算法模式,设置模拟功率控制模式是默认自动识别。设置从重置到转换开始的时间,该时间设置是根据十六进制次数计数,每计一次代表334纳秒,选择了0xFF,约在8微妙。由于该鸿蒙系统中ADC是12位的,可以读到的值是0~4095,而IO输出电压可检测到是1.8V*4,那么转换公式就是shuju*1.8*4/4096计算出实际的电压值。编译文件指令为adc:func_adc,编译烧录完成后,终端仿真运行结果显示如图4.3。图4.3终端仿真结果4.1.2FFT算法在DIT-FFT的运算流图中,傅里叶变换的点数N满足N=2M,其中M表示FFT共进行的运算层数。运算每一层有N/2个蝶形运算,而且同一层蝶形运算的两个输入序列只对该层的运算过程起作用。这就在存储过程中有了一定要求,存入的存储地址可以放所有运算单元的输入或输出数据。也就是M层的运算所需要的输入数据和运算所得到的输出数据依次放入同一个变量地址中。在计算分析时有一个经常出现的乘数叫旋转因子,旋转因子随计算点数的变化而变化,第P点旋转因子是。FFT运算次数的降低和该式子具有周期性和对称性有很大关系,具体关系式: (4.1)在进行编程时将该旋转因子根据欧拉公式进行计算,根据欧拉公式: (4.2)根据蝶形运算的计算规律和傅里叶变换规则,由于旋转因子对称性,每2L点的2M-L个蝶形的蝶形运算中旋转因子是相等的。在M层的FFT运算过程中,第L层蝶形运算的输入序列之间穿插着B=2L-1个点。这些相间隔的点中,有对应不同的旋转因子。根据这些性质开始计算,针对每一层的运算设计循环,一共有M层的循环。在进行每一层的运算时,先写出这些相间隔的点对应的旋转因子。求出这些旋转因子后,根据对称性就可以写完对应相等的所有蝶形运算。这里根据第二章对FFT的原理描述,输入数据对应n个序列点奇偶排列的数据podd和peven,通过蝶形运算等之后输出序列就是按原位排列的X(k)。因此,在运行FFT运算之前需要对序列x(n)进行顺序调整。FFT算法流程图如图4.4。图4.4FFT算法程序流程图在写程序时用编写kfft(pr,pi,n,k,fr,fi),其中pr是用来存放待测信号的实部数组,pi是用来存放待测信号的虚部数组,n是FFT进行的点数,k是FFT需要进行的层数,fr是输出频谱序列的实部数组,fi是输出频谱序列的虚部数组,令用it和is分别表示输出和输入数组的下标。首先把pr[0]和pi[0]循环赋值给fr和fi,将两个数组填满。之后用欧拉公式写出旋转因子,在每一层的旋转因子转换时借助三角公式中二倍角公式。通过复数乘法计算出新的pr输入序列实部和pi输出序列虚部。之后进行详细蝶形运算,列出输出数组前半段序列fr[it+j+nv/2]实部虚部和后半段序列fr[it+j]和后半段序列的实部和虚部。一共用了循环赋值、旋转因子计算、复数相乘过程和蝶形运算四个循环完成了FFT的计算。这是正常fft的计算流程,但是在这样的FFT算法中存在频谱泄露,进行AD转换之后的的数组和实际模拟信号也是有一定的出入,这里为稍微减少频谱泄露的分量进行了算法的简单调整。在经过四个循环之后得到的频谱,进行调整fr[i]=fr[i]-1/2(fr[i-1]+fr[i+1])。这样对原来得到的频谱做了简单的变换,一定程度上能够降低频谱泄露,将变换之后的频谱序列进行后续计算。最后计算频谱的幅值存放在fft_outputbuf[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i])中。在相应c程序中,分别了给pr、pi、fr、fi四个变量赋予了N个变量空间,要用来存放相应的数组序列。对pr输入信号输入AD转换后得到的电压值数组,pi则先赋值为0。对输入信号进行调用kfft(pr,pi,N,M,fr,fi),进行FFT运算,最后得到输出频谱信号的实部和虚部。4.1.3幅频图像绘制幅频图像的绘制需要两个参量,横轴是各点的频率值,纵轴是各点对应的幅值。在输入信号进行N点的FFT处理之后,得到信号频谱幅值信息,fft_outputbuf[i]即为存放幅值的变量名称,在放大电路检测装备中幅度值就是该变量不断更新存放的幅值。测试输入信号之后以64点FFT为例,系统的采样频率fs为64KHz,则相当于64KHz的模拟频率被分成了640份,每份频率是1KH,这个频率是分辨率,分辨率越高则运算结果越准确,那么在FFT中运算点数越高运算越准确。而在谐波频率中,基波为f对应点数就是f*64/64000,二次谐波的频率2f对应点数就是2f*64/64000,以32KHz为中心对称对应频率点处也会有值。幅频特性曲线绘制程序流程图如4.5。图4.5幅频特性曲线程序流程图在程序中处理中,将FFT结果信号频谱幅值通过串口传输传给屏幕,给与一个变量专门存放变量,再还原到屏幕的动态曲线变量中。图像以FFT频谱分析之后的幅值作为纵轴,实际数据值是原始信号对应的电压值fft_outputbuf变量。如果不加以重新定义,横坐标就将以FFT的点数n作为自变量值。而我们想要以实际频率作为横坐标,根据计算谐波公式(2.11),可以得到点数计算公式 (4.3)根据这个公式重写定义横坐标,与此同时,虽然以fs/2为中心幅频特性曲线是对称的,但是本放大电路检测设备仍然取完整数字频率2π作为横坐标。幅频特性曲线是可以很直观的表示一个信号的基本频域特性,由于FFT点数的限制,只要是离散采样,在时域上取值分析长度就是很有限,总会不可避免的出现频谱的泄露这就需要在前面FFT算法上加以改善。4.1.4THD计算在计算总谐波失真时,输入信号通过FFT数字信号处理之后,得到失真信号的频谱幅度值。基波的第n倍频率就对应该输入信号的第n次谐波。输入信号频率为w时,二次、三次、四次、五次谐波就是频率值为2w、3w、4w、5w时的频率,运用公式(4.3)进行计算,这几个在数组中存储就是N个点中第2w*N/fs、3w*N/fs、4w*N/fs、5w*N/fs个点。对应找出fft_outputbuf[]中这几个点的值分别就是前五次谐波的幅值记为A2、A3、A4、A5,而基波幅值记为A1。把后面失真谐波分量相叠加和基波做比例,就得到了本装置计算总谐波失真公式: (4.4)在鸿蒙系统中需将基波和前五次谐波都定义成全局变量,方便后续其他模块程序的调用。在计算过程中,待测放大电路保持工作状态,鸿蒙系统要不断采集数据进行存储。计算THD的函数为GetTHD(Mag[]),该函数Mag[]为FFT处理之后输出失真波形的幅值数组。得到THD之后,将基波和前五次谐波都通过串口传给屏幕程序进行显示。由于传递的THD、基波和五次谐波都是单精度浮点型数值,在传递时直接赋到待传递数组的某四位即可。具体在鸿蒙系统中THD计算流程图如4.6。图4.6THD计算程序流程图4.2屏幕C51开发部分放大电路检测装置在界面设计上需要用到屏幕C51开发,主要是对放大电路检测系统显示部分设计界面变量的控制以及和鸿蒙系统板进行通信过程进行接收控制。本章节主要介绍C51开发过程中用户界面设计过程中各种变量的控制开发。C51屏幕软件开发过程是和51单片机开发工程一致,同样需要用到程序编写和编译软件Keil,遵循标准也是8051的标准规则。不同的是,T5L芯片开发有自己的AGDI驱动和自己的定义头文件,在这些基础上进行C51程序的编写。用户界面上安排了测试功能,包括按键输入界面、亮度控制界面。而在通信方式上选择UART串口通信第二路通道,用于将来自鸿蒙系统的各种变量进行接收。C51开发中定义的变量地址如表4.1,其中后555个变量是用来存储鸿蒙系统的一些变量。表4.1本检测系统所用到的变量变量地址变量定义数据长度存放变量0x1000BTN_VAL_ADDR1btn_val0x2200START_WIN_NUM_VP2num10x2300yuan_NUM_VP4yuan_Value0x2400fu_NUM_VP4fu_Value0x2500THD_NUM_VP4THD_Value0x2800UO1_NUM_VP4UO1_Value0x3000UO2_NUM_VP4UO2_Value0x3500UO3_NUM_VP4UO3_Value0x3800UO4_NUM_VP4UO4_Value0x4000UO5_NUM_VP4UO5_Value4.2.1按键响应处理作为放大电路检测系统中,按键是重要的交互工具,可以选择基础键控、按键返回等触控控件。本测试功能是需要完成输入数据的键入功能,具体实现是上键使得变量值START_WIN_NUM_VP增加,置零键使变量值置零,下键使得变量值减小,其中三个按键共用同一个变量地址BTN_VAL_ADDR,不同的是根据三个按键返回值的不同响应不同的发生事件。C51的按键开发是在主函数的while循环中调用按键响应子函数。首先基于定时器每30ms产生扫描信号,在扫描信号到达之后读取用sys_read_vp函数读取键值。如果键值不为0则说明按下了按键,根据不同键值选择响应的发生事件,键值若为0则没有按键继续轮询监听。键值的设定可以根据界面的不同来分配不同的键值范围,键值是16进制数,可以每一个界面分配不同的范围,需要注意的是键值需要共用同一个地址进行处理。在处理完成之后,需要将BTN_VAL_ADDR地址里的键值清零,清零之后可以继续进行监听。按键部分程序设计流程图如4.7。图4.7按键程序C51开发流程图4.2.2亮度调节为体现DGUS屏幕的地址设置巧妙,设计了亮度调节的功能。调节亮度也是依靠按键返回控件,不一样的是,该控件的地址0x0082设置直接对应调节亮度的亮度。除了有专属调节亮度的按键,对于屏幕的自身分辨率也有相应的按键调节地址。对于亮度调节,该屏幕一般指代背光亮度调节。在0x0082地址中存放触摸屏背光待机设置,设置为D3时,软件亮度调节接口开启,设置为D2时关闭调节按键。在设置调节待机亮度时,亮度的调节大小根据该亮度值的十六进制转换数值来进行设置。例如本放大电路检测装置中设置了0、10、40、70、100,相对应的该按键返回值为0x0000、0x0a00、0x2800、0x4600、0x6400。这种亮度调节方式不需要通过程序流程更改,直接在配套软件DGUS_Too中进行放置变量时直接设置,亮度RAM变量地址设置是按字节写入变量,字节数是从以该地址作为首地址开始写入的。DGUS屏幕进行按键功能测试和亮度调节测试界面图如4.8。图4.8智能屏幕测试界面图4.2.3动态曲线绘制动态曲线的变量绘制在放大电路检测装置中是非常需要的,在显示原函数的图像、幅频特性曲线时均需要用到动态曲线图。动态曲线图共有8个通道曲线,其中本放大电路检测装置中用到了0通道表示原函数图像,1通道表示频谱图像。在寄存器中有0x1000-0x1FFF用于这两个通道曲线的绘制。该曲线绘制的坐标轴上函数值和实际值之间是有一定放大倍数的,它的计算公式是: (4.4)式中Ymax、Ymin表示曲线坐标轴上最大值,Vmax、Vmin表示实际数据理论上的最大值和最小值。该曲线的分辨率还由横轴间隔表示,根据第一个横轴数据和第二个横轴数据的像素点间距设置。在程序中用CHART_ADDR描述动态曲线功能所对应系统变量接口地址,用CHART_ID描述曲线通道值,在CHART_ADDR中写入曲线数据点属性信息。该绘制曲线函数为sys_write_chart可以直接进行调用,通道0和通道1的绘制子函数分别为yuan_Chart_Draw和fu_Chart_Draw。绘制曲线函数直接放在sys.c文件中,方便直接对其进行调用程序图如4.9。在绘制过程中,首先两个曲线值超过实际信号峰峰值或低于理论上最小值后,直接对数据进行舍弃,再用sys_write_chart写入数据点。图4.9动态曲线绘制程序子函数由于是动态曲线图,在接收并显示完一个数据后对其进行刷新函数处理,不断的刷新并且读入新接收的数据值。该函数用在屏幕51核接收数据包并拆解之后,在进行完数据接收完直接进行显示刷新。刷新函数程序如图4.10,可以在直观显示有哪些数据需要显示、哪些数据需要绘制图像。图4.10刷新函数程序4.3鸿蒙系统和屏幕通信部分为使鸿蒙系统板跟DGUS屏幕进行通信传输原始信号幅值、幅频特性值、THD以及各谐波幅值。需要由鸿蒙系统板进行发送数据,DGUS屏进行接收数据,选择通信方式是串口通信协议UART。该通信方式在硬件上只需要两根收发线,优点就是连接线路简单,通信方式简单,引脚占用的少,但是串口通信只能一个字节一个字节的进行传输,而且一台设备只能进行发送或只能进行接收。尽管如此,对于传递一个32字节的数据是绰绰有余的,保留一定的引脚给传输串口,其他引脚可以连接更多外设。因为鸿蒙系统板的GPIO接口有15个,相对51单片机或STM32单片机引脚是很少的,有限的引脚有强大的复用功能,但还是应当将其用于更需要的功能中,这样串口通信大大节约了鸿蒙系统板的引脚资源。另外,传输速率上也不需要特别迅速,本放大电路检测装置在传输信息较少,通信方向也是单向的,即使一个字节一个字节的传递也并没有特别慢。鸿蒙系统板使用集成高性能32位处理器,而51芯片处理器只有8位。在这里传输位数是有限制的,为处理数据方便对其进行数据格式转化,在鸿蒙系统和51系统中都需要一定的格式处理。转化格式时,为打包数据方便使用数据格式转化函数来进行,如Data_u32ToFloat_4Parameter,函数程序如图4.11。本装置需要发送的数据有原函数数字信号、频谱信号、THD、基波和前五次谐波的幅值,这八个变量值都是单精度浮点型四字节,因此共32字节。图4.11数据类型转换函数程序鸿蒙系统板有三组UART通信接口,本放大电路检测设备中使用的是UART1通道。数据接收口是由GPIO_05复用的UART1_RXD,数据发送口是由GPIO_06复用的UART1_TXD。这段程序存储在uart.c中,编译文件中编译指令是uart:func_uart。那么用于发送的数据信息存储的变量是UART1_communication_buf[32+1],还需要留上一位空字符的位置来存储结束标志位。首先对UART1进行初始化,设置出波特率115200以及帧头、数据位、停止位、校验位、保留位。之后需要发送数据包给C51,这时首先将数据类型转换位发送数据类型,就是将单精度浮点型转换为无符号整型便于在C51中存储。Hi3861芯片将串口缓冲区的数据读取出来到通信数据缓冲区。将数据包组装之后发送数据包,用函数Screen_Uart1_WriteDate通过串口1发送数据。最后将结束标志位记为'\n'。串口通信就是将数据包按字节拆分好,逐字节发送。串口屏共有四路UART,本设备选择UART2进行串口屏的通信。串口屏要接收来自鸿蒙系统板Hi3861芯片的数据,首先进行数据初始化,设置波特率发生器、帧头、数据位、校验位以及引脚使能设置等。根据标志位UART2_PACKET_OK判断接收到数据包,再在末尾添加两个空字符。之后将通信缓冲区中读取到串口缓冲区,并存储在uart2_communication_buf中。对收到的数据包拆解,拆解处理就是将单精度浮点型的变量进行拆分处理,拆解函数如图4.12。之后将发送过来的数据类型转换可存储的数据类型,就是将无符号整型转换单精度浮点型。最后清空缓冲区存储。将读取到的单精度浮点型放在刷新函数中进行屏幕显示。图4.12数据包拆解函数程序C51系统和鸿蒙Hi3861芯片异步串口通信过程大致是这样,这个过程只是C51系统进行了接收,鸿蒙芯片进行发送通信。而反过来通信过程是相类似的,同样要经过数据拆解,经过数据类型的转换。硬件接线类型也是每一端设备需要接RX和TX收发线和地线。第5章系统测试及结果本放大电路检测装置经历软件编程和硬件实物搭建之后,各部分测试结果如下,测试过程中,电路仿真检测结果基本由Multisim软件给出,硬件实物电路的搭建是在NIELVISⅢ实验板中进行搭建。在本检测系统开始制作之前,将待测电路接到了STM32F407中进行测试,测试出幅频特性曲线如下图5.1。再在鸿蒙系统中进行软件编程测试,用OLED屏幕进行软件测试,测试结果较为理想。DGUS屏幕中进行了一些简单功能的测试,如亮度调节、按键功能测试都是可以实现。最后分析将各模块连接出来的结果。图5.1待测电路测试幅频特性图5.1失真波形发生结果待测电路波形仿真结果,由于双向失真基本是由顶部失真和底部失真的结合,该部分列出基本无失真的放大电路结果图、顶部和底部失真放大电路以及交越失真放大电路结果图。四个开关的开合定位到各个波形中的控制方式如表5.1,其中S1主要是用于两类电路的切换,S2、S3、S4都是用来模拟电阻的故障。表5.1失真波形开关控制失真类型S1S2S3S4标准波形0001顶部失真0000底部失真0011双向失真0101交越失真1001硬件实物中,将待测电路预处理之后接入到鸿蒙系统板中,最后跟迪文屏进行连接,在屏幕中点击“检测”-“原函数图像”,查看图形结果。基本无失真放大波形软件仿真结果如图5.2,硬件实物结果在迪文屏中显示结果如图5.3。图5.2基本无失真放大波形软件仿真结果图5.3基本无失真放大波形硬件实物结果顶部失真放大电路仿真结果如图5.4,硬件实物的结果如图5.5。图5.4顶部失真放大波形软件仿真结果图5.5顶部失真波形发生电路硬件实物图底部失真放大电路仿真结果如图5.6,硬件实物的结果如图5.7。图5.6底部失真放大波形软件仿真结果图5.7底部失真波形发生电路硬件实物图底部失真放大电路仿真结果如图5.8,硬件实物的结果如图5.9。图5.8交越失真放大波形软件仿真结果图5.9交越失真波形发生电路硬件实物图5.2幅频特性曲线结果在幅频特性检测过程中,没有进行软件的仿真测试,用OLED屏幕进行出步判断图像大致正确之后直接进行了实物的搭建。该部分在迪文屏中需要点击“检测”-“幅频特性”。幅频特性测量过程只检测了较为有代表性的无失真放大、双向失真、交越失真。作为检测的幅频特性结果,该部分的检测正确信息对于判断整个检测设备正确性具有重要意义。无失真放大波形的幅频特性图检测时的硬件实物图如5.10。图5.10无失真放大波形检测幅频特性实物双向失真波形的幅频特性图检测结果的硬件实物图如5.11。图5.11双向失真波形的幅频特性实物检测结果交越失真波形的幅频特性图检测结果的硬件实物图如5.12。图5.12交越失真波形的幅频特性检测实物图5.3信号处理计算结果信号处理过程主要是通过软件程序进行,鸿蒙系统要求在VScode中编写的代码在Linux系统的Ubuntu软件中进行编译,编译格式较为严格。烧录进系统板后先在SecureCRT虚拟串口仿真中查看程序有无超时或存储不够的现象,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论