第2节 应用方案
应用方案:
使用NI公司的LabWindows/CVI软件和PCI 6251多功能数据采集卡,运用NI的Data Socket技术来搭建一套高效的并行测试平台。
正文:
一、背景与目标:
同类产品的测试设备开发都是依靠引进消化和改进;这类产品都是采用专用的模拟电话用户测试仪器来测试;经过估算,这类测试设备测试POLT-A板的时间要大于40分钟。
在经过开发小组成员的认真分析和充分讨论,我们将本次测试设备的目标值定义为:POLT-A板测试设备效率为单板测试时间10分钟。当然这个10分钟不是凭空想象的,通过小组成员对几种方案的分析和对比,采用NI公司PCI 6251多功能数据采集板卡,运用LabWindows/CVI编写并行测试主控程序和功能测试程序,通过NI DataSocket技术进行主控进程和功能测试进程之间的协作和仪器资源的配置管理,采用NI-VISA管理USB控制板是最优选择方案,它具有成本低廉、测试效率高、可展性强、操作简便的优点。
使用NI公司的LabWindows/CVI软件和PCI 6251多功能数据采集卡,运用NI的Data Socket技术来搭建一套高效的并行测试平台。
正文:
一、背景与目标:
同类产品的测试设备开发都是依靠引进消化和改进;这类产品都是采用专用的模拟电话用户测试仪器来测试;经过估算,这类测试设备测试POLT-A板的时间要大于40分钟。
在经过开发小组成员的认真分析和充分讨论,我们将本次测试设备的目标值定义为:POLT-A板测试设备效率为单板测试时间10分钟。当然这个10分钟不是凭空想象的,通过小组成员对几种方案的分析和对比,采用NI公司PCI 6251多功能数据采集板卡,运用LabWindows/CVI编写并行测试主控程序和功能测试程序,通过NI DataSocket技术进行主控进程和功能测试进程之间的协作和仪器资源的配置管理,采用NI-VISA管理USB控制板是最优选择方案,它具有成本低廉、测试效率高、可展性强、操作简便的优点。
二、硬件系统构成:
POLT-A板功能测试设备主要由两大部分组成,分别是工控机系统和测试机架部分。图1是整个测试设备的硬件系统框架。
POLT-A板功能测试设备主要由两大部分组成,分别是工控机系统和测试机架部分。图1是整个测试设备的硬件系统框架。
1、工控机系统:
除了必要的显示器、键盘、鼠标等通用部件,工控机系统的主板相对于普通PC机是有特殊要求的,它拥有12个PCI插槽。由于是4个槽位同时测试,所以就必须安装4块NI公司的PCI 6251多功能数据采集卡来保证4个槽位同时能够单独的发送测试信号或测量反馈波形。为了满足工控机能同时和4块UUT进行串口通信,所以需要在工控机内安装一块4串口卡。而且工控机还需要通过USB口和测试接口主控板GTIF板进行通信,所以需要外连一个4口USB HUB,将工控机的USB接口扩充至4个。
除了必要的显示器、键盘、鼠标等通用部件,工控机系统的主板相对于普通PC机是有特殊要求的,它拥有12个PCI插槽。由于是4个槽位同时测试,所以就必须安装4块NI公司的PCI 6251多功能数据采集卡来保证4个槽位同时能够单独的发送测试信号或测量反馈波形。为了满足工控机能同时和4块UUT进行串口通信,所以需要在工控机内安装一块4串口卡。而且工控机还需要通过USB口和测试接口主控板GTIF板进行通信,所以需要外连一个4口USB HUB,将工控机的USB接口扩充至4个。
2、测试机架部分:
为了节约成本,测试设备的夹具不需要重新制作,只是将产品的机架进行改装,延伸了侧板和相应的部分,使之成为测试机架。在该机架内部需要安装测试接口板LTCS板和GTIF板,而且需要固定直流环路保持器等。其中测试接口电路板LTCS主要包括测试所需的各种负载,衰减电路,切换矩阵等。GTIF板则是一块通过工控机USB口控制的测试主控板,它能提供8路AD转换,8路DA转换,8路继电器切换以及两个RS-232串口等硬件资源。由于模拟电话用户的很多项测试是需要测量大功率信号的,不能直接和PCI 6251多功能数据采集卡进行连接,所以选择了一款性能良好的直流环路保持器和相应的辅助衰减电路,以保证输入到多功能数据采集卡的信号都在它的量程范围内。而且直流环路保持器和衰减电路的接入和断开是受LTCS板上的切换矩阵灵活控制的。
由于POLT-A板是48路模拟电话用户板,其中线路部分的测试是非常关键的,它直接关系到我们打电话的声音效果和通话质量。而线路部分测试中两个非常重要的指标是线路的回波损耗和纵向平衡。由于设计的是并行测试系统而且为了节约成本,我们没有采用专用的模拟电话用户线路测试仪器,而是按照相关标准自己搭建的测试电路。在从电路设计、器件选择、印制板Layout等各方面综合考虑后,还需要有一个分辨率高,可以程序灵活控制,能够快速相应的标准测试激励信号和一个高测量精确度、宽测量范围的模拟信号采集模块。在小组成员的分析对比后,发现NI的M系列多功能高速数据采集卡PCI 6251是最合适的,它具有16路16位模拟输入,采样率最高达1.25MS/s,2路16位模拟输出,24条数字I/O,2个32位计数器,对于UUT的一些时钟信号的模拟,控制信号的模拟、状态信号的读取都是非常方便的。
为了节约成本,测试设备的夹具不需要重新制作,只是将产品的机架进行改装,延伸了侧板和相应的部分,使之成为测试机架。在该机架内部需要安装测试接口板LTCS板和GTIF板,而且需要固定直流环路保持器等。其中测试接口电路板LTCS主要包括测试所需的各种负载,衰减电路,切换矩阵等。GTIF板则是一块通过工控机USB口控制的测试主控板,它能提供8路AD转换,8路DA转换,8路继电器切换以及两个RS-232串口等硬件资源。由于模拟电话用户的很多项测试是需要测量大功率信号的,不能直接和PCI 6251多功能数据采集卡进行连接,所以选择了一款性能良好的直流环路保持器和相应的辅助衰减电路,以保证输入到多功能数据采集卡的信号都在它的量程范围内。而且直流环路保持器和衰减电路的接入和断开是受LTCS板上的切换矩阵灵活控制的。
由于POLT-A板是48路模拟电话用户板,其中线路部分的测试是非常关键的,它直接关系到我们打电话的声音效果和通话质量。而线路部分测试中两个非常重要的指标是线路的回波损耗和纵向平衡。由于设计的是并行测试系统而且为了节约成本,我们没有采用专用的模拟电话用户线路测试仪器,而是按照相关标准自己搭建的测试电路。在从电路设计、器件选择、印制板Layout等各方面综合考虑后,还需要有一个分辨率高,可以程序灵活控制,能够快速相应的标准测试激励信号和一个高测量精确度、宽测量范围的模拟信号采集模块。在小组成员的分析对比后,发现NI的M系列多功能高速数据采集卡PCI 6251是最合适的,它具有16路16位模拟输入,采样率最高达1.25MS/s,2路16位模拟输出,24条数字I/O,2个32位计数器,对于UUT的一些时钟信号的模拟,控制信号的模拟、状态信号的读取都是非常方便的。

图1 硬件架构

图2 MMPTCS系统架构
在测试中,需要NI-PCI 6251板卡的模拟输出口能够输出标准的300Hz -10dB、1020Hz -10dB、3400Hz -10dB的测试信号,并且测试程序需要控制选择开关和PCI 6521卡读取电压值再经过相应软件计算得出该用户线路的回波损耗值。
用户线路的振铃音信号和计费音信号的频率测量也是由PCI 6251来完成的,这两种信号都超出了板卡的输入量程,当然在LTCS接口板上有相应的信号精确衰减网络。把需要测量的信号调理到0~5V之内,然后输入到PCI 6251板卡在测试程序的控制下完成相应信号的测量。
三、软件系统构成:
POLT-A自动测试设备使用NI公司的LabWindows开发整个测试软件。LabWindows开发GUI(图形用户界面)效率很高,同时也能非常方便地对数据采集卡和仪表进行编程。整个并行测试软件的架构非常类似Client-Server结构,通过使用NI公司的进程间通信机制—DataSocket Server软件,可以建立主控程序与测试模块之间的进程间通信。
整个软件分为四个部分:
并行测试主控程(MMPTCS)
并行测试模块调用的DLL
(Test DLL)
并行测试模块初始化程序(CoreStartup)
并行测试模块运行容器 (ClientMain)
POLT-A自动测试设备使用NI公司的LabWindows开发整个测试软件。LabWindows开发GUI(图形用户界面)效率很高,同时也能非常方便地对数据采集卡和仪表进行编程。整个并行测试软件的架构非常类似Client-Server结构,通过使用NI公司的进程间通信机制—DataSocket Server软件,可以建立主控程序与测试模块之间的进程间通信。
整个软件分为四个部分:
并行测试主控程(MMPTCS)
并行测试模块调用的DLL
(Test DLL)
并行测试模块初始化程序(CoreStartup)
并行测试模块运行容器 (ClientMain)
1.MMPTCS测试系统
测试模块一开始并不知道使用哪些资源,也不知道自身对应哪个测试槽位。每一个测试模块,对应唯一的槽位号、串口号、GTIF板和数据采集卡。首先,由CoreStartUP告知ClientMain,再由ClientMain告知TestDLL测试模块编号,并且将配置信息存放在配置文件。然后,由测试模块读取配置文件,通过模块编号在配置文件中索引到资源信息。每个进程对应一个测试槽位。
主控程序与测试模块建立正确的通信的前提是主控程序必须能够识别不同测试模块,并对不同的测试模块进行控制。如图2。
测试模块一开始并不知道使用哪些资源,也不知道自身对应哪个测试槽位。每一个测试模块,对应唯一的槽位号、串口号、GTIF板和数据采集卡。首先,由CoreStartUP告知ClientMain,再由ClientMain告知TestDLL测试模块编号,并且将配置信息存放在配置文件。然后,由测试模块读取配置文件,通过模块编号在配置文件中索引到资源信息。每个进程对应一个测试槽位。
主控程序与测试模块建立正确的通信的前提是主控程序必须能够识别不同测试模块,并对不同的测试模块进行控制。如图2。
2.并行测试控制模块
由于MMPTCS系统是一个多测试模块并行运行的测试控制系统。因为种种原因多个测试模块之间有可能无法做到完全独立,他们可能需要同时使用一些资源。例如为了节省成本,可能多个测试模块之间必须共用一台测试仪表。由于这些资源大部分都只能互斥地被多个测试模块所使用,这就要求MMPTCS系统中存在一个功能模块,用于集中维护这些需要互斥共享的资源,并且集中管理这些资源的分配和回收,使多个测试模块能够有序的共享这些互斥资源。仪表资源的共享方案很多,例如,可以使用Windows API提供的进程共享机制,也可以使用通过主控程序统一管理。同时,借用了IP路由表的概念和数据结构,实现共享资源算法。
考虑到共享安全性,最终使用如下方案:通过使用测试模块对主控程序发送资源请求和释放指令,由主控程序统一调度资源的分配,释放资源必须由测试模块主动释放,然后通知主控程序进行回收。
由于MMPTCS系统是一个多测试模块并行运行的测试控制系统。因为种种原因多个测试模块之间有可能无法做到完全独立,他们可能需要同时使用一些资源。例如为了节省成本,可能多个测试模块之间必须共用一台测试仪表。由于这些资源大部分都只能互斥地被多个测试模块所使用,这就要求MMPTCS系统中存在一个功能模块,用于集中维护这些需要互斥共享的资源,并且集中管理这些资源的分配和回收,使多个测试模块能够有序的共享这些互斥资源。仪表资源的共享方案很多,例如,可以使用Windows API提供的进程共享机制,也可以使用通过主控程序统一管理。同时,借用了IP路由表的概念和数据结构,实现共享资源算法。
考虑到共享安全性,最终使用如下方案:通过使用测试模块对主控程序发送资源请求和释放指令,由主控程序统一调度资源的分配,释放资源必须由测试模块主动释放,然后通知主控程序进行回收。
3.激励信号发生与数据采集分析
1) 激励信号发生:
原本考虑使用DDS方法来产生频率精度非常高的正弦波,由于考虑到成本、周期以及激励正弦波的频点数不多等诸多因素,决定不使用DDS方法,转而采用PCI 6251产生激励信号。
通过使用NI-DAQmx驱动程序,对PCI 6251模拟输出正弦波波形进行控制。使用PCI 6251产生的信号是通过描点法计算出来的离散点值序列,因此该信号的频谱特性与连续正弦波形会不同,增加了外部加低通滤波器进行平滑。
2) 数据采集分析:
使用PCI 6251采集到离散波形数据,然后在通过频谱分析得到幅值最大的谐波频率值。通过对每个周期样点值以及采样率的自适应计算,保证每次采样时间不超过0.5s,采样率一般为expected_freq的10~20倍,远远超过尼奎斯特采样定律要求的采样率。
POLT-A自动测试设备使用差分方式进行数据采集。差分测量系统可以检测任意类型的信号,不过要注意一下两点:
a, 差分测量本质是两个单端信号的叠加信号,所以,必须每个单端信号都要满足量程要求。
b, 差分测量需要用两个AI,PCI 6251上有严格的设定,一般为管脚号(N,N/2)为一对AI差分输入管脚。
1) 激励信号发生:
原本考虑使用DDS方法来产生频率精度非常高的正弦波,由于考虑到成本、周期以及激励正弦波的频点数不多等诸多因素,决定不使用DDS方法,转而采用PCI 6251产生激励信号。
通过使用NI-DAQmx驱动程序,对PCI 6251模拟输出正弦波波形进行控制。使用PCI 6251产生的信号是通过描点法计算出来的离散点值序列,因此该信号的频谱特性与连续正弦波形会不同,增加了外部加低通滤波器进行平滑。
2) 数据采集分析:
使用PCI 6251采集到离散波形数据,然后在通过频谱分析得到幅值最大的谐波频率值。通过对每个周期样点值以及采样率的自适应计算,保证每次采样时间不超过0.5s,采样率一般为expected_freq的10~20倍,远远超过尼奎斯特采样定律要求的采样率。
POLT-A自动测试设备使用差分方式进行数据采集。差分测量系统可以检测任意类型的信号,不过要注意一下两点:
a, 差分测量本质是两个单端信号的叠加信号,所以,必须每个单端信号都要满足量程要求。
b, 差分测量需要用两个AI,PCI 6251上有严格的设定,一般为管脚号(N,N/2)为一对AI差分输入管脚。
4.数据采集卡在并行测试中的共享
由于PCI 6251信号采集卡通过DMA方式将采集数据直接送至数据缓冲区。当一个Task正在进行数据采集的时候,其他Task不能同时要求PCI 6251卡进行数据采集。此时数据采集卡由DMA芯片主控,直至采集任务完成。因此,CPU无法向数据采集卡发送数据采集命令,只有当数据采集过程结束之后,控制权才会回到CPU这边。
因此,无法使用传统的仪器共享方式进行数据采集卡共享,在POLT-A自动测试设备中,设计了一种使用数据采集卡进行并行测试的方法,可以同时测试4块UTT,用以提高整个测试设备的并行效率。
并行测试共享方案:
PCI 6251多功能信号采集卡有32路模拟输入和16路模拟输出。同时对4个测试槽位的输入信号进行数据采集,然后分别由每个测试槽位的测试进行负责获取去采集的数据。
一共5个进程,4个测试进程负责获取对应测试槽位采集数据,另外1个数据采集进程同时对4个槽位进行数据采集,而且必须要将DataLayout设置为GroupByChannel。通过调用windows API定义3个信号量——Event Kernel Object来对进程同步。4个测试进程共享3个信号量和1个FileMapping Kernel Object。 3个信号量中,第一个信号量用于阻塞其他测试进程表明信号采集进程用于当前的测试槽位。第二个信号量用于阻塞其他所有进程,然后获取FileMapping对应的采集数据。第三个信号量用于通知获取令牌的进程数据已经采集完毕,可以读取采样数据。
FileMapping(内存映射文件)用于测试进程共享数据采集进程的采样数据。由于FileMapping是一个byte数组,需要将其强制类型转换位64位的Double型,因为数据采集的采样值是64位的Double型。
由于PCI 6251信号采集卡通过DMA方式将采集数据直接送至数据缓冲区。当一个Task正在进行数据采集的时候,其他Task不能同时要求PCI 6251卡进行数据采集。此时数据采集卡由DMA芯片主控,直至采集任务完成。因此,CPU无法向数据采集卡发送数据采集命令,只有当数据采集过程结束之后,控制权才会回到CPU这边。
因此,无法使用传统的仪器共享方式进行数据采集卡共享,在POLT-A自动测试设备中,设计了一种使用数据采集卡进行并行测试的方法,可以同时测试4块UTT,用以提高整个测试设备的并行效率。
并行测试共享方案:
PCI 6251多功能信号采集卡有32路模拟输入和16路模拟输出。同时对4个测试槽位的输入信号进行数据采集,然后分别由每个测试槽位的测试进行负责获取去采集的数据。
一共5个进程,4个测试进程负责获取对应测试槽位采集数据,另外1个数据采集进程同时对4个槽位进行数据采集,而且必须要将DataLayout设置为GroupByChannel。通过调用windows API定义3个信号量——Event Kernel Object来对进程同步。4个测试进程共享3个信号量和1个FileMapping Kernel Object。 3个信号量中,第一个信号量用于阻塞其他测试进程表明信号采集进程用于当前的测试槽位。第二个信号量用于阻塞其他所有进程,然后获取FileMapping对应的采集数据。第三个信号量用于通知获取令牌的进程数据已经采集完毕,可以读取采样数据。
FileMapping(内存映射文件)用于测试进程共享数据采集进程的采样数据。由于FileMapping是一个byte数组,需要将其强制类型转换位64位的Double型,因为数据采集的采样值是64位的Double型。
5.POLT-A并行测试软件界面
如图3(一组图片)。
如图3(一组图片)。




图3 软件界面
四、结论:
经过实测统计,POLT-A板功能测试设备的平均单板测试时间为9.75分钟,优于原来设定10分钟的目标值。而且它的经济效益也十分的明显,相对于采用专用模拟电话用户线路测试仪器,采用NI公司的多功能数据采集卡,运用Lab Windows/CVI编写并行测试主控程序和功能测试程序,通过NI DataSocket技术进行主控进程和功能测试进程之间的协作和仪器资源的配置管理,可以为公司前期设备的投资减少40多万,而且也大大节省了后期仪表校准费用等。
经过实测统计,POLT-A板功能测试设备的平均单板测试时间为9.75分钟,优于原来设定10分钟的目标值。而且它的经济效益也十分的明显,相对于采用专用模拟电话用户线路测试仪器,采用NI公司的多功能数据采集卡,运用Lab Windows/CVI编写并行测试主控程序和功能测试程序,通过NI DataSocket技术进行主控进程和功能测试进程之间的协作和仪器资源的配置管理,可以为公司前期设备的投资减少40多万,而且也大大节省了后期仪表校准费用等。
更多解决方案请访问ni.com/solutions


