时间:2024-05-04
袁 荣,张子明,李金猛,刘良勇,周勇军
(1.中国人民解放军第5720工厂,安徽 芜湖 241007;2.安徽省航空设备测控与逆向工程实验室,安徽 芜湖 241007)
随着晶体管和集成电路技术的不断发展,航空电子设备的电路板集成度越来越高,因此对其进行状态监测和故障诊断的难度也越来越大,特别是在缺乏电路原理图以及相关资料的情况下,要完成其健康状态监测与故障诊断更是难上加难,给航空维修单位带来了很大的压力[1]。
VI(voltage-intensity)曲线测试是一种不加电的故障诊断技术,在线路节点之间注入一定幅度和频率的周期信号,在显示坐标上形成一条电流随电压变化的关系曲线,即VI曲线。VI曲线的形状由被测节点之间的特性阻抗所决定,通过比较好、坏电路板(器件)上相同节点之间的VI曲线,可发现特性阻抗发生改变的节点,其通常为器件故障所引发。对选定的电路节点,激励条件确定时,其响应是唯一确定的;响应如有变异,意味着电路节点特性的变异,这必然是电路元器件损伤或电路结构变化(短路或断路)所致,通过这种测试理念与方法可以帮助维修人员快速找出已经损伤或即将损伤的元器件。
目前对VI曲线测试的研究主要还是集中在基于现有设备的测试应用上,包括通过对VI测试海量数据的转换与压缩来完成对电路板的自动状态监测与故障诊断[1]、对复杂机载电路板件进行测试与故障定位[2-3]、针对大型货架VI设备进行软件开发实现测试功能[4-5]等。但是以上这些方法主要应用于内场大设备进行电路板故障诊断的情况,针对外场应用的便携式的VI曲线测试仪虽然也有少量研究[6],但是其激励源频率和幅度要预先设置好,还有比较大的技术提升空间,尚不能满足外场环境测试的需要。
FPGA(field programmable gate array)以其集成度高、开发灵活等特点,满足航空电子装备电路板高度集成、结构标准化、功能软件化的发展要求[7],在航空领域的便携式设备研制方面得到了广泛的应用。如某型导弹的快速测试[8]、高速数据采集系统的设计与实现[9]、以及多通道航空总线检测[10]等。本文提出的便携式VI曲线电路板测试装置也是基于FPGA设计开发的。
由于电信号的采集工作中往往针对电压信号进行,为了得到电流信号,可以采用图1中的方法,在输出端口和输入端口之间设置内阻R,这样在测试器件时会有电流流过,此时输出端口和输入端口之间会因为存在内阻而产生压降,通过计算输出与输入之间的压差,再除以内阻的方法,就可以得到电流信号的值。
图1 VI曲线测试原理
根据图1所示的测试原理,设计了VI曲线测试模块的总体框架,包括上下位机两部分。其中下位机负责正弦激励信号的产生及滤波输出、输出与输入端口间内阻的配置、信号的回采及处理、与上位机的USB通讯传输等,为完成以上功能要求,设置了FPGA核心控制器及其最小系统、DA电路、输出处理电路、内阻配置电路、输入处理电路、AD电路、JTAG/CONFIG电路、USB通讯电路等,其中DA电路及输出处理电路、AD电路及输入处理电路均设置为2路,为便于2路信号同时测量进行对照;上位机的开发主要集中在用户软件上,该软件用于人机交互和VI曲线的图形化显示等,主要的功能包括通过USB接口接收测试模块上传的数据、进行电压电流数据的解算、通过绘制点图显示电压电流之间的函数关系等,目前上位机软件采用Python语言编程。
VI曲线测试模块总体框架如图2所示。
图2 VI曲线测试模块总体框架
本项目中无论是AD、DA芯片的转换速率,还是数据传输速率均达到了比较高的程度,需要保证微控制器的运行速率;另外因为所含模块较多,对控制器的IO资源也提出了比较大的要求。在各种微控制器中,FPGA以其并行结构的特点占有很大的速度优势,同时拥有大量的可配置外设接口,因此经过反复调研论证,选择FPGA作为微控制器最终选型方案。在本项目中选用CycloneⅢ系列的EP3C5E144C,该芯片在之前的项目中已有比较广泛的应用,技术成熟,性价比高。FPGA微控制器最小系统用于控制产生正弦激励信号、采集测量信号、控制与上位机通信等,包括FPGA控制核心的时钟电路、复位电路、电源电路、配置芯片电路等。
DA电路用于将FPGA控制核心产生的激励信号由数字型转换为模拟型,并向测量段发送,产生所需的电压扫描信号。
由于要产生可调频率的正弦波,因此本项目对DA转换速率要求较高,普通DA芯片无法胜任本项目需求。经过调研和试验验证,选用AD9764芯片作为DA电路的转换芯片,该芯片为14路并行DA转换器,转换速率可达到125 MSPS,模拟信号输出峰峰值范围为600 mV~6 V,完全可以满足项目要求。
由于AD模块产生的信号为差分信号,因此需要设计输出处理电路用于将差分信号调理为单端信号,另外还设计了7阶椭圆无源LC滤波器和后级信号放大器,用来扩大正弦波输出带宽和信号强度。
配置内阻两端的压降是求出测试点电流信号的重要依据,因为被测元件的阻抗不确定,因此需要根据被测元件的阻抗自适应配置内阻,本项目采用的方式为采用多种阻值并联的形式,每种阻值串联跳线帽,通过跳线确定参与并联的电阻,可灵活改动内阻的大小。
输入处理电路包括使用衰减和偏移电路对输入信号进行调理,将差分信号转换为适合AD芯片处理的较小单端信号形式。
AD电路用于将测量到的电压信号由模拟型转换为数字型,并向FPGA微控制器发送。同DA电路,本项目要求AD采样速率较高,经过调研和试验验证,选用AD9226芯片搭建AD电路进行信号采集和转换,AD9226芯片为12位高速AD转换器,采用多级差分流水线架构,最大采样速率达到65 MSPS,可满足本项目需求。
包括用于对下位机FPGA进行开发调试的JTAG电路和最终下位机程序的下载固化的CONFIG电路,其配置芯片选用EPCS16串行存储器。
USB通信电路用于将VI数据传输至上位机以供进一步处理,选择FT245芯片作为USB传输协议芯片。该芯片最快传输速率1 MB/s,可将8位并行数据与USB信号进行相互转换,实际是将串口数据按照USB的格式进行发送,免驱动安装,对Windows7、Ubuntu16.04等各类操作系统的支持度高,开发操作简便。
系统代码开发主要含两个部分,包括在下位机FPGA运行的代码以及在上位机运行的软件。
3.1.1 顶层文件
FPGA中运行顶层代码采用BDF文件,使用Verilog HDL语言编写各模块并例化后,在顶层文件中用线相互连接编译形成。包括PLL时钟模块、DA控制模块、AD仿真模块、USB控制模块等,完成激励信号产生、测试信号采集以及与上位机通信等功能。顶层文件如图3所示。
图3 FPGA顶层文件
3.1.2 PLL时钟模块
FPGA工作频率为硬件电路连接的有源晶振产生的50 MHz,而本项目选用的AD和DA芯片分别最高可工作在65 MHz和130 MHz,并且USB芯片的最高传输频率为1 MB/s,因此可以用PLL模块产生这些芯片工作的频率。
3.1.3 DA控制模块
DA控制模块主要负责将预定波形的信号按照一定的频率发送给DA芯片,其框架如图4所示。主要做法是将波形的信号编码值按照4 096的分辨率保存在FPGA的内部ROM中,通过查表的形式给地址依次输出对应的电压值,查表的更新速度决定了输出波形的频率。
在本项目中,采用key_con模块产生地址信号的步进值fre_k,然后add_32bit模块中将32位计数器通过加上步进值,取计数器的前12位作为地址信号传送到查找表,然后取出对应的值再送给DA芯片,通过公式(1)可以计算得到输出波形的频率FOUT。
(1)
在本例中,FPGA工作频率为50 MHz,若fre_k取8 590,则可以计算输出波形的频率为100 Hz。
3.1.4 AD仿真模块
该模块将AD芯片转换后的数字量输出,同时配合输出AD转换频率,可以在Quartus软件的Signal TapⅡLogic Analyzer工具实时查看这些变换的数据,该模块用于未配备数据传输模块时查看AD转换是否成功,在调试过程中有比较大的帮助,在AD调试成功,确保转换功能没有问题后可以不再使用。
图4 DA控制模块
3.1.5 USB控制模块
因为FT245一次只能发送8个字节,而输出和采集的电压值数字量为12个,在数据传输时要准确识别出数据的意义,因此需要编排输出、采集的电压值信号,控制FT245按照如表1所示的规则循环发送这些数据。
FT245在发送USB数据时,有以下的控制信号时序关系:在TXE信号为低时,将数据准备好,输送到FT245的并行口上,将WR信号置高并保持50 ns以上,然后将WR信号置低,在这个边沿处芯片将并口的数据准备发到USB接口,下降沿后的5~25 ns时间内TXE信号将变为高,此时表示正在传送数据,在这个过程中不要进行写操作,即WR保持为低电平,一直到TXE信号变为低,数据发送结束,此时可以将WR信号置高以进行下一个数据的发送。使用FT245进行USB数据发送的控制信号时序见图5。
表1 数据传输编码规则
图5 使用FT245进行USB数据发送控制时序
3.2.1 概况
上位机软件的主要功能包括接收下位机通过USB发送的数据、通过计算求解出电压和电流的值、将求解出的值以点图的形式显示到计算机屏幕等,在本项目中,使用Python语言编写了上位机程序。
在Python语言中,可以非常方便地调用matplotlib(类似MATLAB的绘图)、pyserial(USB形式的串口)等各种资源包,同时具有程序简洁、代码量少、开发方便等优点,已经广泛应用于深度学习乃至人工智能领域,已经成长为最受欢迎的编程语言之一。为了紧跟行业发展动向,同时充分利用其便利因素,在本项目中也开始了对Python语言开发的应用尝试。
3.2.2 软件开发思路
总的下位机软件流程见图6所示。
图6 下位机软件流程
首先导入“matplotlib.pyplot(plt)”、“serial”等后面需要用到的资源包,然后定义主函数。
主函数中的最开头需要定义USB接口,因为FT245芯片将该接口识别为串口(COM口),因此可以使用函数serial.Serial,参数为串口号和波特率,以上信息可以通过资源管理器查看,如图7所示。然后使用函数serial.isOpen函数判断串口是否打开成功,并将结果打印显示。
图7 串口参数查看
USB接口打开后,开始图的初始化,包括确定图的总标题、x轴名称、y轴名称等。
然后进行数据接收与处理工作,包括使用serial.inWaiting函数查询USB接收数据待处理个数count,然后使用serial.read函数将count个数据读取出来,在这些数据中依次查询,如果四个连续数据按照表1中的规则依次读出,则证明这是一组有效数据,分别存入输出电压高6位(vout_h)、输出电压低6位(vout_l)、输入电压高6位(vin_h)、输入电压低6位(vin_l)等4个列表中。然后进行数据处理,首先将数据组合得到输出电压(vout)和输入电压(vin)的数字量值,然后通过公式(2)、(3)分别计算电流、电压的实际模拟量值。
(2)
v=(vout-2 048)*Voutpp/4 096
(3)
公式(2)、(3)中,vout表示当前输出的电压数字量,vin表示当前采集的电压数字量,Vinmax表示所有采集电压数字量中的最大值,Voutpp表示输出电压的模拟量峰峰值,Rin表示输出电压端与输入电压端之间的内阻。
电流、电压模拟量值计算完毕后,通过voltage.append、current.append两个函数存储到voltage、current两个列表中,在这一次USB接收的数据全部处理完后,plt.plot函数确定图中x、y坐标的单数分别为voltage、current两个列表中的值,并确定点的形状、颜色等属性,最后使用plt.draw函数绘制点图,并使用plt.pause函数暂停一段时间以接收新的USB数据。
分别选择某电路板上的阻性和容性器件进行测试实验。
对板件上的某电阻器件进行测试,该器件用于板件上FPGA复位电路中复位信号的限流,一旦出现异常将导致FPGA无法正常复位、异常重启等问题,板件将丧失功能。
电阻器件的阻抗特性上应该呈现电压与电流的比例关系。如图8所示在测试中可以观察到输出的图像显示R3器件的VI特性呈一条直线,与理论分析结果一致。
图8 阻性器件试验VI特性曲线
对板件上的某电容器件进行测试,该器件与另一个电容器件并联放置在LMS1117-3.3 V输入端,用于5 V向3.3 V电源转换的输入端滤波,如果出现异常可能引发电源供电不稳,影响3.3 V的正常输出,而3.3 V电源在板件中是很多器件的供电来源,如果该电源出现问题板件将发生异常重启、器件功能缺失等严重错误。
由于该器件节点处为两个电容并联,因此该节点的测试实际为对纯容性阻抗特性,电压与电流变化关系呈积分关系,由于激励为正弦波,因此如图9所示,C32器件的电压电流特性为椭圆形,与理论分析一致。
图9 容性器件试验VI特性曲线
本文基于FPGA设计了一种便携式VI曲线航空电路板测试装置,装置结构小巧、操作简单、便于使用,可应用于在外场环境的航空电路板测试与维修。开发中充分利用了FPGA的灵活性,同时软件的设计采用了Python语言,软硬件都具有比较强的发展性,后续的维护非常便利,另外可以针对不同的需求进行升级和开发。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!