技术领域
[0001] 本发明涉及测试技术领域,具体涉及一种基于TCL与Python脚本的高效自动测试方法。
相关背景技术
[0002] 在数据采集板卡测试中,可能需要快速对板卡上ADC/DAC进行测试,但该测试需要测试项目非常多和繁琐。而且在一些小批量板卡中,研发人员往往也不会专门做一个测试系统,测试该板卡。测试人员需要手动一步一步的完成测试。比如进行一个ADC测试指标测试,测试人员首先需要更改信号源输出频点,然后在手动通过VIVADO软件将数据从ILA中导出,最后将导出数据做分析获取结果。假设该测试的范围从10‑2500MHz,步进10MHz,总共需要测试250个频点。测试一个频点大概需要一分钟,测试完所有频点大概需要4个小时左右的时间。这还仅仅是一个ADC通道所耗费的时间。一个高速的信号处理板上,往往包含数个甚至十多个ADC/DAC通道。在现有方式中完成这些ADC/DAC的数据测试,需要耗费的时间巨大,通常测试系统需要板卡提供数据导出接口,例如通过网口或串口导出数据分析;但是对应某些板卡组件往往提供不了测试系统所需要的数据导出接口,仅仅只有JTAG的调试接口作为数据导出接口使用;如果自由自动化测试工具,那么大量的测试数据需要通过手动导出,耗费时间。因此现有技术在小批量板卡测试中,测试人员需要耗费大量时间控制仪器、导出数据、分析数据,同时板卡需要强制提供测试系统的数据接口。
具体实施方式
[0017] 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。实施例
[0018] 如图1所示,本发明一种基于TCL与Python脚本的高效自动测试方法,该方法包括:步骤S1:设置用于控制测试的上位机,对上位机设置分别与上位机信号连接的数据测试仪器、信号源和数据采集板卡,其中上位机与数据采集板卡通过JTAG端口连接;
步骤S2:所述信号源信号连接至数据采集板卡,将数据采集板卡输出的信号设为目标测试信号,并将目标测试信号传输至数据测试仪器用作信号测试过程的原始信号;
步骤S3:在上位机上预设TCL脚本和Python脚本,使用TCL脚本调用Python脚本控制数据测试仪器开启信号测试过程,并将信号测试过程生成的测试数据导出至上位机;
步骤S4:在上位机使用TCL脚本调用Python脚本对将测试数据进行分析,在TCL脚本内预设测试判定机制,将Python脚本针对测试数据的数据分析结果生成最终结果文件;
步骤S5:使用测试判定机制从最终结果文件读取出数据分析结果,当判断测试结果有效时则判定测试过程已完成并结束测试过程,当判断测试结果无效时则返回步骤S3重新测试。
[0019] 所述上位机通常指的是一个在测试系统中负责协调和管理其他硬件设备及测试流程的计算机系统。它通常是与下位机(如FPGA板卡、测试仪器等)进行数据交互和控制指令传输的主要设备。上位机作为整个测试过程的“控制中心”,负责管理和调度所有的测试任务。它执行测试计划,发出测试指令,控制下位机的行为,并收集测试结果进行分析。所述数据测试仪器指用于测量、分析和验证电子系统性能的各种仪器设备。在具体实施中,所述数据测试仪器主要包括示波器、频谱仪、网络分析仪、信号发生器等设备。所述数据采集板卡用于从各种信号源采集并转换模拟或数字信号为可供计算机处理和分析的数据。其主要功能是将输入的信号进行采样、放大、滤波、转换等处理后,将数据传输到上位机或其他处理系统中进行进一步分析。在具体实施中,所述数据采集板卡可以包括模拟输入输出模块、数字输入输出模块、FPGA板卡以及高速采样模块等具体运用设备。将目标测试信号作为输入信号传输到数据测试仪器,使得此信号是测试过程的基础信号,后续的所有测试、数据采集和分析都将基于此原始信号进行。
[0020] 所述TCL脚本作为“调度者”或“控制者”,它负责调用和管理Python脚本、测试仪器、信号源等硬件资源的操作。通过TCL脚本可以实现自动化控制,包括启动测试、读取设备状态、调整参数等。所述Python脚本用于进行复杂的数据分析、计算、处理和结果判定。在TCL脚本触发之后,Python脚本会根据测试过程中获取的数据进行处理和分析,输出测试结果或报告。在实际测试开始之前,TCL和Python脚本已经在上位机上编写并保存好。测试人员无需在测试过程中手动编写或修改脚本,保证了测试过程的统一性和一致性。所述信号测试仪器接收到控制信号后,会产生预设的测试信号并开始测试。Python脚本通过适当的指令与数据测试仪器交互,确保测试过程按预定要求执行。在测试过程中,数据测试仪器会根据测试需求生成相关的测试数据。这些数据可能包括信号的幅度、频率、相位、噪声水平等信息,视具体的测试目标而定。测试数据生成后,Python脚本会将这些数据导出至上位机,通常是通过文件(如CSV、TXT等格式)或者通过网络接口(如TCP/IP、USB等)传输到上位机。这一过程保证了测试数据能够被保存和进一步分析。在数据分析时,所述TCL脚本通过调用Python脚本进行数据分析。Python脚本根据预设的分析方法(例如统计分析、数学建模、信号处理等)对从测试仪器收集到的数据进行详细分析,提取出有用信息并生成分析结果。所述Python脚本会根据分析的结果生成最终的结果文件,这个文件包含了测试数据的分析结果,比如是否符合测试标准、是否通过测试、测试数据的数值等。当读取的最终结果文件中的数据分析结果符合预设的有效标准时,判定测试为“有效”,即测试达到了预期的目标,结果是成功的;当结果文件中的数据不符合有效标准时,例如测试数据存在异常、错误或偏差,系统会判定此次测试结果为“无效”, 此时,系统会返回到步骤S3,即重新启动测试过程。
[0021] 进一步地,作为一种可行的实施方式,所述信号源的频率幅度分别设有高频、中频和低频三个不同的频率幅度区间,且通过数据库中的signalType变量获取信号源的目标信号类型;所述信号源的每一个频率幅度区间至少有一种对应运用的TCL脚本配置。
[0022] 所述信号源的输出信号在频率上被划分为高频、中频和低频三个区间。这意味着信号源可以根据需要生成不同频率范围内的测试信号,以适应不同测试需求。不同频率区间的信号在信号传输、信号质量、干扰影响等方面可能存在差异。通过对信号源频率幅度的区分,测试可以更精确地模拟不同条件下的工作环境,从而提高测试的全面性和针对性。在本实施方式中,通过数据库存储的signalType变量来获取信号源的目标信号类型,即系统可以根据外部或预设的配置动态选择要生成的信号类型,能够根据测试需求自动调整信号源的输出信号。所述signalType变量可以代表不同的信号属性,如不同的调制方式(例如 AM、FM)、波形类型(例如正弦波、方波)或特定的测试信号格式。通过数据库查询,系统能够自动选择相应的信号源配置,以保证测试信号的正确性和多样性。每种TCL脚本配置可能包括对信号源的频率、幅度、调制方式等参数的调整、信号采集的设置以及数据分析过程的配置;不同频率区间的信号可能需要不同的测试策略,因此每种频率区间都会有相应的脚本配置。
[0023] 进一步地,作为一种可行的实施方式,所述TCL脚本配置的参数包括调整数据测试仪器输出信号源时的输出增益、输出阻抗和偏置电压;所述目标测试信号包括三种信号波类型,包括正弦波、三角波和方波,所述TCL脚本配置的参数在每个频率幅度区间内均符合所述三种信号波类型的工作参数;所述高频目标测试信号的频率幅度区间的范围设为在50MHZ‑5GHZ之间;
所述中频目标测试信号的频率幅度区间的范围设为在500KHZ‑50MHZ之间;
所述低频目标测试信号的频率幅度区间的范围设为在5HZ‑500KHZ之间。
[0024] 所述输出增益指的是信号源输出信号的幅度放大倍数。在测试中,增益决定了信号的强度或幅度,增益的设置可确保信号在适当的幅度范围内输出。当需要测试系统能够处理较大信号时,增益可以增加信号的幅度。例如,对于高频测试,信号可能会由于传播损失或器件衰减而减弱,因此需要增加增益以确保信号强度足够。通过精确调节增益,可以避免信号过弱或过强的情况,导致信号无法正确分析、信号失真或者设备损坏。在某些具体实施的高精度测量中,信号幅度的控制对测试结果的准确性至关重要。
[0025] 所述输出阻抗是信号源输出端的电气阻抗,输出阻抗应与接收设备(如数据测试仪器或相关载体电路等)的输入阻抗进行匹配,以减少信号反射和能量损失。匹配阻抗可以确保信号源的功率被有效地传递到负载端。若输出阻抗和接收设备的输入阻抗不匹配,就会发生信号反射,导致部分信号丧失,甚至引起测量误差。在高频信号测试中,阻抗匹配尤为重要,因为不匹配的阻抗会影响信号的幅度和形状,甚至可能引起系统的故障。通过调整输出阻抗,可以确保信号从源端到负载端的最大功率传输,并减少信号的衰减。
[0026] 所述偏置电压是指在信号源中施加的直流电压,用于调整信号的直流电平。在测试过程中,某些信号(如模拟信号、正弦波、三角波等)需要特定的偏置电压,以确保信号的正确输出和传输;所述偏置电压通常用于将交流信号从零电平移动到一个合适的工作电平,使其能够在测试过程中有效地反映设备的响应特性。对于一些模拟信号,特别是正弦波、三角波、方波等,如果没有合适的偏置电压,信号可能会超出设备的输入范围或无法被测试系统正确识别。偏置电压的设置有助于确保信号始终处于接收设备的线性工作区间。通过控制偏置电压,可以避免信号因过低或过高的电平导致的失真。例如在具体实施的测试中,输入信号可能需要一个适当的偏置来确保其在接收设备中的线性响应,而不被削顶或拉伸。在模拟信号测试中,偏置电压帮助确保信号波形稳定,并能反映被测设备在实际工作环境中的表现。
[0027] 所述TCL脚本配置中对输出增益、输出阻抗和偏置电压的调整,使得信号源能够根据不同测试需求精确输出信号,避免了因信号幅度、波形不匹配或信号失真而导致的测试误差。通过精细化控制这些参数,测试系统可以更好地适应高频、中频和低频信号的测试需求,确保测试结果的准确性和可重复性。
[0028] 进一步地,作为一种可行的实施方式,所述TCL脚本配置参数在所述三个不同频率幅度区间的设置大小包括:所述输出增益的设置为:在高频针对信号源输出电压增益倍数设为1‑2倍,在中频针对信号源输出电压增益倍数设为5‑10倍,在低频针对信号源输出电压增益倍数设为10‑
20倍;
所述输出阻抗的设置为:在高频针对信号源输出阻抗的大小设为恒定50Ω,在中频针对信号源输出阻抗的大小设为50‑75Ω,在低频针对信号源输出阻抗的大小设为600‑
1000Ω;
所述偏置电压的设置为:在高频针对信号源的电压值设为0.1V至0.2V,在中频针对信号源的电压值设为0.1V至0.5V,在低频针对信号源的电压值设为1V至5V。
[0029] 由于高频信号源的增益较低,主要是因为在高频范围内,信号的传输本身会有一定的衰减,因此不需要过大的增益。增益值设为1‑2倍可以避免过度放大信号,导致信号失真或引起不必要的干扰;所述增益设置方式用以确保高频信号保持良好的波形,并防止由于增益过高而产生的噪声或非线性失真,适合于射频、电磁兼容性等高频信号测试。中频信号相对高频信号较为稳定,因此可以适当增加增益以确保信号的幅度适中,尤其在信号源和测试设备之间可能会有一定的损失时;通过设置适中的增益,可以保证信号在中频范围内具有足够的强度,同时避免信号的过度放大,从而确保信号的清晰度与测试结果的准确性。低频信号常常受到电气噪声的影响,因此需要更大的增益来确保信号的强度;增益设置为10‑20倍可以补偿信号的衰减,确保低频信号能够有效传输并且不被噪声淹没。较高的增益有助于在低频范围内获得清晰且稳定的信号,使得低频信号能够在测试中保持足够的强度并避免噪声干扰。而在射频和高频信号测试中,将所述输出阻抗设为50Ω是广泛应用的标准阻抗值,用于确保信号的有效传输并避免反射。在中频范围,信号源的阻抗可以略微宽松地调整在50Ω到75Ω之间,以适应不同的设备和负载,这个范围可以灵活适应多种中频设备的要求,在这个范围内,信号的传输质量不会受到显著影响,且能够支持多种中频设备和测试配置,确保信号的稳定传输。而低频信号常用于音频设备、电力系统等,这些设备通常具有较高的输入阻抗。因此,信号源的输出阻抗需要更高,以匹配这些设备的要求;在低频信号段中设置高阻抗设置有助于减少低频信号的反射和失真,特别是在长距离传输或多设备并联测试时,可以有效保证信号的质量和测试精度。
[0030] 关于偏置电压设置,因为在高频信号测试中,信号的直流偏置需要保持较低,以避免对信号的形状产生过多的影响,因此设置低偏置电压保证了信号波形的完整性,并防止过高的偏置导致失真。0.1V至0.2V的偏置电压范围有助于确保信号的精确度,特别是在高频信号的幅度较小的情况下,避免了由于偏置电压过高导致的信号偏移或失真。而在中频信号中,偏置电压可以适当增大,以确保信号在传输过程中不会因电压过低而丢失或无法正确处理,因此设为设为0.1V至0.5V对电压上限值有适当提升,这个偏置范围能够提供足够的直流电平来支持信号传输,并避免信号的过度波动或失真,适合多种中频信号的测试和分析。而低频信号的偏置电压较高,特别是在音频和低频电力系统中,较高的偏置电压能够确保信号在这些系统中的稳定性和传输效果;较高的偏置电压可以确保低频信号的幅度适中,避免信号被“削顶”或过度衰减,保证测试系统的准确性。通过针对不同频率区间的输出增益、输出阻抗和偏置电压的详细设置,确保信号源能够在高频、中频和低频范围内精确输出合适的测试信号。这些精细化的配置能够最大化信号传输的稳定性和准确性,避免信号失真或测试误差。
[0031] 进一步地,作为一种可行的实施方式,所述TCL脚本的测试判定机制的内容包括:使用TCL脚本调用Python脚本对测试数据分析时产生的全部状态码,选用状态码模拟执行目标测试信号的频率响应测试,在频率响应测试中随机输出一个功率测量值,将所述功率测量值写入TCL脚本中生成出返回值,当所述返回值为0时表示测试成功,当返回值非0时表示测试未完成或测试失败;选用状态码模拟执行频率响应测试的过程包括:针对TCL脚本设置功率测量值的功率测量范围,将全部状态码逐个对目标测试信号进行频率响应测试,当测试生成的功率测量值低于功率临界范围时,此时输出的功率测量值在TCL脚本内生成的返回值设置为1,并判定所选状态码无效;
当测试生成的功率测量值位于功率测量范围内时,此时输出的功率测量值在TCL脚本内生成的返回值设置为2,并判定测试过程仍处于正在进行状态;
当测试生成的功率测量值超出功率临界范围时,此时输出的功率测量值在TCL脚本内生成的返回值设置为0,并判定所选状态码有效且测试过程完成。
[0032] 所述TCL脚本作为主控制脚本,通过调用Python脚本来处理复杂的测试数据分析。Python脚本执行实际的测试数据计算和生成状态码,TCL脚本则根据这些状态码来判断测试过程是否顺利进行、是否需要继续测试,或者何时终止测试。每个状态码代表测试过程中一个特定的条件或测试阶段。这些状态码不仅反映了测试结果,还在TCL脚本中起到了关键的控制作用,决定了测试流程的下一步。在频率响应测试中,Python脚本会模拟输出一个功率测量值。这个功率测量值是对测试信号的响应,它的大小将决定测试的状态和结果。在具体实施中,所述功率测量范围可根据所要实现的测试目标和精度要求来设定。当功率测量值超出预设的功率临界范围时,系统认为测试已完成且结果有效,因此返回值设置为0,表示测试成功。此时,TCL脚本会终止测试过程,并记录结果。当功率测量值低于功率临界范围时,测试结果被认为无效,因此返回值设置为1,表示测试失败,或者功率值过低导致无法判断测试结果,此时TCL脚本会标记该状态码无效,并可以触发重新测试或中止测试。当功率测量值位于预设的功率范围内时,测试过程被认为仍在进行中,返回值为2表示测试尚未结束,系统会继续执行测试,直到测试完成。通过返回值与功率测量值的关联,TCL脚本能够自动判定每次测试的结果,并控制测试进程。每次测试结束后,TCL脚本会根据功率值的不同,自动决定是否结束测试,或者是否需要重新开始。作为一种具体的实施方式,所述功率测量范围可设置为:在高频信号段因为射频信号的功率一般比较低,需要精细的测量,则将范围设为‑30dBm至+10dBm;在中频信号段功率范围可适当扩大以适应较多的测试应用,将范围设为‑20dBm至+20dBm;在低频信号段由于测试应用中可能具有较大的功率输出,如电力系统或其他需要较强功率信号的测试场景,则将范围设为0dBm至+50dBm。
[0033] 特别地,所述功率测量范围的下边界设有容忍度阈值,当选定状态码生成的功率测量值低于功率临界范围且位于容忍度阈值内时,此时输出的功率测量值在TCL脚本内生成的返回值设置为2,并判定测试过程仍处于正在进行状态。
[0034] 所述容忍度阈值是指测试过程中允许的功率测量值波动范围,它规定了测量值与理想标准值之间的可接受误差范围。在实际测试中,信号和系统噪声等因素可能导致功率测量值出现小幅波动,这种波动不一定代表测试失败,因此设置容忍度阈值是为了容忍这些小的波动,防止误判。通常设定为一个理想值或范围,用来判定信号的强度是否符合要求。当功率测量值低于临界范围时,通常会被认为测试失败或无效。在具体运用中,可根据测试设备的精度和误差范围来设置容忍度阈值。例如,如果设备的误差范围为±2 dBm,那么容忍度阈值可以设定为±2 dBm,即当功率测量值在该范围内时,系统不认为是错误的测量;或者可根据过去的测试数据分析,确定在实际测试过程中常见的功率波动范围,从而设定一个合理的容忍度阈值。所述容忍度阈值的设置提高了测试的容错性、稳定性和可靠性,有助于避免过早结束测试或频繁的重新测试,确保测试过程更加精确。
[0035] 进一步地,作为一种可行的实施方式,所述使用TCL脚本调用Python脚本对将测试数据进行分析的过程包括:在上位机内使用VIVADO自带的ILA数据形式获取导出命令,使用导出命令在VIVADO内将测试数据导出后,再用TCL脚本调用Python脚本进行测试数据分析;所述TCL脚本将测试数据导出时存放为CSV文件,调用Python脚本分析CSV文件,分析结束后生成中间结果文件,使用TCL脚本读取中间结果文件并将中间结果文件内的数据分析结果生成最终结果文件;在TCL脚本中使用并行异步处理方法调用Python脚本执行测试数据分析。
[0036] 所述VIVADO是一款FPGA开发工具,它提供了许多用于设计、调试和验证的功能,包括集成逻辑分析器ILA。ILA能够实时捕捉FPGA内部信号,进行数据采集和分析,帮助开发人员调试和优化设计。所述TCL脚本可以自动化地调用VIVADO提供的命令,获取导出数据,并将其传递到Python脚本进行进一步处理。通过这种自动化流程,可以减少人工干预,确保每次测试数据导出的一致性和准确性。所述CSV文件包含了FPGA测试过程中采集的信号数据,通常是信号的时间序列、逻辑状态等。Python脚本负责解析这些数据,并进行进一步的分析,如信号的幅度、频率、波形分析等。Python的数据处理能力可以高效地处理这些数据,执行各种数学运算和可视化操作。由于测试数据量通常较大,且数据分析涉及的计算可能比较复杂,传统的同步处理方法可能会导致较长的处理时间。因此,引入并行异步处理技术可以显著提高数据分析过程的效率。通过自动化的TCL脚本与高效的Python脚本数据分析方法,结合VIVADO ILA导出、CSV数据存储和并行异步处理,提高了测试数据处理的效率和精度。整个过程不仅提高了测试过程的自动化程度,也在保证精确分析的同时缩短了测试时间,使得复杂测试场景下的FPGA测试更加高效。
[0037] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。