基于DDS的分布式自动测试系统应用
2020-08-28武颖
武颖
(西南电子设备研究所,四川 成都 610036)
自动测试系统是指人极少参与或不干预的情况下,自动进行测量,处理并输出测试结果的系统。自动测试设备ATE技术发展十分迅速,其软件是整个测试系统的核心和关键,决定其工作的可靠性和稳定性。近十余年来设计一种能够实现测试仪器与测试数据、软件代码与系统资源相分离的通用软件架构, 成为迫切需求。随着计算机技术的飞速发展,各种应用系统的体系结构呈现出以网络为中心的趋势。文中在研究OpenSplice DDS 规范的基础上,分析了DDS的特点,利用其优点构建分布式测试系统。
1 数据分发服务OpenSplice DDS
1.1 OpenSplice DDS简介
OpenSplice DDS是DDS规范的一个实现,采用发布、订阅通信机制,建立全局数据空间。它是位于网络协议最上层的软件,它屏蔽底层网代码,代之以通用的、基于标准的应用程序接口API。通过API提供易于理解的基于发布、订阅的通讯模式。这种模式定义了两种基本的角色:
发布者:创建数据、命名将数据分发给订阅者;
订阅者:注册感兴趣的主题。
任意一个节点可以成为发布者、订阅者或两者皆是,可拥有多个主题。DDS处理所有的网络输入输出。用户可以把精力花在应用程序的设计上。
1.2 OpenSplice DDS特点优势
DDS网络架构采用P/S架构,如图1所示。传统C/S架构以一个对象为中心,其他节点之间无法直接通信,如图2所示。P/S架构如图3所示。无固定中心点,降低了通信节点之间的空间、时间耦合性,提供了灵活的服务质量(QOS)控制策略,解决了单点失效,服务瓶颈等问题。
图 1 P/S 模型
图 2 C/S 模型
图3 DDS模型
内存存储:每台计算机都有多个备份访问速度快。
便捷性:订阅者可以随时订阅主题。
灵活性:根据QoS可以采用UDP,TCP和组播等多种传输策略。
可扩展性:可以随时增加一个新主题。
可靠性:真正实现了全分布式结构,单点失效对系统功能无影响。
动态性:可以随时添加或删除节点。
扩展功能:可以随时增加一个新主题。
2 信号接收机测试系统应用
信号接收机自动测试系统,包括仪器控制节点,被测信号接收机控制节点,综合管理控制节点。根据需要各个节点的软件可以分布于不同计算机上。该软件平台主要完成如下几个功能,如图4所示。
软件组成:
(1)提供仪器类驱动程序控制函数:仪器类驱动程序是面向功能相似的同类仪器的控制函数集合。逻辑仪器到物理仪器的映射由仪器可互换内核根据测试资源控制数据库的定义实现。仪器资源界面如图5。
图4 软件平台架构
图5 仪器资源界面
(2)SUT适配器软件:此软件安装于与接收机连接的计算机上,主要负责对测试设备的通信。SUT适配器软件采用标准的协议格式,根据被测设备通信协议格式的不同。通过协议解析软件可不断扩展被测设备。SUT交互界面如图6。
图6 SUT交互界面
3 基于DDS的分布式系统的具体实现
发布者,创建数据,给数据命名,并将数据分发订阅者;订阅者,注册主题,在主题数据有变化时接收数据。任意一个节点可以成为发布者、订阅者或两者皆是。DDS工作流程如图7所示。我们对DDS的API进行了封装:初始化、注册主题、读取、写入。
(1)初始化DDS:创建参与者。用于创建一个可以利用数据收发的客户端。
(2)注册主题得到句柄:不同节点由于功能不同可定义不同主题,例如仪器控制节点主题为与仪器相关的频谱数据,信号源数据等。
图7 DDS中间件工作流程
(3)枚举主题:将测试的项目的主题枚举出来。应用于SUT的主题包括:自检、查询等。应用于仪器的主题为与仪器通信的指令。主题写入XML文件中,说明主题的ID,类型。
(4)读总线上相应主题数据:该接口是接收总线上订阅数据。不同主题的数据需要不同的处理程序对应。
(5)写主题数据到总线:该接口发送不同主题内容,包括发送的域名。
(6)注册发送实例:该接口将数据发送到订阅端,依据在XML文件中的主题定义通过回调函数依次注册,循环从队列中读取发送消息。
(7)订阅接收:该接口用于处理接收的数据,并将数据传送给本地程序模块。对不同的数据类型或消息需要不同处理函数对应。
4 关键技术
传统ATE为传统的C/S机构,各功能软件布置在一个计算机上。这样不能扩展,所有测试工作,数据处理依靠中心计算机。无法适用于大型测试系统。
图9 测试系统网络构成
DDS引入“全局数据空间”概念。满足多种用户需求,系统解耦合。如图9所示,不仅单平台的装备可以通信,多个平台的装备之间也可以通信。一个连接失败可以换用另一个,大大降低了网络延迟。
图10 测试系统网络构成
5 结语
测试技术的发展日新月异,设备集成化程度越来越高,人们对测试设备的要求也日益提高。本文将DDS数据分发服务应用于测试系统中,实现了分布测试系统中各个节点之间高效、高可靠的数据交互,使测试系统网络化。