基于某航空电子设备的自动测试系统设计与实现

各层实现功能如下:
硬件层 安装有实现具体测试功能的适配卡、数据采集卡和串口,这些硬件设备是测试实现的核心,其通过J18C型电连接器,D型接口等与被测设备相连。
物理接口层 主要是指主机内采集卡提供的资源接口,另一方面它们主要通过ISA或PCI总线访问测试主机的板卡。同时物理接口层还包含相关接口卡I/O操作的“软性驱动”。
硬件驱动层 提供上层软件访问板卡硬件的方法,是软硬件通讯的桥梁。测试系统中,所有驱动都采用WDM编程技术。
软件支持层 它是系统设计和实现的核心,涉及到对硬件访问功能封装的API函数,对测试系统界面支持的导出类,对数据处理的算法、对硬件功能的封装(初始化,中断句柄传递,重置等),对动态连接库的设计布置等。各个功能模块负责各功能的实现并最终交给主线程综合控制模块来处理,其模块化设计为软件增添了灵活性和可靠性等诸多的优势。
用户应用层 为用户提供简捷易用的可视化图形界面操作流程,并减少了误操作的可能。应用层当中值得注意的几点分别是:自动测试报表的生成、保存和打印需要用到CView类提供相关的成员虚函数来实现,文字与表格线条输出采用CDC类实现,测试数据的保存需要用到CDocument类提供的服务对存储串行化成员函数Serialize(CArchivear)的重载来实现,而帮助文档视图则是通过HtmlView基类来实现的。整个软件视图设计采用多视图构架,特点是清晰且易操作。
3.3软件设计流程
这里介绍了测试系统手动调试测试的一般流程。测试的一般步骤包括软件初始化,测试系统自身软硬件自检,被测设备状态切换的测试,观测返回数字信号和模拟信号波形,模拟电机驱动信号控制电机旋转,最后保存结果。其简要的软件流程如图3所示。而对于自动测试来讲,实质上就是按照一定的工作流程和被测设备的工作状态切换来进行自主自动化的测试,总体的过程与手动调试测试相似,并生成测试报表进行记录保存。
3.4软件设计相关关键技术
3.4.1 面向对象与文档视图技术
文档和视图分离是MFC编程推荐的一种程序结构。在这种结构下,视图类处理跟界面有关的内容,而文档类处理跟存储有关的内容,两者通过GetDocument函数相关联。这样处理给编程带来了很多好处,首先这种方法强调了模块化的思想,两个类中分别处理不同的任务,而需要数据交换时再相关,因此提高了程序的模块化;其次两个类中都有很多各自的支持类和函数,特别是视图类,这样就不互相影响,最大方便地实现每个类的功能。
3.4.2 多线程相关技术
测试软件实现中采用多线程处理技术来调度多达4个组件共同测试的流程,同时数据采集与波形显示的同步也采用了多线程间的同步来进行协调。当然这些线程具体调度由操作系统完成,但从用户角度来看是同时并行运行的。Windows环境中系统通过时间片轮流的方式实现多线程,CPU为每个线程分配一个时间片,每个线程从被激活起,运行到时间片被耗尽为止,此时另一个线程运行。软件设计时只需要将用户界面消息循环和数据采集、处理分配在不同线程上,就可以避免计算机长时间不响应操作的问题。在软件具体设计过程中,使用了测试线程和界面线程。界面线程为主控线程,控制测试线程的开启、挂起和结束,提供消息循环并负责界面的生成和程序与用户的交互。测试线程为工作者线程,实现具体的测试功能,包括数据采集、数据处理和数据入库等。另外,系统自检测和自动测试模块也单独各占有一个线程从而大大提高了测试系统的运行效率。

评论