当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于Windows Mobile的无线通信系统的研究与实现

1  引言
    根据江阴苏南港集装箱码头的发展形势、理货业务的发展需求以及码头集装箱吞吐量的不断增长的情况,通过对苏南港口的业务流程进行深入调查,利用GPRS无线数据网络进行数据实时采集,结合码头的应用现状和今后的业务发展的需求所进行的无线通信系统的设计与实现,使用了智能手机,并结合基于Windows Mobile 操作系统的J2ME语言实现了系统的客户端。
2  整体设计
2.1 系统组网方案
    现在非常成熟的GPRS网络的最大传输速率可高达171. 2 Kb/ s,现已成熟的EGPRS的速率约是GPRS的三倍,它能使影像和移动多媒体应用的数据速率达到473Kbps,完全满足码头的数据传输速度,并且它具有组网灵活、扩展容易、运行费用低,维护简单、性价比高等优点。

图1  系统总体结构


    对本系统来说,采用GPRS技术适用于码头作业中连续的、突发性的和频繁的数据传输,能满足手持移动终端众多时系统对突发性数据传输进行处理的要求。因此,本设计中,各监控点使用了GPRS透明数据传输终端,通过移动GPRS网络与监控中心相连,并采用APN接入点方式。各数据采集点使用移动通信公司统一的STK卡,同时监控中心对各点进行登记,保存相关资料以便识别和维护处理。各信息采集点运行监控系统软件,支持24小时实时在线,实现信息点24小时传送采集的信息数据。系统的总体结构如图1所示。
2.2  系统总体工作原理
    港口装卸生产现场信息自动传输系统的基本技术是无线终端,它是一种集无线通信与计算机网络功能于一体的新型通信系统。无线终端的应用围绕港口基本作业过程进行设计、数据采集、计划执行,是数据库的信息源头。管理人员通过中央控制台的电脑屏幕直接监控指挥集装箱装卸作业,集卡和机械司机、码头装卸作业人员通过手持或车载无线终端同中央控制台联系,实时传递集装箱的装卸信息,管理人员在中央控制台可以及时掌握整个码头集装箱的运作情况。
2.3  系统的通信流程

图2  服务器与手持终端通信
    系统采用的是客户/服务器通信模式(C/S),服务器端利用ServerSocket创建侦听特定端口的Socket,为了实现通信,服务器端要开启侦听服务、发送和接收服务。在终端设定了客户端的套接字(socket),并将其目的地址连接到服务器所在的IP地址与相应的端口,当终端人员登录时,启动此socket,搜寻并连接到服务器,如果成功,则会正确进入下一步。图2表明了服务器和智能手机终端利用ServerSocket和Socket来通信的过程。
3  技术路线
3.1  Windows Mobile系统特性
    运用在智能手机上的操作系统主要有四种:Symbian 、Linux OS 、Windows Mobile、Windows CE。相比较而言,Windows Mobile更加适用于智能手机:
    首先从产品开发的角度来讲,Windows Mobile更适合在智能手机上运行,并且正在以前所未有的速度普及开来。[!--empirenews.page--]
    其次,由于沿用了微软Windows操作系统的界面,界面和操作都和电脑上的Windows十分接近,对于使用者来说十分熟悉又上手。
    第三,针对中国用户而言,中文操作系统已经比较成熟。目前,多普达、摩托罗拉、三星等都已经生产了针对该系统的智能手机,并且从市场的发展趋势来看,基于Windows Mobile操作系统的智能手机将是主流。
    因此,在本次系统的设计中,智能手机终端采用了Windows Mobile操作系统。
3.2  Java在Windows Mobile中的应用
    Java语言分为三个版本:J2SE,J2EE,J2ME。其中J2ME版本是适用于智能无线设备和小型计算设备的J2SE的简化版,它能够适应这些设备微型、移动和无线的特点。
    对于安装了Windows Mobile操作系统的智能手机来说,根据不同品牌、不同型号的智能手机来看,在运行Java程序上也有所不同。对于不直接支持Java的智能手机来说,就需要借助第三方的Java虚拟机来运行程序,常见的Java虚拟机有JMM和DMIDP2等。而对于支持Java扩展的智能手机来说,只要将编写好的J2ME程序打包后,就能在手机上运行。本设计选择的智能手机是多普达S1,它本身是支持Java的,因此不需要另外寻找Java虚拟机来运行J2ME程序,只需要下载一个RESCO资源管理器,然后将要运行的程序对应的工程(包括jad文件)进行打包,下载至智能手机中。最后打开RESCO资源管理器,找到所要运行的Java程序,点击其中的jar文件就可以运行了。
4  系统的具体实现
4.1  服务器端程序的实现
    由于服务器端需要接受和处理的数据量较大,并且是运行在计算机上的,所以,服务器端的程序是用J2EE编写的。
    智能手机是通过设置专线APN来连接服务器的,服务器通过继承Thread类创建线程ServerImpl实现其功能,并通过生成固定端口的服务器Socket来接收终端的请求,实时侦听,对来自于终端的数据进行相应处理,完成任务后,用close()关闭套接字,最后关闭服务器退出。
    服务器的初始化程序为:         
private  void initServer(){
try{
receiveMessages=new Vector();
//创建存放接收消息数组对象
sendMessages=new Vector();
//创建存放发送消息数组对象
sender=new SendImpl(); //生成SendImpl类的对象
receiver=new ReceiveImpl();
//生成ReceiveImpl类的对象
listener=new ListenImpl();                            
  clients=new Vector();
serverSocket=new ServerSocket(8000);  
//生成服务器端口
listener.setListenSocket(clients);
//实现对客户端的侦听
listener.setServerSocket(serverSocket);
//设置服务器套接字
sender.setSockets(clients);                              
receiver.setSockets(clients);
sender.setMessages(sendMessages);
receiver.setMessages(receiveMessages);
//设置消息对象
}catch(BindException b){                                
     System.out.println("Server 已经启动");
         System.exit(0);//结束程序
     }
}      
4.2  客户端的程序实现
    在创建J2ME程序之前,首先要对J2ME进行配置。针对智能手机的特点,应当选择的是CLDC(连接有限设备)和MIDP1.0的配置。
4.2.1 连接程序的实现
    程序的主题部分中,与服务器的连接过程是关键。程序代码如下:
private boolean connect() {
try {
System.out.println("连接到服务器");
connect=(SocketConnection)Connector.open("socket://localhost:8000");
//与服务器建立连接
 System.out.println("此终端的地址为:"+adrthis);
      in = connect.openInputStream();
//输入数据
      out = connect.openOutputStream();
//输出数据
      return true;
     } catch (Exception e) { 
//抛出异常[!--empirenews.page--]
          e.printStackTrace();
           System.out.println("不能连接到服务器");
        return false;
     }
}
4.2.2 界面程序的实现
    为MIDlet所做的用户界面设计取决于小型计算设备的限制。丰富的用户界面含有各类用户界面元素,具有最小用户界面的设备则拥有这些元素的一个子集,具体由该设备使用的profile决定。例如主页面的程序主要用到的就是List,它是若干条选项的列表,用户可以从中选择一项。此外,对于程序中事件的应用程序,还要建立监听。这里用Command对象来为用户提供一组选项供选择,并且在每个屏幕必须有一个CommandListener监视用忽在屏幕上的操作事件。具体程序代码如下:
public MainGPRS() {
ok = new Command("OK",Command.OK,1);
exit = new Command("exit",Command.EXIT,1);
          //定义按钮控件
aList =
new List("作业路径",Choice.IMPLICIT);
//定义一个Implict List
aList.append("1.装卸船作业",null); aList.append("2.冷藏抄温",null);
  aList.append("3.正面吊作业",null); aList.append("4.堆高机作业",null)
aList.append("5.轨道吊作业",null);
     //创建对按钮控件的监听
aList.addCommand(ok);
aList.setCommandListener(this);aList.addCommand(exit);
     }
protected void startApp() throws MIDletStateChangeException {
         //获得设备的display
aDisplay = Display.getDisplay(this);
//设置当前的显示界面
         aDisplay.setCurrent(aList);
     }
5  系统的总体实现效果
    图3、图4列举了两个系统在运行过程中所获得的用户图形界面,以表明程序实现的效果。

图3 作业选择界面          图4 登录界面
    以上介绍无线通信系统的设计与实现,主要是在智能手机上的应用。此程序设计的通信系统已经应用到了江阴苏南港集装箱码头,并且使得码头工作人员的工作效率得到了很大的提高,也使集装箱信息能实时得到采集。随着现在各个码头集装箱码头吞吐量的不断增大,这种手持通信系统将会在其它的码头得到推广。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭