




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连东软信息学院高职毕业设计(论文)论文题目论文题目:基于ZigBee的无线通信收发GUI设计与实现系所:电子工程系专业:嵌入式系统工程学生姓名:学生学号:指导教师:导师职称:讲师完成日期:2014年4月25日大连东软信息学院DalianNeusoftUniversityofInformation大连东软信息学院毕业设计(论文)摘要V基于ZigBee的无线通信收发GUI设计与实现摘要随着我国科学技术的发展,对低功耗,远距离通信的需求进一步增加,蓝牙技术已不能满足无线通信的需求,在这种背景下ZigBee技术应运而生,ZigBee技术应用广泛,快速,稳定。ZigBee无线通讯标准是一种低数据速率的短距离无线网络通信协议。基于ZigBee的无线设备工作在868MHz,915MHz和2.4GHz频段。最大数据传输速率为每秒250Kb。ZigBee的主要工作对象为电池供电的系统,ZigBee的设备在运营数年之后才需要更换电池。本文主要研究ZigBee无线通信技术在信息传输中的应用,使用多个ZigBee无线通讯设备,将设备通过电脑上面的USB接口与电脑进行连接,电脑分别间隔一定的距离,通过在电脑上运行的图形用户界面,在一台电脑上面输入信息并发送出去,在连接有ZigBee无线通信设备的电脑上面都能接收到信息。主要采用了CC2530芯片控制,AMS1117稳压芯片,PL2303USB控制芯片等。通过java语言在windows平台下用集成开发环境Eclipse中编写整个软件界面,由于java语言的跨平台性,在linux中编译之后的源代码也可以在linux中运行软件界面。ZigBee无线通讯接收应用广泛,例如可以在智能家居中使用ZigBee无线通信技术,可以通过一个显示面板看到家中的情况,显示室内温度等,在家居防盗中也有广泛应用。本论文将分为项目概述,项目实施方案,项目实施过程,项目成果及结论等几个部分,论述ZigBee在现实生活中是如何使用的及其应用范围。ZigBee应用主要是在近距离的范围当中,因此,熟悉ZigBee应用可以为以后设计出更加方便实用的产品积累经验,例如智能家居控制之类,通过程序界面设计,可以很方便的对各种家居产品进行控制和操作。可以通过ZigBee无线通信技术对家中的情况了如指掌,让您在外旅行不必为家里的安全担忧。关键词:ZigBee,无线通信,无线网络通信协议大连东软信息学院毕业设计(论文)AbstractGUIDesignandImplementationofZigBeeWirelessCommunicationTransceiverAbstractAswiththedevelopmentofChina'sscienceandtechnology,furtherincreasingdemandforlong-distancecommunication,Lowpowerconsumption,BeforeBluetoothtechnologycannotmeetthedemandforwirelesscommunication,InthiscontextZigBeetechnologyemerges,ZigBeetechnologyiswidelyused,andfast,stable.ZigBeeisawirelesscommunicationstandardforlowdatarateshort-rangewirelessnetworkcommunicationprotocols.ZigBee-basedwirelessdevicesoperatein868MHz,915MHzand2.4GHzbands,Themaximumdatatransferrateof250Kbpersecond,themaintargetforthebattery-poweredZigBeesystem,ZigBeedevicesafteroperatingforseveralyearsbeforethebatteryneedstobereplaced.Inthispaper,themainresearchZigBeewirelesscommunicationtechnologyininformationtransmission,usingmultipleZigBeewirelesscommunicationdevices,ThedevicesconnectviacomputerattheUSBinterfacewithacomputer,computersarespacedadistance,byrunningonacomputergraphicaluserinterface,entertheinformationinacomputerandsenttheabove,InZigBeewirelesscommunicationdeviceconnectedtothecomputercanreceiveinformationatthe,ThemainusesCC2530chipcontrol,AMS1117regulatorchip,PL2303USBcontrolchips,Eclipseintegrateddevelopmentenvironmentwrittenbytheentiresoftwareinterfacejavalanguageusedinthewindowsplatform,Asthecross-platformjavalanguage,aftercompilinglinuxsourcecodecanalsorunthesoftwareinterfaceinlinux.ZigBeewirelesscommunicationendswidely,forexampleyoucanuseZigBeewirelesscommunicationtechnologyinthesmarthome,Youcanseethehomethroughapaneldisplaycase,showroomtemperature,inthehomesecurityalsohasawiderangeofapplications,inthispaper,anoverviewoftheprojectwillbedividedinto,projectimplementationplan,implementationoftheproject,severalpartsoftheprojectresultsandconclusions,ZigBeediscussesitsapplicationinreallifeishowtouse.ZigBeeapplicationswhicharemainlyincloserange,Therefore,afterthefamiliardesignofZigBeeapplicationscanbemoreconvenientandpracticalexperienceaccumulatedfortheproduct,suchasintelligenthomecontrolandthelike,throughtheprograminterfacedesign,caneasilybecontrolledforavarietyofhouseholdproductsandoperations,allowingyoutotraveloutsidethehomedonothavetoworryaboutsecurity.Keywords:ZigBee,Wirelesscommunication,Wirelessnetworkcommunicationprotocol大连东软信息学院毕业设计(论文)目录目录TOC\o"1-3"\u摘要 IAbstract………….III第1章项目概述……………………11.1项目背景 11.1.1几种无线通信技术比较 …………..11.1.2无线通信技术选用……….…..……11.2项目简介 21.3应用范围 2第2章项目实施方案 32.1概述 32.1.1ZigBee无线协议概述 32.1.2面向对象程序设计语言Java概述 42.2开发环境 52.2.1硬件开发环境…………...…………52.2.2软件开发环境……...………………52.3硬件设计 62.3.1硬件系统框图 62.3.2ZigBee无线设备主要芯片介绍 62.4软件设计 82.4.1软件系统框图 82.4.2软件主界面设计 9第3章项目实施过程 113.1硬件实现过程 113.1.1焊接准备工作及注意事项 113.1.2硬件焊接 113.2软件实现过程 123.2.1软件开发环境配置 123.2.2编写代码及模块功能介绍 123.2.3SerialCommunication.java功能设计 133.2.4SerialParameters.java功能设计 143.2.5SerialConnection.java功能设计 143.2.6其他功能模块设计 143.3调试过程 153.3.1硬件调试过程 153.3.2软件调试过程 15第4章项目成果 164.1硬件成果物 164.2软件成果物 16第5章结论 18参考文献 18致谢 19大连东软信息学院毕业设计(论文)20-第1章项目概述本论文是基于ZigBee的无线收发GUI的设计与实现,项目能够实现信息的发送与接收,可以对串口进行选择,对串口的关闭与开启,可以对信息显示窗口进行清空,项目分为硬件部分和软件部分,硬件使用ZigBee无线通信模块,需要将ZigBee与电脑进行连接,在电脑上对程序界面上的操作。软件使用java程序编程语言编写,java是一种纯面向对象的编程语言,并且具有安全性高,程序易读等多种优点,Java编程语言是一种应用十分广泛的程序编程语言。1.1项目背景近年来发展最快的科学技术莫过于无线通信技术,在当今无线通信已近渗透到我们生活的各个部分,特别是近来移动通信的发展。毋庸置疑,无线通信已近改变了我们的生活,使我们的生活发生了翻天覆地的变化。如今每天大约有15万人成为新的无线用户,全球范围内的无线用户数量目前已经超过2亿。这些人包括社会的各个层面的人,他们使用无线技术的方式和他们自身的工作一样都在不断地更新。1.1.1几种无线通信技术比较蓝牙技术是使用2.4GHz的ISM公用频道的一种短距离、低成本的无线接入技术,主要应用于近距离的语言和数据的传输业务,蓝牙设备的工作频段选用全世界范围内都可自由使用的2.4GHzISM频段,用户无需申请即可使用。Wi-Fi(WirelessFidelity),Wi-Fi使用IEEE802.11a或802.11b无线电技术提供安全、可靠、快速的无线连接通信。Wi-Fi网络可以使用来互联电脑链接电脑上互联网,也可以使用无线移动终端连接来上互联网,Wi-Fi网络在无执照的2.4和5千兆Hz的无线电频带经营,数据数率可达11Mbps(802.11b)~54Mbps(802.11a)或包含两条频带的产品(双重频带),Wi-Fi覆盖范围广,可达100m,但其电波易受干扰,速度较快。ZigBee(IEEE802.15.4)是一种新兴的短距离、低功耗、低速率无线接入技术,工作在2.4GHzISM频段,速率为10M~250Kb/s,传输距离为10-75m,技术和蓝牙接近,但大多数处于睡眠模式下,适合于不需要实时传输或连续更新的场合。1.1.2无线通信技术选用经过项目初期对几种无线通信技术的比较与研究发现,ZigBee这种近距离低功耗低速率的无线接入技术最适合本项目的需要,特别是其在大多数情况下处于的睡眠模式,节约了不少能源。本项目决定采用ZigBee无线通信技术。1.2项目简介随着移动通信技术的发展,人们对无线通信技术的需求也进一步加大,在目前常用的无线通信技术中,ZigBee无疑会在那些不需要实时控制、低功耗、低速率的场合得到广泛的使用。ZigBee无线通信可以实现一种类似“蜂窝“式的通信方式,因此本项目需要2个或以上的ZigBee无线通信设备,由于通信界面实在windows电脑上面运行的,因此需要将ZigBee无线通信设备用USB连接线与电脑进行连接,在任何一台电脑的GUI界面发送消息,其他连接有ZigBee无线设备的电脑GUI界面上面也会受到所发送的信息。本项目硬件使用ZigBee无线通信设备,笔记本电脑,软件使用面向对象编程语言Java编写,运行在windows7系统环境下。ZigBee的网络拓补结构包含有主从设备的星型,树型,网状型三种网络结构,其网络结构按照OSI模型可以分为4层,从上向下分别为物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)和应用层(APL),本项目主要是使用第四层应用层来完成数据的接收和发送。1.3应用范围随着ZigBee无线通信技术的进一步发展,采用ZigBee技术的无线网络应用领域越来越多,它可以应用在家里的照明,温度监控,安全控制等多个领域。ZigBee模块可安装在电视、灯泡、遥控器、儿童玩具、游戏机的器具中,例如在灯泡中安装ZigBee模块,我们就不需要再走到墙壁开关处,直接可以通过遥控便可开灯。还可以在散热器与温度控制设备中安装ZigBee无线模块,可以显示设备的当前温度,安装一些其他设备还可以对温度进行自由的调控。在工业控制领域中使用ZigBee模块,利用传感器和ZigBee网络,使得数据可以自动采集、分析处理,让操作变得更加容易。ZigBee还可以应用在智能家居控制系统中,使用ZigBee模块网络和互联通通信,可以对家中的情况了如指掌。例如,在家中安装湿度,温度传感器,然后配合ZigBee无线设备,显示器等,可以将传感器所检测到的温度、湿度等信息经过ZigBee无线设备传出到显示器上显示出来,对超过一定值得数据予以报警提示,如何将ZigBee无线设备与互联网连接,还可以知道如何调控湿度,温度等信息,让室内的温度和湿度保持在正常范围内,从而保证人体的健康状况。ZigBee可以实现一端发送,多端同步显示,这样的好处是无论你在家中的什么地方,只要你所处的位置安装有ZigBee无线设备,你都能知道家庭内外任何一个你所想要知道的地方的情况,及时向你反馈情况,让你对突如其来的情况及时做出反应,从而避免了不必要的损失。第2章项目实施方案2.1概述本项目是基于ZigBee无线通信技术的GUI设计与实现,ZigBee无线通信技术是最近才发展起来的一项新的无线通信技术,其特点是功耗低,成本低,延迟短,网络能容量比较大,通信安全可靠;ZigBee的传输速率低,其发射功率仅为1mW,而且在不工作时迅速进入休眠模式,极大的减少了能源功耗,机器省电,而且还能迅速从休眠状态切换到全速工作状态,时间仅为15ms。而且还是设置定时唤醒,保证了ZigBee能持续工作。它一般能持续工作达6个月到2年时间不等。ZigBee的成本很低,其中最重要的一个原因是ZigBee协议是免除专利费用的。ZigBee能迅速从休眠模式切换到全速工作状态的另一个优点就是延迟时间非常短,并且它搜索设备所用的时间仅为30ms,所以说ZigBee无线设备可以应用于那些对于延迟要求非常高的无线控制场合中,例如工业控制场合。ZigBee网络容量非常大,一个网络拓扑结构为星型结构的ZigBee无线网络最多可以容纳254个从设备和一个主设备,而且其网络组成非常灵活。ZigBee的可靠性是其采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据的竞争和冲突。MAC层采用了完全确认的数据传输模式,每个发送的数据包都必须经过对方确认之后才往外转发,如果遇到传输过程中出现问题可以进行重发。ZigBee的安全性是其提供了基于冗余校验(CRC)的数据包完整性检测功能,支持鉴权和认证,采用了AES-128加密算法,各个应用可以灵活确定其安全属性。2.1.1ZigBee无线协议概述ZigBee标准是由ZigBee联盟制定,其中有数百个会员公司,从半导体产业和软件开发人员的原始设备制造商(OEM,OriginalEquipmentManufacturer)和安装。ZigBee联盟成立于2002年,作为一个非盈利性组织开放给每一个都想参加的人。ZigBee标准采用IEEE802.15.4作为其物理层(PHY,PhysicalLayer)和介质访问控制(MAC,MediumAccessControl)协议。因此,一个ZigBee兼容设备符合IEEE802.15.4标准的为好。IEEE802.15.4是自主研发的ZigBee标准,它可以建立基于IEEE802.15.4的短程无线网络并且不执行ZigBee特定的层.在这种情况下,用户是在IEEE802.15.4PHY和MAC顶层协议上开发自己的网络和应用。这些自定义的网络/应用层通常比ZigBee协议层简单,并有针对性的具体应用。定制专有的网络/应用层的优点是实现整个协议仅需要占用很小的内存,这能降低成本。然而,实现完整的Zigbee协议需要保证与其他厂商的无线解决方案互通并且网状网络功能额外的可靠性由ZigBee支持。是否实现整个ZigBee协议或者只使用IEEE802.15.4PHY和MAC层则取决于应用程序和长期计划的产品。该网络的物理层次的特征是由PHY层规范确定;因此,一些参数像操作的频率,数据速率,接收器灵敏度需要一定的要求,和在IEEE802.15.4标准中指定的设备类型。2.1.2面向对象程序设计语言Java概述面向对象的程序设计语言Java,由SUN公司在1995年5月推出的,Java语言有多种版本,分别是JavaSE,JavaEE,JavaME,他们分别应用于不同的场景中,JavaSE是Java的标准版,主要应用于桌面应用软件开发;JavaEE是Java企业版,主要是开发Java企业级应用;JavaME是Java的微型版,主要应用在嵌入式设备软件开发中,例如现在非常流行的安卓应用程序开发,在机顶盒,移动电话,PDA中也有广泛的有应用。Java语言有许多优点,例如,Java语言非常简单,Java语言的语法和C/C++语言的语法非常相似,这使得C/C++程序员如果想要编写Java程序代码非常容易,不需要投入太多的时间和精力就能实现他们的需求;另外Java语言还是一种纯面向对象的语言,在日益复杂,日益网络化的环境中,编程必须采用面向对象的概念;Java语言还具有健壮性,Java语言设计的目标就是编写出高可靠行的软件,Java语言提供的编译时检测盒运行时检测,这些特性会引导软件开发者想成良好的编程习惯,从而编写出高质量的代码;Java语言还有良好的安全性,因为Java语言和Java虚拟机本身都具有非常道的安全特性,使得Java语言编写出外部无法入侵的系统,在网络环境下,使用Java语言开发的应用系统可以阻止未经授权的代码进入系统当中。Java语言不依赖体系结构,Java语言具有很好的跨平台性,同一个经过编译的Java应用程序可以运行在不同的硬件环境和不同的操作系统中。Java语言还有一个非常值得称赞的地方就是其可移植性,Java语言的可移植性一方面体现在它的不依赖体系结构中,另一方面规定了它的数据类型的字节长度,不管运行在32位系统还是64位系统中,它的字节长度永远不会改变,这就解决了在不同平台上不兼容的问题。Java语言是一种解释性语言,在编译时产生的不是可执行程序,是一种字节码,字节码由虚拟机解释执行,因此解释字节码是创建具有跨平台性的可移植程序的一种有效方法。Java语言具有高性能的特点,Java语言能够自动的回收垃圾,这使得内存资源得到了很大的节约,在现在的网络引用程序中,同意时间可能需要做多件事情,这就需要利用Java的多线程机制了,Java语言的多线程机制能够同时执行多个任务,这一特性极大的提高了系统资源的利用率。Java的动态性是其采用动态链接方式,只有被需要的类被使用后才被连接,即需要时才将其加载到正在运行的程序中。2.2开发环境2.2.1硬件开发环境基于ZigBee无线GUI设计与实现项目采用硬件环境是使用基于CC2530的单片机,及其他外部设备,如电源,USB接口等,在IEEE802.15.4无线协议,2.5GHz工作频率。还需要USB线,笔记本电脑等。2.2.2软件开发环境本软件是在windows7操作系统下,用Eclipse集成开发环境开发的,需要安装java虚拟机,配置好JDK的路径,待以上步骤做好之后,打开Eclipse,在Eclipse左上角有个File->New->JavaProject,在Projectname:文本框中输入工程名字,并在下方选择Finish,这时候就建议好一个Java工程,然后在新建的这个工程中选中src,紧接着进行下列操作新建一个类File->New->Class,在出现的标题为NewJavaClass对话框中会有一个标签卫Name:的文本框,在文本框中输入类名然后点击对话框下方的Finish,这个时候还需要进一步的环境配置才能进行本次的毕业设计项目。将提前下载好的javaComm20-win32.zip包解压,解压之后会得到3个文件,一个是win32com.dll,一个是perties,还有一个是comm.jar文件,需要将win32com.dll复制到C:\ProgramFiles\Java\jdk1.7.0_03\bin目录(具体粘贴目录根据自己的JDK的安装目录)下,将perties复制到C:\ProgramFiles\Java\jre7\lib目录(具体粘贴目录根据自己的JDK的安装目录)下,将comm.jar包复制到C:\ProgramFiles\Java\jre7\lib\ext目录(具体粘贴目录根据自己的JDK的安装目录)下。这个时候就可以进行毕业设计项目软件开发了。还有一种方法是使用rxtx-2.1-7-bins-r2.zip包进行环境配置,具体方法是先下载rxtx-2.1-7-bins-r2.zip这个压缩包,然后将其解压出来,会得到Windows,Solaris,Mac_OS_X,Linux,RXTXcomm.jar包,INSTALL文件,根据我所选择的操作系统,选择Windows文件下i386-mingw32文件下的rxtxSerial.dll文件和rxtxParallel.dll文件,首先在之前新建的Java工程中,新建一个lib文件夹,然后将RXTXcomm.jar文件拷贝到上一步所建立的lib目录中,再将rxtxSerial.dll文件和rxtxParallel.dll文件拷贝到lib文件中,然后在工程文件上面右键鼠标,选择Properties->JavaBuilderPath->Libraries->AddJARs->选择之前建立的lib目录下的RXTXcomm.jar->OK,最后,点击RXTXcomm.jar前面的小加号->Nativelibrarylocation->点击右边一列按钮中的Edit...->选择lib目录->OK。做好上面这些步骤之后就可以开始编写代码了。2.3硬件设计2.3.1硬件系统框图ZigBee无线设备硬件是由CC2530控制芯片,PL2303驱动,AMS1117芯片,电源等主要模块组成。硬件系统框图如下图2.1所示:图2.1硬件系统框图2.3.2ZigBee无线设备主要芯片介绍1、CC2530芯片CC2530芯片是真正用于IEEE802.15.4芯片级系统的解决方案,ZigBee和RF4CE应用,它能建设强大的网络节点并能让成本非常低廉。CC2530结合了领先的射频收发器和业界标准的8051微控制器,具有非常出色的表现。在系统可编程方面,具有8kb的随机存取存储器,还有其他很多强大的功能。CC2530有不用的闪存版本,分别是32kb,64kb,128kb,256kb。CC2530还有各种操作模式,使它能适合在极低功耗场合上的使用,工作模式间的切换时间段进一步确保能量损耗低。结合业界领先的黄金单元状态ZigBee协议栈来自于德州仪器公司,CC2530F256提供了一个强大和完整的ZigBee解决方案。CC2530原理图如下图2.2所示:图2.2CC2530原理图2、PL2303芯片PL2303芯片中包含有USB控制器、收发器、振荡器和调制解调器控制信号的UART,如果架上电容之后就能实现USB信号和RS232信号间的相互转换,它能够很方便的使用到各种设备中,它作为USB和RS232信号的双向转换器,它一方面向主机接收USB数据,并将该信号转换成RS232信息流发送给外部设备,还有一方面是接收RS232信号转换成USB数据格式传送给主机。PL2303能够在目前流行的很多操作系统上面运行,能够实现传统COM端口的模拟,能够实现USB端口和COM端口的转换应用,传输速度达到6Mb/s,在工作模式和睡眠模式中的能量消耗都极低,广泛应用于嵌入式设备中。PL2303原理图如下图2.3所示:图2.3PL2303原理图3、AMS1117芯片AMS1117是一个正向低压稳压器,在1A电流下压降是1.2V,它具有高效率线性稳压器,它具有固定输出版本和可调版本两种。AMS1117内部集成过热保护盒限流电路,是电池供电和便携式计算机的不二之选。例如AMS1117-5.0,其参数包括,最大输出电压18V,最大输出电流1A,额定输入电压5V,功耗5W,最小输出电压6.2V,最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。AMS1117的片上微调把基准电压调整到1.5%的误差以内,而且电流限制也得到了调整,以尽量减少因稳压器和电源电路超载而造成的压力。AMS1117器件引脚上兼容其他三端SCSI稳压器,提供适用贴片安装的SOT-223,8引脚SOIC,和TO-252(DPAK)塑料封装其工作温度范围-40~120摄氏度。AMS1117原理图如下图2.4所示:图2.4AMS1117原理图2.4软件设计2.4.1软件系统框图本项目软件设计全部由面向对象程序设计语言Java实现,软件运行之后会自动识别开启的COM端口,自行选择COM端口,然后对软件进行参数设置,等待设置好参数之后就可以在编辑框输入信息,然后对信息进行发送,当接收到信息之后会将信息显示在信息显示区域,在发送数据的过程中可以对发送进行中断操作。软件系统框图如下图2.5所示:图2.5软件系统框图2.4.2软件主界面设计 publicSerialCommunication(){ this.setTitle("SerialCommunicationForZigBee");//设置标题栏 this.setLayout(newBorderLayout()); parameters=newSerialParameters(); addWindowListener(newCloseHandler(this)); messagePanel=newJPanel(); messagePanel.setLayout(newGridLayout(2,1)); messageAreaIn=newJTextArea(); messageAreaIn.setEditable(false); JScrollPanescrollPane=newJScrollPane();scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAY);//总是显示垂直滚动条scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ASNEEDED);//需要的时候显示水平滚动条 scrollPane.setViewportView(messageAreaIn); messagePanel.add(scrollPane); messageAreaOut=newJTextArea(); messagePanel.add(messageAreaOut); add(messagePanel,BorderLayout.CENTER); configurationPanel=newConfigurationPanel(this); add(configurationPanel,BorderLayout.EAST); buttonPanel=newJPanel(); openButton=newJButton("OpenPort"); openButton.setPreferredSize(newDimension(100,27)); //设置JButton大小openButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); //设置JButton中字体风格及大小 openButton.setBackground(Color.lightGray); //设置JButton颜色 openButton.setFocusPainted(false);//去除JButton中显示的文字边框 openButton.addActionListener(this); buttonPanel.add(openButton); sendButton=newJButton("SendData"); sendButton.setPreferredSize(newDimension(100,27)); sendButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); sendButton.setBackground(Color.lightGray); sendButton.setFocusPainted(false); sendButton.setEnabled(false); sendButton.addActionListener(this); buttonPanel.add(sendButton); closeButton=newJButton("ClosePort"); closeButton.setPreferredSize(newDimension(100,27)); closeButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); closeButton.setBackground(Color.lightGray); closeButton.setFocusPainted(false); closeButton.setEnabled(false); closeButton.addActionListener(this); buttonPanel.add(closeButton); breakButton=newJButton("BreakSend"); breakButton.setPreferredSize(newDimension(100,27)); breakButton.setFont(newjava.awt.Font("TimesNewRoman",3,13)); breakButton.setBackground(Color.lightGray); breakButton.setFocusPainted(false); breakButton.setEnabled(false); breakButton.addActionListener(this); buttonPanel.add(breakButton ); clearButton=newJButton("Clear"); clearButton.setPreferredSize(newDimension(100,27)); clearButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); clearButton.setBackground(Color.lightGray); clearButton.setFocusPainted(false); clearButton.setEnabled(false); clearButton.addActionListener(this); buttonPanel.add(clearButton ); add(buttonPanel,BorderLayout.SOUTH); connection=newSerialConnection(this,parameters,messageAreaOut,messageAreaIn); setConfigurationPanel();DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕大小 setLocation(screenSize.width/2-WIDTH/2,screenSize.height/2-HEIGHT/2);//设置软件初始显示位置 setSize(WIDTH,HEIGHT); //设置软件界面大小 }第3章项目实施过程3.1硬件实现过程本项目硬件主要有ZigBee无线通信模块,PL2303驱动芯片,AMX1117稳压芯片等部件组成,硬件原理图采用Altiumdesigner设计原理图和PCB版图,在原理图绘制完成之后,寄给PCB厂家制版,然后我们拿到板子之后,按照原理图导出的物件清单买好元器件。待元器件,PCB板都准备好之后,再加上电烙铁,焊锡等焊接工具准备好之后,就可以进行焊接了。3.1.1焊接准备工作及注意事项1、焊接元器件时应该注意顺序,即按照先小后大的顺序,例如,可以先焊接贴片电阻,贴片电容之类的小元器件,然后再焊接直插式的电阻和电容,最后在焊接稍大点的器件,一定得遵循先小后大的原则。2、在焊接带有极性的元器件的时候,一定不要将极性弄混淆,否者会导致在焊接完成之后电路板无法正常工作或元器件被烧毁。3、在焊接时,焊锡一定不要太多或过少,焊接好的形状以圆锥型为最好。要使引脚周围都有焊锡,将引脚固定好,防止虚焊或脱焊的情况出现。4、当元器件被焊接好之后,如果原器件引脚过长,需要将多余的引脚剪短,应尽量是焊接表面看上去平整,美观。5、最后检查焊接表面是否存在多余的铁屑,如有发现请及时将其清理干净,防止因铁屑连在电路板表面而引起的短路现象发生。6、焊接过程中最为需要注意的便是安全,防止人体被电烙铁灼伤。在使用完电烙铁之后不要急于将其收起,应该等待电烙铁温度降至常温之后收起,应避免电烙铁的温度烧坏电线之类的物件。3.1.2硬件焊接在清楚整个焊接过程之后就可以开始实施焊接过程了,首先按照焊接元器件“先小后大”的原则先焊接好贴片器件,在焊接过程中贴片器件最好使用镊子之类的工具,同时在使用电烙铁的过程中注意安全,先将电烙铁预热,待合适的温度时将焊锡融化对原件进行焊接,在焊接直插式原件时,先将元器件插入电路板中,然后将引脚掰至足以让元器件不滑落出去,这个过程最好是一次将多个元器件重复如上操作,待元器件都固定之后对其进行统一的焊接工作。在焊接完成之后对电路板表面进行清理工作,保证电路板表面干净美观,防止电路板短路现象发生。3.2软件实现过程3.2.1软件开发环境配置本软件采用Java的集成开发环境(IDE,IntegratedDevelopmentEnvironment)Eclipse开发,系统环境为windows7,打开Eclipse按照如下步骤建立好一个工程,File->New->JavaProject->输入工程名字->Finish,这样建好工程之后,接着按如下步骤建立一个新的类,File->New->Class->输入类名->Finish,现在就会看到图3.1那样的一个界面,然后将本次项目开发所需要的jar包按要求导入或者是拷贝到jdk安装目录之后就可以开始编写软件了,Eclipse建立好工程文件之后如下图3.1Eclipse集成开发环境所示:图3.1Eclipse集成开发环境3.2.2编写代码及模块功能介绍本项目代码设计采用目前十分流行的面向对象编程语言Java设计,使用的是JavaSE部分知识,还有用于串口通信的comm.jar包。项目代码一共分为6个模块,它们分别是:SerialCommunication.java,SerialParameters.java,SerialConnection.java,SerialConnectionException.java,AlertDialog.java,PortRequestedDialog.java,以下逐一对它们的各个功能进行介绍。本项目是基于windows的图形界面软件设计。3.2.3SerialCommunication.java功能设计SerialCommunication.java中包含了整个软件的主界面设计,从下面开始,对这个模块的部分代码进行解释,具体情况如下:messageAreaIn=newJTextArea();//信息显示区域messageAreaIn.setEditable(false);//设置为不可编辑JScrollPanescrollPane=newJScrollPane();//添加滚动条scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//总是显示垂直滚动条scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//在需要的时候显示水平滚动条scrollPane.setViewportView(messageAreaIn);//让信息显示区域显示出来messagePanel.add(scrollPane);//将滚动条添加到容器中以上代码是添加了一个信息显示区域,并在上面添加了滚动条之类的属性。下面介绍软件上面的按钮:buttonPanel=newJPanel();//添加容纳按钮的容器openButton=newJButton("OpenPort");//在按钮上面添加文字openButton.setPreferredSize(newDimension(100,27));//设置JButton大小openButton.setFont(newjava.awt.Font("TimesNewRoman",3,14)); //设置JButton中字体风格及大小openButton.setBackground(Color.lightGray); //设置JButton颜色openButton.setFocusPainted(false); //去除JButton中显示的文字边框openButton.addActionListener(this);//为按钮注册监听器buttonPanel.add(openButton);//将按钮添加到按钮容器中以下代码的功能是实现点击按钮的事件相应代码:publicvoidactionPerformed(ActionEvente){Stringcmd=e.getActionCommand();//声明一个字符串型变量,用于在获得按钮上面的文字 if(cmd.equals("OpenPort")){//如果获得的字符串与“OpenPort”相同,则打开端口 portOpened(); } if(cmd.equals("SendData")){//如果获得的字符串与“SendData”相同,则发送数据 openButton.setEnabled(false);//将打“OpenPort”按钮置为不可用 configurationPanel.setParameters();//为端口设置参数 try{ connection.openConnection();//打开连接 }catch(SerialConnectionExceptione1){//捕捉异常 e1.printStackTrace();//反馈异常消息 } } if(cmd.equals("ClosePort")){//如果获得的字符串与“ClosePort”相同,则关闭端口 portClosed(); } if(cmd.equals("BreakSend")){//如果获得的字符串与“BreakSend”相同,则终端发送 connection.sendBreak(); } if(cmd.equals("Clear")){//如果获得的字符串与“Clear”相同,则终端发送清除信息 clear_data(); } }3.2.4SerialParameters.java功能设计SerialParameters.java这个模块的主要功能是对软件的参数进行设置,它里面有两个构造方法,一个是无参数的构造方法,还有一个是有参数的构造方法,默认调用无参数的构造方法,在手动设置参数时调用有参数的构造方法,可以设置端口名字,波特率,流控制输入,流控制输出,数据位,停止位,优先级等参数3.2.5SerialConnection.java功能设计SerialConnection.java这个模块的主要功能就是建立端口连接,首先在打开软件之后会自动识别已经存在的端口,也可以自行设置其他端口,然后点击“OpenPort”按钮,在编辑框中输入信息,后台获取输入信息并转换成字符流,点击“SendData”按钮之后,会将字符流发送出去,并将信息显示在另一个设备的信息显示区域。3.2.6其他功能模块设计SerialConnectionException.java这个模块的功能主要是一个异常信息类,在继承了这个类的子类中若出现异常就会抛出异常信息。AlertDialog.java,PortRequestedDialog.java这两个模块是两个对话框,AlertDialog.java是弹出警告信息,PortRequestedDialog.java是当串口被其他应用程序占用之后,会有提示信息出现。3.3调试过程由于整个项目由硬件和软件两部分组成,而且硬件和软件都是由多个模块组成,所以在整个项目调试过程中采用单个模块单独调试,然后将各个模块组合在一起统一测试,在找到问题之后具体调试出现问题的模块。3.3.1硬件调试过程硬件调试主要是测试每个模块的电流和电压是否符合要求,最后再用典型代码测试硬件能否正常运行。倘若不能正确运行,则按照原理图,进行修改,同时也按照焊接注意事项上面的要求进行实施,直至硬件能正常工作为止。3.3.2软件调试过程软件主要是采用Eclipse集成开发环境开发,所以调试过程也是在Eclipse中进行的,在编写完代码之后,在代码编辑区域点击鼠标右键->RunAs->JavaApplication运行程序(操作见图3.2运行程序),如果程序出现错误会在Eclipse下方的Console窗口出现红色文字的错误信息,会提示错误具体出现在哪一行,双击蓝色显示的代码行调至错误位置进行修改程序。直到程序运行之后Eclipse下方没有错误提示为止,就算此程序能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目评审表范表
- 四年级数学几百几十数乘以一位数综合监控口算题带答案
- 读书建议书范文
- 面试自我介绍范文集锦15篇
- 采购部半年工作总结
- 几百几十加减几百几十综合考核口算题大全附答案
- 铁路班组长心得体会
- 药物管理和使用
- 新中式高层居住区规划文本
- 中国饮食文化知到课后答案智慧树章节测试答案2025年春山东农业大学
- 高中英语外研版必修第二册Unit4看图片记单词课件(44张ppt)
- 护理评估量表及注意事项
- 床旁超声引导血管穿刺的SOP
- 新编高等数学(理工类)第8版高职PPT全套教学课件
- 房地产企业华润置地“十三五”战略规划及2017年商业计划书
- 《初中物理双向细目表》
- 成人有创机械通气气道内吸引技术操作
- 国际生物组织联合会
- 不要分送弹性力学(徐芝纶)课后习题及答案
- 建筑法课件资料
- “双减”下初中道德与法治分层作业设计研究 论文
评论
0/150
提交评论