APP下载

飞艇综合处理机校验码自动生成软件设计*

2024-03-05岳佳欣

山西电子技术 2024年1期
关键词:校验码处理机飞艇

邢 浩,史 岩,岳佳欣

(航空工业西安航空计算技术研究所,陕西 西安 710065)

0 引言

载人飞艇是一种可操纵的浮空飞行器,它依靠气囊内封闭的氢气或氦气产生浮力,并通过发动机来推进其在空中的持续飞行,具有良好的机动性和稳定性。目前载人飞艇已广泛应用于航空运输、应急救援以及商业旅游等多元场景中。综合处理机(Integrated Processor,IP)作为飞艇航空电子系统的重要组成设备,它主要用于连接相关外部设备和综合显示器,同时提供各路数据的收发功能。

随着民用载人飞艇技术的不断发展,综合处理机软件(Integrated Processor Software,IPS)的功能越来越复杂。为了保证飞艇航电系统的可靠性、稳定性和安全性,必须对IPS进行全方位和多层次的测试[1-3]。由于综合处理机需要与其他外部设备互连,为了验证IPS的功能是否符合要求,需模拟各种外设来产生测试激励,并发送给综合处理机进行处理。在测试激励构建过程中,数据校验码的计算是必不可少的环节之一。校验码可以保证数据在传输过程中的准确性,因此它对IPS测试的实现起到十分关键的作用[4-5]。综合处理机与各种外设之间的信息交互通常需要使用多种校验方式,这就造成了每种激励的校验码计算方法各不相同,为了提高测试效率,本文提出了一种面向飞艇综合处理机的校验码自动生成软件设计方法。在测试激励构建过程中,此软件很好地解决了校验码计算困难的问题,而且为测试人员提供了友好的人机交互界面,通过选择特定的校验方式即可自动生成对应的校验码,节省了大量的人力和时间成本。此外,该软件只需要进行少量改动即可应用于同类设备的测试,具有很好的通用性。

1 校验码自动生成软件概述

1.1 综合处理机校验码简介

为了验证IPS的功能是否符合要求,必须构造各种测试激励对综合处理机进行充分的测试。每类测试激励均由激励头、有效数据、校验码三部分组成,如图1所示,其中校验码可以保证数据在传输过程中的准确性,对测试激励的构造起到非常关键的作用。

图1 综合处理机测试激励组成

数据校验的基本原理就是在M位二进制数据序列之后附加R位二进制校验码,从而构成一个总长度为N=M+R位的二进制序列,附加在数据之后的校验码与数据序列之间存在某种特定的关系,若数据在传输过程中受到干扰,数据序列中的某一位或某些位发生错误,这种特定的关系就会被破坏,因此通过检查这一关系就可以实现对数据正确性的检查。飞艇综合处理机与各种外设之间的数据传输共有3种不同的校验方式,这3种方式均以累加和校验为基础,累加和校验是一种被广泛采用的错误检验编码,在通信系统中得到了广泛应用。

1.2 校验码自动生成软件的基本功能

飞艇综合处理机校验码自动生成软件(以下简称CAGS软件)拥有友好的人机交互界面,并且将测试激励的3种校验码计算方法进行了集成,用户只需输入测试激励的有效数据部分,并选择该激励的校验方式,然后点击‘计算校验码’按钮即可自动生成对应的校验码。校验码产生后,在CAGS界面上点击‘激励生成’按钮即可自动生成完整的测试激励。同时该软件也支持校验码自动保存功能,可以将每条激励的校验码以excel或文本形式自动保存到本地。总之,CAGS软件很好的解决了测试激励构建过程中校验码计算困难的问题,节省了大量的人力和时间成本,其功能组成如图2所示。

图2 CAGS软件基本功能组成

2 校验码自动生成软件的开发工具选择

目前CAGS软件的开发工具主要有MFC、Qt以及PyQt等。MFC由微软公司开发,它可调用的类中包含了大量Windows句柄封装类,以减少应用程序开发人员的工作量。但MFC存在一些明显缺点,比如MFC不能跨平台,程序只能运行在Windows系统,不能运行于Linux等开源系统,这就限制了MFC在工程中的广泛推广。基于上述特点,CAGS软件的开发未使用MFC。

Qt是一款基于C++的跨平台GUI库,它包含跨平台类库、集成开发工具和跨平台的IDE。Qt是完全面向对象的,主要用于GUI程序的开发;同时Qt也是跨平台的,它适用于Windows、linux等多种操作系统。而PyQt是一种基于Qt图形程序框架的Python接口,由一组Python模块构成,它是一个创建GUI应用程序的工具包,由Phil Thompson进行开发,目前已经发布了PyQt3、PyQt4和PyQt5三个主要版本,其中PyQt5.14是目前最新版本。PyQt5的主要特点如下:

1) 对Qt库进行完全封装;

2) 使用信号/槽机制进行通信;

3) 提供了一整套进行GUI程序开发的窗口控件;

4) 可以跨平台运行在主要的操作系统上,包括Linux、Windows等;

5) 支持使用Qt的可视化设计器进行图形界面设计。

PyQt将Python和Qt融为一体,PyQt允许使用Python语言调用Qt库中的API,这样做的最大好处就是在保留了Qt高运行效率的同时大大提高了开发效率。相对于C++语言来说,Python语言的开发效率要更高,而且其语法简单、易学。正是基于上述特点,CAGS软件采用PyQt5进行开发。

3 校验码自动生成软件的的实现

3.1 人机交互界面的创建

CAGS软件具有友好的人机交互界面,测试人员可根据实际需求来自动生成测试激励的校验码。CAGS的主界面由校验码自动生成模块、测试激励生成和保存模块两部分组成,具体构成如图3所示。

图3 CAGS软件界面的组成

由图3可知,校验码自动生成模块由三部分组成,分别是测试激励输入、校验方式选择以及校验码计算。其中测试激励输入部分由Pyqt的TextEdit文本框控件组成,用来输入激励的数据部分(包括激励头和有效数据);校验方式选择部分由ComboBox下拉组合框控件组成,共有3种校验方式供用户选择;而校验码计算部分由PushButton功能按钮来实现,通过绑定自定义的槽函数来实现校验码的计算。

测试激励生成和保存模块由PushButton按钮来实现,用户可以将生成的校验码与激励的数据部分进行组合,从而生成完整的测试激励,并通过点击‘保存至本地’按钮来完成激励储存功能,支持Excel表格和Text文本两种存储方式。

3.2 校验码自动生成功能的实现

在飞艇航电系统中,共有10种外设与综合处理机互连和通信,它们分别是左/右发参采集器、压控计算机、飞控计算机、矢量控制器、航姿控制器、左/右油量传感器、电台以及应答机。综合处理机与各种外设之间的信息交互共有3种校验方式,其中左/右发参采集器、航姿控制器、左/右油量传感器、电台以及应答机属于校验方式1,它们的校验码为字节累加和以256为模的补码;压控计算机和飞控计算机属于校验方式2,其校验码为字节累加和,且校验码位于测试激励最后一个字节;而矢量控制器属于校验方式3,其校验码为字节累加和,且校验码位于测试激励倒数第二个字节,这3种校验码的计算方法如图4所示。

图4 综合处理机校验码的计算原理

由图4可知,对于校验方式1,首先需要将测试激励的数据部分Sdec转化为16进制Shex,然后对各个字节进行累加求和得到Ssum,并将Ssum以256取模得到Smod,最后计算Smod的补码就可得到最终的校验码,在构造测试激励时将校验码置于最后一个字节即可。对于校验方式2和3,只需将测试激励的数据部分Sdec按字节累加求和就可以得到最终的校验码,这两种校验方式的主要区别是校验码在整个测试激励中的位置,其中校验方式2中的校验码位于测试激励的最后一个字节,而校验方式3中的校验码位于测试激励倒数第二个字节。

4 软件应用效果

CAGS软件的测试运行主界面如图5所示。经过多次测试,CAGS软件运行稳定,在飞艇综合处理机测试中,能够自动生成各类测试激励的数据校验码,从而保证数据在传输过程中的准确性和有效性。同时,整个软件具有较好的人机交互性,通过点击界面按钮即可完成相应的功能,测试人员使用起来非常方便,明显提高了测试效率。此外,CAGS软件具有一定的通用性,后续根据不同软件的额外需求,也可对程序进行少量适应性改动即可适配。

图5 CAGS软件的测试运行主界面

5 结论

校验码自动发送软件对飞艇综合处理机测试效率的提高起到了十分关键的作用,该软件具有友好的人机交互界面,可以自动生成各类测试激励的数据校验码,明显提高了测试效率,并节省了大量的人力和时间成本,在实际测试工作中取得了很好的效果。此外,该软件具有较好的通用性,只需要对程序进行少量适应性改动即可满足其他设备的测试要求,同时也提高了测试设备的复用率。

猜你喜欢

校验码处理机飞艇
污泥干化处理机翻抛轴的模态分析
一种改进的wRR独立任务调度算法研究
基于VPX标准的二次监视雷达通用处理机设计
基于Excel实现书号校验码的验证
派个飞艇去火星
能卷铅笔的废纸处理机
飞艇的前世今生(下)
飞艇的前世今生(中)
飞艇的前世今生(上)
基于FPGA的循环冗余校验码设计