前言:中文期刊网精心挑选了通信软件范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
通信软件范文1
【关键词】 PowerPC DSP 双口存储器 故障管理
PowerPC处理能力强,性能优异、体积小、重量轻、散热量小,在航空航天、石油、水利、交通运输、工业控制、数控采集等领域获得了广泛的应用。DSP它不仅具有可编程性,而且实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器。将PowerPC和FPGA结合的相控阵雷达波束控制系统能够充分利用PowerPC的高性能处理能力和FPGA的定制电路设计能力,同时兼顾功耗、成本、设计周期等因素,是对体积要求小、负载要求轻、计算能力要求高的相控阵雷达波束控制系统的有效解决方法。
一、总线通信系统架构
总线通信系统由一个CPU(PowerPC)模块、一个DSP模块以及电源模块组成。CPU模块采用PowerPC750处理器,同时集成了网卡和大容量FLASH,具有高速的数据采集及处理、仿真任务调度以及数据存储等功能。DSP模块采用TMS320F240系列芯片,通过局部总线,与外界设备通过RS422、ARINC429等数据交换总线相连。用户通过PowerPC发送和接收任务数据,PowerPC再通过双口存储器与DSP相连接,进行数据交换,DSP则负责RS422串行通信总线和ARINC429总线通信的控制管理、数据接收和发送等,以上整个系统完成了总线的通信功能。主处理器为P2020通用嵌入式双核处理器,从处理器为XC7K325T FPGA,主处理器基本功能是根据天线波束指向要求,计算各天线单元移相器所要求的波控码,传输至每一个移相器,控制每一个移相器相位状态的转换。从处理器主要完成波控码值的分发,可以通过并行或者串行的方式,以减少码值分发的时间。
二、总线通信系统软件设计
软件设计层次结构包括Bootrom、VxWorks操作系统、应用程序三个部分。BootRom:主要用于操作系统映像、应用程序的加载,运行在目标机上,可以通过网络RJ45接口、串行RS232接口与宿主计算机板卡建立连接这种方式,把操作系统的映像、应用程序更新到系统的FLASH存储设备中,同时提供相关的功能,设置BOOTROM的启动方式、启动参数、自身更新BootRom程序。Vxworks操作系统:主要提供嵌入式系统所需要的任务调度、同步机制、中断处理、文件管理等基本功能、与目标机相关的设备驱动。嵌入式VxWorks操作系统内核和相关组件是由WindRiver公司提供的,在波控软件设计中,需提供与操作系统相关的硬件驱动程序。应用程序:应用程序为运行在VxWorks操作系统之上的波控程序。
三、总线通信系统软件设计
1、总线通信系统软件概述。总线通信系统软件由驱动软件和控制软件组成,是实现RS422串行通信和ARINC429总线通信的专用软件。其中,驱动软件实现DSP与主机应用软件间的接口控制与数据传递,它可提供各类消息数据的读、写支持,对DSP内程序的调度。控制软件负责RS422串行通信和ARINC429总线通信的控制、数据接收和发送等。
2、驱动软件。驱动软件运行在PowerPC模块上,是应用软件与控制软件的接口软件,为实现应用软件的管理功能,驱动软件控制DSP模块的初始化、启动、停止、自测试,监控DSP模块状态,控制DSP模块和主机的数据交换。当DSP在处在停止状态,调用DSP_Bit进行DSP自检测,调用DSP_Initialize进行DSP初始化。驱动软件按其功能分为:模块控制程序、RS422控制程序、ARINC429总线控制程序、操作信息控制程序。模块控制程序的主要功能是启动DSP模块上的初始化程序,使DSP初始化,然后启动DSP上的启动程序使DSP开始工作,还可以停止DSP运行以及启动DSP上的BIT程序进行自检测。RS422控制程序的主要功能包括对RS422各通道进行初始化(各通道的接收/发送数据缓冲区划分,每个数据块的新数据、错误、中断等标志字的设置,波特率、奇偶校验位、数据位和停止位的设置),接着从双口存储器读DSP端RS422接收到的消息,并将要通过RS422发送的消息数据写入双口存储器,最终由DSP上的RS422进行数据发送。
通信软件范文2
关键词:嵌入式 网络终端 通信软件设计
中图分类号:TP311 文献标识码:A 文章编号:1003-9082(2015)11-0001-01
前言
嵌入式网络终端的通信软件设计,是以计算机技术为基础,将可用于通信系统的软件以嵌入式的方式与通信系统融合,实现通信系统的智能化和技术化,满足当下人们的通信需求。随着计算机技术、信息技术、网络技术的发展,嵌入式网络终端系统得到了前所未有的发展和进步,其在通信系统的应用,更是促进了网络通信系统的发展,对传统通信行业带来了巨大的冲击。本文着重分析了嵌入式系统的构成,并就其系统程序进行了相关阐述,最后分析了利用嵌入式网络终端如何实现通信软件设计。
一、入式系统分析
嵌入式系统的核心是应用,通过利用嵌入式硬件,对应用体系中的相关功能加以改制,形成以嵌入式硬件为核心的计算机系统。嵌入式系统具有较强的可靠性和稳定性,能够满足系统的成本、功耗、体积等多方面的要求,在信息领域和通信领域得到了较为广泛的应用。嵌入式系统由以下几个部分构成:硬件设备、驱动设备、应用软件设备。起重硬件设备包括嵌入式处理器以及嵌入式的设备,驱动设备主要指的是嵌入式系统软件。应用软件则是具体的系统软件,是嵌入式系统与嵌入对象之间实现的功能[1]。
嵌入式网络终端构成:
1.网络终端核心板:这一设备是嵌入式网络终端的核心部分,主要采用了S3C6410微处理器,具有较强的多媒体处理功能,并且具备256M存储器,可以实现信息存储功能;
2.电源模块:主要以直流电源供电模式为主,并且配备电源适配器,保证系统电源稳定性;
3.串口模块:串口模块是实现设备连接的关键部位,是嵌入式网络终端实现其功能的重要组成部分,方便用户利用交叉串口线与PC机进行通讯连接;
4.以太网模块:以太网模块能够更好地适应10/100M网络,并可以与路由或是交换机实现自由连接;
5.音频输入、输出模块:嵌入式网络终端应用的音频输入输出模块具有高度集成的性能,主要应用于移动设备和移动通信领域,采用了双重编码解码操作,更加有利于信息的传输;
6.系统模块:系统模块主要包括LED、PWN形式的蜂鸣器、利用调试的接口、线路串口、音频输入、输出口、红外接收口等,实现数据传输的方便性。
二、基于嵌入式网络终端的通信软件设计
本文对嵌入式网络终端的通信软件设计的研究,以网络聊天软件设计与实现为例,通过分析网络即时消息的传播系统设计,我们可以更加直观地看出嵌入式网络终端是如何实现通信软件设计的[2]。
1.网络聊天软件设计分析
网络聊天软件的设计,就是即时通信的一种现实表现形式,在设计过程中,主要包括用户界面模块、通信模块、好友管理模块。网络聊天软件的设计,是嵌入式网络终端的一种具体应用,它方便了信息的传输,通过友好性界面的设计,实现了即时通信目标。嵌入式模块在网络聊天中的具体应用,主要是将应用程序的数据包通过传输层协议送到IP网络上,并且利用TCP/IP协议传输层协议,将数据进行传播。在数据传输过程中,需要利用UDP端口。UDP端口更加适用于一次性小批量数据传输,可以在很大程度上缩减数据包封包和传输的延迟时间,完成信息的即时传播。
2.基于嵌入式网络终端通信模块设计与功能实现
网络聊天的通信模块采用Socket套接字编程,并且由UDP进行数据传输和接收。在传输和接受过程中,数据发送以定向模式进行传输,具体实现步骤如下:(1)UDP协议启动函数程序,在数据传输过程中,利用IPV4的地址,将程序进行套接字类型转化,并且利用UDP协议进行表示,将程序编码翻译过来,实现数字传输目标;(2)Bind函数绑定个人计算机的IP地址和终端,采用网络数据的异步接收方法,将数据信息进行接收,并且进行回调方法将数据再传输出去;(3)数据信息到了传输目的地后,依旧靠UDP协议进行信息翻译,从而实现双方的通信交流。嵌入式网络终端模块进行信息传输过程中,具有一定的指向性,设备中的聊天系统可以通过广播进行数据发送,通知好友,与好友进行聊天。在实际应用过程中,可以先进性Soket数据设置,使套接字允许发送广播信息,并且根据异步接收方法,进行数据设置和调整,满足数据传输需要。网络聊天通信软件的设计和实施,主要得益于嵌入式系统的串口模块、以太网口模块、音频输入输出模块的功能,完成数据、信息的传播和接收,从而实现通信目标[3]。
结束语
随着我国社会经济的发展和进步,人们对通信的要求越来越高,如何加强嵌入式系统在通信软件中的应用,满足人们的通信需求,将是嵌入式系统应用于通信软件中的日后发展方向。对此,在日后的应用过程中,我们应该注重嵌入式系统的改进,使之与通信软件更好地融合,从而实现二者共同发展目标。
参考文献
[1]何花. 基于嵌入式网络终端的通信软件设计[D].福建师范大学,2012.
[2]何花,王平,施文灶,徐世武. 基于WINCE5.0的通信软件设计[J]. 电子测量技术,2010,11:117-123.
通信软件范文3
1 多站远程无线控制系统组成
多站远程无线控制系统是以计算机作为中心控制站,用多个信号源作为下位机,通过无线模块进行数据通信的。系统中的上位机作为数据接收和数据处理的中心站,当下位机实时采集到上位机发送的数据后,便可进行简单的数据处理并向上位机回送数据。
上位机无线通讯接口使用串行端口与无线数传模块相连,数字信号通过天线调制后送到下位机的一台外置无线模块,然后通过串口送入单片机进行处理。系统组成框图如图1所示。
2 串行通讯控件
利用VB开发通信程序主要有两种方法,一是利用VB本身提供的控件(CONTRALS),另一种是利用WINDOWS API应用程序接口。在实际应用中,用VB 控件实现通讯的方法比调用SDK的API动态连接库的方法更加方便和快捷,而且可以用较少的代码实现相同的功能,这就是用VB 控件实现通讯的优点所在,下面主要介绍一下利用VB 控件实现无线通讯的方法。
VB控件工具箱中提供了一个使用非常方便的串行通讯控件MSComm,它提供了使用RS-232串行通讯上层开发的所有细则。通过它完成串行通讯既可以使用查询方式,又可以使用事件驱动方式。控件的一些重要属性及其说明如表1所列。
表1 MSComm控件的属性说明
属 性设定值说 明
ComPort1串口号,如果串口1已所用,改用串口2InBufferSize1024接收缓冲区大小InputLen0从接收缓冲区读取的字节数,0表示全部读取InputMode1接收数据的类型,0表示文本类型,1表示二进制类型OutBufferSize1024发送缓冲区大小RThreshold1设定接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一事件SThreshold0设定在触发OnComm事件前,发送缓冲区所允许的最少的字符数,0表示发数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件Settings1200,n,8,1串口的参数设置,依次为波特率、奇偶校验(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数3 应用实例
本系统的通讯网络并非点对点的通讯,而是采用一点对多点的广播式通讯方式。由于无线通讯可能会有空间的噪声干扰,因此,需要采取一些抗干扰措施。首先是身份识别码,因为给下位机编码可以保证网络通讯的有序性,因此,每个站都应有身份码。其次是包头识别码,由于在发送了传输命令之后,下位机开始以打包的形式传输数据,因而每一包都有一个包头和包尾识别码,假如识别码有误,则表明该次传输为不正常数据。因此,应使用1200波特率、无奇偶校验位、8 个数据位、1 个停止位的较稳定状态。
上位机向下位机发送的参数有站号、状态(开机、关机)、频率、重复周期、脉宽、天线转速、天线扫描方式、天线状态、天线角度等。发送命令有手动方式和自动方式两种。自动方式是由定时器自动完成的。为了及时知道分站的状态和运行情况,还应设计定时查询和即时查询。
在无线通讯过程中,除了规定合理的协议之外,为了保证通讯的正确性,在数据发送时还应适当地增加延时,特别是当速度较慢的计算机向速度较快的计算机发送数据时,更应适当增加延时。
由于该项目的软件源代码较长,故只给出和串口通讯有关的程序片段供大家参考。笔者在工作中实践了三种通讯方式,即查询方式、事件驱动方式、事件驱动转查询方式。这三种方式各有利弊,其中查询方式具有方便可靠的特点,可利用协议或设定时钟来进入和退出查询状态,但它不是资源的有效利用方式;事件触发方式对于定长通讯非常有效,但其定长通讯在有些场合不适用;而事件驱动转查询方式既有事件驱动的特点又有转查询方式的特点,可以说是汇集了前二者之长,故可有效利用资源。下面着重介绍事件驱动转查询方式。
由于在通讯中,RTS电平可置高或置低,如果用事件驱动,计算机就会进入中断,资源就没有有效利用,所以在程序中添加了一个接收函数。为了保证程序的可靠性和灵活性,可以运用设置身份码等方法来保证各个子站互不干扰,具体实现过程的主程序流程图如图2所示。
除以上处理外,还可以使用以下方法来增加系统的可靠性、灵活性和效率。
(1)设置身份码和目的地址
每个数传模块均有表示其唯一身份的身份码,身份码长为两个字节共十六位。第一字节表示组码,第二字节表示组内识别码,身份码可用D7H?F5H?XXH?YYH设置,可设置于模块内的EEROM中,掉电后不丢失。在数据传送前,应设置目的地址,以便确定由哪个来接收数据。采用此方法可以有效地防止干扰。
(2)使用动态数组
接收字节数据时,必须使用动态数组。一个动态数组被声明后,可以利用Input属性将串行端口输入缓冲区内的数据指定到该动态数组中。被接收到的数据的实际大小必须利用Lbound及Ubound才能取得最大及最小索引值,同时也只有这样,才能利用程序将内部的值一一显示出来。另外,利用最大和最小索引值还可以判断是否为一次成功接收。
(3)最优化TimeDelay
在每次传输指令后,一定要等待一段时间才可能从串行端口的输入缓冲区中取得信号源传回的数据,这个时间有多久是项目的关键,太长了效率太低,太短了,数据有可能接收不全,所以有必要进行最佳化测试。具体代码如下:
Public Declare Function GetTickCount Lib ″ker-nel32″ ()?As Long
Dim Buf$
Dim T1&?T2&
Comm1.Output=Trim(Ucase(txtsend..Text)) & vbcr
T1=GetTickCount?()
Do
Buf=Buf & Comm1.Input
Loop Unitl Instr(1,Buf,vbCr)>0
T2=GetTickCount()
LblTime.Caption=CStr(T2-T1) & “ms”
该程序中使用GetTickCount来取得系统自开机后每千分之一秒更新的Tick值,在接收的前后加上取Tick值的叙述,自然就可以得到传输的时间了。从测试的结果来看,传输单个数据的时间为100ms,10个群组的时间约为500ms。
(4) 增加程序的效率
利用下面的程序可在无线通讯受到干扰或对方设备电源没有打开等原因造成对方数据不能上传时,避免程序一直在等待。如果在规定时间内还没等到规定的字节数时就跳出循环,并出现一个重新发送对话框。此时如果还是不对,就弹出一个对话框“请检查系统!"。具体程序如下:
Public Sub ReceiveData()
′On Error Resume Next
Dim start, dend As Integer
Dim byin() As Byte
Dim byindata(11) As Byte
Dim I%? buf$
′根据事件分发处理
Do While frmMSCommDemo.MSComm1.CommEvent = 2
Exit Do
Loop
Timedelay 850 ′适当延时
byin = frmMSCommDemo.MSComm1.Input
′接收串行端口内的数据至动态数组中
dend = UBound(byin) ′得到最大值
start = LBound(byin) ′得到最小值
If dend < 5 Then
MsgBox RadarNoOut & “信号源出现系统
故障,请求检修!”? vbOKOnly
Exit Sub
End If
′接收串行端口内的数据至动态数组中
′ReDim Preserve byin(11) As Byte
If byindata(0) = &H55 And byindata(1) = &HAA
Then ′包头正确,接收到包头进行数据处理
.
.
.
End sub
′延时程序
Sub Timedelay(TT As Long)
Dim t As Long ′声明一个长整数,记录计数值
t = GetTickCount() ′取得系统计数值
Do ′开始循环
DoEvents
If GetTickCount - t < 0 Then t = GetTick-Count ′归零
Loop Until GetTickCount - t >= TT ′计算延迟是否到达
End Sub
4 结论
根据本系统的研制经验,利用MSCOMM控件开发无线通信要把握好以下三条:
(1) 收发之间应延时适当,这需要在测试中不断地调试,以达到最佳效果。
通信软件范文4
关键词: TCP/IP;TCP协议; UDP协议;Winsock;远程监测
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)04-0731-06
Design of TCP and UDP Communication Test Software
TU Jin-long
(Nanjing Communications Institute of Technology, Nanjing 211188, China)
Abstract: TCP and UDP are two protocols of TCP/IP transmission layer protocol. They use IP routing function to send packets to destinations, thus provide network services for applications and application layer protocols. TCP and UDP both have their advantages and disadvantages, the mai n difference between them lies in the connection state. Applications choose accord to the actual usage. Winsock can be used to write client and server applications without the need of knowing details of the TCP/IP. By setting Winsock attributes and call its control methods, connection to remote computers and two-way data exchange can be easily achieved.
Key words: TCP/IP; TCP protocol; UDP protocol; Winsock; remote monitoring
根据国家有关标准,各地应加强对客运车辆燃料消耗量检测和监督管理,加快淘汰、更新高耗能的老旧营运车辆。但迄今为止,我国客运行业的能耗统计一直采用手工填写统计报表的方式,不仅投入的人力物力大、数据误差大,而且不能实时了解能耗情况。为此,需要研发一种客车能耗远程监测系统,以便实时快速地采集客车运营过程中的有关信息,实现全自动的客车能耗数据分析、处理、评估,从而改变现行的由人工按月或年度填写报表的统计方式,提高工作效率及数据的准确性,为管理部门对高能耗高污染车辆实施强制淘汰或报废提供数据支持。
随着计算机技术及网络技术的不断发展,人们的生活和工作越来越离不开网络,尤其是网络远程控制技术已经广泛地应用于网络自动化管理、实时监控等方面。针对移动运行的客车,要实时获取有关数据,就需要凭借无线网络将采集到的数据传到监控中心。在众多的网络通信中,以TCP/IP协议最为流行,为了测试远程无线通信在具有防火墙的系统中的有效性,针对应用的特殊性,以及为了顺利进行软硬件的配接,需要先编写一个测试通信链路的TCP和UDP通信测试软件。
TCP和UDP是TCP/IP体系结构中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层协议提供网络服务。TCP提供的是面向连接的可靠的端到端传送服务,它可以在低层不可靠的情况下(如出现分组传输的丢失、乱序等)提供可靠的传输机制。而UDP提供的是无连接的、不可靠的传输服务,在数据传输之前,不需要建立连接,而且收方收到UDP数据报文之后,也不需要给出任何应答信息。显然,UDP减少了很多的为保证可靠传输而附加的额外开销,因而它的效率高[1]。因此,TCP与UDP各有其优缺点,要根据实际应用进行选择。
1 TCP和UDP测试软件的设计
使用TCP和UDP通信的方法有多种,在VB开发平台上使用Winsock控件来设计软件可以说是最方便的。Winsock即Windows Sockets规范的简称,是目前最流行的网络通信应用程序接口之一。Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
Winsock控件对用户是不可见的,但它提供了访问TCP/IP网络的捷径,使用它可以通过UDP协议或TCP协议方便地连接到远程的机器并进行数据交换。用Winsock控件编写客户和服务器应用程序,不需要了解TCP/IP或调用底层Winsock API的具体细节。通过设置Winsock控件的属性和调用该控件的方法,可以很容易地连接到远程计算机并进行双向的数据交换。
使用WinSock控件时,首先要确定的是使用TCP还是UDP协议,它们之间主要的区别在于连接状态。
1.1 TCP测试软件设计
TCP协议是面向连接的协议,在数据传输前就建立好了点到点的连接。TCP网络程序工作原理如图1所示[2]。
图1 TCP网络程序工作原理
基于 TCP/IP 协议网络通信主要模式就是客户机/服务器模式(Client/Server 模式,简称 C/S),即客户端提出请求,服务器在监听时接收到请求后就提供请求服务。远程控制是基于 C/S 模式来实现的,所以程序分为服务器和客户端程序。客户端和服务器端连接成功后,通过信息交换取得相应的服务。因此,在进行编程时,服务器端程序应设置Winsock控件的LocalPort属性和调用 Listen 方法来监听,客户机端程序则要设置 Winsock 控件的 RemoteHost 和 RemotePort 属性、调用 Connect 方法请求连接[3]。一旦建立了连接,两台计算机之间就可以发送和接受数据了。要发送数据,调用SendData方法。当接受数据时,产生DataArrival事件。在DataArrival事件中调用GetData方法来接收数据。
在VB6开发平台上可以方便地使用Winsock控件来设计网络通信软件,为了测试的方便,将客户端和服务器端的软件设计在同一软件中,通过标签来选择是客户端还是服务器端,或是UDP测试,也可以在同一台电脑中运行软件完成测试。在设计阶段,添加好必要的窗体和按钮、文本框并设置所需的名称、属性后,在窗体中放置Winsock控件,在属性窗口里的协议,选择sckTCPProtocol,也可以在代码里配置协议,例如:
Winsock1.Protocol=sckTCPProtocol
1.1.1服务器端程序
为了能接受多个连接请求,需要创建新的控件实例,调用新的实例中的接受方法。下面是创建一个服务器端程序的主要内容:
1)设置端口并侦听(监听)。双击“开始侦听”按钮,在代码中加入要设置的LocalPort,并开始监听,代码如下:
Private Sub cmdListen_Click()
If TCP_Server(0).State sckClosed Then TCP_Server(0).Close
TCP_Server(0).LocalPort = txtLocalPort(2).Text
TCP_Server(0).Listen
End Sub
2)监听连接请求。监听方法在控件中被调用,每个连接请求到来时,代码会测试看它的索引(Index)是否为0(监听控件的值),根据其值是否为0执行不同的操作。代码如下:
Private Sub TCP_Server_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Long
If Index = 0 Then '主Winsock——Winsock(0)发生消息
i = 1
If maxConnext > 0 Then
While i
i = i + 1
DoEvents
Wend
End If
If i
TCP_Server(i).LocalPort = txtLocalPort(2).Text
TCP_Server(i).Accept requestID
nowconnext(i) = True 'Winsock(i)被占用
Else
If maxConnext > 50 Then
MsgBox "已经达到最大用户数!", vbExclamation + vbOKOnly, "提示"
Exit Sub
End If
maxConnext = maxConnext + 1
Load TCP_Server(maxConnext)
TCP_Server(maxConnext).LocalPort = txtLocalPort(2).Text
TCP_Server(maxConnext).Accept requestID
ReDim Preserve nowconnext(maxConnext + 1)
nowconnext(maxConnext) = True
ReDim Preserve saveServerData(maxConnext + 1)
ReDim Preserve saveServerIndex(maxConnext + 1)
i = maxConnext
End If
End If
End Sub
3)服务器端发送数据。若选中发送回车符,则在代码中增加发送回车符,若选中发送换行符,则在代码中增加发送换行符。若是广播,则逐个发送,否则需要选择发送目标。主要代码如下:
Private Sub cmdSend3_Click()
Dim i As Integer
Dim sendresult As Long
Dim sendsrc() As Byte
Dim sendsrclen As Long
Dim sendmess(1 To 1024) As Byte
Dim outByte() As Byte
If Me.ckHex(2).Value = 1 Then '十六进制发送
sendsrclen = Len(txtSend(2).Text) / 2 - 1
ReDim sendsrc(0 To sendsrclen)
For i = 0 To sendsrclen
sendsrc(i) = Val("&H" & Mid(txtSend(0).Text, i * 2 + 1, 2))
Next
Else
outByte = StrConv(txtSend(2).Text, vbFromUnicode)
sendsrc = outByte
sendsrclen = UBound(outByte)
End If
If chkGB.Value = 1 Then
For i = 1 To maxConnext
If TCP_Server(i).State = sckConnected Then
TCP_Server(i).SendData sendsrc
End If
DoEvents
Next
Else
Dim findSerVer As Boolean
For i = 1 To maxConnext
If saveServerIndex(i) = Val(Combo1.Text) Then
findSerVer = True
Exit For
End If
Next
If i > 0 And findSerVer = True Then
If TCP_Server(i).State = sckConnected Then
TCP_Server(i).SendData sendsrc
End If
Else
MsgBox "请选择发送目标!", , "提示:"
End If
End If
End Sub
4)服务器端接收数据,数据到达后,先调用TCP_Server控件的getdata方法,将接收的数据以vbstring数据类型,存放在strdata变量之中,然后再加到txtReceive(2)控件之中。主要代码如下:
Private Sub TCP_Server_dataarrival(Index As Integer, ByVal bytestotal As Long)
Dim strdata As String
TCP_Server(Index).GetData strdata, vbString
txtReceive(2).Text = txtReceive(2).Text & Index & ":" & TCP_Server(Index).RemoteHostIP & ":" & TCP_Server(Index).RemotePort & ":" & strdata & vbCr
End Sub
以上是创建一个服务器端程序的主要内容,为了方便使用,还可适当增加一些辅助的功能,运行后的服务器端界面如图2所示。
图2 TCP协议服务器端测试软件运行界面
1.1.2 客户端程序
1)设置远程主机端口并连接。双击“建立连接”按钮,在代码中指定远程主机的ip地址,并调用TCP_Client控件的connect方法,来初始化与主机的连接请求,代码如下:
Private Sub cmdConnect_Click()
On Error GoTo connectErr
If Tcp_Client.State sckClosed Then Tcp_Client.Close
Tcp_Client.RemoteHost = txtRemoteHost(1).Text
Tcp_Client.RemotePort = txtRemotePort(1).Text
Tcp_Client.Connect
TimerConnect.Enabled = True
Exit Sub
connectErr:
StatusBar1.Panels.Item(2).Text = "未能成功连接。" & Err.Number
End Sub
2)客户端发送数据。若选中发送回车符,则在代码中增加发送回车符,若选中发送换行符,则在代码中增加发送换行符。主要代码如下:
Private Sub cmdSend2_Click()
Dim i As Integer
Dim sendresult As Long
Dim sendsrc() As Byte
Dim sendsrclen As Long
Dim sendmess(1 To 1024) As Byte
Dim outByte() As Byte
On Error Resume Next
If Me.ckHex(1).Value = 1 Then '十六进制发送
sendsrclen = Len(txtSend(1).Text) / 2 - 1
ReDim sendsrc(0 To sendsrclen)
For i = 0 To sendsrclen
sendsrc(i) = Val("&H" & Mid(txtSend(0).Text, i * 2 + 1, 2))
Next
Else
outByte = StrConv(txtSend(1).Text, vbFromUnicode)
sendsrc = outByte
sendsrclen = UBound(outByte)
End If
If chk13(1).Value = 1 Then
sendsrclen = sendsrclen + 1
ReDim Preserve sendsrc(0 To sendsrclen)
sendsrc(sendsrclen) = 13
End If
If chk10(1).Value = 1 Then
sendsrclen = sendsrclen + 1
ReDim Preserve sendsrc(0 To sendsrclen)
sendsrc(sendsrclen) = 10
End If
If Tcp_Client.State = sckConnected Then
Tcp_Client.SendData sendsrc
Else
MsgBox "请先建立连接!", , "提示:"
End If
End Sub
3)客户端接收数据,先调用TCP_Client控件的getdata方法,将接收的数据以vbstring数据类型存放strdata变量之中,然后将strdata变量的内容,加到txtReceive(1)控件之中。主要代码如下:
Private Sub TCP_Client_dataarrival(ByVal bytestotal As Long)
Dim strdata As String
Tcp_Client.GetData strdata, vbString
txtReceive(1).Text = txtReceive(1).Text & strdata
End Sub
本部分是创建一个客户端程序的主要内容,运行后的界面如图3所示。
1.2 UDP测试软件
UDP是无连接的协议。与TCP操作不同,计算机并不建立一个连接。并且,UDP应用程序可以是用在客户端,也可以用在服务器端。使用UDP协议,在两个Winsock控制间进行数据的发送,在连接的两端必须完成以下三步:
1)设置RemoteHost属性;
2)设置RemotePort属性;
3)申请Bind方法。
通过使用方法Bind,则可将该Winsock捆绑到一个本地端口,以便该Winsock使用该端口来进行类似TCP的“监听”功能,并防止其它应用使用该端口。
使用UDP协议传送数据,首先设置客户计算机的LocalPort属性。而作为服务器的计算机仅需要设置RemoteHost属性为客户计算机的IP地址或域名,并将其RemotePort属性设置成客户计算机上的LocalPort属性。主要代码如下:
WinsockUDP.RemoteHost = txtRemoteHost(0).Text
WinsockUDP.RemotePort = txtRemotePort(0).Text
WinsockUDP.LocalPort = txtLocalPort(0).Text
WinsockUDP.Bind txtLocalPort(0)
然后就可通过SendData方法来开始信息发送,客户计算机则可在其DataArrial事件中使用方法GetData来获取发送的信息,发送和接收数据的代码与TCP通信的代码类似。UDP测试程序运行后的界面如图4所示。
图4 UDP协议测试软件运行界面
2 结束语
TCP和UDP是TCP/IP体系结构中的两个传输层协议,它们使用IP路由功能把数据包发送到目的地,从而为应用程序及应用层
协议提供网络服务。TCP提供的是面向连接的可靠的端到端传送服务,而UDP提供的是无连接的传输服务,在数据传输之前,不需要建立连接,因而它的效率高。TCP与UDP各有其优缺点,它们之间主要的区别在于连接状态,应用时要根据实际应用进行选择。
使用TCP和UDP通信的方法有多种,在VB开发平台上使用Winsock控件来设计软件可以说是最方便的。用Winsock控件编写客户和服务器应用程序,不需要了解TCP/IP的具体细节。通过设置Winsock控件的属性和调用该控件的方法,可以很容易地连接到远程计算机并进行双向的数据交换。
参考文献:
[1] 天津电气传动设计研究所.电气传动自动化技术手册[M].北京:机械工业出版社,2011.
通信软件范文5
以“软”碰“硬”
实际上,微软非常重视统一通信市场,在研发和市场营销方面均投入了很多的资源,并给Office Communications Server(OCS)取了一个更短的名字――Lync,也聚集了更多的合作伙伴。微软准备在统一通信领域和思科、Avaya和IBM等硬件厂商打一场硬仗。
Lync 2010虽然是OCS的继任者,不过与OCS有很大不同。Lync 2010使用同一个用户界面来管理多种通信,包括即时通信、语音呼叫、视频呼叫、视频会议、Web会议,还新增了即时动态、通讯录名片变更和720p高清视频通话等功能。
对企业来说,Lync 2010的诱惑是:它有能力取代传统的PBX(程控交换机)和会议系统,可以为公司节省可观的硬件和许可成本。但企业在考虑Lync 2010时不能只看到其优点。虽然它使沟通更容易,更节省成本,但也会造成工作人员分心,并且语音和视频也会消耗掉企业大部分网络带宽。
Lync 2010除了为人们的沟通方式带来革命性的变化外,企业IT部门还期待通过Lync 2010改进基础设施,消除传统的PBX系统以节省时间和资金。孙建东表示:“在Lync 2010正式前,我们在全球已经有60多个客户做过了先期的体验,有100多个客户做了技术体验。在中国也已经有5个客户率先把Lync 2010在他们的公司中。”
改变沟通方式
Lync 2010继承了即时通信、在线状态、音频、视频、网络会议和话音功能。通过Lync 2010人们可以根据时机情况选择最合适的方式进行沟通。Lync 2010支持用户所熟悉和常用的应用程序,包括Microsoft Office、Microsoft SharePoint和Microsoft Exchange等。
孙建东对记者说:“在微软我们已经不用电话了,这对我们来说是额外的成本节省。现在每个人都有一个耳机,我平常在23层办公,但有时候我到20层跟我的团队一起办公,我要做的事情就是把电脑搬下去。扩展性强是基于软件的解决方案带来的最大好处。”
中国人寿再保险股份有限公司副总经理成小平说:“我们对微软系统做了全面的了解,它的有些功能确实很适合我们的需求。2005年,我们就部署了OCS,它把即时通信以及在线感知、快速沟通、人员状态情况集成到OA系统中。那时开始,大家就觉得使用起来比较顺手。今天Lync 2010更吸引人的地方,就是它可以实现多点沟通。”
通信软件范文6
关键词:软件无线电技术;通信系统;3G网络;模块化
1 软件无线电技术概述
1.1 软件无线电技术的基本思想及其优越性
软件无线电技术实现了硬件、软件、无线技术等的有机结合,构建了多样性的功能系统。软件无线电技术其基本思想是以通用、标准和模块化的硬件平台为依托,通过软件编程来实现无线电台的各种功能,实现了软件优化,减少了模拟环节,提高了功能的灵活性。总的来说,软件无线电技术主要有以下几个方面的优点:
第一,完全数字化。软件无线电的基本思想之一就是通过通信系统的基带信号直至中频、射频段,进行数字化的处理,因此,它实现了全过程的数字化,构建了全数字化的通信系统。
第二,完全可编程性。软件无线电主要通过通用的硬件平台,将通信的各种功能实现了完全采用软件来进行,它主要包括:可编程的信道调制方式,可编程的射频与中频方式等。
第三,系统便于实现模块化。软件无线电技术利用软件无线电的基本思想,对现行的通信系统均能够进行模块化的设计,对模块的物理及其电气接口等性能指标达到统一、开放的标准;通过对单一模块进行更换,进而提高了系统的性能。
1.2 软件无线电系统功能
软件无线电实现了传统的无线电通信就需要经历信号的发射,信号的传输及其信号的接收等三大过程。随着新型无线电软件系统的信道接入、信道调制和信道的选址及分配等都可以通过系统终端的编程软件功能来实现,因此,软件无线电通信系统的实现就可以缩减为发射和接受两个过程。与此同时,在软件无线电技术中,它所承担的发射过程的软件功能相当丰富,不仅能够自行选择确定的适合信道传输的最佳调制方式和编码方法;还能决策调整宽带天线的位置,获得最佳的方向。
2 软件无线电技术在通信系统中的应用
现行的面向具体用途而设计不同频段、不同制式的无线电通信技术思想已经远远不能满足现代化的无线电通信的实际需要。软件无线电技术是在无线电通信技术基础上发展而来,是对通信理念与体制的革新,它实现了通信系统的全面优化升级。
2.1 软件无线电技术在cdma 1x基站中的应用
在蜂窝移动通信系统中,基站和移动终端采用软件无线电技术后,其硬件更为简单,软件定义功能,射频和信道的访问模式以及信道调制等都可以编程。软件无线电在cdma 1x基站中的部分应用如图1所示:
在传统的基站设计中,主要经CDMA信道板处理后的基带数字信号通过D/A转换器形成模拟信号,再进行中频转换。各信号存在着相互干扰,使得每个模拟中频转换板只能对一个载波信号进行转换,其程序相对繁杂。相对而言,在软件无线电技术中,从CDMA信道中传输的基带数字则不再进行D/A的转换,而是作为数字信号进行数字中频的转换,这样,各信号之间就不存在干扰,实现了三个载波的数字中频转换集成在一块中频转换板上。
2.2 软件无线电技术在3G中的应用
第三代移动通信系统所要达到的目标与系统的特点中,其核心问题是要解决不同环境下的多媒体业务,因此,对实现多种网络的综合要求更高,既要做到无线网与无线网的综合,移动网与固定网的综合,还要达到陆地网与卫星网的综合,这样才能为用户提供一个统一的业务使用方式。具体而言,软件无线电技术在3G中的应用主要体现在:实现了3G手机与基站之间的开放性、模块化的系统结构的构建;实现了智能天线结构,空间特征矢量包括来波方向估计的获得,射频通道权重的计算等;各种信号处理软件的实现,主要包括各类无线电软件的处理,信号流转换软件等。
软件无线电技术在3G系统中的应用非常重要,它不仅为3G系统提供了通用的系统结构,还实现了灵活的功能和便利的系统升级;实现了利用统一的硬件平台和不同的软件满足IMT-2000家族概念的要求,实现了不同标准之间的操作。因此,软件无线电技术作为新型通信技术,在现代化通信系统中有着十分重要的应用价值和效果。
[参考文献]