• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 英语学习 > 正文

    基于QNX的多线程技术在船舶嵌入式操纵训练系统中的应用

    时间:2020-12-15 08:01:21 来源:雅意学习网 本文已影响 雅意学习网手机站


      摘 要: 为了解决船舶嵌入式操纵训练系统软件设计中出现的数据显示滞后、界面卡顿和系统死机问题,引入基于QNX操作系统的多线程技术进行系统软件程序改进设计。通过仿真实验对系统功能和实时性能进行了检验,结果表明:系统软件可以模拟船舶运动,实现训练功能;多线程程序改进设计有效解决了数据显示滞后、界面卡顿和死机问题,系统能够完成对模型的实时解算和状态参数的实时显示,數据更新时间在2 ms内,满足实时性要求。
      关键词: QNX; 多线程技术; 嵌入式训练系统; 程序设计
      中图分类号: TN967.7?34 文献标识码: A 文章编号: 1004?373X(2017)20?0091?04
      Abstract: In order to resolve the problems of data display delay, interface buffering, and system crash during software design of the embedded training system for ship maneuvering, the QNX OS?based multithreading technology is imported for design improvement of system software program. The simulation experiment was carried out to detect the function and real?time performance of the system. The results show that the system software can simulate ship motion and realize the training function, the design improvement of multithreading program effectively resolves the problems of data display delay, interface buffering and system crash, the system can accomplish real?time resolution of the model and real?time display of status parameters, and the data update interval (no more than 2 ms) can meet the real?time requirement.
      Keywords: QNX; multithreading technology; embedded training system; program design
      0 引 言
      船舶操纵系统是借助操纵装置改变或保持船舶的速度、姿态以及方向的系统,在船舶生命力及航行安全中占有极为重要的地位[1]。嵌入式操纵训练系统通过在原有操纵系统中加入嵌入式训练模块,将模拟训练与实装训练结合起来,有效地解决了传统训练方式不能同时兼顾训练真实性和训练实用性的问题,具有逼真、高效和低费用的特点,已成为各国关注的焦点[2]。
      在船舶嵌入式操纵训练系统软件设计中,由于模型解算计算量大、系统资源有限,系统软件经常会在某些特定条件下(如航速过大或转舵角度过大时)出现数据显示滞后、卡顿甚至系统死机现象。为了充分利用系统有限的资源,提高实时性能,实现训练功能,本文对某船舶嵌入式操纵训练系统进行了多线程程序改进设计。
      1 QNX操作系统与多线程技术
      QNX实时操作系统由加拿大QNX公司设计开发,特点是多任务、多用户、实时性强、扩展性好、可嵌入,目前已广泛应用于自动化、医疗机械、军事、通信、航空航天领域[3]。独特的中断处理方式,快速的上下文切换和基于优先级驱动的抢占调度方式,保证了其强大的实时性能。同时,QNX还具有良好的可移植性和自保护机制,符合 POSIX 标准, 这些都使得其在嵌入式实时领域得到了越来越广泛的应用[4]。
      多线程技术(Multithreading Technology)是一种让多个线程并发执行的技术,这种并发执行可从硬件或软件上来实现。它可以有效地提高资源利用率,使程序设计变得简单,程序响应更快[5]。QNX是一种支持多任务、多用户的分布式实时操作系统,支持多线程技术,符合POSIX线程标准[6]。QNX系统基于优先级的进程调度策略和快速上下文切换等特点,使得其在多线程应用方面具有得天独厚的优势,它已经在数据采集、实时监控和测试等对实时性要求十分苛刻的领域得到了成功应用[7]。
      2 船舶嵌入式操纵训练系统多线程软件设计
      2.1 QNX多线程库函数
      与其他系统不同,QNX操作系统并没有提供单独的线程库,而是在C语言函数库中包含了与线程相关的API函数,在程序编写时,通过添加头文件来实现线程的创建、取消和终止等功能[8]。常用的线程操作函数如表1所示。
      2.2 QNX线程的同步与互斥机制
      线程间的同步是指相互合作的线程在某个确定点上协调工作,只有多个线程均到达此点,才进行下一步的工作。线程间的互斥是指对共享资源的约束访问,同一时刻只允许某个线程访问临界资源 [9]。为了阻止线程间的竞争,QNX操作系统提供了多种同步和互斥机制,确保了某个时刻只有单个线程可以访问共享内存[10],表2为QNX系统同步互斥机制及相关实现函数。
      2.3 船舶嵌入式操纵训练系统多线程程序设计
      本文设计的船舶嵌入式操纵训练系统基于QNX系统开发,使用PhAB开发工具进行系统图形界面设计,利用QNX Momentics IDE软件进行系统主程序设计,操纵训练系统的基本结构如图1所示,可以实现操控数据的采集、运动模型的解算以及模拟训练管理等功能,繁多的任务要求使得系统的实时性问题凸显。在各类任务中,仿真模型的解算占用资源多、耗时明显,若不采用措施对计算机资源进行合理配置,则不能在规定的时间内完成仿真模型解算,满足不了系统实时性要求。

    推荐访问:操纵 多线程 嵌入式 船舶 训练

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章