一种高低温频率自动测试系统的设计与实现
2021-12-02彭佳丽仲海东王炯翊
彭佳丽,仲海东,王炯翊
(无锡中微爱芯电子有限公司,江苏无锡214072)
1 引言
随着制造技术和集成电路的发展,目前的芯片中已有振荡器集成。由于构成振荡器的MOS器件和电阻都极易随着电压和温度产生一定的变化,在不同的电压和温度下会导致芯片频率偏差。在使用芯片进行方案开发时对其频率精度有要求,因此在进行芯片可靠性评估时需要在不同的电压和温度条件下对频率进行全面评测。
本文介绍了一种基于STM32F107的高低温频率自动测试系统,能够通过上位机配置所需的电压条件和温度条件,配合高低温箱和等精度频率测试方法,在不同的温度和电压测试条件下实现芯片的频率测试。该自动测试系统对比人工测试具有高精度、高效率、低误差等优势,并且大大增加了样本容量,减少了测试成本。
2 方案设计
选择STM32F107作为主控电路,搭配供电模块、温度检测模块、主控与待测电路接口模块、主控与上位机通信模块、DPS模块和待测MCU模块共同构成硬件部分。软件部分则选用面向对象的计算机编程语言C++语言开发。高低温频率自动测试系统通过上位机进行电压和温度参数配置,上位机与硬件系统利用串口进行数据传输,将设置好的参数值发送到硬件系统进行处理。在整个过程中,待测电路和温度检测模块需放在高低温测试箱中,通过温度检测模块进行温度测试,电源选择模块进行电压控制,实现不同温度和不同电压下的频率测试。本系统中主控模块对频率信号的处理采用等精度测量原理,通过合理使用定时器和外部中断来实现。
2.1 硬件设计
高低温频率自动测试系统结构如图1所示,可分为4个部分,分别为仪器设备、待测芯片、硬件系统和上位机软件。其中硬件系统细分为主控模块、供电模块、温度检测模块、主控与待测电路接口模块、主控与上位机通信模块、电源选择模块和待测MCU模块。
图1 高低温频率自动测试系统结构
主控模块选用STM32F107,这是意法半导体推出的全新STM32互连型(Connectivity)系列微控制器中一款性能较强的产品[1],集成了多种高性能工业标准接口[2-3]。
供电系统采用三端稳压器对精密电源输入的电压进行稳压,为不同的模块提供对应的电压。放大器采用正负9 V供电,主控电路采用3.3 V供电。主控与上位的通讯硬件选用USB接口,通过CH340G电路实现硬件系统与上位机的通讯。
电源选择模块主要用来设置待测电路的电压测试条件,根据上位机的设置值进行配置,原理图如图2所示。
图2 电源选择模块原理
上位机通过串口向主控模块发送温度和电压配置信息,主控电路接收上位机信号并转换为数字信号发送给DA模块,转换为电压信号。对电信号进行放大处理后将得到的稳定电压提供给待测芯片进行供电。温度检测模块用来实现温度与电信号的转换,本系统中选用常用的数字温度传感器DS18B20来进行温度控制,该传感器拥有体积小、抗干扰性强、精度高等优点。
2.2 等精度频率测量
常用的频率测量方法有两种:频率测量法和周期测量法。频率测量法是在单位时间内对被测信号的脉冲数进行计数,然后求出单位时间内的脉冲数,即为被测信号的频率。周期测量法是先测量出被测信号的周期T,然后根据频率f=1/T求出被测信号的频率。根据测量原理很容易发现频率测量法适合于高频信号测量,周期测量法适合于低频信号测量,但二者都不能兼顾高低频率精度相同的测量要求。
等精度频率测量又叫做多周期同步测量技术,主要由被测信号计数器、参考信号计数器、同步闸门控制器、采样时间控制器以及运算单元组成,最大特点是在整个被测频率范围内都能达到相同的测量精度,并且与被测信号本身的频率值无关。等精度频率测量原理如图3所示。
图3 等精度频率测量原理
两个频率的计数是在同一个同步闸门控制下进行的,被测信号频率为:
其中nX和ns分别为被测信号计数值和参考信号计数值,fX和fs分别为被测信号频率值和参考信号频率值,TC为实际测量采样时间。根据式(2)可以看出fs、nX和ns是引起fX变化的主要因素。TC是在被测信号fX同步下产生的,所以对被测信号的计数nX将不产生正负1计数误差[4-5]。若忽略fs的影响,对式(2)进行微分处理可得:
可以看出被测频率的测量精度主要取决于fs和TC,与fX无关[6]。只要fs足够大,在整个被测频率范围内均能达到相对最高精度。
等精度频率测试的测量控制相对比较复杂,在本系统中通过合理使用定时计数器并且准确读出计数器的值来实现等精度的频率测量,不需要额外增加控制器件。使用2个计数器分别对被测信号和标准信号进行计数,测量过程中的同步控制采用外部中断实现,流程框图如图4所示。
图4 频率测量流程图
程序初始化时将T0和T1设为计数方式,将用于测量的触发端设为上升沿触发。在频率低于2000 Hz时通过加长TC时间来降低低频信号误差,提高测试精度。使用此频率测试方案得到的测试结果如表1所示。
以上测量误差主要是由闸门时间T的不确定引起的,该参数的准确度主要依赖于所提供的标准频率的准确度。若标准频率为fc,分频系数为k,则有:
则:
式(5)和(6)中的负号表示由Δfc引起的闸门时间的误差为ΔT。通过以上公式可以知道闸门时间的准确度等于标准频率的准确度。表1中的测试结果最大偏差为5.8‰,主要与标准频率的准确度有关,若采用准确度更高的石英振荡器则测试结果偏差会减小。
表1 等精度频率测试结果
本系统针对通用MCU电路进行不同电压和不同温度下的频率测量,该测量分辨率可以基本满足待测电路的频率精度要求。
2.3 上位机软件
在控制系统中一般将受用户控制的机器例如PC机等称作上位机。上位机发送命令给下位机即硬件系统,下位机根据所收到的命令转化成控制信号直接控制相对应的设备。上位机不能直接对所需要的信号进行监控和测量,所有的数据采集均由下位机完成。在本系统中采用Visual C++进行上位机开发,Visual C++是一个功能强大的面向对象的可视化集成编程系统,具有自动生成程序框架、类管理方便灵活等优点[7-10]。本系统采用Microsoft基本类(Microsoft Foundation Classes,MFC)来实现用户交互界面,与下位机采用串口通讯实现数据传输。
上位机人机界面分为4个部分,分别是串口设置、参数设置、实测值显示以及控制按钮,上位机人机界面如图5所示。
图5 上位机人机界面
用户可以在0~6 V的范围内设置电压值,在-60~+125℃的范围内设置温度值,设置完成后点击应用按钮,上位机会对设置值的范围进行检查,若设置值不合理会在显示面板中给出提示。串口和参数设置完成后点击开始按钮,高低温频率自动测试系统开始对待测电路的频率进行测试,每个温度点测试20次取平均值作为该温度下的频率,得到的频率值通过显示面板显示,点击保存数据按钮可生成对应的Excel文件。
3 测试分析
高低温频率自动测试系统通过串口通讯将配置值发送给硬件系统,其中温度范围为-60~125℃。温度的控制通过高低温箱和温度检测模块DS18B20实现,主控电路定时与DS18B20进行通讯,DS18B20采集高低温箱的温度并反馈给主控电路。待测电路的电压通过上位机电压编辑框设置,范围为0~6 V。上位机将电压信息传输给主控,主控将收到的信息处理生成数字信号并发送给DA模块,转换为电压信号,对电信号进行放大处理后将得到的稳定电压给待测芯片供电。测试完成后数据可保存为Excel文件,对测试数据进行处理得到频率随温度和电压的变化曲线。
使用本自动频率测试系统对待测电路频率进行测试,频率随温度的变化和频率随电压的变化分别如图6和7所示。其中图6为固定电压下的频率温度曲线,横坐标为温度,变化范围是-40~90℃,步进为10℃,纵坐标为实测频率值,分别测试了5 V工作电压下的频率温度曲线和3 V工作电压下的频率温度曲线。图7为固定温度下的频率电压曲线,温度为25℃,横坐标为电压,变化范围是2~5.5 V,步进为0.5 V,纵坐标为实测频率值。
图6 频率随温度变化曲线
4 结论
本文介绍了一种高低温频率自动测试系统的设计与实现,以及系统实现的上下位机结构。通过等精度频率测量的方法实现对不同温度和不同电压下的频率的测量,得到待测电路频率随温度和压力变化的曲线。实验结果表明该系统操作简单方便、运行稳定可靠、测试精度高。