雷达高度表回波信号发生器主控机软件设计

上传人:w****i 文档编号:117600672 上传时间:2019-12-05 格式:PDF 页数:51 大小:568.42KB
返回 下载 相关 举报
雷达高度表回波信号发生器主控机软件设计_第1页
第1页 / 共51页
雷达高度表回波信号发生器主控机软件设计_第2页
第2页 / 共51页
雷达高度表回波信号发生器主控机软件设计_第3页
第3页 / 共51页
雷达高度表回波信号发生器主控机软件设计_第4页
第4页 / 共51页
雷达高度表回波信号发生器主控机软件设计_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《雷达高度表回波信号发生器主控机软件设计》由会员分享,可在线阅读,更多相关《雷达高度表回波信号发生器主控机软件设计(51页珍藏版)》请在金锄头文库上搜索。

1、华中科技大学 硕士学位论文 雷达高度表回波信号发生器主控机软件设计 姓名:杨李鹏 申请学位级别:硕士 专业:光电信息工程 指导教师:何健;张蕴玉 20090501 I 华 中 科 技 大 学 硕 士 学 位 论 文 摘摘 要要 雷达高度表的研发测试,是国防科技领域重要组成部分之一。传统的雷达高度表 测试方法是采用实地飞行,对高度表的性能进行测试,受到经济、天气、飞行条件等 诸多因素限制。 仿真技术的出现是解决这一难题的有效途径,雷达回波仿真系统的构架目前可分 为三类:全硬件仿真、全软件仿真和半实物仿真结构。本课题涉及到大量数据管理、 图形显示、又要求良好的实时性,并与真实的雷达高度表对接,所以

2、采用半实物仿真 结构。整个系统由主控机、波形生成模块、微波模块、检测模块构成,可独立或配合 大系统完成灵活多变的任务。系统既能够实时接收经纬度坐标信息,根据三维地形仿 真生成雷达回波信号;又可调用数据库回放实际飞行采集的回波数据文件,极大的逼 近真实飞行环境;同时提供了良好的人机交互界面,可迅速、直观地判断当前地形、 雷达工作状态等信息,能更好的检测雷达工作性能和进行其它仿真实验。 主控机是整个仿真系统的控制中心,需要完成通信控制、数据库管理、三维地形 显示、测高结果对比分析等任务。主控机主要是软件编程,依据软件工程理论,从需 求分析开始,经历了系统设计、模块详细设计、代码实现、系统测试等多个

3、阶段。 本文介绍了软件的总体设计,详细描述了通信模块和图形模块的设计过程。在通 信模块设计中根据任务需要设计了多种通信协议字,并采用多媒体高精度定时保证了 通信的实时性。图形显示模块采用 OpenGL 技术,大大提高了绘图效率。最后通过各 项测试,系统各项指标达到要求。 关键字:雷达高度表,系统仿真,三维地形,RS-232 串口通信 II 华 中 科 技 大 学 硕 士 学 位 论 文 Abstract The research and testing of radar altimeter is a significant component of national defense scien

4、ce 该函数的参数说明如下: uDelay 表示计数器触发的间隔时间;uResolution 表示 计数器精度,单位为毫秒,在 Windows 中缺省值为 1ms,设置为 0 表示尽可能使用最 高精度,但相应的会占用较多的 CPU 资源;lpTimeProc 表示回调函数,为用户自定 义函数; dwUser 表示用户提供的回调数据; fuEvent 为定时器的事件类型, TIME_ONESHOT 表示执行一次;TIME_PERIODIC 表示周期性执行。 具体应用时,可以通过调用 timeSetEvent()函数,将需要周期性执行的任务定 义在 lpTimeProc 回调函数中, ,从而完成所

5、需处理的事件。需要注意的是:任务处理 的时间不能大于周期间隔时间。 另外, 在定时器使用完毕后, 应及时调用 timeKillEvent() 将之释放。其中 uTimerID 为已建立的定时器的 ID 号。 MMRESULT timeKillEvent( UINT uTimerID); 当多媒体定时器触发时,不管原线程在做什么都会停下来执行定时器回调函数, 以保证定时器的精度。其原因在于定时器线程的优先级被设定为 THREAD_PRIORIT 24 华 中 科 技 大 学 硕 士 学 位 论 文 Y_TIME_CRITICAL,其优先权数永远为 15,这比绝大部分线程的优先级都要高。在 程序中

6、如果定时器时间间隔舍得太小,1 或 2 毫秒,则 CPU 资源马上被用尽了,所以 在满足需要的条件下尽量不要设太低的间隔值,最好大于 5 毫秒。 4.3.2 串口通信 4.3.2 串口通信 串行通信端口在系统控制中占有及其重要的地位, 以其成熟的技术, 完善的规格、 低廉的成本和简单的操作保持了持久的生命力。常用的串行通信包括:RS-232、 RS-485、USB、IEEE-1394。 RS-232 是每台计算机上必备的通信接口,典型的 RS-232 信号在正负电平之间摆 动,在发送数据时,发送端驱动器输出正电平在+/-5+/-15V,接收器典型的工作电 平在+/-3+/-12V。由于发送电平

7、与接收电平的差仅为 2V 至 3V 左右,所以其共模抑 制能力差,其传送距离最大为约 15 米,最高速率为 20kbps。RS-232 是为点对点(即 只用一对收、发设备)通讯而设计的,仅适合本地设备之间的通信。计算机上都配备 有 RS-232 串口,常标记为 COM1、COM2 接口,均是 9 针的公头。其中 5 号引脚为地线, 2 号引脚为接收引脚, 3 号为发送引脚, 这也是实现通信的最基本的三个引脚。 RS-485, 采用差分电平传输信号, 可有效防止噪声干扰。 信号在发送段被分解成正负两条线路, 在接收端再将两信号相减还原成原始信号,即使在传输过程中参杂了干扰信号,最后 在做相减的时

8、候可以将噪声减掉,从而抑制了噪声。RS-485 常用在传输条件较差,电 磁干扰较强的工业环境中。USB(Universal Serial Bus,通用串行总线),是今年来 发展迅速的一种串行通信接口, 可采用集线器进行扩展, 最多可连接 127 个外围设备, 最远距离为 5 米。USB 传输速度比 RS-232 要快得多,USB2.0 得最高传输速度可达 480Mbps。USB 接口还支持“热插拔” ,如鼠标、键盘等,对于个人用户来说使用方便。 IEEE-1394(亦称为 FireWire,火线)是为了解决高速互联而产生的串行技术,其传输 速度为 400Mbps,而且还在向 1000Mbps

9、迈进。IEEE-1394 提供同步和异步两种传输模 式,最多可串接 63 个外围设备。 本课题采用 RS-232 标准的串口,串口的波特率可设为 CBR_9600、CBR_14400、 CBR_19200 等多个值,我们这里设为 CBR_57600。 25 华 中 科 技 大 学 硕 士 学 位 论 文 在 C+ builder 环境下,有 2 种方法可以实现串口通信编程: (1)采用第三方的串口控件,调用现成的动态链接库; (2)调用的 Windows 提供的与串行通信相关的 API 函数。 第一种方法的优点在于,调用方便,安全,直接调用封装好的函数即可实现数据 收发,调试开发周期短,但缺乏

10、灵活性,实时性不高。Windows 提供一组操作串口的 API 函数,可以直接对串口进行操作。其实无论采用什么控件,都是对 API 的一种封 装, 最终还是靠底层的 API 来操作串口。 直接调用底层的 API, 可以灵活的控制串口, 提高出程序的效率。常用的串口操作 API 函数如表 4-8 所示。 表 4-8 常用串口函数 函数名称 功能说明 CreateFile CloseHandle GetCommState SetCommState WriteFile ReadFile ClearCommError PurgeComm SetCommMask 创建文件,打开通信端口 关闭由 Crea

11、teFile 创建的文件,关闭通信端口 取得串口设置参数 设置串口参数 向串口发送数据 从串口读取数据 清除串口错误,并取得错误信息 清除串口上的缓冲区 设置事件掩码,用以触发事件 串口编程的流程步骤分成如下几步: (1)初始化串口 COM1,CreateFile()函数打开串口,若返回错误有可能是串口被 占用;用 GetCommState()和 SetCommState()取得串口参数并设置部分参数,设置成功 后返回值为 TRUE; (2)初始化发送缓冲区和接收缓冲区,启动多媒体定时器,并将定时周期设置为 10ms; (3)程序调用 WriteFile()发送数据; (4)定时器回调函数通过

12、循环调用 ClearCommError()监听串口状态,若有数据到 来则进行第(5)步,否则继续监听; (5)调用 ReadFile()读取数据到接收缓存中,分析数据内容,判断是否为所需帧, 26 华 中 科 技 大 学 硕 士 学 位 论 文 若是则进行第(6)步,否则返回第(4)步; (6) 接收到的帧若为控制信息或状态信息,则进入相关的控制程序或向用户报告 系统状态。若为数据信息则根据相关的协议提取出高度信息及其他参数信息,送到屏 幕显示; (7)任务完成后调用 CloseHandle()关闭串口,并释放相关的系统资源。流程图如 图 4.2 所示。 开始 调用CreateFile函 数打

13、开串口 打开成 功? 设置通信参数 显示错误信息 初始化接收缓存, 启动多媒体定时器 结束 发送完成? 调用CloseHandle 关闭串口 接收或发送数据 否 是 否 是 图 4.2 串口工作流程示意图 串口的数据接收功能设计相对于数据的发送更重要,实现难度也更大。程序启动 后即打开接收定时器准备接收数据。定时器的周期设置为 10ms,每 10ms 进入定时器 回调函数读取串口信息。首先调用 ClearCommError()函数读取串口状态,该函数可取 得串口收到的字节数和发送的字节数,在通信协议中我们约定检测板返回的串口数据 均为 16B,若收到 16 字节的数据则认为串口收到了有效数据。

14、检测板在上电初始化 27 华 中 科 技 大 学 硕 士 学 位 论 文 时,检测板的串口会向计算机的串口 COM1 发送 1KB 左右的乱码,这里检测接收字节 数就是为了防止收到错误信息。 验证收到的字节数正确后调用 ReadFile()函数将串口 缓存中的数据读入到内存做下一步分析处理。我们通过判断帧头来区分控制帧和数据 帧,若为控制帧,则根据相应的结果状态字进行下一步操作,或显示错信息或发出其 他控制信号完成其他操作;若收到的是数据帧,则提取出高度数据或其他高度表参数 数据,然后将数据写入文件保存到硬盘以便过后分析,同时在屏幕显示这些数据,供 用户把握系统的实时状态。执行玩相关程序后,等

15、待定时器下一次触发。 进入多媒体定时器 调用ClearCommError 函数监控串口状态 调用ReadFile函数 读取串口数据 是否 有数据到来 (16B)? 是否为 控制帧? 否 是 是否为 数据帧? 读取控制状 态字 提取高度信 息,并存盘 显示 显示 否 否 是 是 图 4.3 串口接收流程图 4.3.3 网口通信 4.3.3 网口通信 上位机采用VxWorks操作系统,带有完整的TCP/IP网络协议栈30,采用网口通信 效率高, 实现简单。 网络传输方式分为面向连接的TCP (Transmission Control Protocol, 28 华 中 科 技 大 学 硕 士 学 位

16、 论 文 传输控制协议) ,和无连接的UDP(User Datagram Protocol,用户数据报协议) 。UDP 传输不保障数据的传输的可靠性,传输数据时客户机向服务器发送数据,数据会被立 即发出,服务器一般收到了客户机的数据后不会确认收到与否,这样减少了许多网络 开销。 在本课题中, 对于数据传输的实时性要求比较高, 两台机器距离很近只有几米, 通信链路的传输质量较高, 采用UDP传输并加上一定的检错机制, 可以满足应用需求。 Windows提供一套API函数实现网络通信,称之为Socket套接字。 网络程序的实现可用多种方式,Windows Socket 是其中最简洁最常用的一种30。 Socket处于应用程序和网络驱动程序之间,应用程序将数据送给Socket,Socket再将数 据交付给驱动程序发送到网络上,接收数据过程与之相反。 WSAstart 建立Socket 收发数据 WSAstart 建立Socket 收发数据 服务器端 客户端 绑定地址, 端口 图4.4 Socket连接示意图 基于UDP的Socket编程采用服务器/客户端模式,与面向连接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号