APP下载

基于.net的频带传输系统设计与实现

2014-09-23刘婉妮杜晓春

电子设计工程 2014年3期
关键词:频带鼠标端口

刘婉妮,杜晓春

(西安欧亚学院 陕西 西安 710065)

基于.net的频带传输系统设计与实现

刘婉妮,杜晓春

(西安欧亚学院 陕西 西安 710065)

针对频带传输存在概念抽象、知识点深等教学问题,设计了一款基于Visual Studio.net的频带传输系统,该系统采用结构化与面向对象相结合的方法进行开发,内容包含ASK、FSK、PSK的调制与解调技术。本文介绍了该系统的功能模块分析与设计,并对各种关键技术予以重点介绍。经测试,系统界面友好、交互性强,能够有效的降低课程学习的难度。

频带传输系统;双缓冲技术;仿真;反射技术

数据通信中,数字信号的传输方式分为基带传输和频带传输两种,由于数字信号通常含有较低的频率分量,所以目前大多数信道不能直接传输基带信号,需要借助载波,通常选正弦波为载波信号,将基带信号的频谱搬移(即调制),变换成适于信道传输的数字频带信号,然后再传输,这种传输方式就是频带传输[1]。

频带传输所涉及的内容多,概念抽象,学生在学习过程比较吃力,难于理解。一方面是这块内容本身掌握就有一定难度,数学推导多,知识点深;另一方面是缺乏直观观看,实际动手操作的机会。通过研究和探讨,确定本次仿真设计的目的是简化学习难度,掌握对基本知识的理解,考虑到学习的渐进性,我们选择的仿真实验内容主要有:2ASK、2FSK、2PSK、2DPSK的产生、相干解调、非相干解调等。

1 功能模块分析和设计

在完成对本系统实验内容的确立、整体设计方案的分析之后,按照由易到难、由表及里的思想完成该系统的开发,即先完成界面层的设计,然后进行仿真实验所需的基本框架的开发,包括实验仪器的选择和创建,信号线的要求和绘制等,最后在前两个层面基础上完成本系统中核心功能即仿真层的实现,下面具体介绍这三层的主要任务和实现方法。

1.1 界面层

在界面开发中,我们采用当前Windows上的主流界面—WIMP (Window/Icon/Menu/Pointing Device)界面。使用这种方式,用户可以方便的执行各种操作,提高了交互效率。在界面层开发中主要包含下面4个部分。

1)主界面

主界面是实验的起点,也是用户进行操作的主要窗口。本系统的主界面主要由3部分组成:实验操作区、导航区、实验结果输出区。

2)实验参数设置界面

实验参数设置界面采用软件界面设计中的“向导式(Wizard)界面”,这种界面常见于软件安装过程,在使用中一步步引领用户操作,最后,根据用户的输入信息,完成一个较复杂的任务。

3)仪器库

仪器库用来容纳组建频带信号调制和解调电路所需的仪器设备,是一个容器。仪器库的开发仿照目前广泛使用的抽屉菜单界面,如QQ、优化大师等均采用这种界面。

4) 简易示波器面板

实验需要使用示波器观察信号波形,在设计过程中,为了将重心放在载波、已调信号波形的仿真上,将示波器各种丰富的功能进行简化,确定了一个简易模型:示波器参数可以设置,扫描周期和幅度均可调,面板上的坐标系根据参数值可动态显示,坐标系以黑色为背景,白色虚线设为脉冲间隔,其颜色可通过工具栏根据用户选择进行设置。

1.2 仿真框架层

在该仿真系统的开发过程中,一个很关键的技术就是系统中各种调制和解调模型的创建及判断,仿真框架层主要完成模型的创建任务,要实现模型的创建必须包含下面4个部分。

1)仪器的选择

仪器的选择是指从器材库中选择仪器到操作台的过程,要实现这一功能,在设计中我们从3个方面考虑:仪器识别、属性记录、消息发送。

在仪器库中每个模块占有一定的矩形区域,这个区域与屏幕的相对位置是确定的,因此根据鼠标当前所在屏幕位置可以判断鼠标是否落在某一模块区内来实现命中测试,进行仪器识别。

当用户选定某个仪器时需要记录相关的属性,如仪器所在的主键控名,仪器名,仪器的索引号等,为仪器绘制提供信息。

消息的发送是指当鼠标命中模块库内的某个模块时发送一个消息,通知相应的处理函数记录与模块相关的属性。

2)仪器的绘制

仪器绘制是将选定仪器在操作台上显示的过程,在该功能实现中也包含两部分内容:仪器本身的绘制、仪器端口的绘制。仪器的绘制是根据仪器选择部分所记录的属性,判断用户鼠标的操作事件,采用双缓冲技术绘制被选中的模块。

仪器不能孤立的存在,它必须和其他仪器相连才能完成电路的搭建,因此,仪器要具有信号流入的端口和信号输出端口,这就需要在绘制仪器的同时绘制其端口,在设计中端口是用空心的圆形图表示,不同仪器所具有的输入输出端口数量不尽相同,这些需要根据所选仪器动态绘制[2],具体的实现思路如下:

第一步,定义端口类,根据仪器名确定该仪器的输入输出端口数量,确定每个端口相对于仪器所在矩形区域的位置,记录这些属性信息。

第二步,动态生成每个仪器的端口对象,端口的属性有:端口相对位置,端口圆形区域的圆点坐标,端口类型(输入还是输出端口)等。

第三步,根据具体属性值动态绘制仪器端口。

3)连接线的绘制

仪器间的信号传输是通过连线来完成的,连接线是一条终点带箭头的线段,箭头方向表示信号的流向。连接线绘制的步骤是先判断光标是否在端口内,只有在端口内才可以画线,然后根据鼠标的移动动态绘制连线,鼠标单击处产生拐点,以该转折点为新起始坐标继续画线,鼠标移至另一端口时即为终点坐标。

4)仪器的移动和删除

仪器的移动分为两种情况:仪器端口有连接线的移动;仪器端口无连接线的移动。后者较简单,是前者的特例,第一种情况的具体的实现思路为:

第一步:判断鼠标是否落在仪器矩形区域并按下左键移动,若3个条件都满足,则执行第二步,否则仅改变鼠标形状。

第二步:擦除掉原有仪器、输入输出端口、连接线。

第三步:重新记录数据,包括仪器矩形的坐标,端口位置,连接线的坐标的更新等。

第四步:按照更新后的属性数据重新绘制所有对象。

仪器的删除是根据用户的操作,擦除鼠标落在的矩形区域,同时擦除仪器所对应的端口和连接线等。

1.3 仿真层

1)系统模型的判断

本实验要求实验者自主选择实验内容,创建实验系统模型。因此需要对用户搭建的系统模型的正确性进行判断。判断的方法是与预先设定的正确系统模型进行比较,比较的方法分为3步:判断仪器个数、判断连接线的条数、判断各仪器端口的连接情况等,直到所有设置与正确模型相匹配,如果其中一步错误,后面的判断不再执行。

2)仪器参数的设置与判断

当创建好模型后,需要对模型中仪器的参数进行设置,以便对不同的参数的仿真结果进行分析研究。

3)信号波形的输出

本实验的仿真层功能除了创建实验系统模型外,另一个重要的功能就是将系统模型连接线上的信号波形部分或全部输出,图1即为2ASK调制系统模型的各部分信号波形图。

图1 2ASK调制系统模型的各部分信号波形图Fig. 1 Signal waveform of 2ASK in modulation system model

2 关键技术

在本系统开发中用到了许多技术,这些技术在系统的开发中起到了关键作用。

2.1 双缓冲技术

在系统开发过程中,要绘制大量图形,然而直接进行多重绘制或移动窗体会造成闪烁问题,这是由于Windows应用程序是自己负责绘制的,当一个窗体发生变化,如改变窗体的大小,或者部分被其它程序窗体遮盖,或者从最小化状态恢复时,程序都会收到需要绘制的信息。Windows把这种“变化”状态称为“无效的(Invalidated)”状态,在这种情况下需要重绘,当Windows窗体程序需要重绘窗体时它会从Windows消息队列中获取绘制的信息,这个信息经过.Net框架封装然后传递到窗体的PaintBackground和Paint事件中去。当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象。在实际系统开发过程中,为了有效的解决这一问题,采用了双缓冲技术[3]。

双缓冲即在内存中创建一个和屏幕绘图区域一致的对象,先将图像绘制到内存中的这个对象上,再一次性将这个对象上的图像拷贝到屏幕上[4]。双缓冲实现过程如下:

第一步,在内存中创建和画布一致的缓冲区。

第二步,在缓冲区画图。

第三步,将缓冲区位图拷贝到当前画布上。

最后一步,释放内存缓冲区。

在本实验中多次采用双缓冲技术来消除刷屏造成了闪烁,当启用双缓冲时,所有绘制操作首先呈现到内存缓冲区,而不是屏幕上的绘图画面。所有绘制操作完成后,内存缓冲区直接复制到与其关联的绘图画面。因为在屏幕上只执行一个图形操作,所以消除了由复杂绘制操作造成的图像闪烁。

2.2 “拖拽”技术

拖拽技术,其实是一种绘图技术,具体来说,它是一种实时绘图绘图技术。实现拖拽技术的思想是:擦除掉原来位置的图形,在新位置重新绘制刚才擦掉的图形,随着光标的不断移动,在不停地擦掉原来图形的同时在新位置重新绘制原来的图形[5]。

在本系统调制电路模型创建时,需要进行仪器拖拽和连接线拖拽。下面介绍仪器拖拽的实现思路:

在pic_device_MouseDown()事件中,判断鼠标是否已落在某一个仪器图形上,如果是,则把对象的图形标志为可以高亮状态。鼠标不放开,接着在实验操作区内移动,并不断地发出Mousemove消息,在MouseMove消息的处理函数中判断鼠标的位置,修改有关对象图形坐标的相关信息。然后调用Draw_device()函数,绘制拖动的对象图形。

2.3 反射技术

反射(Reflection)是.NET中的重要机制,通过反射,可以在运行时获得.NET中每一个类型成员的各种信息,还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。知道了类型信息,就可以在程序运行时动态地创建对象,调用方法,设置属性和激发事件,所有这些都是在程序运行时而不是编译时完成的。在本系统中仪器的选择和连线过程中需要根据实验者行为及时获得对象的各种信息,所采用的就是通过反射技术实现对象的动态创建,并激活相应事件[6]。

3 结束语

本设计依据国内外虚拟实验技术[7]发展及计算机通信课程实验的软硬件现状,结合自己学校目前在开设实验课面临的诸多问题,设计并实现了计算机通信虚拟实验系统,频带传输系统是其中一个子系统。本系统的主要设计特点:模块化结构设计、界面友好、交互性强、仿真过程和结果直观、对专业知识很好的融合。目前,虚拟通信实验系统单机版基本功能均已实现,单机版不受网络限制,可用于课堂演示与学生自学,还可升级软件和资源,能够有效的降低课程学习的难度,尽管虚拟实验系统能有效地解决实际实验教学所存在的一些问题,但是这种纯软件的虚拟实验也存在一定局限性。因此,在实际的课程教学中,应该采用虚拟实验和实物实验相结合的方式,软硬互补,虚实结合,加强知识的理解力和学习的灵活性,最大程度的发挥实验教学的作用。

[1] 潘新民.计算通信技术[M]. 北京:电子工业出版社,2006.

[2] 李江全,张茜,李伟,杨旭海. Visual Basic.NET串口通信及测控应用典型实例[M]. 北京:电子工业出版社,2012.

[3] 鲍尔,斯内尔,刘彦博. Visual Studio 技术大全[M].北京:人民邮电出版社,2008.

[4] 唐召东.计算机虑拟通信实验系统—频带传输实验系统的设计与实现[D].天津师范大, 2004.

[5]田丰.虚拟实验与真实实验的整合研究 [J].实验技术与管理,2005,22(11):89-90.TIAN Feng. The research of virtual experiment integration[J].Experimental technology and management,2005,22(11):89-90.

[6] 王刚.计算机网络硬件通信虚拟实验系统[D].天津:天津师范大学, 2006.

[7] 陈昌鑫,马英卓,代月松.基于LabVIEW的虚拟实验系统设计[J].电子科技,2011(7):85-87.CHEN Chang-xin,MA Ying-zhuo,DAI Yue-song.Design of virtual experiment system based on LabVIEW[J].Electronic Science and Technology,2011(7):85-87.

Design and implementation of frequency-band transmission system based on .net

LIU Wan-ni , DU Xiao-chun
(Xi'an Eurasia University, Xi'an 710065, China)

According to the teaching problems in the Frequency-Band transmission,such as abstract concepts、deeply knowledge point.a Frequency-Band transmission system was designed based on the Visual Studio.net.developed with the structured and object oriented method of combining,the content including modulation and demodulation of ASK,FSK, PSK.This paper introduces the analysis and design of function modules , and focuses on the key technologies.After testing, the system has friendly interface, strong interaction, can effectively reduce the learning difficulty.

frequency-band transmission system; double buffer technology; simulation; reflection technology

TN914

A

1674-6236(2014)03-0042-03

2013–06–25 稿件编号:201306163

刘婉妮(1981—),女,陕西咸阳人,硕士,讲师。研究方向:移动通信、交换网技术,多媒体。

猜你喜欢

频带鼠标端口
一种端口故障的解决方案
Progress in Neural NLP: Modeling, Learning, and Reasoning
Wi-Fi网络中5G和2.4G是什么?有何区别?
单音及部分频带干扰下DSSS系统性能分析
端口阻塞与优先级
调谐放大器通频带的计算及应用
8端口IO-Link参考设计套件加快开发速度
LTE-U
卫星三端口DC-DC变换器技术综述
45岁的鼠标