《嵌入式系统设计及应用讲课教案.doc》由会员分享,可在线阅读,更多相关《嵌入式系统设计及应用讲课教案.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。嵌入式系统设计及应用-西北工业大学嵌入式系统设计及应用设计报告学院:计算机学院学号:2009201577姓名:高原专业:计算机系统结构设计时间:2010.07指导教师:蒋泽军手机短信收发系统一、设计目的及要求本次课程设计主要是通过J2ME开发一个手机短信收发系统,以实现短信的收发功能。通过设计,进一步加深对J2ME的原理、技术、在Eclipse环境下的开发以及无线消息转发流程的掌握,增强对嵌入式系统应用与开发的认识。本次课程设计需要实现的功能包括:(一)短信的发送当用户在主菜单界面选择发送短信的功能时,
2、系统为用户提供文本消息编辑器。当用户在消息编辑文本框中输入要发送的文本消息并指定了发送目的地后,系统能够将用户的文本信息发送到指定的目的地址。(二)短信的接收当用户运行程序时,系统能够异步接收到发来的文本消息。当有短信到来时,接收端的屏幕显示收到一条短信,提示用户进行查看。(三)短信的存储系统需要设计一个收件箱,用来存储接收到的短信,方便用户进行短信的查询。二、设计环境及要求本次设计需要安装的环境包括:(一)WTKWTK的全称是SunJ2MEWirelessToolkitSun的无线开发工具包。这一工具包设计目的是为帮助开发人员简化J2ME的开发过程。使用其中的工具可以开发与JavaTechn
3、ologyfortheWirelessIndustry(JTWI,JSR185)规范兼容的设备上运行的J2ME应用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。WTK是用来开发MIDP的,为了让MIDlet可以顺利编译和执行,WTK必须具有CLDC和MIDP的类库,WTK可以帮助我们省去额外安装调试这些类库的时间。本次课程设计安装的是sun_java_wireless_toolkit-2_5_2-ml-windows.exe。(二)Eclipse平台Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境
4、。J2ME环境的配置过程:下载eclipse-SDK-3.1-win32.zip,解压缩eclipse-SDK-3.1-win32.zip将eclipseme.feature_1.5.0_motosdk_site.zip和eclipseme.feature_1.7.9_site.zip拷入eclipse目录。安装用Eclipse开发J2ME程序的插件,进行EclipseMe插件相应的配置。三、设计内容与步骤(一)内容介绍1J2MEJ2ME的全称是Java2MicroEdition(Java2技术微型版),是由美国SUN公司提出的JAVA技术规范。J2ME是为了能够开发运行在小型设备、独立设备、
5、互联移动设备、嵌入式设备上的JAVA应用程序而被提出的。J2ME是建立在一个由概要描述、配置、JAVA虚拟机和操作系统等部分组成的标准架构之上的,这些内容共同组成了完整的J2ME实时运行环境。它的技术核心是由一个JAVA虚拟机(JVM)及一套适合运行在上述设备环境上的API接口构成。2J2ME平台体系结构J2ME平台是由配置(Configuration)和简表(Profile)构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。简表是针对一系列设备提供的开发包集合。在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的。
6、J2ME中有两个最主要的配置,分别是ConnectedLimitedDevicesConfiguration(CLDC)和ConnectedDevicesConfiguration(CDC)。它们是根据设备的硬件性能进行区分的,例如处理器、内存容量等。J2ME体系结构框图如图1所示。3MIDletMIDlet是JavaMECLDC执行模型的核心。MIDlet相当于CLDC/MIDP(MobileInformationDeviceProfile,移动信息设备描述)中的应用程序,他处理用户输入的内容,并且显示输出内容。MIDlet还负责管理与系统的交互,同时通过将系统的控制暂停并让位给发起中断的应
7、用程序,来响应对资源的请求。所有MDIlet都必须实现4个方法:OptionalPackagesHostOperatingSystemProfilesConfigurationsJava虚拟机图1J2ME体系结构框图MIDlet构造方法当系统需要构造MIDlet实例的时候就会调用这个方法。构造方法通常什么也不做,它将初始化工作延时给startApp方法负责。startApp方法当应用程序启动或者继续执行的时候,AMS(ApplicationManagementSoftware,应用程序管理软件)会调用此方法。startApp应该执行所有必要的引导指令来初始化应用程序,并呈现应用程序的第一个屏幕
8、。简单的应用程序可以选择在该方法内完成所有这些操作;较复杂的应用程序可以讲这些操作放在相互独立的一系列方法内,然后在该方法中调用。pauseApp方法当系统因为任何原因必须中断MIDlet时(例如有电话或者消息呼入,或者启动了另一个应用程序),AMS会调用此方法。MIDlet此时应当释放任何不需要的资源。destroyApp方法当应用程序必须退出的时候,AMS会调用此方法。4MIDlet的生命周期MIDlet有三个状态,分别是pause、active和destroyed。在启动一个MIDlet的时候,AMS会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调
9、用的时候MIDlet进入active状态,也就是所说的运行状态。在active状态调用destroyApp(Booleanunconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。5通过无线消息API实现短信收发无线消息API包括:SMS(Short
10、MessagingService)、EMS(EnhancedMessageService)、MMS(MultimediaMessagingService)。SMS是最早的短信服务标准,它是目前也是迄今为止普及率和使用率最高的一种短信业务。SMS的特点是:短信的长度被限定在160字节之内(纯文本,包括文字和数字),如果是二元非文本短信(例如图片和铃声),它的长度则为140字节,此外手机短信又有着设定保留功能,即使用户关机或不在服务区时,只要一进入网络即可收到。SMS短信也是一种存储和转发服务。也就是说,短信并不是直接从发送人发送到接收人,而始终通过SMS中心进行转发的。如果接收人处于未连接状态(
11、可能电话已关闭),则消息将在接收人再次连接时发送。SMS短信具有消息发送确认的功能。这意味着SMS与寻呼不同,用户不是简单地发出短信然后相信消息已发送成功;而是短信发送人可以收到返回消息,通知他们短信是否已经发送成功。EMS比起SMS来,EMS的优势是除了可以像SMS那样发送文本短信之外,还可以发送简单的图像、声音和动画等信息。MMS可以用于传送文字、图片、动画、音频和视频等多媒体信息。本文设计的短信收发系统主要采用SMS来实现。(二)具体设计步骤1类设计短信收发系统共包含四个类。类之间的关系图2所示:InboxReceiverSMSMIDletSenderForm图2类关系图SMSMIDle
12、t类该类是应用程序的主类,控制应用程序的生命周期。SenderForm类该类提供了编辑短信的用户界面和发送信息的功能。Receiver类该类提供了打开消息连接及接受短信的功能。Inbox类该类描述了收件箱,提供了查看接受的短信的功能。2短信发送与接收的过程发送端:创建无线消息的客户连接;调用连接对象的newMessage方法创建一个消息对象;设置消息对象的内容;使用连接对象的send方法发送消息;短信发送线程执行体,建立连接并发送短信。publicvoidrun()tryStringsmsUrl=sms:/+receiverAddress+:+desPort;MessageConnection
13、msgConn=(MessageConnection)Connector.open(smsUrl);TextMessagetextMessage=(TextMessage)msgConn.newMessage(MessageConnection.TEXT_MESSAGE);textMessage.setPayloadText(messageContent);msgConn.send(textMessage);msgConn.close();catch(IOExceptionioe)midlet.showError(发送信息错误!n+ioe.toString();接收端:创建无线消息服务器端连接
14、;设置消息监听器;当有消息到达时,监听器将回调MessageListener接口中的notifyIncomingMessage方法。在该方法中,连接对象调用receive方法接收消息;在端口port打开一个sms连接,并启动一个接收消息的线程。publicMessageConnectionopenConnection(Stringport)throwsIOExceptionmsgConn=(MessageConnection)Connector.open(sms:/:+port);pendingMessages=0;/没有处理的信息的个数dead=false;/创建消息接收线程,并启动Thre
15、adt=newThread(this);t.start();/调用run()方法returnmsgConn;四、设计结果与数据处理最终系统运行的结果如下图所示。(一)首先,运行该程序,打开两个手机终端。如图3所示。图3图4图5(二)使用终端1向终端2发送短信。打开终端1的发送短信功能后,在收件人号码文本框中输入接收端的号码,然后在消息内容文本框中输入要发送的信息,点击发送按钮进行发送。如图4所示。(三)接收端接收到短信时,显示提示信息。如图5所示。(四)通过收件箱可以查看收到的短信。如图6所示。(五)点击下一条按钮可以查看下一条短信。如图7所示。图6图7五、分析与讨论本次课程设计较好地完成了预
16、先的设计要求,实现了短信收发系统的主要功能。另外,对J2ME开发嵌入式手机应用的技术及过程有了进一步的认识和理解。但在设计过程中,还存在一些不足之处需要改进。一方面,系统的界面较为简单。主要是设计时只考虑实现了短信的收发,没太多考虑人机界面的友好性问题。设计相对比较粗糙。另一方面,在功能上也有一些缺陷。该系统采用两个向量:privateVectorcontents;privateVectorphoneNumbers来对接收到的短信内容以及号码进行存储。当系统的终端关闭后,保存的信息就会丢失。改进时可以通过RMS(记录管理系统)加以改善,以设计出可以进行永久保存的收件箱。六、教师评语签名:日期:成绩-