论文部分内容阅读
能够实时处理接收到的数据是一个雷达显示控制系统的基本要求,结合早期的开发经验,通过VxWorks来实现与外部数据的接口并进行数据处理是非常合适的选择;在此基础上,需要不断满足使用方对系统显示性的需求,开发出更加友好的图形界面,同时将显示功能模块化,便于软件项目的前期管理和后期维护,缩短界面的开发周期。在以前的图形界面设计中,往往通过VxWroks媒体库组件WindML来进行开发,其2D的显示效果与已经不能满足当下的使用要求,即使可以购买WindRiver公司的ZINC插件改善效果,但是其面向过程的编码模式也限制了新开发模块的通用性。WindML所欠缺的正是Qt所拥有的优势。在此背景下,本文开发了一个基于VxWorks嵌入式实时操作系统和Qt技术的雷达显示控制系统,不仅实现了雷达数据的串口/网络接收与发送、数据记录与回放、人机交互、视频开窗显示、数据处理、图形界面更新等功能,还在类多媒体的显示效果的基础上满足了系统实时性的需求。首先,本文对雷达显示控制系统进行了需求分析,对雷达显示控制系统进行需求分析,对系统功能需求进行用例建模,同时分析系统的性能、可靠性、安全性、维护性等非功能需求和设计约束,确定系统需求规约。接着对系统进行硬件与软件的架构设计,将系统划分为网络接收模块、网络发送模块、串口接收模块、记录模块、回放模块、数据处理模块、画面刷新模块、操控处理模块、视频显示模块等九大模块。并设计了11个任务,通过主任务创建看门狗和其他子任务,在数据和操控的驱动下形成多任务并行的工作模式。其次,进行了关键技术的研究。(1)研究提出VxWorks和Qt混合编程技术,解决了Qt主线程无法通过信号量和消息队列与VxWorks直接进行通信的问题,在Qt中创建子线程,VxWorks通过信号量和共享内存机制完成与Qt子线程的交互,Qt子线程通过信号-槽机制完成与Qt主线程的通信。(2)研究提出强实时的共享内存的多任务的协调运行机制,合理分配并行任务等级,减少多余信号量,避免了死锁、饥饿和优先级反转的问题。(3)研究提出62.5ms内实时显示的保证技术,根据数据的重要程度对其进行分时处理,根据显示对象的范围对画面更新进行分块处理,构建合理的画面更新机制与容差机制,避免了多帧数据同时用于刷新的问题。接着本文通过流程图与核心代码详细设计了九大模块,通过编译BLP工程生成引导文件,通过编译DKM工程生成目标码,通过编译VIP工程生成包含目标码和驱动的VxWorks镜像,将系统集成在VxWorks,并部署到既定硬件平台。最后,本文设计了一系列测试用例对系统进行功能测试;通过实测数据分析和集成的测试工具System Viewer进行了系统性能测试;通过走查、静态分析和工作流程拷机的方式进行了系统可靠性测试。目前系统已通过了所有的测试,成功在国产车载小型化雷达车中安装实施。