当前位置: 首页 > 范文大全 > 公文范文 >

基于PDA无线模块的卫星通信地球站监控系统的设计和实现

时间:2022-03-24 09:13:00  浏览次数:

摘要: 随着网络编程技术的飞速发展,无线监控系统越来越受到人们的欢迎。本文主要介绍了利用VC++语言设计的基于802.11b无线模块的卫星通信地球站监控系统,讲述了本套系统的主要功能、特点以及实现过程。最后着重讨论了软件实现过程中遇到的一些问题,如WINCE下UNICODE字符编码问题,数据库,堆、栈的使用问题。

关键词:PDA;监控系统;无线通信;VC++

中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)21-30410-02

Monitoring System of Satallite Earth Station Based on Wireless Module of PDA

HAN Zhen-hua

(College of Telecommunications and Information Engineering,Nanjing University of Posts & Telecommunications,Nanjing 210003,China)

Abstract:With the rapid development of network programming,wireless monitoring system has been a topic of welcome.In this paper, descibes the monitoring system of satellite earth station which based on 802.11b wireless module and VC++ language, exposed the function, characteristics and realization of the system.Finally, discusses the issues which encountered,such as UNICODE character encoding,database use,heap,stack use.

Key words: PDA;monitoring system;wireless monitoring;VC++

1 引言

使用的PDA的操作系统是Windows CE系统,Windows CE是一种专为开发小体积、资源要求低的机器而设计的操作系统,它是一种紧凑、高效和可扩展的操作系统,适用于各种嵌入式系统和产品。它是拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统。它的模块化设计方式使得系统开发人员和应用开发人员能够为各种不同得产品来定制它。

地球站监控系统是卫星通信地球站的重要组成部分之一,是保证地球站能正常工作的关键。PDA以它的携带方便性,移动性,符合在战场干扰性强等情况下使用,引起了人们的广泛关注。本监控系统利用PDA内置的802.11b无线模块与卫星通信地球站通信,完成对天线控制器、modem的运行参数设置,运行状况实时监控,各关键部件实时告警,以确保设备的正常运行和传输质量,并且为操作人员提供了可视化的操作界面,便于操作人员在短期内掌握操作方法,而非专业人员也能很快掌握。

2 基于WINCE应用程序设计特点及准备工作

2.1 开发软件介绍

开发基于Windows CE应用程序选择eMbedded visual c++(EVC)、eMbedded Visual Basic或者采用Visual C++或者Visual Basic6.0附带的嵌入式工具包。用Visual C++开发的应用程序具有运行速度快、程序占有空间小等特点,所选择使用了Visual C++作为开发工具。

2.2 开发应用程序前的准备工作

仿真环境的建立,在桌面计算机上开发应用程序,需要安装Pocket PC的仿真器。安装Visual Stdio 2005里面的VC++部分,里面带有Pocket PC2003仿真器,通过仿真器可以使开发过程变得简单,方便,使得在没有Windows CE实体的个人计算机上开发WINCE的应用程序变为可能。

桌面计算机与PDA的连接及同步:Microsoft ActiveSync4.5是当前掌上电脑与桌面计算机最新的同步软件。它和以前的同步软件相比具有同步速度快,安装便捷,方便增加波特率等特点。

3 天线与监控模块组成和通信协议

3.1 天线与监控模块的组成

此卫星通信地球站使用了Lantronix公司的macthport无线模块,取代了原来使用的手持机设备,提高了通信的移动性,成为这个产品的一大亮点。无线模块安装在天线控制器的底座里面,可以减少外界对无线模块天线的损坏,又不影响通信质量。无线模块有两个串口连接器,一个与天线控制器连接,一个与modem连接,使用相同的IP地址,不同的端口号,通过网络编程实现对这两部分的控制。通过建立一个点对点网络,无线模块作为服务器端,PDA作为客户端,完成对天线控制器和modem的监控工作。天线与监控模块的组成见图1:

3.2 天线通信协议

天线控制器和PDA通信使用基于TCP/IP协议,双方制定了一套简单的通信协议,这里采用了简单的字符串行使发送消息,消息格式为[data]<*>,其中ID为命令的开头标识符,通常选择英文字符,data为该命令标识符下需要传送的数据,data为可选部分,例如装载边瓣,收藏,复位等操作就无需传输数据,*为结束符,我们使用的是0D或者0A。为了提高通信系统的可靠性和抗干扰能力,可以在协议里加入奇偶校验,并通过双方握手协议来查看上次数据是否发送完成。

4 地球站监控系统功能特点及实现

4.1 地球站监控系统功能特点

此监控系统是以PDA为核心的计算机化监控系统,结合计算机软硬件以及数据库技术,具有以下功能特点。

1)能实时实现卫星通信系统中各个设备的工作状态以及参数查看,并可以根据需要修改对星参数。

2)能存储多颗卫星经、纬度,以及地球站经纬度,建立相应的数据库,可以实现智能对星。

3)当设备出现故障时,能实时报警,并具有一定的故障诊断能力。

4)嵌入HTML语言,通过主页发布到Internet上。

5)通过查看系统日志,供工作人员查看和制表。

4.2 监控软件工作流程

服务器和客户机之间进行通信是基于TCP-IP协议,其通信过程以客户端为例进行说明,

其一般步骤如下:

1)SOCKET初始化,初始化成功转入2);

2)建立一个TCP连接,如果连接成功转入3),否则继续连接;

3)发送数据,发送完成后等待天线返回数据;

4)等待接收数据;

5)处理接收数据,显示;

6)关闭套接字。

流程图见图2。

4.3 WINCE下UNICODE字符编码的问题

纵所周知,WindowsCE下编程99%的问题都和Unicode有关。比如文件编辑,一般都保存为Ansi格式,无线通讯中控制Modem需要发送的AT指令,必须是Ansi格式,网络通讯中,PC端一般都是Ansi的,为了和PC上协议兼容,在WindowsCE中必须把要发送的一个指令从Unicode转换成Ansi格式等等。WindowsCE中有标准的API实现了Unicode和Ansi字符间的互转。下面就是网络通讯中的发送程序片断。

m_psocket是指向一个CSocket类的对象,如果没有连接的话其为NULL,m_snd是要发送的字符串。

char *buf;

buf=new char[128];

ZeroMemory(buf,sizeof(buf));

CString tmpstr(m_snd);

int multibytelen= WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK|

WC_DEFAULTCHAR, tmpstr.GetBuffer(m_snd.GetLength()),m_snd.GetLength(),0,0,0,0);

WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK|WC_DEFAULTCHAR, tmpstr.GetBuffer(m_snd.GetLength()),m_snd.GetLength(),(char *)buf,128,0,0);

int sendcount=m_psocket->Send(buf,multibytelen);

delete []buf;

经过转换之后通信就不会再有乱码的问题出现。

4.4 数据库的设计

数据库作为先进的数据管理技术,其应用已渗透到各个领域,任何信息系统都离不开数据库的支持。本设计采用ADOCE设计数据库,操作简单、方便。ADOCE是ADO的子集,该子集专门用于Windows CE。ADOCE可以访问本地Windows CE设备数据库库,也可以使用OLE DB支持数据源。ADOCE 与PC上使用的ADO比较相近,但还是有些差别,使用时应该加以注意。ADOCE不支持Command命令,也不支持Property对象和Property集合。使用数据库有几个优点:第一,为用户修改对星参数提供方便,卫星参数包括卫星名称、卫星经度、信标频率,站点经纬度,只要选择一项指标(主键),其它对应的参数就全被选中,操作简单方便。第二:对系统报警可以实时保存,可供用户参考。第三:提供了用户权限,根据权限不同访问的资源不同,如手动对星中的校零功能只有工程人员才可以使用。第四:提供了恢复出厂设置功能,在用户操作不当引起数据错误的情况下,可以恢复出厂设置。

4.5 WINCE下堆栈的使用问题

Windows CE编程最重要的方面是需要管理一个程序可用的有限的内存。其它的Windows编程可以假定几乎无限的内存空间。即使一台PC机只有4MB 或8MB的RAM,Windows也可以用一个交换文件在硬盘上创建大量虚拟内存。但Windows CE设备只有2MB的RAM,且有一半用于文件存储。Windows CE应用程序必须尽可能减少所占用的内存空间以便在这样少的内存环境中生存。在设计程序时,你应该知道分配给Windows CE的不同类型的内存和如何最大限度地利用它们。

堆是一段连续的较大的虚拟地址空间。应用程序在堆中可以动态地分配、释放所需大小的内存块。栈也是一段连续的虚拟地址空间,和堆相比空间要小的多,它是专为函数使用的。当调用一个函数时(包括线程),内核会产生一个默认的栈,并且内核会立刻提交少量的物理内存(也可以禁止内核立刻提交物理内存)。栈的大小和CPU有关,一般为64KB,并且保留顶部2KB为了防止溢出。实际开发中最好不要在栈中分配很大、很多的内存块,如果分配的内存块超过了默认栈的限制,那么会引起访问非法并且内核会立刻终止进程。最好在进程的堆中分配大的内存块并且在函数返回前释放。

所以在分配内存时采用在堆上分配的方法,减少在动态分配内存时由于内存不够出现的致命的程序错误,引起通信过程中数据的丢失问题。

5 结束语

利用VC++开发的这套监控系统,使用方便,通过无线网络实现了监控的移动性。在无线通信的基础上,以后会实现把监控部分完全嵌入到ARM板,实现监控系统和天线的一体性,进一方面完善卫星地球站的监控。

参考文献:

[1] 李永隆.PDA程序设计[M].清华大学出版社,2002.

[2] 姚领田.精通MFC程序设计[M].人民邮电出版社,2002.

[3] 螺丝起子研究室编.共享WI-FI无线网络实务[M].中国水利水电出版社,2005.

[4] 胡正飞,谢继东,丁彦庆.一种新型便携式卫星通信地球站系统[J].数字通信世界,2006(6):38-40.

推荐访问: 卫星通信 监控系统 模块 地球 设计
[基于PDA无线模块的卫星通信地球站监控系统的设计和实现]相关文章