引言
嵌入式系统是以应用为中心,以计算机技术为基础,能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。它是先进的计算机技术、半导体技术以及电子技术与各个行业的具体应用相结合的产物。在一些特定领域,它被要求能够实时响应外部的请求并处理相应的计算,最后把结果及时地反馈给用户或者外设。随着嵌入式应用领域的迅速扩大,人们对嵌入式软件质量提出了更高的要求,如何对日益复杂的嵌入式软件进行快速有效的测试成了目前的关注热点。
1 设计原理
1.1 系统需求
本文采用的被测试嵌入式系统如图1所示,是一套运行有飞行控制软件的嵌入式系统。它需要对飞行的姿态、轨迹做出计算,并通过总线的方式与舵机、发动机、导引头、惯性测量单元进行交互。测试的对象为该嵌入式平台上运行的飞行控制软件,其余的外设由测试系统仿真实现。本文主要讨论测试系统的设计与实现。嵌入式系统所使用的核心器件是DSP芯片,它拥有多种接口,有1路A/D、1路D/A、8路开关量、2路串行422接口、2路串行485接口。通过各种接口的通信完成要求的功能。系统运行后将长时间处于每隔5ms与外设完成1次交互的状态,其中1次交互包括2次请求收发数据(状态和控制数据)、传输所有开关量、A/D的数据。测试系统具体要求如下:首先,由工控机(由测试系统模拟,如图2所示)发送装订参数给嵌入式设备;接着,嵌入式设备根据装订参数进行初始化,并处于等待命令状态;工控机发送开始运行命令给嵌入式设备;嵌入式设备收到开始命令后,进入周期循环状态。
周期循环状态:
①嵌入式系统会向外部1号设备(由测试系统模拟)请求外设1控制数据,外部1号设备需要在2 ms内把数据发送给嵌入式系统。
②嵌入式系统会向外部2号设备(由测试系统模拟)请求外设2控制数据,外部2号设备需要在2 ms内把数据发送给嵌入式系统。
③上位机(由测试系统模拟)需要在发送完外设2的控制数据后的1 ms完成对嵌入式系统相关数据的采集。整个循环周期要求严格控制在5 ms以内。
通信流程如图3所示。
1.2 设计思想
设计一套能够符合需求要求的测试系统,对于测试系统有5点要求:第一,能够及时响应DSP以中断方式的数据请求;第二,有足够的性能解析数据,发送数据;第三,拥有良好的人机交互界面;第四,能够管理测试过的用例及结果;第五,能够灵活地增加故障,如通信故障、指令故障、数据故障。
较高实时性的要求使得在设计测试系统时大大增加了系统的复杂度和限制了可用的解决方案。Windows是一种分时 *** 作系统,处理中断的能力不是很稳定,有时候将不能满足嵌入式系统要求的条件。另外,分时 *** 作系统定时器精度差,漂移现象严重,存在隐含的不确定的线程调度机制。但是这里需要Windows *** 作系统上的一些高级特性,如功能强大的图形化接口(GUI)支持,支持多种开发工具及应用程序,众多廉价的第三方硬件及驱动的支持,丰富的Win32应用程序接口。
RTX(Real-tline Extenslon for Control of Windows),是向Windows平台加入了一个实时扩展子系统(RTSS)。它独立的基于抢占式的RTX线程调度机制允许RTSS线程优先于所有的Windows线程和中断,持续中断响应频率30 kHz以上,最大IST处理延迟不超过16μs;提供高速准确的实时时间响应,定时器最小周期为100μs,时钟最小分辨率为100 ns。特别适合于飞行模拟器、复杂视频监控系统、视频图像处理、转台、机器人、导d发射装置、火炮等典型的既有图形又要求实时的控制伺服系统。它是一种基于Windows平台的硬实时解决方案。Wirldows处理人机接口等通用GUI任务,实时扩展子系统用于进行实时控制和实时的数据采集,它们之间的数据传递机制通过进程间通信的方式,应用共享内存、信号量等机制实现。
综上考虑,给出两种设计方案。
2 设计方案
2.1 Windcws+RTX(工控机+接口卡)
Windows+RTX方案如图4所示,此种设计方案软件部分分为3层。
Windows用户界面层。在Windows *** 作系统上开发部分软件,负责数据库的管理、用例的添加、运行结果的保存,提供一套优秀界面呈现给用户。
RTX逻辑控制层。主要负责用例运行,实时地与被测系统交互,满足被测系统相关数据的请求,保存被测系统发出的状态数据。
外设驱动层。为了满足对系统100%的测试,还需要有测试系统与被测系统之间的通信接口卡。从硬件划分包括1台工控机、2块ISA总线RS422通信卡、2块PCI总线RS485通信卡、1块A/D卡、开关量采集卡、D/A卡。这些硬件板卡通过ISA、PCI总线的方式连接到测试平台里,测试平台管理所有板卡的驱动程序,使其与被测系统形成闭环。
这样,3层的软件结构就能够顺利地运行用例,实现对系统的完整的功能测试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)