刘飞
(中国电子科技集团第29所,四川成都,611731)
关键字:通用测试;FPGA;微波测试
一个电子系统通常包含接收天线、微波前端(放大)、微波下变频、信号处理、信号上变频、信号发射、发射天线等部分。我们把这些各个功能部分叫做某分机或模块,各个分机(模块)都需要各自解决自己的测试问题,以便后续总体部门进行集成。
我们将常用的分机(模块)的接口梳理如下表1所示。
表1 常见的分机模块接口表
从上面的统计看,被测试设备的射频输入都可以用传统通用信号源、输出可以用频谱仪,这些仪器也可以程控来作为自动测试部分,这个方面借助现在的网线、GPIB控制现在都能实现很好的通用化,这部分在自动测试领域讨论得非常多。但是其中的数字类接口由于定制通信协议、定制控制时序等,很难实现通用化。虽然市场有很多第三方板卡(如数字IO,数据采集卡,串口卡)等能够部分实现产生时序,控制等功能,但是离通用化还有一段距离。本文就提一种把数字模块实现通用化的设计思路。
多年的工程实践,接口部分技术发展快,外部接口变化也快,对外部接口的种类数量要求有不确定性,我们提出一个较为激进的办法,叫物理接口饱和设计。大致就是统计一些可能会测试到的对象的具体接口形式、控制总线种类,采用其中最多的一种组合并且保留一定余量。
图1为一种接口设计需求,其中包括如RS232、TTL电平接口、LVTTL电平接口、LVDS、MLVDS、SRIO等接口。其中需要数量都按照可能需要数量的最大值来设计硬件,以保证硬件端口足够,为后续FPGA编程留下空间。
图1 通用化的测试硬件接口部分
主要核心为两个可编程的FPGA器件,一个用flash加载固定软件,负责和计算机通信;另一片FPGA采用PC计算机配置软件,在这一片上设计各种测试接口,有些接口通过FPGA直接实现,有些通过接口芯片连接实现(如上图1),用FPGA编程来实现对各种接口的灵活使用。
表2 各种接口用的芯片一览
板卡和计算机配合,在计算机上通过通用的总线如PCI总线(USB总线)来实现计算机和板卡之间的通信。再将计算机的命令通过FPGA转译成和对应端口相匹配的数据格式和命令,发出给被测试设备。在数据接收时正好相反,各接口接收到被测试件发送的数据,在转换格式通过PCI总线(USB总线)转给计算机显示或记录。这样实现计算机和被测试件之间的通信。
采取方法:FPGA软件采用多个,为了能在一个测试台快速的切换多个被测试对象,在PC计算机端进行多个FPGA软件的在线配置,满足一个工作台在多个测试设备需求下的灵活切换。在线配置FPGA的硬件设计示意如下图图2所示。
图2 FPGA的在线配置硬件示意图
要对FPGA进行动态配置,必须正确连接M2、M1、M0三个配置模式管脚,硬件上正确连接CCLK、PROG_B、DIN、CS_B、RDWR_B、INIT_B、DONE、BUSY等信号,其中CCLK、PROG_B、DONE等信号要进行相应的上下拉处理。
在操作人员需要更换FPGA程序是,在人机交互界面上选择新的软件,通过总线下发给XC2VP40芯片,芯片将BIT文件格式进行转换,并且产生加载时序(如图3),加载给XC4VFX60,这样就在线更新了FPGA软件,适应新的测试对象的需求。
图3 在线配置FPGA时序
在通用化的指导思想下,我们实际设计了多款基于PCI总线的测试板卡,如下图4为其中之一。
图4 通用测试板卡
此板卡将TTL,LVTTL、LVDS,RS232串口总线等通信需求融合到一起,实现了多个产品共用。实例中的产品没有实现软件的在线配置,但是效果已经非常不错,测试常见种类的模块覆盖率可以到80%左右。更新的具有重加载功能的办卡也已经设计下图。预计测试覆盖效果会高于95%。
在测试通用性领域,大家对通用仪器,程控仪器等讨论比较多,但是在实际过程中,我们发现除了通用仪器控制,软件需要通用之外,还有数字板卡的通用设计讨论较少。虽然很多第三方测试产品中有类似的产品,很难实现高灵活性的使用。作者在硬件设计领域从业,根据多年工作总结,提出一点这方面通用设计思路,算是抛砖引玉,供大家一起讨论。