刘 瑜 王卫玲 赵海冰
(1.海军航空大学 烟台 264001)(2.烟台市地理信息中心 烟台 264001)
为实现某型飞机测试系统各测试点位之间信息传递和信息交换,采用手持机(下称PDA)作为飞机驾驶舱内操作员的手持设备,实现飞机驾驶舱内操作员与地面测试操作员之间的信息交互。PDA是非常适宜自动测试中使用的硬件设备,其耗电量少、体积小、方便携带等因素使其成为自动测试中常用的手持终端。在本例中,主要完成以接收串口通信数据为触发机制的图片显示功能和以按键为触发机制的图片关闭功能,从而达到各测试点位之间指令的发送和接收。为保证数据和指令等信号传递的正确性,需要建立串口通信机制和信息校验机制。
PDA终端应用环境复杂多变,需要对环境噪声有出色的抑制能力,可以在更广范围内传送准确的语音和数据,保证在非常嘈杂的环境下也能通信自如[1]。按照测试需求,PDA需要有图片显示功能和确认功能,因此,根据测试系统整体硬件平台要求,以及PDA的功能需求,选用浪潮巧金刚1211型号手持计算机为PDA硬件平台。PDA硬件配置如表1所示。
表1 PDA硬件配置
软件平台包括编译环境和操作系统。目前,EVC4.0和VS.NET是两种常用的基于Windows CE的PDA应用程序开发方式。本例中采用基于EVC4.0开发WinCE应用程序,编译生成可执行文件在PDA上运行。由于采用铁电存储器与FLASH并用的两极架构进行数据采集,因此wince嵌入式系统十分适合指令图片的大容量存储。Windows CE系统应用程序的开发工具可选择Embedded Vi⁃sual C++ ,VS2005( Visual Studio 2005),VS2008等软件[2]。WinCE不支持重叠I/O,I/O操作函数在I/O操作结束前不能返回,这将挂起调用线程,直到I/O操作结束[3]。浪潮巧金刚手持终端安装的是wince5.0操作系统;工控机上采用evc4.0编译环境、利用C++语言编译生成可执行文件“comdisplay.exe”在PDA上运行。软件平台如表2所示。
表2 软件平台
根据项目需求,设计本例软件架构。本例中,首先由工控机发送代表指令的图片编号给PDA,PDA显示以该图片编号命名的图片,PDA操作员根据图片上的指示完成其在机舱内的相应操作并根据操作情况按下PDA上的按键,PDA判断键值,键值代表操作结果,将操作结果通过串行数据总线返回给工控机。在发送和接收数据前清除串口缓冲区和错误,可以防止线程的阻塞[4]。在实现的过程中,对串口工控机根据返回的数据判断机舱内操作员的工作完成情况,再进行相应的测试动作。由于没有硬件控制发送端和接收端的同步,因此,要保证数据的正确性通信参数必须一致[5]。
在数据通信中,CRC校验是非常灵活常见的差错校验方法,尤其适用于信息字段和校验字段的长度不确定的场合。采用CRC校验可完成数据传输检错,通过CRC校验算法进行计算,并将得到的校验码附在数据帧的末尾,当接收设备接收到数据帧后,执行CRC校验算法,来检验数据传输过程是否正确、完整。本例中采用CRC校验方式保证通信数据正确。根据需求分析建立相应的功能模块,包括串口通信功能模块、图片显示功能模块、按键响应功能模块和图片关闭功能模块四大模块。功能模块与实现方法如表3。
表3 功能模块与对应方法
通信系统设计流程图和对应方法如图1。
图1 通信系统流程图和对应方法
测试程序的开发可以采用面向信号语言或面向仪器语言。ATLAS是一种面向信号的高级语言,用于描述被测对象的测试需求[6]。采用GPTS3.0平台开发基于ATLAS语言的测试程序,对信号和测试资源的描述不针对特定类型的仪器,可以方便地描述系统配置“适配器连线表”虚拟资源等,与硬件平台无关,因此在GPTS3.0上开发的测试程序具有良好的移植性,可以广泛地应用于各种被测对象的功能测试[7]。
本例采用GPTS3.0作为开发平台,利用ATLAS语言开发测试程序,利用VC++6.0开发非ATLAS模块实现校验功能。
在有线传输中,数据串口异步通信方式主要是能够实现计算机数据传输的字节符号独立[8]。RS-232是标准化的采取单端通信方式进行传输的串行接口[9]。RS-232串口通信模块是通信系统的核心,实现对串口数据的发送、读取和校验功能。
PDA和程控交换机之间的通信由RS232总线实现。程控交换机和PDA通信前,应先打开串口,设置通信参数,包括缓存区长度和传送数据频率和时间间隔等,然后创建串口接收数据线程。PDA传递给程控交换机的串口数据传送首先送入程控交换机缓存区。若缓存中有未取走的串口数据,会造成干扰,因此在发送和接收串口信号前,应保证串口缓存为空。
PDA与程控交换机进行数据传送,需事先制订串口通信协议,主要涉及发送数据的格式,以便于发送和解析判断,协议中规定,数据由5个字节组成,并明确每个字节的含义。PDA与工控机数据传送通信协议如表4。
表4 PDA接收工控机数据的通信协议
PDA需要按键F1或F5按功能需求进行响应,PDA的按键响应分为三种模式,根据通信协议PDA接收来自工控机的5个字节的数据。模式的选择由第4字节的数据内容决定,第4字节数据为01H按模式1进行相应操作;数据为02H按模式2进行相应操作;数据为03H按模式3进行相应操作;这三种模式按键响应的前提是必须当前有图片显示中,防止按键误操作影响工控机的判断。PDA响应按键模式如表5。
表5 PDA响应按键模式表
工控机接收PDA传来的确认消息,串口传输过程可能存在错误,因此工控机测试程序在收到指令时,需要根据通信协议进行数据校验,本例中采用CRC校验。
由于ATLAS是面向信号的自动测试语言,AT⁃LAS本身无法进行CRC校验,因此,需要采用非ATLAS模块来实现ATLAS不能实现的功能,本例利用GPTS3.0平台提供的对非ATLAS模块的扩展来实现。采用C++语言编写动态链接库文件实现非ATLAS模块的CRC校验,作为对ATLAS测试程序的补充。CRC校验模块以非ATLAS模块的形式提供给ATLAS主程序,在主程序中的序言结构中使用INCLUDE语句连接该模块,在主程序结构中使用PERFORM语句执行该模块。由于非ATLAS模块需要在ATLAS程序中被调用,因此参数传递必须符合ATLAS标准。主程序中对非ATLAS模块的定义要用到关键词EXTERNAL。
定义实现CRC校验的非ATLAS模块'NOAT⁃LASMOD',其中定义了一个名为'CRC_TEST'的子程序,该子程序采用非ATLAS的方法实现,本例采用C++语言实现,主程序通过DLL文件链接到此模块中。ATLAS测试程序中,调用CRC校验模块'CRC_TEST'代码如下:
本实例中校验方式选用CRC校验方式,在设置通信协议中规定的参数时,PARITY-MODE应设置为无校验方式。校验参数设置ATLAS代码如下。
测试系统的通信线路独立于原测试系统,使用PDA作为通信工具,硬件上易于扩展。但是,信息校验模块采用非ATLAS模块实现CRC校验,非AT⁃LAS模块作为ATLAS测试程序的补充,扩展了AT⁃LAS测试程序的功能,但是由于非ATLAS模块实现方法特殊,因此不一定是可移植的,所以一般只有在必要时才使用。
本例中,系统的信息校验模块可以保证信号传送的正确性,对于校验失败的情况采取确认重传的机制。在实际测试中,为提高测试效率,保证测试过程顺利,要注意串口通信软硬件配合问题,从而减少重传的次数。测试中,通信链路通过闭合矩阵开关建立,在PDA与计算机RS-232串口传递信号前,应先闭合矩阵开关相应的行和列,建立PDA与工控机的通信通路,避免数据传送丢失[10]。
飞机的测试工作多在外场进行,本测试系统通过图片传递测试指令,清楚、准确,很好地解决了受风力噪声、口音误传、飞机起落噪声的干扰。整个测试过程中以及试用期间,未发生一起指令模糊或者错误的情况,信息校验安全准确,CRC校验完全满足测试需求,本例为外场测试工作的信息传递和校验提供了很好的思路。