跳转至

射频综测与扩展功能

射频综测

模组在产线经过校准并更新了准确的RF配置后,综测会对其校准结果进行进一步的检查,以确保模块流入下一环节时,各项射频指标符合预期。

综测简介

综测是为了验证校准后的单板基本性能,如下表所示。

分类

指标

门限

上行主要射频指标

  • TX Power(dBm)
  • EVM(%)
  • IQ Offset(dB)
  • Freq Error(Hz)
  • UTRA1 Left (dB)
  • UTRA1 Right(dB)
  • UTRA2 Left (dB)
  • UTRA2 Right(dB)
  • EUTRA Left(dB)
  • EUTRA Rigth(dB)
  • SEM(%)
  • OBW(MHz)
  • Pmin(dBm)
  • ± 2.7
  • <17.5%
  • <-24.2
  • <200
  • >32.2
  • >32.2
  • >35.2
  • >35.2
  • >29.2
  • >29.2
  • <100
  • <20
  • ≤-40

下行主要射频指标

BLER(%)

≤5%

综测操作步骤

调整脚本参数

根据具体测试环境,调整“calibration_test_configuration.py”和 “calibration_test_configuration.ini”综测脚本中的相关参数。具体请参见配置文件注释说明。

  • 配置“calibration_test_configuration.ini”文件

    1. 配置校准综测测试选项(MODE_SELECT):

      1:只运行校准;

      2:只运行综测;

      3:运行校准并运行综测。

    2. 选择需要综测的频段(TEST_BAND):可选的频段范围为[1,3,5,8,34,39,40,38,41],可以只选择部分需要综测的频段,频段的综测顺序无影响。

    3. 选择测试频段的高中低信道(CHANNEL_SELECT):每个Band的三个配置位分别代表这个频段的高中低信道,置1代表选择该信道,置0代表不选择。
    4. 配置RX灵敏度测试的下行信号强度(TEST_RX_DL_POWER):其含义为20M满带宽功率,需要包含TEST_BAND中所包含的所有频段,可按需调整下行信号强度。
    5. 配置综测Tx功率范围和步长(TEST_POWER_RANGE):可以通过列表格式测试所列出的功率,也可以通过步长来测试某个范围内的所有功率。
    6. 配置每个测试项的测量次数(TEST_CASE_RETRY_COUNT_MAX):支持的重测试项为Bler、Pmin、TX Power、FreqError、EVM,测量次数不小于1。
    7. 配置综测失败后是否暂停测试(TEST_CASE_FAIL_STOP):该配置决定了当设置的重测次数耗尽后,综测是否还会继续测试其他剩余测试项。False为失败时仍继续测完所有测试项,True为失败时停止测试剩余测试项。
  • 配置“calibration_test_configuration.py”文件

    1. 配置是否在标题写入SN号(SN_SELECT):如不需要在result和log文件标题写入SN号,将SN_SELECT置0;如果需要则默认置1。SN_SELECT置1时,log中可通过SN_SET添加额外前缀,建议由数字和字母组成。
    2. 选择仪表(INSTRUMENTS_SELECT):按照脚本实例中的格式选择要使用的仪表。
    3. 选择射频仪器地址(INSTRUMENTS_ADDRESS)和端口(INSTRUMENTS_PORT):其中CMW100仪表的IP使用固定的本地回环地址(127.0.0.1),其余仪表IP需要根据仪表本身的配置进行读取。罗德仪表使用一拖一模式时,inst默认配0,无需更改。
    4. 选择AT端口号(AT_SERIAL_COM_PORT)和AT端口波特率(AT_SERIAL_COM_BAUD_RATE):AT端口默认为9600,其余波特率需要手动修改。若使用USB端口,则无需修改波特率参数。AT UART 波特率不大于230400、深睡开启 XO 时钟且需要发送长度超过32 Byte的AT命令时,可在综测前发送“AT+NVETOSUPERDS=A,1”添加A核深睡投票;综测结束或异常退出后必须发送“AT+NVETOSUPERDS=A,0”取消投票。
  • 设置通道损耗,请参见“线损配置文件说明”章节。

运行脚本

直接运行“calibration_test_main.py”脚本。如果综测后终端输出的log显示“RF TEST---PASS”,表示综测完成。

说明: 综测前,请确认对应仪表已在正确路径下存放正确的波形文件,否则综测无法成功执行。

  • CMW100: "C:\\ProgramData\\Rohde-Schwarz\\CMW\\Data\\waveform\\FDD_TxData_10ms_0927.wv" "C:\\ProgramData\\Rohde-Schwarz\\CMW\\Data\\waveform\\TDD_TxData_10ms_1021.wv"
  • CMW500: "D:\\Rohde-Schwarz\\CMW\\Data\\waveform\\FDD_TxData_10ms_0927.wv" "D:\\Rohde-Schwarz\\CMW\\Data\\waveform\\TDD_TxData_10ms_1021.wv"
  • IQ: '/user/FDD_TxData_10ms_0927.iqvsg' '/user/TDD_TxData_10ms_1021.iqvsg'

结果分析

完成综测后,脚本会将结果保存在radiotest_result文件夹“.xls”文件格式中,测试人员根据相应的数据判断指标是否合格。

说明:

  • 综测后终端输出的log显示 “RF TEST---PASS”信息,表示所有综测项都通过;否则至少有一项综测项失败。
  • 可以通过“radiotest_result”文件夹下生成的对应日期的日志的名字中判断该次综测是否全部通过,综测成功的日志中命名最后会有“PASS”标识,综测失败则没有标识。
  • 综测可以选择直接调用提供的综测脚本完成,也可以使用RFTool界面工具配置后执行。

校准其他功能

选择校准项

可通过“calibration_test_configuration.ini”文件中“CALIBRATION_CASE_SELECT”参数选择校准时会执行的校准项,默认全部开启,不需要执行的校准项可以将其置为False,如图1所示。其中selfcal和rx_dc_cali两个校准项是默认开启执行校准且无法关闭的。

图 1 选择校准项

**图 1** 选择校准项

校准结束后,校准日志末尾会有打印提示此次校准执行的校准项,如图2所示。

图 2 执行校准项提示

**图 2** 执行校准项提示

TX功控调整

在“calibration_module/CalibrationClass.py”文件中进行TX功控调整,如图1所示。

图 1 TX功控调整

**图 1** TX功控调整

参数说明如下:

  • TX_POWER_MAX:校准完成后,模组射频所能配置的最大期望功率, 单位:0.1dBm。
  • TX_POWER_MIN:校准完成后,模组射频所能配置的最小期望功率,单位:0.1dBm。
  • PA_CTRL:三个值分别对应调整模组MPM的最大期望功率、LPM的最大期望功率、各个PM交叉的功率段大小,单位:0.1dBm。
  • PA_BAND_POWER_REDUCE:根据表中正值或者负值相应回退或者抬高对应BAND在对应PA工作模式下的实际功率,单位:dB。

须知: PA_CTRL和PA_BAND_POWER_REDUCE的key值(即图1中‘0x1366’)为PA的PRODUCT_ID(高8bit)和MANUFACTURE_ID(低12bit)组成的20bit数。

说明:

  • PA_CTRL参数[a0, a1, a2]的计算公式:HPM的功率范围[a0 - a2 + 10,TX_POWER_MAX],MPM的功率范围为[a1 - a2 + 10,a0],LPM的功率范围为[TX_POWER_MIN,a1]。
  • PA_CTRL的参数请根据PA手册中各个PM的理论功率进行调整,校准完成后会将参数回填进校准文件。PA_CTRL为空则默认使用校准文件里面的pa_ctrl参数。
  • PA_CTRL和PA_BAND_POWER_REDUCE参数异常会导致校准失败。

TX高低温频补调整

在“calibration_module/CalibrationExtra.py”文件中进行TX高低温频补调整,如下图所示:

在“calibration\_module/CalibrationExtra.py”文件中进行TX高低温频补调整,如下图所示

其中一级key值为对应PA的PA ID,二级key值为对应band,内容为温度,以及对应频点高低温补偿值(delta_L,delta_H),请参考TX频率补偿表说明。

须知:

  • PA ID(即图中“0x1366”)为PA的PRODUCT_ID(高8bit)和MANUFACTURE_ID(低12bit)组成的20bit数。
  • 对应PA模组校准时,CalibrationExtra中填入频点数量和值必须和校准设置的频点数量和值一致,否则,校准会报错。

TRX频补精度调整

“calibration_module/CalibrationClass.py”文件中,可以在“rx agc gain cali”和“tx power cali”接口对应位置设置Band的频补测量点数n,整个频带将从频带最低信道以“Bandwidth/n”的固定频率间隔依次测量agc增益或者功率补偿值,如图1图2所示。

图 1 rx agc gain cali接口

**图 1** rx agc gain cali接口

图 2 tx power cali接口

**图 2** tx power cali接口

说明: 频补测量点数应≤50,且应为奇数(num的值为偶数)。测量点数增加会一定程度上影响校准时间,数量过大可能会导致与仪表无法成功交互。

校准文件导出与解析

  • 校准文件导出请参见《HiDiTingV100 BurnTool工具 使用指南》“导出镜像”章节,并选择“RadioConfig.tlv”作为导出的Flash(.hbin)文件,将该Flash文件放在“user_tools”目录下,并执行该目录下“tools.py”文件,根据提示选择对应的操作,即可在“user_tools/output/”路径下生成与Flash(.hbin)文件同名但不同后缀的校准(.cal)文件。
  • 将cal文件转换成tlv文件的流程与方法与上述一致。将cal文件放在“user_tools”目录下,并执行该目录下“tools.py”文件,选择编号1的cal_to_tlv功能后,选取对应的cal文件,即可在“user_tools/output/”路径下生成对应的tlv文件。

图 1 校准文件转换格式

**图 1** 校准文件转换格式

产测一拖多

CMW500配置方法

CMW500仪表一拖多需要仪表拥有license,并打开多仪表模式,此时主窗口可以看到两个sub inst。

图 1 CMW500菜单窗口

**图 1** CMW500菜单窗口

调整“calibration_test_configuration.py”中的仪表配置。

当前脚本控制CMW500的第一个子仪表,则设置inst0;若控制第二个子仪表则设置inst1。

图 2 脚本配置

**图 2** 脚本配置

说明: 仪表端口INSTRUMENT_PORT根据实际链接的仪表端口填入。com1、com2为一组,com3、com4为一组,两组端口分别独立,不能选择同一组中的两个端口进行一拖多。

CMW100配置方法

CMW100一拖多可以选择将仪表分为2、4、8个子仪表,选择后能在主窗口看见各个sub inst。

图 1 CMW100菜单窗口

**图 1** CMW100菜单窗口

调整“calibration_test_configuration.py”中的仪表配置,在RFTOOL中调整inst选择对应的子表,如图2所示。

图 2 脚本配置

**图 2** 脚本配置

图 3 工具配置

**图 3** 工具配置

说明:

  • CMW100选择划分子仪表后,会将现有的8个端口以组的形式划分: 以一拖四为例,8个端口会被划分为4组,每两个相邻的端口为一组,即com1、com2为一组子表inst0;com3、com4为第二组子表inst1...以此类推。 同一组的端口从组内第一个端口INSTRUMENT_PORT记为1,以一拖四为例,com1对应inst0,INSTRUMENT_PORT=1;com2对应inst0,INSTRUMENT_PORT=2;com3对应inst1,INSTRUMENT_PORT=1;com4对应inst1,INSTRUMENT_PORT=2...以此类推。
  • 每组端口相对独立,选择一拖多的端口不能选择同一组子表内的端口,以一拖二为例,可以选择com1~4的其中一个端口和5~8的其中一个端口进行一拖二;同理一拖四可以选择com1、com3、com5、com7。
  • 一拖多并不要求必须使用完所有的端口,在一拖多模式下也可以仅对一个EVK进行校准综测,只需要注意当前选择的配置符合上述的要求即可。

综测其他功能

选择综测项

“calibration_test_configuration.ini”文件中“TEST_CASE_SELECT”参数可以选择综测时需要的综测项,默认全部开启,不需要选择的综测项请将其置为False。

图 1 选择综测项

**图 1** 选择综测项

综测带宽选择

“radiotest_module/RadioTestMain.py”文件中“ul_bw_index”参数可以修改综测想要选择的带宽,index取值3或5,分别对应带宽10MHz或20MHz。

图 1 综测带宽选择

**图 1** 综测带宽选择

最小功率门限设置

“radiotest_module/RadioTestMain.py”文件中“min_power_threshold”(红框所示)参数可以调整最小功率的门限。

图 1 最小功率门限设置

**图 1** 最小功率门限设置

说明: 协议上规定最小功率需要小于-39dBm,由于测量存在波动,因此默认留有1dB余量。

数据输出格式

说明: 请至少选择一种输出格式,否则综测会报错。

“calibration_test_configuration.ini”文件中“TEST_OUTPUT_FORMAT”参数可以控制综测数据输出到excel表格的格式。

图 1 数据输出格式设置

**图 1** 数据输出格式设置

输入格式如图2图3所示。

图 2 display1

**图 2** display1

图 3 display2

**图 3** display2

最大功率回退

“calibration_test_configuration.ini”文件中“TEST_MPR_SELECT”参数可以选择综测在默认满RB下最大功率回退1dB,默认为False关闭。

图 1 最大功率回退配置

**图 1** 最大功率回退配置

金板线损点验

线损配置文件说明

图 1 线损配置文件

**图 1** 线损配置文件

表 1 线损配置文件参数说明

参数名称

说明

单位

dl_earfcn

下行频点号。

-

ul_earfcn

上行频点号,与下行频点号对应。

-

use_rx

校准综测使用的Rx线损值。

dB

use_tx

校准综测使用的Tx线损值。

dB

制作金板

  1. 准备好用于制作金板的单板和环境,在“PathLossTable.txt”文件中use_rx和use_tx两列配置好可靠的线损值,并完成校准。
  2. 将“calibration_test_configuration.py”中的CABLE_LOSS_CAL_MODE置为1。
  3. 通过“calibration_test_configuration.ini”中的CALIBRATION_BAND_SELECT字段选择频段。
  4. 运行“user_tools/CalPathLoss.py”文件。

说明:

  • 已经是金板的EVK无法重新制作金板和重新校准,如果需要重新制作金板或重新校准,需要通过AT发送命令AT+NGOLD=00清除金板数据。
  • 建议使用相同型号的仪表制作金板和测量线损。

测量线损

  1. 准备好金板和环境。
  2. 将“calibration_test_configuration.py”中的CABLE_LOSS_CAL_MODE置为0。
  3. 通过“calibration_test_configuration.ini”中的CALIBRATION_BAND_SELECT字段选择频段。
  4. 通过“calibration_test_configuration.py”中的CABLE_LOSS_DELTA_LIMIT配置线损门限。
  5. 运行“user_tools/CalPathLoss.py”文件。

温补数据提取

功率温补值提取

  1. 准备好单板,放入温箱(常温25℃),完成校准,并保持环境,不要挪用新生成的校准文件。
  2. 打开“user_tools/TxTempCompMea.py”文件,如图1所示设置bands和温度并执行文件,等待完成即可。

    图 1 设置bands和温度

    **图 1** 设置bands和温度

  3. 更改需要测量的温度(无顺序要求),等到温箱温度到达指定温度后,重复2,直至所需温度点均测量完成。

  4. 打开“user_tools/TxTempCompCal.py”文件,配置好bands和常温设定值,执行文件。温补测量的最终结果将存放在“user_tools/data.json”文件中。

    功率温补值提取配置

  5. 打开“user_tools/TxTempCompLoad.py”文件,使用脚本将提取的温补参数从“data.json”文件中直接写入校准文件对应的温度补偿表中。

    打开“user\_tools/TxTempCompLoad.py”文件,使用脚本将提取的温补参数从“data.json”文件中直接写入校准文件对应的温度补偿表中

    其中bands参数代表需要将温补表中的哪些band进行写入;temps参数代表需要将哪些温度点的参数写入温补表中,一般使用默认配置即可。temps中选取的温度点不要超过10个。

  6. 运行温补回填文件后,需要手动键入温补表序号,范围为1~4。此序号必须与该单板对应PA在PA TABLE中的index一致,否则无法匹配上对应的温补表。

    运行温补回填文件后,需要手动键入温补表序号,范围为1~4。此序号必须与该单板对应PA在PA TABLE中的index一致,否则无法匹配上对应的温补表

说明:

  • 后续模组如果需要使用更新温补参数后的校准文件,则需要将修改同步到SDK当中。
  • 操作方法参考“校准准备”章节中的须知。

DCXO温补系数提取

根据厂家提供的批量温漂数据提取平均值,拟合出频偏(ppbillion/4)关于温度(t-25)的一元三次多项式,所得到的一、二、三次项系数左移16位取整,填入PA配置表中的xo coef,其常数项为通用参数配置表中的FreqErrorScaled,在产线校准时会作为残留频偏校准出来(每个单板有差异)。提取步骤示例参见配套射频校准交付包中的“DCXO温度系数计算”步骤;使用前应从正式交付渠道获取与工具版本匹配的附件。

其他自定义功能

“common_module/Custom.py”文件提供产品适配扩展接口。使用产测工具时,应根据产线输入、产品版本管理和日志平台要求实现对应接口。

解析命令行传入参数

解析命令行传入参数

命令行入参-STRING=(或扫码枪输入)需要解析成IMEI_STR和SN_STR,解析成功将“prase_passed”置True。该接口在校准综测前会被调用。

IMEI、SN和版本号检查

IMEI、SN和版本号检查

变量说明如下:

  • imei_id、sn_id为模组已经写入的IMEI号和SN号。
  • product为脚本记录的版本号。
  • IMEI_STR、SN_STR为外部传入(或扫码枪传入)的IMEI号和SN号。
  • cgmr为从模组读取的版本号列表。产品适配接口应在一致性检查前完成版本号查询并填充该变量。

用上述变量进行一致性检查时,检查失败请将“check_passed”置为“False”。

该接口在校准综测前会被调用。

过站检查

过站检查

  • 过站检查接口是用于用户通过校准、综测是否成功的结果来执行用户自定义功能的接口。
  • 当MODE_SELECT只选择了校准或综测其中一个时,过站检查接口只会调用MODE_SELECT选择的对应的接口;MODE_SELECT选3时则两个接口都会调用。
  • 将需要校准或综测成功后调用的自定义功能放在过站检查接口的if分支,需要失败时调用的功能则放在else分支,无论校准综测结果成功与否都需要调用的部分放在if分支之前。

日志打包和上传

日志打包和上传

  • 如果需要开启日志打包和上传功能,将UPLOAD_ENABLE置为True:
    • 通过UPLOAD_ADDRESS配置的地址将校准综测生成的日志和数据打包成压缩包的形式再上传到指定地址,只支持本地上传。
    • 压缩包的命名以imei和sn和时间戳命名,命名后缀可以通过pass或者fail来判断该次校准综测的结果成功与否。
    • 校准综测流程开始前会检查UPLOAD_ADDRESS是否可以访问,若不可访问则会报错。
    • 若要上传的地址为网络IP地址,IP前面的格式为双斜杠;若为本地地址则在单引号内修改为绝对路径即可。