基于航天测试技术的LXI多功能接口板卡设计

2014-11-07 07:23邓茂林姚静波解维奇
现代电子技术 2014年21期

邓茂林+姚静波+解维奇

摘 要: LXI作为一种较新的测试总线一经推出就受到了自动测试领域众多科研院校和企业的关注,并在众多领域取得了广泛应用。为了进一步提高航天测试系统的结构通用性、设备互换性,缩短测试系统搭建周期,填补航天测试系统LXI接口设计的空白,采用软硬结合的系统构架,提出了一种LXI多功能接口板卡的设计方案,总结了核心技术1588时钟同步协议和IVI驱动的实现方法,该设计方案对LXI总线技术在我国航天测试领域的应用具有一定的指导作用。

关键词: LXI总线; IEEE1588; 航天测试系统; IVI驱动

中图分类号: TN79+1?34; TP206.1 文献标识码: A 文章编号: 1004?373X(2014)21?0094?04

Design of LXI multi?functional interface card based on

aerospace automatic testing technology

DENG Mao?lin, YAO Jing?bo, XIE Wei?qi

(The Academy of Equipment Command and Technology, Beijing 101416, China)

Abstract: Aiming at improving the structure generalization and instrument interchange ability of the aerospace automatic test system, reducing inventory of the test system, and filling the blank of the LXI interface design of the aerospace automatic test system, the system architecture combining hardware and software is used. A design scheme of the LXI multi?functional interface card was put forward. The implementation methods of core technologies of IEEE1588 clock synchronization protocol and IVI driver was summed up in this paper. The design scheme will play an important role in application of LXI bus technology in the aerospace automatic testing system.

Keywords: LXI bus; IEEE1588; aerospace testing system; IVI driver

0 引 言

目前我国运载火箭测试主要采用CAMAC和VXI测试系统,经过多年的工程实践考验,这两种测试系统在测试精度和可靠性等方面能够满足测试项目的要求,然而,随着网络技术进步和分布式测试技术的提出,新的测试总线技术及时研发和有效地引入,将有利于构建更加灵活、功能齐全的航天测试系统,才能适应航天信息化进程对测试系统更高的要求。

LXI总线的出现是对传统测试系统构建的一种创新,是信息化进程中成熟网络技术在自动化测试领域中的应用。LXI总线的引入,将对于我国航天发射场产生重大的影响:

(1) 有利于电气测试系统的“三化”实现和一体化设计,实现测试过程的统一管理、统一监控,测试信息的综合处理等,顺应测试系统由单一测试体制向综合测试体制转化的发展趋势;

(2) 在较大程度上提高了测试功能,扩大了测试系统的覆盖范围,提高了测试的效率;

(3) 减少专用接口以及电气连接的复杂程度,加快系统构建速度,同时提高系统的结构通用性、设备互换性和可靠性;

(4) LXI测试总线的引入,将会使测试任务真正意义上实现行航天测试系统的网络化、远程化[1]。

由于LXI总线的优势明显,下一代航天测试硬件体系结构将以LXI总线仪器设备为主,其他总线仪器为辅。但是目前针对当前航天测控领域的专用LXI仪器设备太少,通用的LXI接口板卡设计应用还是一片空白。

为了填补航天测试系统LXI接口设计的空白,结合LXI总线技术优势,本文提出了一种LXI多功能接口板卡的设计方案,对LXI总线技术在航天测试领域的实用化具有重要意义。

1 LXI多功能接口板卡设计的总体设计方案

LXI多功能接口板卡利用模块化的设计思想,主要是实现LXI规范中规定仪器所具有的接口通用功能。在航天测试任务中,只需要在测试功能模块上接入LXI多功能接口板卡,就能实现基于LXI总线的自动测试系统的快速搭建与更新。

根据LXI仪器规范,此LXI多功能接口板卡属于LXI仪器中的B类仪器。按照LXI标准规定,设计的功能模块接口能够通过LAN和WEB浏览器完成与上位计算机的实时通信,支持VXI?11仪器自动发现功能。还需要提供同步API和IEEE1588精确时间基触发。由于LXI接口板卡具有的接口功能较为复杂,所以采用一个具有操作系统的嵌入式控制平台来实现。此控制平台以微处理器为硬件核心,使用通用网络接口芯片DP83640实现LAN接口通信,相关的软件应用程序运行在主流的Linux开源操作系统上。LXI硬件接口电路总体设计方案如图1所示。

图1 LXI接口总体设计方案

LXI多功能接口板卡以ARM9处理器S3C2451作为硬件系统的中心,S3C2451微处理器基于ARM926EJ构架核设计,运行主频率为400 MHz,运行最高频率可达522 MHz,具有很高的指令执行效率,支持Linux,Windows CE等多种主流的嵌入式操作系统,集成了丰富的标准的接口控制器,通过这些标准的接口可以扩展S3C2451的功能以符合LXI接口的要求。

外扩的FLASH存储器有16 MB容量,保存嵌入式Linux系统以及相关仪器的应用程序和数据,外扩的SDRAM存储器有64 MB容量,用于嵌入式Linux系统和应用程序的运行。E2PROM用于保存本模块的LAN配置信息、产品编号等系统信息。实时时钟模块通过I2C连接S3C2451,设置和读取系统的时间,该时间时钟系统同时为PTPd协议提供起始的时间基准。ARM9处理器S3C2451通过外部总线接口(EBI)完成与测试功能的通信。

这种设计方案的优势在于运用Linux操作系统上丰富的开源代码资源,能较快地缩短系统软件层的开发周期,部分系统所需软件只需进行简单的移植。

系统软件层设计的关键技术主要包括:IEEE1588协议的实现方案和LXI设备控制命令解析模块IVI驱动的设计。

2 IEEE1588协议的实现方案

IEEE1588即网络测试和控制系统的精密时钟同步协议标准,是LXI总线技术的核心。该协议可以提升系统网络中不同时钟精度设备的定时同步能力,将定时同步精度提高到亚微秒级别。IEEE1588时钟同步协议顺应了报文同步的发展趋势,借鉴了NTP和SNTP技术,通过迭代消除了往返的路径延时,利用在以太网媒体访问控制层(MAC)打时间戳的技术,消除了设备时间同步报文的不确定延时,很大程度地提高了系统时钟同步精度。使用IEEE1588进行时钟同步的设备,同步精度依赖与自身时钟的精度和整个网络环境,一般情况下使用标准常用的硬件设备时钟同步精度能达到小于100 ns的精度范围,在实验室条件下其时钟同步精度已经能达到小于10 ns的范围[2]。

在大型航天测试系统中,采用IEEE1588时钟同步协议能较好地满足测试任务的时钟同步需求,为大型测试任务中分布式测试系统的搭建提供了技术支持。

IEEE1588精密时钟同步技术目前主要有3种成熟的技术实现法案:纯软件的实现、纯硬件的实现、软件与硬件相结合的实现。

(1) 纯软件的实现

纯软件实现的IEEE1588时钟同步协议,是指时钟同步过程中频率差的计算,线路延迟的计算以及时钟同步报文的接收和发送、时间戳的产生,都是由软件来负责完成的。这种实现方式,时钟同步性能很难达到设计的要求,时钟同步精度一般只能达到毫秒级精度。其主要原因是因为IEEE1588同步报文在协议栈和存储转发过程中,受到不确定因素的影响太多,从而使得同步精度产生较大的抖动。主要的不确定因素包括软件系统的繁忙程度、网络的拥塞状况等等。

(2) 纯硬件的实现

纯硬件实现的IEEE1588时钟同步协议,是指时钟同步过程中频率差的计算,线路延迟的计算以及时间同步报文的接收和发送时间戳的产生,都是由硬件来负责完成。这种设计思路虽然可以极大地提高时钟同步精确度,使得得到的同步结果更接近于理想的状态,但是纯硬件实现会带来成本大幅提高的问题,这不利于IEEE1588时钟同步协议的推广使用。同时,硬件实现还存在缺乏灵活性的问题,不利于IEEE1588设备的升级和换代。

(3) 软件与硬件相结合的实现

为了实现IEEE1588时钟同步协议的高精度性,同时也为了控制成本,目前理想的实现方式就是软硬件结合方案。即由硬件芯片来负责打时间戳和获取时间戳的工作,然后再由软件来负责进行必要的计算。最后软件将计算的结果设置到相应的时钟上去。在报文中时间戳的时间点相当重要,因为这关系到精确性。一般的实现方法是在各种物理端口的PHY层,这个最靠近物理线路的模块来实现打时间戳的功能。此法案能消除IEEE1588报文在协议栈和存储转发过程中受到的不确定因素的影响,达到微秒级的系统时钟同步精度[3]。

本设计的IEEE1588协议实现方案采用软、硬件相结合的方式实现,如图2所示。

图2 IEEE1588协议实现框图

采用ARM9处理器S3C2451为处理核心,利用支持该协议的物理层芯片DP83640实现时钟伺服和同步报文时间捕获,完成时间戳的加盖工作,利用Linux应用程序实现协议状态机和报文封转。

DP83640是目前应用最为广泛的支持IEEE1588的物理层网络芯片硬件,提供飞秒级精度的内部硬件时钟伺服,可以以硬件方式为同步报文加盖时间戳。对IEEE1588应用程序,借鉴Linux系统中已有的纯软件实现方法,在开源的IEEE1588协议程序PTPd的基础上进行移植,大大缩短了LXI多功能接口板卡的开发周期。

PTPd协议是通过纯软件的方式实现IEEE1588协议,在协议移植的过程中,需要用C语言编写PTPd与DP83640芯片的接口函数,PTPd与实时时钟模块的接口函数,实现DP83640硬件时间戳对PTPd协议原有软件时间戳的替换,消除IEEE1588报文在协议栈和存储转发过程中受到的不确定因素的影响,提高系统时钟的时钟同步精度[4]。

3 LXI多功能接口板卡驱动设计方案

LXI多功能接口板卡要实现与各种功能模块的通信,在测试任务中不改变测试程序源代码、不进行源程序的重新编译或链接的条件下,完成测试体统的硬件仪器更换,关键在于完成IVI驱动程序的编写。

IVI(Interchangeable Vitual Instrument,可互换虚拟仪器)是编写测量仪器驱动程序的规范。其在VPP(VXI plug&play)的基础上为仪器驱动程序制定了新的编程接口标准,使用IVI驱动程序编写的测试应用程序可以完全独立于硬件和接口,即实现了仪器的无关性。IVI规范根据现有的测试仪器种类,规定了示波器、数字多用表、函数发生器、开关类等5个种类的仪器规范,对符合某个已定义的IVI仪器类的驱动程序,其提供的是该类规范定义的API,对于仪器特有的功能,驱动程序可以定制API,对于所有的IVI驱动程序来说,不管他是否符合规范,其都能够实现IVI固有功能规范中所规定的固有功能[5]。

IVI系统结构如图3所示。

图3 IVI系统结构

由图3可知,应用测试程序在工作时首先调用IVI类驱动器,IVI类驱动器再调用IVI专用驱动器来实现对硬件仪器的控制,因此即使测试系统中的具体仪器发生了变化时,只需要改变专用的仪器驱动(和其对应的具体仪器设备),不用对调用IVI类驱动器的测试程序代码做出修改。

IVI仪器互换性的关键在于,利用配置库中的测试仪器配置信息和IVI引擎在应用程序和驱动程序之间构建一个新的软件层,使应用程序与硬件独立开来。

在测试任务中,应用程序不再出现设备仪器的硬件地址,而是通过配置库中测试设备对应的逻辑名就能与IVI类规定接口建立联系,驱动程序IVI类规定接口不变,应用程序中对应操作的代码就无须改变,当驱动程序和仪器更换时,只需要更改测试设备对应的逻辑名。

因此驱动编写时首先为了实现对配置信息的获取和保存应该完成IVI配置仓的设计,在该配置仓中实现IVI类驱动库到IVI专用驱动库的功能映射。配置仓中主要包括几个IVI配置信息:功能模块的逻辑名称,属于的类型,专用库的前缀,信息备注以及模块专用驱动的位置。

IVI驱动程序流程图如图4所示。

图4 IVI驱动程序流程图

当用户编写测试程序时,首先要加入仪器种类的类库头文件,然后调用类库函数中的SpeificDriver函数,并把测试仪器对应的逻辑名作为函数参数传递给SpeificDriver函数。SpeificDriver函数能够依据传入的逻辑名找到该测试功能模块的对应的专用驱动库并加载。此后,用户就可以调用驱动程序库中相应的功能函数实现对此功能模块的实际控制。如果需要更换测试功能模块,用户只需要更改IVI配置仓中的配置信息,再次重新传入测试仪器对应的逻辑名参数并再次调用SpeificDriver函数加载对应的专用驱动库。

4 结 论

本文给出了一种LXI多功能接口板卡的软硬件设计思路。基于物理层芯片DP83640提出了一种软件结合方式的IEEE1588协议设计方案。最后结合IVI驱动系统结构标准,对LXI通用驱动程序的编程思路进行了详细的阐述。本文对LXI总线技术在航天测试领域的实用化具有一定的指导意义。

参考文献

[1] 同江.基于LXI总线的运载火箭测试技术研究[D]. 北京:装备技术学院,2008.

[2] MOHL D S. IEEE 1588 precise time synchronization as the basis for real time applications in automation [J/OL]. [2011?08?12]. www.docin.com...616.html.

[3] 曾庆华.精确时钟同步协议分析及实现[J].微型电脑应用,2012,28(10):41?44.

[4] 刘兆庆,潘邵武,张毅刚.基于DP83640的IEEE1588应用研究[J].测控技术,2012,31(9):80?83.

[5] 喻岚.IVI技术的研究与实现[D].成都:电子科技大学,2005.

[6] 陈峰,李自荣.基于LXI总线的自动测试系统方案设计[J].现代电子技术,2012,35(12):63?65.

[7] 许爱强,文天柱,李文海.基于IVI技术的仪器驱动程序开发[J].现代电子技术,2011,34(2):173?175.

IVI(Interchangeable Vitual Instrument,可互换虚拟仪器)是编写测量仪器驱动程序的规范。其在VPP(VXI plug&play)的基础上为仪器驱动程序制定了新的编程接口标准,使用IVI驱动程序编写的测试应用程序可以完全独立于硬件和接口,即实现了仪器的无关性。IVI规范根据现有的测试仪器种类,规定了示波器、数字多用表、函数发生器、开关类等5个种类的仪器规范,对符合某个已定义的IVI仪器类的驱动程序,其提供的是该类规范定义的API,对于仪器特有的功能,驱动程序可以定制API,对于所有的IVI驱动程序来说,不管他是否符合规范,其都能够实现IVI固有功能规范中所规定的固有功能[5]。

IVI系统结构如图3所示。

图3 IVI系统结构

由图3可知,应用测试程序在工作时首先调用IVI类驱动器,IVI类驱动器再调用IVI专用驱动器来实现对硬件仪器的控制,因此即使测试系统中的具体仪器发生了变化时,只需要改变专用的仪器驱动(和其对应的具体仪器设备),不用对调用IVI类驱动器的测试程序代码做出修改。

IVI仪器互换性的关键在于,利用配置库中的测试仪器配置信息和IVI引擎在应用程序和驱动程序之间构建一个新的软件层,使应用程序与硬件独立开来。

在测试任务中,应用程序不再出现设备仪器的硬件地址,而是通过配置库中测试设备对应的逻辑名就能与IVI类规定接口建立联系,驱动程序IVI类规定接口不变,应用程序中对应操作的代码就无须改变,当驱动程序和仪器更换时,只需要更改测试设备对应的逻辑名。

因此驱动编写时首先为了实现对配置信息的获取和保存应该完成IVI配置仓的设计,在该配置仓中实现IVI类驱动库到IVI专用驱动库的功能映射。配置仓中主要包括几个IVI配置信息:功能模块的逻辑名称,属于的类型,专用库的前缀,信息备注以及模块专用驱动的位置。

IVI驱动程序流程图如图4所示。

图4 IVI驱动程序流程图

当用户编写测试程序时,首先要加入仪器种类的类库头文件,然后调用类库函数中的SpeificDriver函数,并把测试仪器对应的逻辑名作为函数参数传递给SpeificDriver函数。SpeificDriver函数能够依据传入的逻辑名找到该测试功能模块的对应的专用驱动库并加载。此后,用户就可以调用驱动程序库中相应的功能函数实现对此功能模块的实际控制。如果需要更换测试功能模块,用户只需要更改IVI配置仓中的配置信息,再次重新传入测试仪器对应的逻辑名参数并再次调用SpeificDriver函数加载对应的专用驱动库。

4 结 论

本文给出了一种LXI多功能接口板卡的软硬件设计思路。基于物理层芯片DP83640提出了一种软件结合方式的IEEE1588协议设计方案。最后结合IVI驱动系统结构标准,对LXI通用驱动程序的编程思路进行了详细的阐述。本文对LXI总线技术在航天测试领域的实用化具有一定的指导意义。

参考文献

[1] 同江.基于LXI总线的运载火箭测试技术研究[D]. 北京:装备技术学院,2008.

[2] MOHL D S. IEEE 1588 precise time synchronization as the basis for real time applications in automation [J/OL]. [2011?08?12]. www.docin.com...616.html.

[3] 曾庆华.精确时钟同步协议分析及实现[J].微型电脑应用,2012,28(10):41?44.

[4] 刘兆庆,潘邵武,张毅刚.基于DP83640的IEEE1588应用研究[J].测控技术,2012,31(9):80?83.

[5] 喻岚.IVI技术的研究与实现[D].成都:电子科技大学,2005.

[6] 陈峰,李自荣.基于LXI总线的自动测试系统方案设计[J].现代电子技术,2012,35(12):63?65.

[7] 许爱强,文天柱,李文海.基于IVI技术的仪器驱动程序开发[J].现代电子技术,2011,34(2):173?175.

IVI(Interchangeable Vitual Instrument,可互换虚拟仪器)是编写测量仪器驱动程序的规范。其在VPP(VXI plug&play)的基础上为仪器驱动程序制定了新的编程接口标准,使用IVI驱动程序编写的测试应用程序可以完全独立于硬件和接口,即实现了仪器的无关性。IVI规范根据现有的测试仪器种类,规定了示波器、数字多用表、函数发生器、开关类等5个种类的仪器规范,对符合某个已定义的IVI仪器类的驱动程序,其提供的是该类规范定义的API,对于仪器特有的功能,驱动程序可以定制API,对于所有的IVI驱动程序来说,不管他是否符合规范,其都能够实现IVI固有功能规范中所规定的固有功能[5]。

IVI系统结构如图3所示。

图3 IVI系统结构

由图3可知,应用测试程序在工作时首先调用IVI类驱动器,IVI类驱动器再调用IVI专用驱动器来实现对硬件仪器的控制,因此即使测试系统中的具体仪器发生了变化时,只需要改变专用的仪器驱动(和其对应的具体仪器设备),不用对调用IVI类驱动器的测试程序代码做出修改。

IVI仪器互换性的关键在于,利用配置库中的测试仪器配置信息和IVI引擎在应用程序和驱动程序之间构建一个新的软件层,使应用程序与硬件独立开来。

在测试任务中,应用程序不再出现设备仪器的硬件地址,而是通过配置库中测试设备对应的逻辑名就能与IVI类规定接口建立联系,驱动程序IVI类规定接口不变,应用程序中对应操作的代码就无须改变,当驱动程序和仪器更换时,只需要更改测试设备对应的逻辑名。

因此驱动编写时首先为了实现对配置信息的获取和保存应该完成IVI配置仓的设计,在该配置仓中实现IVI类驱动库到IVI专用驱动库的功能映射。配置仓中主要包括几个IVI配置信息:功能模块的逻辑名称,属于的类型,专用库的前缀,信息备注以及模块专用驱动的位置。

IVI驱动程序流程图如图4所示。

图4 IVI驱动程序流程图

当用户编写测试程序时,首先要加入仪器种类的类库头文件,然后调用类库函数中的SpeificDriver函数,并把测试仪器对应的逻辑名作为函数参数传递给SpeificDriver函数。SpeificDriver函数能够依据传入的逻辑名找到该测试功能模块的对应的专用驱动库并加载。此后,用户就可以调用驱动程序库中相应的功能函数实现对此功能模块的实际控制。如果需要更换测试功能模块,用户只需要更改IVI配置仓中的配置信息,再次重新传入测试仪器对应的逻辑名参数并再次调用SpeificDriver函数加载对应的专用驱动库。

4 结 论

本文给出了一种LXI多功能接口板卡的软硬件设计思路。基于物理层芯片DP83640提出了一种软件结合方式的IEEE1588协议设计方案。最后结合IVI驱动系统结构标准,对LXI通用驱动程序的编程思路进行了详细的阐述。本文对LXI总线技术在航天测试领域的实用化具有一定的指导意义。

参考文献

[1] 同江.基于LXI总线的运载火箭测试技术研究[D]. 北京:装备技术学院,2008.

[2] MOHL D S. IEEE 1588 precise time synchronization as the basis for real time applications in automation [J/OL]. [2011?08?12]. www.docin.com...616.html.

[3] 曾庆华.精确时钟同步协议分析及实现[J].微型电脑应用,2012,28(10):41?44.

[4] 刘兆庆,潘邵武,张毅刚.基于DP83640的IEEE1588应用研究[J].测控技术,2012,31(9):80?83.

[5] 喻岚.IVI技术的研究与实现[D].成都:电子科技大学,2005.

[6] 陈峰,李自荣.基于LXI总线的自动测试系统方案设计[J].现代电子技术,2012,35(12):63?65.

[7] 许爱强,文天柱,李文海.基于IVI技术的仪器驱动程序开发[J].现代电子技术,2011,34(2):173?175.