(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf_第1页
(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf_第2页
(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf_第3页
(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf_第4页
(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(检测技术与自动化装置专业论文)无线电监测系统底层驱动的设计与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

叨川大学硕卜学位论文 无线电监测系统底层驱动的设计与应用 检测技术与自动化装置专业 研究生周群艳指导教师龚晓峰 随着当今世界无线电技术和业务的快速发展以及社会需求的日益增长 可 利用的频谱资源日显珍贵和紧张 空中电磁环境越来越复杂 无线电干扰时有 发生 无线电监测的任务日趋繁重 要维护好空中电波的秩序 科学地提高频 谱的使用效益 更好地利用有限的频谱资源 就必须不断完善监测手段 为管 理工作提供强有力的技术支持 无线电监测系统中 通常存在多台监测设备 相对应的通信接口也存在着 多样性 在全国短波监测网络系统的一期工程中 软件系统的底层驱动开发将 监测设备与自带的通信接口绑定 每一台监测设备对应于一个独立的驱动程序 当监测系统进行升级或硬件更换时 必须相应更换底层驱动 不利于代码复用 增加了系统的工作量 为改进一期工程存在的问题 实现同一个驱动程序中有效地兼容多监测设 备 多通信接口 本文提出了一个通用的无线电监测软件底层驱动设计方法 即我们的驱动软件设计必须满足可重用 易扩充 易维护的要求 首先 使用 动态链接库设计底层设备驱动 有利于不同的程序共享数据 资源以及程序的 模块化和日后的升级 其次 软件设计将监测设备与通信接口分离 设备与通 信接口可以任意组合 这样 当系统的硬件设备有所变动时 用最少的修改实 现系统升级或更换硬件设各以满足所设计的系统能够运行稳定 速度响应及时 的要求 与此同时 为了同时肩动不同功能的监测设备进行信号的采样 本论 文引入了多线程的概念 即各底层仪器采样线程和上层用户界面线程 上层界 面线程的独立 有利于开发人员采用自己熟悉的开发语言进行界面开发 这样 有利于代码的模块化 同时由于线程间的并行运行 极大地提高了系统的任务 哩型叁兰堡 兰垡丝茎一 处理和实时响应能力 本论文采用了动态链接库设计底层驱动 以c 类封装监测设备和通信接 口 给出了设计步骤和软件代码 并详细介绍t e s m b 监测接收机 基于l a n t c p i p 通信 的底层驱动的实现与应用 在实际工程应用中 本文给出的设计方法具 有相当的实用性 满足实时 灵活 运行稳定的要求 关键词 无线电监测局域网t c p i p 动态链接库设备驱动多线程 i i 即川大学硕十 学位论文 t h e d e s i g na n da p p l i c a t i o no f d e v i c es o f t w a r ed r i v e r i nr a d i om o n i t o r i n gs y s t e m m a j o r d e t e c tt e c h n o l o g ya n da u t o m a ti o ne q u i p m e n t g r a d u a t e z h o uq u n y a n s u p e r v is i o r g o n gx i a o f e n g s i n c et h ef a s td e v e l o p m e n to fr a d i ob u s i n e s sa n dt h ei n c r e a s eo ft h es o c i e t y s r e q u i r e m e n t t h ea v a i l a b l er a d i of r e q u e n c yr g s o u r c eb e c o m e sm o r ea n dm o r er a r i t y t h ee l e c t r o m a g n e t i s m se n v i r o n m e n ti nt h ea i rb e c o m e sc o m p l e xd a yb yd a y v a r i o u sr a d i oj a m m i n go c c u ra te v e r yt o r n s ot h et a s k so ft h er a d i om o n i t o r i n ga r e h e a v i e rt h a nb e f o r e w em u s ti m p r o v et h em o n i t o r i n gm e t h o ds ot h a tw ec a no r d e r t h er a d i oi nt h ea i r r a i s et h eu s ee f f i c i e n c yo ff r e q u e n c ya n dm a k eu s eo ft h e f r e q u e n c yr e s o u r c eb e t t e r i nr a d i om o n i t o rs y s t e m t h e r ea r eav a r i e t yo fc o m m u n i c a t i o n si n t e r f a c e s c o r r e s p o n d t om o r et h a no n em o n i t o r i n gd e v i c eu s u a l l y i nt h ef i r s tp r o j e c to f s h o r t w a v er a d i om o n i t o r i n gs y s t e m t h em o n i t o r i n gd e v i c ei sf l e dt oi t so w n c o m m u n i c a t i o ni n t e r f a c e i no t h e rw o r d s e v e r y m o n i t o r i n g d e v i c eh a so n e i n d e p e n d e n td r i v e rp r o g r a m s oi f w ew a n tt ou p g r a d em o n i t o r i n g s y s t e mo ra l t e rt h e h a r d w a r e w em u s tr e p l a c ed e v i c ed r i v e rp r o g r a mc o r r e s p o n d i n g l y i nt h a tw a y t h e t a s kb e c o m e sm o r ec o m p l i c a t e db e c a u s ep r o g r a mc o d e sc a nn o tb eu s e dr e p e a t e d l y t oa c h i e v et h e c o m p a t i b l eo fs e v e r a lm o n i t o r i n gd e v i c e sa n dc o m m u n i c a t e i n t e r f a c e s t h i sp a p e rp r o p o s e sad e s i g ns c h e m ef o rg e n e r a ld e v i c e sd r i v e ro fr a d i o m o n i t o r i n gs o f t w a r e f i r s t d l li su s e dt od e s i g nd e v i c ed r i v e r s ot h ed a t aa n dt h e r e s o u r c ec a bb es h a r e dw i t hd i f f e r e n tp r o g r a m s a n dt h eu p g r a d ea n dt h em o d u l eo f t h ep r o g r a mw i l lb em o r ec o n v e n i e n t s e c o n dt h em o n i t o r i n gd e v i c e sa t es e p a r a t e d w i t hc o m m u n i c a t i o ni n t e r f a c e s a n dt h e yc a nb ec o m p o s e da r b i t r a r i l y t h e n t h i s l i t i v 网川大学硕 学位论文 1 引言 随着无线电通信技术的不断进步以及无线电业务的快速发展 世界范围内 对无线电频谱资源的需求急剧增加 而无线电资源是一种有限的自然资源 对 无线电资源的分配 管理 以及监测足对无线电资源进行合理使用的重要组成 部分 是实现国家信息安全的保障 在现代信息技术飞速发展的大背景下 计 算机技术对测控系统的渗透 使得软件的设计成为工业测控系统开发的重要部 分 设计界面友好 运行稳定 实时反应迅速的监测系统软件是实现无线电监 测的关键保障 同时也是提高无线电监测效率的主要途径 无线电监测系统是 现代工业测控系统的一个典型应用 1 1 无线电监测系统的概念1 2 3 2 6 t 1 3 2 i 1 1 什么是无线电监测 无线电常规监测的主要监测包括 测量频率 频率误差和发射带宽 测量 信号场强 谐波和其它杂散发射 测定信号方位 频段利用率和频率占用度 对重点频率实施保护性监测监听等 无线电监测的中心任务就是保障合法电台 用户的正当权益 查处非法干扰 净化电磁环境 推动无线电事业发展 1 1 2 无线电监测的目的 无线电频谱管理是行政管理和科学技术的结合 能确保无线电通信设备不 引起有害干扰 并能进行有效的工作和服务 无线电监测是无线电频谱管理的 一个过程 实践中它是必须的 因为实际情况中 虽然每一无线电用户都指配 了核准使用频谱 但这并不能保证一定能像所规划的那样使用 无线电监测系 统就是用于检查指配的频道是否按规定的业务 参数工作 未指配的频道是否 被非法占用的检查系统 监测的主要目的就是对监测信号快速 准确 实时地 进行搜索 测量 统计 分析 定位 实时给出所测电磁环境的情况报告 为 频率的指配和下发 干扰查处等提供切实依据 1 1 3 无线电频谱管理对无线电监测系统的要求 无线电频谱管理对监测系统的要求最主要的就是无线电频谱监测 频谱管理工作人员在工作过程中都需要通过监测系统收集数据 这些数据 网川大学硕t 学位论文 有 实际频谱占用度与核准占用度的数据 偏离核准发射参数 合法与非法发 射的位置和发射参数 发射参数即 信号中心频率 带宽 功率 调制方式和 速率 信号方位角 或位罱 信号出现时间 发射信号标识和信号内容 通过 监测这些信号参数可以完成 1 非法 不明 未核准发射的识别和位置 2 s o s 和紧急定位信标 e i b 发射位置 频率和调制模式 如果任务要求 监听此频段 3 频段 频率发生拥挤 干扰协调问题 观察情况以及减少这些问题的建 议都是这类数据的一部分 4 所用频谱的数量和频率范围以及信道容量 5 所核准发射信号参数的测量 包括功率 频率 带宽 调制方式和速率 6 这些数据应注明信号截收时间 年 月 日 时 分 以及截收信号的台 名 位胃和操作员等资料 1 1 4 新一代无线电监测的方法 2 4 1 3 s 3 z l 软件无线电的核心思想就是把宽带a d 及d a 转换器放置在尽可能靠近天线 的地方 并尽量用软件来定义各种无线电功能 由于软件无线电结构上的开放 性和完全的可编程性 使它不仅能够兼容现有的多种设备 而且还可通过更新 软件功能和硬件模块 不断得到升级换代以适应新的通信发展模式 近年来 随着现代半导体技术飞速的发展 数字接收机和数字信号处理芯 片的功能和性能指标都有了很大的提升 软件无线电中的关键技术在理论和实 践方面也更加成熟 为其在无线电监测系统中的应用奠定了基础 软件无线电的概念虽然最早是从通信领域产生并迅速发展起来的 而且目 前的研究热点也在通信领域 但是软件无线电这种新概念 新思想及其逐步形 成的新理论 新技术在其它领域已有了一定的应用 例如 电子战中的电子侦 查最主要的特点是频段宽 几乎覆盖整个无线频段 待处理的信号种类多 而 且是处于被动接收的条件下工作 而目前的接收系统往往都是在已知或者在事 先假设的几种信号模式下进行工作的 一旦目标信号特征或通信方式发生变化 传统的接收系统就无能为力 高速度 高性能 自动化的监测测向系统 是现 代无线电频谱管理的必然要求 软件无线电恰好是解决这一问题的最佳技术途 2 四川大学硕十学位论文 径 利用软件无线电原理实现自动测量的无线电监测系统 其主要特点是 利 用计算机 d s p 数字接收机及附属设备 自动完成频段频谱监测 未知无线电 目标测向 无线电信号未知各种参数的分析 并将监测测向结果自动统计 存 储 上传 打印等 实现了监测测向系统的数字化 系统化 网络化 为频谱 管理工程的自动化奠定了基础 利用软件无线电原理实现自动测量的无线电监测系统大大提高了无线电频 谱监测的自动化程度 可以减少配备工作人员的数量并提高无线电监测业务的 效率 另外利用软件无线电原理实现自动测量的无线电监测系统为系统组网提 供了基础支持 通过系统组网可对系统进行灵活的监测站配置 可使无线电管 理部门的频谱监测与频率指配作业形成闭环管理 从而大大提高了无线电频谱 管理的自动化程度 1 2 无线电监测的现状及发展趋势 我国无线电监测设施建设起步虽晚 但发展较快 国家无线电监测中心和 各级无线电监测部门坚持统一规划 分级负责 分布实施 避免重复建设的原 则 加强对建设的组织和领导工作 取得了巨大的成绩 但仍存在一些问题 首先 无线电监测设施建设在沿海和经济发达地区发展较快 在中 西部地区 相对滞后 超短波频段监测设施建设较快 短波和其他频段相对要较慢 设备 配置不统一 给联网工作带来困难 无线电监测缺乏统一的规范和标准 重视 建设工作 轻视设备使用 无线电监测技术近年来发展很快 对于数字通信 宽带通信 卫星通信等 新业务的监测技术加强了研究 正在修定的i t u 新版的频谱监测手册在这方面 重点进行了修改和充实 无线电监测技术的发展有以下一些特点 1 软件和硬件一体化 许多硬件功能被软件所取代 使得无线电监测设备 向小型化 数字化 模块化方向发展 设备具有监测 监听 测向记录等多种 功能 可扩展性大大加强 2 采用先进的网络接口 设备的联网能力加强 提高了自动化高速监测的 能力 3 国内外相关公司 根据我国无线电监测设施发展的需求 积极开发中国 市场 并将新技术引入到监测设备中 开发出了不同层次所需求的监测设备 4 监测范围广 具有短波 超短波 卫星等全频道监测能力 并负责所有 通信和广播业务的监测任务 避免不同业务监测设施的重复建设 1 3 课题来源及目的意义 论文所涉及的课题是关于国家无线电监测中心 全国短波监测网络系统 二期工程软件系统设备驱动的功能开发 根据 全国短波监测网建设工程总体 方案 进行设计 该底层驱动的开发已实际应用于上海 深圳短波监测站 在无线电监测系统中 每一台监测设备对应一种或多种通信接口 具体开 发某一台监测设备的驱动程序并不复杂 但在实际的监测系统中 只具有某一 种特定接1 2 1 的仪器组是不多见的 在全国短波监测网络系统的一期工程软件开 发中 监测设备与通信接口绑定 每一台监测设备对应于一个独立的驱动程序 每增加或者更换一台新的监测设备 系统必须相应增加或更换底层驱动程序 而这些驱动程序在流程及结构上极其类似 不利于代码复用 增加了系统的工 作量 表1 1 无线电监测系统接收机组 监测设备所用接口 e s m b 监测接收机t c p i p 或r s 2 3 2 e k 8 9 5 监测接收机 r 2 3 2 c e s v n 4 0 监测接收机g p i b d d f 0 1 e 测向接收机t c p l p n 1 5 6 6 0 监测测向卡p x i e 4 4 0 7 b 频谱分析仪 g p i b 在本人参与的华日公司开发的无线电监测系统中 硬件仪器组列表如表1 1 所示 为改进一期工程存在的问题 实现同一个驱动程序中有效地兼容多 监测设备 多通信接口 本文提出了一个通用的无线电监测软件驱动的设计方 法 首先 使用动态链接库设计底层设备驱动 有利于不同的程序共享数据 资源 有利于程序的模块化和升级 其次 软件设计将监测设备与通信接e 1 分 4 四川大学硕t 学位论文 离 设备与通信接口可以任意组合 这样 最少的修改实现系统升级或更换硬件设备 稳定 响应及时的要求 当系统的硬件设备有所变动时 用 并保证所设计的系统能够达到运行 1 4 本课题所完成的工作及论文结构安排 由于全国短波监测网络系统只是整个无线电监测体系中的一个子系统 因 此 为了提高开发后续监测系统的效率 在开发短波监测网络系统的过程中 就不仅仅考虑只满足本次应用的需要 而要充分考虑如何将软件重用很好的与 开发过程结合起来 因此 本文所关注的重点就是如何创建一个充分考虑无线 电监测领域特点的设备软件驱动开发的通用程序模块 使这个模块可以在后续 系统中得到很好的重用 从而降低开发成本 提高开发效率 本论文将着眼点主要放在设备驱动模块的设计上 在此基础上解决了监测 接收机e s m b l a nt c p i p 通信 的驱动设计问题及其应用 因此论文在后续的章 节中采用以下的层次来完成设计工作 首先 引入了基于网络的分布式测控系统的概念 无线电监测系统的设计 是现代工业测控系统的一个典型应用 引入分布式测控系统的概念可以对整个 监测系统有一个比较清晰的认识 为了与实际的应用联系起来 对带有网卡接 口仪器的监测接收机e s m b 作了简要的介绍 本论文的设计以e s y b 监测接收机 为例 接下来 为了开始软件的设计 介绍了驱动软件在整个工业控制软件系统 中的位置 比较了可以用于开发底层接口驱动的两种方法 阐述了论文所采用 的设计方法的优越性 从而明确了如何应用系统硬件资源的通信接口函数 针 对具体的测控系统 开发高效的 适合应用的测控系统驱动程序 第四章展开具体的设计工作 首先针对系统的要求 对软件系统的整个框 架作了简要的介绍 按下来 针对监测系统所注重的实时性要求 确定在监测 软件系统中利用w i n d o w s 系统的多线程机制 在提高资源的利用率的同时 满 足系统对实时性的要求 在具体到监测软件的底层驱动设计时 采用d l l 动 态链接库 封装底层驱动线程 根据系统对驱动模块的具体要求 通过设备及 接口类的共性抽象 采用了c 的类的思想来设计具体的监测设备及通信接口 软件 随后详细给出了e s m b 监测接收机驱动程序的实现以及应用 在该章的最 明川大学硕 学位论文 后 给出了一个应用该设计方法完成的基于虚拟仪器设计理论的频率占用分析 仪的实际例子 通过例子 可以看出采用这样的设计思想 不但有效地解决了 监测系统中对于实时性的要求 而且保证了代码的最大程度的兼容性 以及这 样的驱动的易于扩充性及维护性 在结论这一章中 简要论述了整个系统在完成后的实际应用结果 以及相 对于一期工程本设计改进的地方 并给出了有待提高的地方 6 四川大学硕j 学位论文 2 无线监测系统组成分析 2 1 基于网络的分布式测控系统简介即l j p 羽 测控系统是自动控制技术 计算机科学 微电子和通信技术的有机结合 是计算机系统中很重要的一个分支 随着网络技术和计算机技术的发展 测控 系统由集中式走向分布式 分布式测控系统是指采用分布计算模型的测控系统 它具有很强的时间和空间约束的特点 以太网测控系统是新一代的分布式网络测控系统 它基于以太网络 有别 于传统的基于现场总线的分布式测控系统 它是以太网代替现场总线为测控网 络进行现场测控 用企业局域网对测控网络进行管理 通过网关连接到i n t e r n e t 网实现远程测控功能的 基于网络的分布式测控系统 基于网络的测控系统主要由两大部分组成 一部分是组成系统的基本功能 单元 主要包括进行测量和管理的服务器以及各种测试模块 如g p i b p x i y x i 等仪器 带数据采集卡的p c 机 有线和无线的网络化传感器 分布式i 0 模块 等 一部分是连接各基本功能单元的通信网络 例如e t h e r n e t i n t r a n e t 和 i n t e r n e t 对于串行网络和现场总线可以通过通信控制器将其集成在上述的3 种网络中 间接地实现网络化测控 基本的网络拓扑结构如图2 1 所示 远稃控制系统 l p s z c o m a n a n d s t a t u sc e s m b s e n d c m d e o n s tc h a r p s z c m d d w o r dl e n 0 r e t u r nm p k c o m o b j 一 s e n d b y t e p s z c m d l e n p k c o m o b j 指向对应 的通信接口 4 在向设备发送任务命令以及参数后 驱动程序接收返回的监测数据 并 转换为软件系统要求的格式以便回调给上层界面 具体实现如下 d w o r dc e s m b r e c e i v e b y t e p b b u f f e r d w o r d d w l e n g t h b y t es z b u f f e r 1 0 0 1 0 2 4 1 0 0 kb u f f e r d w o r dm i s s i o n t y p e g e t f u n c m d0 获得任务类型 d w o r dd w b u f l e n 0 d w o r di r e t e r rn o n e i n ti 0 w h il e d w b u f l e n r e c e i v e b y t e p v b u f i t m p 通信接口 m p k c o m o b j 指向对应的 5 停止正在执行的监测操作 断开与设备的连接 该方法实现如下 d w o p d c e s m b s t o p s e n d c m d a b o r t r e t u r nc d e v i c e s t o p 0 4 3 2 通信接口类关键代码的实现 正如前面所述 本论文以完成系统中网卡接口类 l a nt c p i p 的设计及 实现为例 利用对w i n s o c k h 的调用 结合c c o m m o b j e c t 要求的接口方法函数 可以为n e t c a r t 接口类设计如下的接口方法 a 打开网卡通讯接口 得到仪器控制的句柄 b 连接设备 以保证控制计算机与设备的连接畅通 b 向网卡发送字符串 通过该接口的仪器控制句柄 将该字符串传递到 监测仪器 e 从网卡得到一个字符串 d 关闭已打开的通讯接口 在实际的应用系统中 其各个方法的实现的关键代码和具体方法的功能如 下 1 在打开网卡的方法中 只要完成对网卡的初始化 同时获得被控仪器和 网卡的控制句柄 婴坐盔兰堡 兰垒丝苎 d w o r dc n e t w o r k o p e n c o n s th a r dp a r a m p k h a r d p a r a m a s s e r t p k h a r d p a r a m n u l l i f m b w i n s o c k i n i t i n i t w i n s o c k m a k e w o r d 2 2 m k n e t p o r t p k h a r d p a r a m 一 n e t c r e a t ec o m m u n i c a t i o ns o c k e t i n ti t y p e 0 i f i s t c p s o c k e t0 i t y p e s o c k s t r e a m e l s ei f i s u d p s o c k e t0 i t y p e s o c kd g r a m m h s o c k e t s o c k e t a fi n e t i t y p e 0 i f mh s o c k e t i n v a l i d s o c e e t r e t u r ne r r c o m m c r e a t e i n ti t i m e o u t 3 0 0 0 l s e t s o c k o p t m h s o c k e t s o l s o c k e t s o s n d t i m e o c h a r i t i m e o u t s i z e o f i t i m e o u t s e t s o c k o p t m h s o c k e t s o l s o c k e t s o r c v t i m e o c h a r i t i m e o u t s i z e o f i t i m e o u t r e t u r nc o n n e c t 1 四川人学硕 学位论文 2 n e t w o r k 连接控制计算机与设备的方法中 主要保证连接的畅通 以便 进行下一步的读写功能 此方法的具体实现如下 d w o r dc n e t w o r k c o n n e c t0 u d pn e e d sn oc o n n e c t i o n i f i s u d p s o c k e t0l r e t u r ne r r n o n e a s s e r t m h s o c k e t i n v a l i ds o c k e t s o c k a d d r i nk a d d r e s s k a d d r e s s s i n f a m i l y a f i n e t k a d d r e s s s i n p o r t h t o n s m k n e t p o r t p o r t n u m k a d d r e s s s i n a d d r s a d d r i n e t a d d r mk n e t p o r t s t r i p i n ti e r r o r c o n n e c t m h s o c k e t s o c k a d d r k a d d r e s s s i z e o f k a d d r e s s i f i e r r o r s o c k e t e r r o r i n ti w s a g e t l a s t e r r o r0 r e t u r ne r r c o m mc o n n e c t r e t u r ne r r n o n e 3 n e t w o r k 类向仪器写字符串的方法中 主要完成从控制计算机向仪器发 送控制字符串的功能 其关键代码如下 d w o r dc n e t w o r k s e n d b y t e p b b u f f e r d w o r dd w l e n g t h s o c k a d d r i nk a d d r e s s a d d r e s sf o ru d ps e n d k a d d r e s s s i n f a m i l y a fi n e t k a d d r e s s s i n p o r t h t o n s m k n e t p o r t p o r t n u m 四川大学硕t 学位论文 k a d d r e s s s i n a d d r s a d d r i n e t a d d r mk n e t p o r t s t r i p i n ti b y t e s 0 i f i s t c p s o c k e t0 i b y t e s2 s e n d m h s o c k e t c h a r p b b u f f e r d w l e n g t h 0 e l s ei f i s u d p s o c k e t0 i b y t e s2 s e n d t o m h s o c k e t c h a r p b b u f f e r d w l e n g t h o s o c k a d d r k a d d r e s s s i z e o f k a d d r e s s i f i b y t e sf i n t d w l e n g t h r e t u r ne r r c o m m s e n d r e t u r ne r r n o n e 4 接收数据的方法主要完成读入仪器的测量结果 测量仪器的预期返回数 据的长度与实际返回的数据的长度不一定一致 因此在设定预期返回的数据的 长度时 应该尽量设置得大一些 以保证数据的完整性 该方法的实现代码如 下 d w o r dc n e t w o r k r e c e i v e b y t e p b b u f f e r d w o r d d w l e n g t h a s s e r t p b b u f f e ri n u l l a s s e r t d w l e n g t h o l a d d r e s sf o ru d pr e c e i v e s o c k a d d r i n k a d d r e s s i n ti a d d r l e n s i z e o f k a d d r e s s i n ti b y t e s 0 婴型叁堂堡 兰垡堡奎 i f i s t c p s o c k e t o i b y t e s2 r e c v m h s o c k e t c h a r p b b u f f e r d w l e n g t h o e l s ei f i s b i d p s o c k e t i b y t e s2 r e c v f r o m m h s o c k e t c h a r p b b u f f e r d w l e n g t h 0 s o c k a d d r k a d d r e s s i a d d r l e n i f i b y t e s 0 d w l e n g t h i b y t e s r e t u r ne r r n o n e e l s e r e t u r ne r r c o m h l r e c e i v e 5 关闭仪器的方法主要用于将仪器置为本地测量的方式 同时使仪器处于 离线状态 该方法实现如下 b o o lc n e t w o r k c l o s e i n ti e r r o i f m h s o c k e t i e r r s h u t d o w n m h s o c k e t s db o t h i f i e r r s o c i e t e r r o r f h a n d l e e r r o r w s a g e t l a s t e r r o r0 r e t u r nf a l s e i e r r2c l o s e s o c k e t m h s o c k e t 关闭套节字句柄 3 7 四川大学硕 学位论文 if i e r r s o c k e te r r o r h a n d l e e r r o r w s a g e t l a s t e r r o r0 r e t u r nf a l s e m h s o c k e t i n v a l i d s o c k e t 通知客户端已关闭连接 m b c l o s e t r u e s t r c p y m s z e r r d e s c n oe r r o r w s a c l o s e e v e n t m o v l s e n d h e v e n t w s a c l o s e e v e n t m o v l r e c v h e v e n t r e t t l r nt r l i e 4 3 3 设备管理类的详细设计 当用户在程序界面调用底层接口函数r e q u e s t d e v i c e s e r v i c e 时 任务信息 m i s s i o n i n f o 包括监测类型 所需设备参数 数据传送方式等 由用户界面以 消息的形式发送给驱动程序 而底层模块在接收到任务消息后 由 c d e v i c e m a n a g e r 区分具体的任务 如为监测任务 则创建指定的监测设备类 通过对应的通信模块把任务翻译为预定的格式传送给监测接收机 底层通信模 块在设定好任务后 通过具体的设备命令启动设备来执行监测任务 在监测设 备接收到数据后 通过通信模块将监测数据读入控制计算机 之后将读到的数 据进行解析 并以消息的形式通知用户界面 如果底层模块接收到的任务为结 束命令 则执行相应的停止操作 设备管理类的具体实现方法参考本文附录a 一 5 9 页 底层驱动流程图如图4 5 图4 5 底层驱动流程图 4 4 多线程技术的具体实现 4 4 1 线程的创建 本论文中底层驱动单个线程工作机制如下 由界面线程以消息的形式发送 给下层取数线程 各种任务号在消息中进行传递 而下层取数在接收到任务消 息后 根据具体的任务 通过底层通信模块把任务翻译为预定的格式传送给接 收机 任务的内容包括监测类型 所需设备参数 数据传送方式等 底层通信 模块在设定好任务后 通过具体的设备命令启动设备来执行监测任务 在监测 设备接收到数据后 通过通信模块读入本机 之后将读到的数据进行解析 放 到某个内存区中并以消息的形式通知用户界面线程 而数据的地址包含在消息 四川犬学硕十学位论文 参数中 通过共享内存完成测量结果数据的共享 用这种方式执行连续测量任 务时 底层线程只负责发送仪器控制命令和读取仪器的测量结果 当用户界面 不发送停止命令时 此底层取数线程循环接收数据并回调高层 实现持续监测 及测量 在本论文的设计中 通过无t h i s 指针的静态方法将线程函数映射到成员方 法上 线程的执行过程如下 1 监测设备对象调用o p e n0 函数 2 o p e n 内系统调用c r e a t e t h r e a d0 函数完成线程的创建 3 操作系统根据调用参数分配系统资源 并在适当的时机载入线程 线程 获得c p u 时 触发线程函数代码的执行 4 线程函数首先转调t h r e a d f u n c 函数 得以访问c d e v i c e 及其派生类对象 的数据 5 t h e a d f u n c 完成的监测工作 具体流程见图4 6 c d e v i c e 类的定义 c l a s sc d e v i c e p u b l i c s t a t i cd w o r dt h r e a d p r o c l p v o i dl p p a r a m v i r t u a ld w o r dt h r e a d f u n c b o o lo p e n 0 c d e v i c e 类的实现代码片段 d w o r dc d e v i c e t h r e a d p r o c l p v o i di p p a r a m f c d e v i c e p k d e v i c e2 c d e v i c e l p p a r a m r e t u r np k d e v i c e 一 t h r e a d f u n c0 以下为线程创建的代码片段 b o o lc d e v i c e o p e n 0 图4 6 l h e a d f u n c 函数实现流程图 4 4 2 多线程的实现 上面 d 节讲述了设备线程的创建方法 当应用软件需要访问一个设备 就调用底层驱动程序 并将所需的参数通过数据结构m i s s i o ni n f o 传给驱动程 序 驱动程序对参数进行解析 当需要开始一个新的设备操作任务是 就向操 作系统申请劬建一个设备线程 将所需要的参数传递给设备线程 操作系统根 据所获得的线程参数创建设备线程 线程调度程序在适当的时候j g c e u 分配给设 备线程 设备线程开始运行 完成线程所需实现的功能 执行完成后 通过回 调函数 通知应用程序运行结果 4 1 四川大学硕t 学位论文 应用程序线程向驱动函数传递命令信息 驱动函数向操作系统提出设备线 程申请 具体设备操作由设备线程完成 这样当应用程序层有其它请求时 应 用程序线程就可以及时响应 并将相应的命令和参数发给驱动函数 当驱动模 块接收到启动新任务的命令后 就会申请另外一个设备线程 操作系统会给这 个线程分配独立的内存空间 它可以独立运行 与前面一个设备线程并行进行 线程调度程序进行分时调度 对用户而言 就实现了多个设备的同时操作 实 施机制如图4 7 创建应用 i 线程 i 应用稗序线 操作设备a 驱动函数 r 释 搡作设备b 夕 申请创建 哆 创建a 线程 a 设备线程 创建b 线程 b 设备线程设备线程 1 1 创建c 线程 c 设备线程 操作设备c r 图4 7 多线程的调用机制 本设计中 程序开始运行时 首先只有一主线程 界面线程 主线程获取 界面任务信息 解析界面任务 将对设备的操作包装成固定的形式 数据结构 m i s s i o n i n f o 传递给驱动函数 驱动函数解析到启动新任务命令后 申请创建 新的设备线程 设备线程的创建过程参见第4 4 1 节 图4 8 为上层主线程调用驱动模块创建设备线程的示意图 以说明底层多线 程的创建机制 其中虚线框内部分在底层驱动模块运行 只要没有结束命令 4 2 网j 玎大学硕上学位论文 则上层主线程在不断循环运行 读取界面消息队列以随时响应新的任务请求 每一次循环根据界面任务消息 可能创建新的设备线程 当循环运行n 次时 可 能申请创建了m 个线程 m t y p e m t c l o s e a p p l i c a t i o nc l o s e r e t u mc l e a r d e v i c e s p k m i s s i o n e l s e 毽 p k m i s s i o n t y p e m ts t a r t s t a r t d e v i c e r e t u ms t a r t d e v i c e p k m i s s i o n e l s ei f p k m i s s i o n t y p e m t s t o p s t o pd e v i c e r e t u r ns t o p d e v i c e p k m i s s i o n e l s ei f p k m i s s i o n t y p e2 2m tm o d i f y m o d i f yo n ei t e m p a r a m e t e r r e t u mm o d i f y d e v i c e p k m i s s i o n o fd e v i c e e l s ei f p k m i s s i o n t y p e m t s t a t u s q u e r yd e v i c es t a t u s r e t u r nq u e r y d e v i c e s t a t u s p k m i s s i o n r e t u r ne r r n o n e 四川大学硕仁学位论文 设备接收与回调部分代码 d w o r dc d e v i c e r e t r i e v e a n d c a l l b a c k 0 d w o r d d w g e n e r a l h e a d e r s i z e s i z e o f r m d o a x a d w o r d d w t a s k h e a d e r s i z e 任务包头大小 d w o r d d w t a s k d a t a u n i t s i z e 测量数据单位数据大小 d w o r dd w t a s k d a t a n u m b e r 测量数据个数 c a l ls u b c l a s st oc a l c u l a t es p a c ef o re x t r a d a t as t o r a g e r e s e r v e d w t a s k h e a d e r s i z e d w t a s k d a t a u n i t s i z e d w t a s k d a t a n u m b e r r e c e i v ea n dp u tt od a t a1 i s t d w o r dd w e r r o r 0 l r e c e i v e dr e a ld a t a l e n g t h b y t e p b b u f f e r n e w1 3 y t ef d w g e n e r a l h e a d e r s i z e d w t a s k l h e a d e r s i z e d w t a s k l d a t a u i n i t s i z e d w t a s k d a t a n u m b e r d w o r d d w l e n g t h 0 l r e c e i v e dd a t a i f d w e r r o r r e c e i v e p b b u f f e r d w l e n g t h e r rn o n e m p f n c a l l c r e a t e e r r o r d w e r r o r s i z e o f r m d d a t a l d w e r r o r r e t u r nd w e r r o r r m d d i r e c t p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论