• 523.94 KB
  • 2022-04-22 13:54:45 发布

GSM报警系统后台模块设计毕业论文.doc

  • 41页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'GSM报警系统后台模块设计毕业论文目录第一章绪论11.1选题背景及意义11.2设计任务及要求2第二章关键技术分析32.1GSM概述32.1.1GSM网络概述32.1.2GSM的结构模型32.1.3GSM网络的协议模型62.2软件开发工具的选择72.3Delphi编程语言82.4数据库概述92.5串口通讯的研究和实现112.5.1RS-232C串口标准112.5.2串口通信的通信协议122.5.3端口参数比特率122.5.4串口通信的实现方法与MSCOMM控件122.6AT指令以及短消息开发132.6.1AT指令的简介与格式132.6.2AT指令的概述142.6.3SMS发送编解码15第三章系统设计193.1系统的功能需求与整体设计193.1.1系统的功能需求193.1.2系统的总体设计203.2数据库管理模块的设计223.2.1数据库的建立223.2.2数据库与Delphi的连接233.2.3设计效果与设计重难点273.3串口通信模块的设计283.3.1串口通信的设计283.3.2设计效果与设计重难点313.4短消息编码模块的设计323.4.1短消息编码的设计323.4.2设计效果与设计重难点33第四章系统调试与性能分析344.1系统调试344.2性能分析34 4.3课题展望35结束语37致谢38参考文献39 第一章绪论1.1选题背景及意义作为一种基于时分多址技术的系统,目前GSM(GlobalSystemforMobilecommunication)系统已经发展得很成熟了,应用的范围很广阔,在很多方面都有用武之地。目前我国民众进行移动通信主要是通过GSM数字蜂窝移动通信网,在我国,这样的网络已经发展成熟并且覆盖到了全国的各个地方。GSM短消息服务就是一种实现在移动网络上对信息进行储存和转寄的处理,以实现在移动网络上传送简短的信息,是一种无线的应用。由于GSM网络在全国都有覆盖,可以实现全国范围内的漫游等功能,网络能力很强,用户在不同的地方使用GSM网络时,不需要另外进行组网;同时,GSM系统可以容纳相当大数量的用户。总的来说,GSM系统没有了传统的专网通信系统的诸如维护费用高,投资成本大,且用户数量有限和网络监控的覆盖范围等不足,而且在很大范围内的提高了网络的覆盖范围,为用户减轻了很多的费用。在我国国内,作为GSM网络的一种基本的业务的SMS短信息服务已得到越来越多的开发商和运营商的青睐,SMS短信息服务数据无线传输网络以GSM网络为基础,在此基础,各种功能强大的应用系统可以被开发出,可以更好的来满足消费者的需求。随着移动通信技术的高速发展,手机和个人电脑等设备越来越普及,手机短信(SMS)由于其便捷、价格便宜而获得了非常多手机用户的喜爱,短信服务早已融入人们的日常生活,并成为了人们通信、交流的常用方式。SMS有很多优点:廉价、信息量大、占用通信信道量小、简短直观、便于保存以及群发功能更推进了短信的发展。由于GSM的SMS业务不需要拨号建立连接,而是通过信令信道传输,在其它应用系统中,基于GSM的SMS可广泛应用于业务数据传输等方面。无线网络覆盖是GSM系统一个很大的优势,与传统的集群系统相比,GSM本身还具备的其他优势,这些都加快了像SMS这些应用的普及。此外GSM的短信息系统借助于无线通信还能够对数据进行双向传输,使得数据传输运行稳定,而且性能较好,数据的远程传送在此应用的基础上更为便利,同时为支持用于监控的设备间的通信提供了平台。随着经济和科技的发展以及人民生活水平的改善,测控技术,通讯技术等的快速发展与提高,高科技已经涉及到人们生活的各个方面,为人们的生活提供了方便,人们生活水平也得到了提高,但同时一些这样那样的安全隐患也在生活中越来越多的出现,如火灾、煤气中毒、匪盗等,这些灾难已经严重威胁到了人们家庭的幸福。智能家居的概念随之被提出来,家居安全报警系统就是智能家居的一个重要组成部分。早期的家庭安全报警系统,如红外线防盗报警器、煤气报警器、火灾报警器等,这些报警装置只能够满足一般的需求,无二次报警功,实际能功能比较单一、性价比也不高。-38- 例如燃气泄漏致人昏迷后不能采取进一步防范措施、或无人在家时发生火情或匪盗,单纯的警铃报警不能给物质财产提供保障,这显然满足不了家庭综合报警的使用要求。目前,GSM短信报警已经在普及的过程中,它性能稳定,相比早期家庭安全警报系统性价比较高,在此支持平台,为远程监测设备的通信提供了可靠的方法。在GSM模块与计算机有机的结合,让计算机参与到短信的发送过程中,GSM就能够实现复杂的短信应用,从而能更好的实现家庭安全警报系统。本设计尝试将计算机强大的管理功能与GSM短信发送功能结合起来,以实现对短信的综合管理。1.2设计任务及要求我们提出的GSM报警系统分为前台和后台两部分。前台部分主要为信息采集模块,用于采集环境中的温度数据,该部分是由温度传感器和单片机组成,温度传感器检测环境中的温度,并经过模数转换转变成数字数据,在温度数据超过某一警戒值的时候,单片机会通过串口将这个数据传给后台部分,表明此时环境已出现危险,需要有人去进行检修。笔者主要负责的是后台部分,后台部分分为PC机模块和GSM模块。在从串口接收到来自信息采集模块的温度数据后,PC机会立即将这个数据和数据传输的实时时间一并存在数据库中,同时,PC机会向GSM模块发送一个指令,使其向指定的手机发送报警短信,在PC机界面上可以对数据库中的数据进行浏览、删除、修改等操作。后台模块采用Delphi7.0作为开发环境,用MicrosoftAccess作为数据库。-38- 第二章关键技术分析2.1GSM概述2.1.1GSM网络概述GSM是GlobalSystemforMobileCommunications的缩写,中文为全球移动通讯系统。开发GSM系统的目的是让世界各地的用户都能够使用一个共同的移动电话网络标准。而目前,全球绝大部分国家和地区的用户正在使用GSM电话,很好的说明了众所周知的GSM是当前应用最为广泛的移动电话标准这一点。GSM被看作是第二代的移动通信系统,这是因为GSM的信令和语音信道都是采用的数字式的,这与GSM之前的标准有很大的差异。GSM系统有很多的优点,突出的几点如下:有着丰富的手机号码资源、有相当强大的网络容量、网络稳定防干扰能力强、通话过程中遇到死角的几率很小、通话的质量很高、有很强的信息保护机制以防止被盗、对手机电量的消耗很少、有很好的保密性能、手机信息灵敏能很快接入到网络、可以支持开通很多种业务以及可以实现国际自动漫游等。GSM的技术目前已经发展得相当成熟,并且技术先进,应用范围相当广阔。GSM900和DCS1800,即众所周知的双频网络,这两者都是在GSM标准下实现功能的。GSM/DCS预定包含了不同移动单元间信息处理设施与语音传输在内的不同设施。GSM900和DCS1800这两个系统所工作的频率不尽相同,GSM900主要的工作频率是900MHz,而DCS1800的工作频率是1800MHz,虽然工作在不同的频率,但是它们能实现相同的功能。双频网(GSM900/DCS1800)是在原有GSM900的基础上引入了DCS1800网络构成的,构成的方式是组网的方式,这一举措是为了更好的满足人们对通信的需求,为用户提供更好的通信体验。构建双频网可以很好的缓解当前高话务密集区无线信道日渐使用紧张的现象。构建了双频网之后,在双频手机的支持下,用户的通信可以实现在GSM900/DCS1800这两个系统之间自动选择质量最优的信道进行通话,可以进行自由的切换,如果用户在通话的过程中,一开始用的是GSM9000系统,过了一会,DSC1800系统的质量更优,手机会自动切换到DSC1800系统,切换的过程非常平滑,用户基本感觉不到通信信道的切换,由于自动选择了最佳的通信信道,手机能更快的连接到网络,用户的通信体验自然相应的比之前有了很大的提高。2.1.2GSM的结构模型GSM的网络结构如图1.1所示,大体上可以分为交换系统(SS)和基站系统(BSS)两块。-38- 图1.1GSM网络结构这里要说明的是,网管设备可以用来实现所有的对网络实施的的维护操作的管理(OMC)。一、交换系统(SS:SwitchingSystem)它具有执行用户通话的相关功能,包括了以下几个功能单元:MSC(MobileServicesSwitchingCenter):移动业务交换中心。它可以控制来自或发往其他数据系统和电话的呼叫,对系统的电话交换功能负责。同时还能执行很多其他的功能,比如说网络接口、普通信道的信号传输以及长途电话的记录等等。GMSC:GatewayMSC,关口MSC。它主要是用作移动网络和其他网络之间的接口局。VLR(VisitorLocationRegister):拜访位置寄存器。它的主要作用是更新和存储用户数据,不同的是,它主要存储的是服务小区内的临时用户。可以为访问用户提供服务,是一个临时信息的数据库,其中包括了移动服务中心(MSC)所需要的用户。VLR总是与MSC相结合,连接MSC的VLR会在一个移动站点漫游到另一个MSC时,向HLR请求相关移动站点的数据。由于VLR具有监理呼叫所需的信息,因此,今后如果移动站点建立一个呼叫,VLR不需要每次都要向HLR进行询问。HLR:HomeLocationRegister,归属位置寄存器。它是用来作为数据库储存用户的数据的。AUC(AuthenticationCenter):鉴权中心。它提供了岁参数进行加密及鉴定的功能,这是为了保证通话的私密性和安全性。在目前的蜂窝式电话世界中AUC可以对网络工作者进行很好的保护,使其免受各种不同的欺骗。-38- EIR(EquipmentIdentityRegister):设备信息记录,它是一种含有各种移动设备身份信息的数据库,能够使通话避免不合格的移动站点或不合法的行为等。一方面,AUC和EIR可结合AUC/EIR的节点执行,另一方面,也可作为单独的节点执行。二、基站系统(BaseStationSystem)可以实现与无线通信相关的功能,由两部分组成:BSC(BaseStationController):基站控制器。它是一种性能很好的交换器,具有对无线电频进行调控的功能,还能配置单元数据等,除此之外,还为BTS、MSC以及一切的控制功能提供物理连接。BSC主要的工作是对无线基站进行监视,定位及切换小区,对小区资源及数据进行管理,以及对BSS的操作和维护等。MSC被大量的BSC所服务。BTS(BaseTransceiverStation):基本传输站点(RBS2000系列)。它主要负责的是移动站点和无线电通讯之间通信的接口。BTS为网络的每个单元服务,它是一种无线电通讯设备。一个BSC可以控制一组BTS。三、维护操作管理(OMC)是一个微机化的操作维护中心,它与网络中其它的网元的连接是通过V.25来完成的,如MSC,BSC等。可以根据网络的大小,设立相应数母的操作维护中心。在这些操作维护中心中,工作人员可以的监测设备运行实时的情况,并及时处理设备运行过程中出现的意外状况。执行OMC的系统也称为支持和操作系统(OSS)。网络工作者可以通过对OSS这一功能实体进行监控管理。它能够为用户提供划算的支持(本地地、地域性以及集中性地操作及维护),这是OSS的主要目的,同时也是GSM网络所需求的。OSS还有一个重要的功能,那就是为不同操作提供支持、维护机构并提供一个网络概要。GSM系统所能提供的最大蜂窝范围是35公里。收发基站(BaseTransceiverStation,即BTS)为移动台(MobileStation,即MS)提供了通信所需的接口,这两部分在广播通道的范围里的工作的完成需要通过无线电接口的帮助。BSC是一种新型的蜂窝网络单位,是由GSM所引进的,BTS是由BSC控制的。一方面,它可以有效地控制MS和BTS两者间的功率强度,另一方面,它对呼叫进行的移交操作也具有很好的稳定性,因而可以接收各种来自于交换节点的任务。MSC主要用于管理、建立和清除连接,并将呼叫路由与适当的蜂窝点进行连接,它的主要作用是管理与控制位于其控制区域内的用户。MSC是GSM网络的核心。它提供电话系统的接口和计费的服务。这些储存了每个移动用户信息的数据库,需要配合漫游位置寄存器(VLR)和当地位置寄存器(HLR)来运作。VLR储存了特定区域内移动用户的信息,而HLR提供了接入网点可提供的移动用户的相关信息以及一些附加的服务,它还包括任何附加服务是否被激活以及移动台开与关的信息。除此之外,还有:配合HLR的运作,避免用户号码被非法使用,而只允许有用户权限的用户获得服务,验证中心能够可靠地识别用户的身份;移动台的参数是由设备识别寄存器(EIR)-38- 充当数据库进行存储的,它能够拒绝一些站点没有经过网络上卖家的批准而对网络进行使用,阻隔地下的移动台所发出的呼叫,阻止非移动台的入网操作,对移动设备进行监视与鉴别。2.1.3GSM网络的协议模型GSM标准用来传送用户信息和信令信息的信道是不同的,正因为如此,有了下面的两种类型的数据:1、用户信息:包括语音和数据。2、信令信息:用于呼叫建立、释放系统管理信息。GSM系统使用的协议与OSI协议模型所使用的差不多,包括物理层(L1)、数据链路层(L2)和应用层(L3)。物理层提供所有物理媒介传输比特流所需的功能,位于协议模型的最下面一层。数据链路层确保准确的进行消息的传递及对单个呼叫的识别。在GSM网络中,无线接口(Um)上位于数据链路层的协议是LAPDm协议,位于物理层的是TDMA帧。MS在Um接口上的每一次呼叫都要进行对物理层的建立和对数据链路层的建立的操作,在建立好的基础上,才能建立与网络侧在应用层上的通信。要说明的是,L1和L2(除了SCCP)在网络侧一直都保持着连接的状态。L3层的通信的消息,总共分为三部分,包括呼叫的控制(CC)、移动性的管理(MM)以及无线资源的管理(RR),不同的部分根据阶段还有功能的不同都各有差别。图1.2说明了在移动台与GSM网络PLMN(PublicLandMobileNetwork公用陆地移动网)固定部分间的信令传送。图1.2中出现的通信实体含义如下:RM:无线资源的管理(负责分配、监测和释放专用信道,管理公共的控制信道);CC:呼叫控制(负责为电信业务、附加业务等提供必要的控制);SMC:短信息业务控制(支持传送简单的用户信息);BSSMAP:BSS管理应用的部分;SS:附加业务控制(支持控制独立的附加业务);MM:移动特性管理(支持移动用户的漫游);TCAP:事务处理能力的应用部分;SCCP:控制信令的连接的协议;MTP:信息发送的部份;JSDN-UP:ISDN的用户部份;MAP:移动通信的应用部分。-38- 图1.2GSM网络信令协议模型2.2软件开发工具的选择目前可用的软件开发界面开发工具,包括Delphi,VC,VB,Borland的Delphi等开发可视化软件开发工具是一个著名的公司相比,Delphi和VC简单,更容易掌握,但在功能上有很多,但丝毫不逊色,比VB,Delphi是更强大,更实用。可以说Delphi兼备了VC功能强大和VB易于学习的特点,它一直是最喜欢的程序员编程工具。由于这些原因,决定选择德尔福作为一个软件开发工具。Delphi由Borland公司推出的一个新的可视化编程环境,使用了微软的Windows图形用户界面,许多先进的功能和设计思路,使用弹性可重复使用的完整的面向对象的编程语言,使用的编辑器是目前世界上最迅速,最先进的数据库技术。毫无疑问,对于应用程序开发人员而言,使用Delphi开发的软件可以大大提高编程效率。Delphi有一个集成开发环境(IDE),它使用的语言是ObjectPascal的语言(ObjectPascal的),这是传统的Pascal语言与其他编程环境的前身是不同的,Delphi的软件开发环境,是一个可视化界面编程环境,通过一系列的工具和编译器,再加上你可以连接到数据库,这使得Delphi已经成为一个焦点为程序设计,面向对象的软件开发工具。这是值得一提的是,Delphi提供了可用于开发人员可以使用超过500个组件的数量,开发者可以使用这些组件来快速构建应用程序。此外,开发人员还可以根据自己的需要直接修改现有的组件或直接用Delphi编写自己的组件。主要特点如下:(1)Delphi可以直接通过编译从而生成代码,这些代码是可执行的,能很快进行编译。Delphi的处理的速度以及服务器等方面的功能是其他的同种类型的产品无法匹敌的。(2)Delphi可以支持让客户机来处理存取规则,同时,也可以支持让服务器-38- 来完成这样的操作,除此之外,Delphi还支持用简单的部件来对所有的规则进行封装,而且跟服务器以及客户机完全分离开来,一切数据的转移的完成都要经过这些部件。(3)Delphi还有非常多的便捷的开发方法,方便了开发人员,在尽可能减少他们重复工作的同时可以实现多种多样的应用的开发。(4)Delphi程序可以进行多次的利用,还可以在原有的程序的基础上进行扩展,以及增加更多的功能。开发人员无需对一些常用的部件进行重复的编程,只需使用现成的就好了,大大简化了程序员的操作。(5)Delphi的数据存取的功能非常强大。BDE(BorlandDatabaseEngine)是Delphi用于对数据进行处理的工具,Delphi可以用BDE来对现在一些比较流行的数据的格式进行一些处理操作。开发人员不仅可以用Delphi来对系统软件进行开发,开可以用Delphi来对应用软件进行开发。(6)Delphi用来进行网络的开发很便捷,对于开发人员来说,利用Delphi软件开发一些浏览器/服务器的应用很迅速很方便,利用Delphi进行网络开发的效率是其他它同种类型的开发工具远远比不上的。(7)Delphi所使用的类库是VCL类库,VCL是当下性能最好的类库,这种类库让程序的条理显得很清晰,因为使用了VCL类库,Delphi在其他同类软件中一直处于遥遥领先的状态置。开发人员能够根据按实际的需要对VCL进行任意的操作,包括VCL的构建,VCL的扩充以及其他操作。2.3Delphi编程语言用Delphi进行编程所使用的编程语言是ObjectPascal语言。ObjectPascal是从传统的Pascal语言的基础上发展而来的,与今天C语言非常普遍的情况不同的是,Pascal语言一度是全球使用范围最广的语言,造成这一流行的原因有很多,Pascal语言的数据类型的种类很多,编译器效率很高,而且其结构化性能良好,对算法的描述简明清晰,书写的格式也有很强的自由度,非常便于使用。而ObjectPascal语言不仅拥有上述Pascal语言所有的优点,还拥有了新的特性,ObjectPascal中添加了关于面向对象编程技术。综上,ObjectPascal是目前的常用的面向对象编程的语言之一。ObjectPascal语言的优点主要体现在如下几个方面:(1)利用ObjectPascal语言所编写的程序条理清晰,方便浏览。(2)拥有非常丰富的数据的类型。(3)可以进行面向对象的程序的设计。(4)ObjectPascal能进行很迅速的编译。(5)能够支持程序的模块化设计。-38- 2.4数据库概述数据库中存储的东西叫做数据。所谓的数据,就是确认由计算机处理的符号。数据的种类非常丰富,如数字,文本,表格,图形,图像,声音等都是数据的一部分。数据库(Database,简称为DB)是在相关联的数据以一定的目标组织存储在计算机存储介质中的数据集。一个数据库通常包含许多表,索引,以及其他相关信息。可以以最好的方式和最少的重复使用率为各种应用程序提供共享服务。关系数据库(RelationalDatabase)是目前使用最为广泛的数据库,该数据库数据的关系模型是有组织的存储。关系型数据库通常包含多个表,表中包含的记录,记录是由字段所组成的。这个主题需要开发基于计算机程序的数据库类应用,它的设计主要包括两部分:数据库设计和软件设计。对于数据库的设计,首先要选择合适的数据库产品,选择合适的数据库开发工作可以起到事半功倍的效果。Delphi可以访问多个数据库,如VisualFoxPro等基于文本的数据库,还有Oracal,SQLServer以及其他大型数据库。鉴于本设计只涉及到一般数据的能力要求,因此选择使用简单,中等容量,易管理,安全性更好的Access数据库。MicrosoftOfficeAccess是微软公司发布的关系数据库管理系统。它结合了MicrosoftJet数据库引擎和图形用户界面两个特点,是MicrosoftOfficesystem程序之一。Access是一个关系数据库,属于桌面管理系统,这在微软的Windows系列操作系统属于首例。不管所创建的数据库是个人级的还是企业的,还是用于对客户的信息数据进行管理的,或者是作为产品的数据库用于对产品进行管理、跟踪的,Access可以满足上述的各种各样强大的功能,并且,Access的使用非常的简单方便。就实质而言,Access这样的数据库是一个关系数据库管理系统。关系型的数据库是基于非常严谨的数学的理论的。Access数据库也是如此,每一个Access数据库的数据逻辑结构都符合一个特定的二维表,这样的二维表描述的每个数据对象的联系有着一致的关系,简单易懂,这跟人们的认识规律是相符合的。由于上述原因,Access数据库适用的范围非常广阔。数据库管理系统是一个系统——管理数据库中的资源的功能模块,用户之间的交互和数据构成了数据库系统的核心部分,数据库管理系统为数据的管理和控制提供了一个管理接口。为用户提供了一个功能丰富的访问接口,与其他数据库管理系统相比,Access具有以下特点:(1)界面简洁,可以实现实现强大的数据共享和访问,是完全集成到Windows操作系统和Office的其他控件,如Word,Excel等,有相同的用户界面,一贯的设计风格。因此,对于刚入门的学习者来说,操作非常简单,能很快上手。-38- Excel等office系列应用程序,可以很容易的与Access数据库实现数据的共享。同时,用户还可以将数据导出到Access字,可以利用文字编辑,排版功能,节省了大量的原材料数据;另一个方面充分利用Exce1分析提供了数据分析能力,在Access数据库中的数据,生成所有必要的图表,增强了数据的表达功能。(2)数据对象丰富.操作手段便捷:根据数据库操作的不同特点。Access为用户提供了7种对象类型,它们分别是表、查询、窗体表单、报表、帧(Access2000新增加的对象)、宏和模块,分别用于完成不同的功能。例如,Access数据库的所有数据都是被安排到到表下的,因而,开发人员可以很直观的通过二维表的形式来定义数据库。表对象为开发人员提供了建立一个数据库的基本手段,利用表所带有的功能,开发人员可以对数据的结构以及类型进行定义,或是浏览、修改或以及删除数据库之中已存在的数据。查询对象为用户提供了多种手段.如利用多种查询方式来对数据库中的数据处理进行相应的处理,最终使数据库中的数据生成一些对用户有一定意义反映一定事实的信息;同时,获得结构化的表格形式,为用户创建查询,定义查询提供了方便快捷的方法。(3)强大的向导工具:Access为用户提供各种向导工具,可以帮助入门学者快速了解Access,也可以使那些可以熟练操作Access的用户提高工作效率。我们使用Access数据库的原因之一。(4)包含了SQL功能:整合访问SQL(结构化查询语言比)的功能,可以熟练操作Access的用户可以利用这个功能来创建更加复杂的查询。(5)多媒体功能:全面支持访问多媒体的功能,在Access数据库中,你可以保存并解决一些如声音,图像和动态视频和其他多媒体数据的问题,在很大程度上提高了人们的数据处理数据的能力。(6)网络功能:随着互联网的飞速发展,人们需要依靠更多的数据通信网络来实现相互的交流。为了满足这种趋势,Office系列应用程序的集成与网络数据交换,因此,Access增加了新的数据类型——超链接。有了这个功能,你可以插入超链接的数据库文件,浏览网页,或者通过网页发布数据库中的数据,或从网络中使用的数据。使用高级语言编写的应用程序,面对不同形式的数据存储,需要一个简单而统一的应用程序编程接口,使应用程序,以一种统一的方式访问和编辑各种数据源。OLEDB提供访问不同来源的信息都存储在一个统一的数据访问,它是微软开发的一个低级别的数据的库访问技术。通过OLEDB应用程序可以直接访问VisualFoxPro,MSSQL服务器,Oracle和一些其他的数据库。虽然OLEDB连接不同的数据存储,但简化的OLEDB应用程序不能满足要求也不适用于所有语言。因此,微软的OLEDB开发的ADO(ActiveX数据对象),这是位于顶部的OLEDB的基础上,ADO编程语言封装了OLE-38- DB的所有功能,可以从很大程度上简化对数据库的访问。从编程的角度来看,无论是什么样的对数据库的访问,其基本结构是相同的。在Delphi数据库应用程序中,有三个基本的表单控件:数据控制控件,数据集控件和数据源控件。数据控制控件始终显示和修改数据库中的信息,为用户提供了一个可视化界面来操作数据库,常用的控件为TDBText,TDBEdit,TDBGrid。数据集控件,负责实际的数据库连接,常用的控件为TADODataSet,TADOTable,TADOQuery。数据源控件,将数据集控件和数据控制控件连接起来,常用的控件为TDataSource。2.5串口通讯的研究和实现2.5.1RS-232C串口标准在使用的过程中经过不断的发展,目前已有多种串口通信接口的标准。但是这些标准都是以RS-232标准为基础,经过不断的演进而得来的。RS-232-C标准是由美国的一个工业联合会开发,再加上贝尔公司的合作,共同开发的一种通信协议,RS-232-C标准的公布是在1969年。它主要用于的通信的数据传输的速率范围为0到20000bit/s。远程工业协会(TIA)在1997年发布了一个最新的命名为TIA/EIA-232-F的版本。这样的标准对关于串行通信接口的一些相关问题做了明确规定,比如说信号线的功能以及电器的特性等等。因为厂商们所制造出来的通信的设备都是与RS-232相互兼容的,大家都在使用这样的标准,由于这样的原因,RS-232制式在计算机通信接口中应用比较广,是一种通用的标准。每一台计算机中都内置有RS-232制式,除此之外,许多各种各样的连接到计算机的设备的内部也有这样的制式。RS-232常用于连接到Modem,还有一些其他的设备也拥有RS-232的接口,比如,打印设备,测试的设备等等。要补充的是,RS-232还能直接用来连接不同的计算机。RS-232的优点如下:1.应用范围广。相对USB接口,尽管传输率较低,但是由于成本低,在对一些数据的采集的设计与控制等方面依然是较为理想的PC接口。2.在一些微控制器中,我们可以在接口芯片的帮助下进行电平的转换,非常的方便易行。3.相较于USB5米的最长连接距离,RS-232连接的距离达到了20M。如果将RS-232端口连接到Modem上,则可以在全球范围内实现数据的收发。4.对于简单的双向连接的实现,只需要3条导线。而并行连接一般需要8条数据线,多条控制线信号信和几条接地线共同完成才能实现,连接的成本高。-38- 2.5.2串口通信的通信协议通信协议也就是参与通信的双方的一种约定。约定的内容是对数据的类型、传输的速率以及通信时的同步方式等与通信相关的问题作出统一规定,参与通信的双方必须共同遵守通信协议。因此通信协议也叫做通信控制规程。串行通信协议分为异步串行通信协议和同步串行通信协议。2.5.3端口参数比特率比特率:在十进制中有0到9这10个数码,在2进制中只有0和1这两个数字。2进制计数制中的每一位0和1,被称作一个位。每8个位构成一个字节,因此一个字节的范围从00000000~11111111,十进制中表示为0~225。在一个字节中最右面的位称为位0位,最左面的位称为第7位。第0位是最低有效位,而位7位是最高有效位。常常使用比特率来描述一种传输媒体的容量,单位为比特每秒,比特率取决与两个要素:信号单元变化的频率(波特率)和比特串中比特的个数N。这3个要素之间的关系可以表示为:比特率=波特率*N这意味着可以通过增加波特率或者比特串N来提高比特率。2.5.4串口通信的实现方法与MSCOMM控件每个PC的COM口或COMM通信都是由UART通用异步收发器控制的异步串口。串行接口包括四个主要寄存器,状态寄存器,控制寄存器,数据输入寄存器和数据输出寄存器。开发串行通信程序一般有两个方面:首先,通信WINDOWSAPI函数的使用。另一种是采用标准的串行通信控件MSComm实现。MSComm控件是微软CISUAL基本提供了一个串行控制,使用方便,性能良好。它是通过串行通讯端口来收发数据,提供给应用程序基本的串行通信功能,你可以不花时间来了解复杂的API函数,目前MSComm控件已经得到了广泛的应用。因此,该系统采用MSComm控件实现串行通信。Delphi组件面板没有MSCOMM控件,所以你需要手工安装和注册,使用前。MSCOMM是一个ActiveX控件,它有两种方式来处理串行通信相关的问题:一是事件驱动的方法,另一个是查询的方法。1.事件驱动(EVENT-DRIVEN)方式事件驱动(EVENT-DRIVEN)通信对串口进行处理,可以非常有效的互动。很多时候,情况是事件发生时能及时收到信息,例如,串行输出字符缓冲区,或载波检测或要求发送网上字符到达事件发生时。在这些情况下,您可以使用MSCOMM控件OnComm事件捕获并处理这些通讯事件。2.查询方式-38- 查询方式在本质上属于事件驱动,但是在有些情况下,查询方式相较于事件驱动更为方便快捷。例如,在每个程序执行的主要功能之后检查CommEvent属性值,可以在这样的方式来查询事件和错误,一旦发现CommEvent属性值改变了这一点,就意味着通信事件或错误的发生。在应用程序较小,并且是自成一体的情况下,这种方法具有一定的可行性。2.6AT指令以及短消息开发2.6.1AT指令的简介与格式由于AT指令是一个工业通信接口标准,那么它的相关命令、命令返回结果和命令格式都是固定不变的,具体來说AT指令有四种形式。下面列出了常用的AT指令的格式和命令的含义,如表2.1所示:表2.1部分常用AT指令的格式和命令的含义-38- 一、无参数命令:格式为AT[+|&],如显示当前设置列表、JT机等:AT&V、AT+ON...是一种最简单的命令。二、査询命令:格式为AT[+|&]?如:AT+CSCA?它的功能是用来查询该命令当前设置的值。三、帮助命令:格式为AT[+|&]=?如:AT+CMGL=?它的功能是列出该命令的可能参数。四、带参数命令:格式是AT[+|&]=,,当作为返回值时,情况就比较多变。但是还是遵循一个基本的框架格式:<回应字串>[:ERROR信息],它作为应用最广的一种格式为命令提供了很大的灵活性。2.6.2AT指令的概述AT指令不仅是一组命令,而且还是行业标准的Modem通信接口。具有Modem配置和软件的工作,共同发起或接听电话,与远程系统通信的功能,以及实现许多其他功能。AT指令通常开始于AT(A/命令除外)至(CR)结束,前缀是用来告知计算机的串行端口Modem注意检出率的传输信号的速率和字符识别格式。AT命令集是从终端设备(TE)或数字终端设备(DTE)发送到终端适配器(TA)或数据电路终端设备(DCE),AT指令集可以控制的AT命令发送到移动终端(MS),以实现与GSM网络交互。用户可以使用AT命令来调用短信,电话簿数据服务,以及作为补充业务,传真等方面的控制需求。-38- 2.6.3SMS发送编解码目前,发送短消息常用Text和PDU(ProtocolDataUnit,协议数据单元)模式。使用Text模式来实现收发短信比较容易,且代码不复杂,但是不能收发中文短信;而PDU模式收发短信既可以支持中文短信,也能实现英文短信的发送。PDU串表面上是一串ASCII码,由‘0’-‘9’、‘A’-‘F’这些数字和字母组成。它们是8位字节的十六进制数,或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其它信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。一般的PDU编码由ABCDEFGHIJKLM十三项组成,如表2.2所示。表2.2PDU编码各项详情在PDU模式下,你可以使用三种编码方式进行编码传输的内容,这是7-bit,8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,这将是一个7位字符的字符串(最高有效位为0)编码成8位数据,每8个字符可“压缩”成7个,8-bit编码用于发送数据消息,如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)的最大数据段大小为140字节,所以在这三种编码方式中,您可以发送短消息的最大字符数分别是160,140和70。这里被视为一个字符的分别是一个字母,字符和数据字节。需要注意的是,PDU用户信息字符串的长度(TP-UDL),这意味着在各种不同的编码模式。7位编码,指的是在原始消息中的字符数,而不是编码的字节数。8位编码的字节的数目。-38- UCS2编码的字节数等于原始短消息的字符数的两倍。如果用户信息(TP-UD)在头部(基本参数的TP-UDHI1)的存在下,在所有的编码模式中,用户消息的长度(TP-UDL)都等于头长度编码的字节数加上编码后的字节数。如果一个GSM03.42建议的压缩算法(TP-DCS001的高3位),长度为压缩编码后的报头长度的字节数或数个字节的压缩和编码之和。在发送短信前除了要对短信内容进行编码之外,还要对作为发送对象的手机号码进行编码,对手机号码的编码相对就比较容易一些,要做的就是连续将相邻位置的数字进行互换。例如目的手机号码为13755691389,则进行编码后会得到683157651983F9。如果发送对象的手机号码的位数为奇,在编码时要在号码的最后要加上F,如果为偶数则不用加,只需要执行相邻位置数字的互换就可以了。在编码时,目的手机号码长度根据实际长度来定。发送端信息的PDU串不只是短信内容部分,还包括目的手机号码及其一些附加信息。在编码的时候要根据短信内容采用不同的编码方式。先面先研究短信内容的编码方式。USC2编码是将每个字符(1--2字节)按照ISO/IEC10646的规定,转变为16位的UNICODE宽字符。设短信内容为‘中文短消息’。中文短信息的实现比较简单,只需要将GB2312的中文编码转换为代码页为CP936的UNICODE编码即可。编码效果如表2.3所示:表2.3中文编码效果字符GB2312编码(十六进制)GB2312编码(二进制)UNICODE编码(二进制)Unicode编码为十六进制中D611010110010011104ED011010000001011012D文CE110011100110010165C4110001001000011187短B6101101100111011177CC1100110011101101ED消CF11001111011011016DFB111110111000100088息CF110011110110000060A210100010011011116F-38- PDU编码协议简单说明:发送:SMSC号码是+8615951885634,对方号码是13918394787,消息内容是“Hello!”。从手机发出的PDU串是0891685159815836F411000D91683119384987F700000006C8329BFD0E01对照规范,具体分析:分段含义说明08SMSC地址信息的长度共8个八位字节91SMSC地址格式用的是国际号码的格式685159815836F4SMSC地址为8615951885634,补‘F’11基本参数发送,TP-VP用相对格式00消息基准值00D目标地址的位数十三位十进制数91目标地址格式用的是国际号码的格式683119384987F7目标地址为8613918394787,补‘F’00协议标识普通类型,采用的方式是点到点00短信的编码方式7bit编码00有效期5分钟06信息的实际长度6个字节C8329BFD0E01信息的内容“Hello!”接收:SMSC的号码为+8615951885634,对方的手机号码为13918394787,消息内容是“你好!”。接收的PDU串为:0891685159815836F4840D91683119384987F7000831501290633380064F60597D0021对照规范,具体分析:分段含义说明08地址信息的长度共8个八位字节91SMSC的地址的格式用的是国际号码的格式685159815836F4SMSC的号码为8615951885634,补‘F’84基本参数接收没有更多的消息0D回复地址的位数十三位十进制数91回复地址的样式用的是国际号码的格式683119384987F7对方的手机号码为13918394787补‘F’00协议的标识普通类型,采用方式的是点到点08短信的编码方式UCS2编码31501290633380时间戳2013-5-2109:36:33+8时区-38- 06信息实际长度6个字节4F60597D0021短信内容“你好!”-38- 第三章系统设计3.1系统的功能需求与整体设计3.1.1系统的功能需求本次设计的主要任务是实现一个通过串口接收来自信息采集模块的温度数据并保存至数据库,同时通过串口向GSM模块发送指令发送报警短信,并且可对数据库中的数据进行浏览、修改、删除等操作的程序。GSM短信报警系统后台模块的功能可以分为两大部分:1.温度数据和短信指令的串口通信2.数据库的管理基本功能需求分析:通过串口接收来自信息采集模块的温度数据;实现对从串口接收的温度数据进行数据库存储;向串口发送AT指令以对GSM模块进行操作控制,实现短信息的发送;实现对即发短信的PDU编码功能。如图3.1所示PC机串口存储至数据库PDU编码AT指令串口GSM模块图3.1软件需求分析实现功能模块:分为以下3个主要功能:1.数据库管理模块:对温度数据进行浏览,删除,修改等操作。-38- 2.串口通信模块:实现对从串口接收的温度数据;向串口发送指令以对GSM模块进行操作控制,实现短信息的发送。3.短信息编码模块:实现PDU编码,可以实现对任意手机发送短信。3.1.2系统的总体设计GSM报警系统由前台和后台两大部分组成,前台部分主要是信息采集模块,后台部分由PC机和GSM模块两部分组成,系统总体模块图如图3.2所示。信息采集模块PC机界面显示,数据库存储记录GSM模块手机温度异常通过串口发送温度数据通过串口发送指令发送报警短信图3.2系统总体模块图如图,在环境中出现温度异常的时候,信息采集模块会将采集到的温度数据通过串口发送给PC机,PC机应用程序接收到温度数据后会将改温度数据存储到数据库,一同存入数据库的还有温度数据通过串口传送的实时时间,PC机应用程序接收到温度数据后还会进行PDU编码,通过串口将AT指令传送给GSM模块,GSM模块接收到指令后会给指定的号码发送报警短息。在PC机应用程序的界面上,可以对从串口传来的存入数据库的温度数据进行浏览、删除、修改等操作。软件总体流程图如图3.3所示-38- 开始打开串口接收温度数据(MSComm1)获取当前的时间打开数据库存入数据库短信内容转PDU码发送AT+CMGC(MSComm2)发送短信结束打开失败打开失败图3.3软件流程图-38- 如图所示,在程序运行初始阶段,先点击界面上的打开串口的按钮,打开通信所需的串口,串口控件分别为MSComm1和MSComm2,如果打开失败,程序运行结束,操作人员需检查串口设置。若串口打开成功,在信息采集模块发送温度数据的时候,应用程序会通过串口接收数据,此时用的串口控件是MSComm1,从串口接收到数据后,系统会获取当前的实时时间,以字符串的形式赋值给一个变量。接下来,系统会通过一系列控件打开关联的数据库,若打开失败,则系统运行结束,操作人员需检查数据库是否存在以及是否关联,数据库打开成功后,系统会将温度数据和获取的实时时间存入数据库中。在这些完成之后,系统需要通过串口向GSM模块发送指令,使其发送报警短信,在发送指令之前,需要对短信内容和目的手机号进行编码,系统发送指令所用的串口控件是MSComm2。在程序运行过程中,工作人员可以根据实际的需要在界面上进行操作,对数据库进行删除、修改等操作。这样,软件的模块就分为三部分:数据库管理模块,串口通信模块和短消息编码模块。3.2数据库管理模块的设计3.2.1数据库的建立在本设计中,数据库的作用是存储来自串口的温度数据和数据发送的实时时间,在Delphi编写的应用程序界面可以对数据库中的数据进行浏览、删除、修改等操作。考虑到本系统涉及的数据量较少,类型较单一,而Access作为一种桌面数据库,操作方便简单,因此本系统选用Access数据库。系统的数据库包含了异常的温度,PC机串口接收数据的时间,以及是否对异常进行检查三项。数据库名:Template.mdb,数据表名:Templ,数据库的具体内容如表3.1所示:表3.1Access数据库内容名称字段名称类型主键非空标识Id自动编号YesNo温度异常时间tim日期/时间NoNo温度altemp文本NoNo是否检查(Y/N)state文本NoNo在温度数据存入数据库后,程序还会将这个温度数据加入到要发送的短信的内容中,比如短信内容为“报警!温度:40”,40就是从信息采集模块发送过来并存入数据库的的摄氏温度数据。由于数据存入数据库与发送短信指令时间相差不大,可以大致认为温度数据传送的实时的时间就是短信发送的时间。这样,除了查看温度发生异常的情况外,本数据库还具有管理短信的功能,通过查看数据库,可以知道短信发送的关键内容和大致时间。在数据库中还有“是否检查(Y/N)”-38- 这一项,在一条温度数据存入该数据库后,该项默认值“N”,表示环境中发生了异常,但还未进行检查。待工作人员收到报警短信并解决了温度过高的问题后,可以在界面上选中对应的项,点击“检查确认按钮”,然后该项的值就会变为“Y”,表明工作人员已经对环境中的温度异常情况进行检查,危险已解除。3.2.2数据库与Delphi的连接一个数据库应用程序在逻辑上通常由两部分组成:数据库模块和用户界面,如何将界面与数据库连接起来以及如何在界面实现对数据库的操作是数据库部分开发的重点。本设计采用最常用的ADO组件。使用ADO控件编写的应用程序通常具有以下结构,如图3.4所示。用户DBGrid等数据库控制控件TDataSource数据源控件ADO控件OLEDB提供者ODBC库驱动数据库用户界面应用程序操作系统物理存储图3.4ADO的数据库应用程序结构-38- 数据库应用程序从下往上有物理存储、操作系统、应用程序、用户界面四个层面。物理层指数据库系统,包括数据库软件和数据表;操作系统层除操作系统自身还需要OLEDB技术及ODBC库驱动配合才可访问数据库;应用程序层面在Delphi环境下使用ADO数据库访问技术、TDatasource数据源组件和DBGrid数据源控制组件连接和操作数据库;用户层面由菜单、Button等组件构成,用户通过此界面操作更简单易用。在Delphi中实现与Access数据库的连接:(1)从控件面板上将ADOConnection控件拖拉到窗体(2)设置ADOConnetion的ConnectString为Provider=Microsoft.Jet.OLEDB.4.0;Password="";UserID=Admin;DataSource=dataTemplate.mdb;(3)连接完成在数据库连接到Delphi之后,用TDBGrid组件显示数据库表中的数据信息,以列表的形式来显示数据库中的数据记录。在DBGrid的Column中添加4项,分别为0-ID,1-tim,2-altemp,3-state,指向数据库中的对应项。用TADOQuery控件实现对数据库的操作,TADOQuery组件类似于Query组件,可以使用SQL语句在一个和多个数据表中选择字段,而且可以增加和删除数据。在使用该组件之前,必须要建立它到物理数据库之间的连接,因为使用了TADOConnection组件,所以TADOQuery的ConnectionString属性就不需要设定,直接设定其Connection属性使其指向TADOConnection组件即可。TADOQuery的SQL属性是用来指定利用TADOQuery组件来执行的SQL语句。(1)对数据库的添加操作流程如图3.5所示:从串口接收数据(MSComm1)()开始将接收到的数据存入数据库altemp项中获取当前的实时时间,存入数据库tim项中刷新数据库列表结束图3.5添加数据流程图-38- 在串口接收到数据后,应用程序需要对数据进行存储。此时先关闭数据集,将SQL属性清空再打开数据集,然后执行一条add语句,在数据库中添加一条记录,并对该条记录中的各项进行赋值,用Parameters.FindParam为altemp项赋值,用now()函数获取当前时间,为tim项赋值,ID项与state项则为默认值。执行完SQL语句后对数据库进行刷新操作,此时界面上显示的就是最新的数据库数据。(2)对数据库的删除操作流程如图3.6所示:开始确认要删除该条数据吗?选中某一项,点击界面上的“删除”按钮是删除选中的数据记录刷新列表记录指针设为上次用户选中的行数结束否图3.6删除数据流程图随着时间的推移,用户可能想删除某些以前的数据,选中要删除的项之后点击“删除”按钮,界面上会弹出一个对话框,询问是否确定删除该数据,点击“是”,则删除选中的记录,点击“否”,则取消删除。-38- 在删除之后,为了使界面上显示的数据为最新的数据库中的数据,会进行列表的刷新,但是刷新后列表默认记录指针在第一条,这很不方便用户的使用,因此在刷新列表之前会先记录用户当前选中的行数,刷新后再将记录指针设置为此值。方便用户进行更多的删除或修改等操作。(3)对数据库的修改操作流程如图3.7所示:开始确认已检查吗?选中某一项,点击界面上的“检查确认”按钮是将选中的数据记录中的state项的值改为“Y”刷新列表记录指针设为上次用户选中的行数结束否图3.7修改数据流程图在工作人员对温度异常的情况进行检查之后会在界面上进行操作,将温度数据的状态改为已检查。工作人员选中了要确认检查的数据项后,点击“检查确认”按钮,界面上会弹出一个对话框,询问是否确认已检查,点击“是”,则将选中纪录的state项的值改为“Y”,点击“否”,则不做任何改动。与数据删除相同的是,在确认检查之后,为了使界面上显示的数据位最新的数据库中的数据,会进行列表的刷新,同样的,刷新后列表默认记录指针在第一条,这很不方便用户的使用,因此在刷新列表之前会先记录用户当前选中的行数,刷新后再将记录指针设置为此值。方便用户进行更多的操作。-38- 3.2.3设计效果与设计重难点设计的软件界面如图3.8所示:图3.8主界面效果图如图所示,图片左上角的控件是用于连接数据库的,两个电话形状的控件是MSComm串口通信控件,一个用于与信息采集模块进行串口通信,来收集温度数据,另一个用于与GSM模块进行串口通信,来发送短信指令。点击图中的“刷新列表”按钮,会进行数据库的刷新;点击“打开串口”按钮,会打开MSComm控件连接的串口,串口打开后就可以进行串口通信;点击“检查确认”按钮,在操作询问确认之后系统会对数据库中选中的项进行修改,改变温度数据的状态;点击“删除”按钮,在操作询问确认之后系统会对选中的温度数据进行删除。点击“退出”按钮,退出系统。重点:数据库与界面的连接。-38- 难点:对数据库进行操作后自动刷新界面上的数据的实现。解决办法:编写一个程序,用于浏览数据库中的数据,在每次对数据库进行操作之后调用这个程序,就可以实现数据库的自动刷新。3.3串口通信模块的设计3.3.1串口通信的设计在本设计中用到两个串口,一个是用于接收来自信息采集模块的温度数据,另一个串口是在前一个串口接收到数据之后用于给GSM模块发送指令,使其给指定的手机号码发送报警短信。在本设计中选用了MSComm控件来支持串口数据的通信。主界面创建完成之后,对MSComm控件进行成数据的设置并打开串口进行通信,从串口接收到数据后,应用程序需要对数据进行处理和存储的操作。按照设计好的通信协议,程序从处理数据中获得报警时的温度,数据显示部分实时的显示出相关数据,同时应用程序也利用此信息更新数据库。利用MSComm控件编程实现串口通信,要先了解它的属性:(1)Commport属性:设置或返回端口代号。MSComm1.CommPort=2使用Com2端口MSComm2.CommPort=5使用Com5端口(2)Setting属性:设置初始化参数。奇偶校验,数据位,停止位等4个参数。如“9600,N,8,1”,奇为O,偶为E。(3)Input属性:从输入寄存器中传回并移除已经被读取的字符。restr:=MSComm1.Input,读入restr字符串变量中(4)Ouput属性:写入输出寄存器。(5)Inputlen属性:指定由串行端口读入的字符串长度。默认值为0,此值会使得控件的Input指令一次读取所有输入缓冲区的数据。如果我们需要对固定的字符串长度做特别的运算时,要设置该属性。(6)Handshaking属性:指定参与通信的两方的握手协议。(7)Rthreshold属性:设置或返回接收事件的字符数。当接收寄存器达到所设置的字符数时,将会引发Oncomm事件中的接收事件。默认为0。表示无论寄存器有多少字符均不会引发接收事件。(8)CommEvent属性:只要由通信错误或事件发生时都会产生Oncomm事件(9)RTSEnable属性:决定是否使RequestToSend线有效。一般情况下True为高电位。-38- (10)InBufferCount属性:传回在接收寄存器中的字符数。设0,以清空接收寄存器。控件串口编程的基本流程:1.添加MSComm控件2.对串口进行初始化,并打开串口:(1)设置COMMPORT属性,即通信的端口号。(2)设置HANDSHAKING属性,即通信的协议。(3)设置SETTING属性,即传输速率等参数。(4)设置RTHRESHOLD或STHRESHOLD属性(5)将PORTOPEN属性设为TRUE,打开通信的串口。3.串口读写(1)字符串的读写:由于Input和Output在Delphi中都是Variant变量,Delphi能够直接将他们和字符穿类型进行互换,所以可以直接MSComm控件的Input的属性,以及直接用字符串为Output属性赋值。从INPUT属性中进行字符串的读取,来接收数据:restr:=Mscomm1.Input;或者直接给OUTPUT属性赋值,实现字符串数据的发送:Mscomm1.output:=chu;(2)关闭串口:在结束使用MSCOMM控件作为通信的对象之后后,我们要将通信的端口进行关闭。要补充的是,如果结束使用后关闭了窗体,则通信所使用的端口也会随之关闭。可以用下面的语句来实现这个功能:Mscomm.portopen:=false;与信息采集部分进行串口通信的流程如图3.9所示:-38- 开始设置串口数据参数打开串口接收来自串口的数据结束打开失败通过串口向信息采集模块发送“OK”图3.9与信息采集模块通信串口部分如图所示,在打开串口之前先对串口参数进行设置,与信息采集部分进行串口通信的控件是MSComm1,commport值设置为5;setting设为9600,n,8,1;Rthreshold属性设为4,表示在串口输入缓冲区的数据达到4位时会引发Oncomm事件,从而开始一系列其他的处理。串口打开成功之后,当温度异常时,会接收到来自信息采集模块的温度数据,应用程序会对这些数据进行处理,在接收到数据之后,应用程序会向信息采集模块回复一个“OK”,表示已接收到数据,这样信息采集模块对温度的检测会暂停一段时间,给工作人员去处理,过一段时间后会回复检测温度,如果此时温度还是过高,信息采集模块会继续通过串口向应用程序发送温度数据,应用程序也会再次向信息采集模块回复一个“OK”,如此重复。与GSM模块进行串口通信的流程如图3.10所示:-38- 开始设置串口数据参数打开串口MSComm1引发Oncomm事件结束打开失败通过串口向GSM模块发送AT+CMGS指令图3.10与GSM模块通信串口部分如图所示,在打开串口之前先对串口参数进行设置,与GSM模块进行串口通信的控件是MSComm2,commport值设置为2;setting设为9600,n,8,1。在MSComm1控件引发Oncomm事件后,表示此时环境中温度异常,且信息采集模块已经将该数据发送给应用程序,此时需要GSM模块发送报警短信,在本设计中,用MSComm2控件实现应用程序与GSM模块的串口通信。3.3.2设计效果与设计重难点利用两个MSComm控件,经过虚拟串口工具测试,可以实现应用程序与信息采集模块之间以及应用程序与GSM模块之间的通信。设计重难点:对MSComm控件属性参数的设置。串口通信的比特率必须一致,MSComm1控件的波特率必须与信息采集模块设置的波特率一致,MSComm2控件的波特率必须与GSM模块的一致。Rthreshold属性的设置也很重要,比如Rthreshold属性值设为3而温度数据是4位时,MSComm控件在检测到缓冲区的第三位就会发生Oncomm事件,继而对数据进行存储,但此时存储的仅仅是前3位,第四位还留在缓冲区中,与下次发送的数据放在一起存储,这样是很不合理的。因此Rthreshold属性值的设置必须与温度数据的位数一致。-38- 3.4短消息编码模块的设计3.4.1短消息编码的设计应用程序收到信息采集模块的数据之后需要向GSM模块发送指令,使其发送报警短信,以通知工作人员前去检查异常。在应用程序向GSM模块发送AT+CMGS指令之前,要先对短信的内容以及目的手机号码进行编码。目前,发送短消息常用的模式有Text模式和PDU模式。如果使用的是Text模式来进行短信的收发,一个显著的优点是比较容易实现,代码也不复杂,但是不能实现中文格式的短信的收发;而如果使用的是PDU模式,则可以支持中文和英文短信。显然,中文短信更合理,因此采用PDU模式发送短信。PDU模式发送短信可以使用3种编码方法:7-bit、8-bit和UCS2编码。本设计使用UCS2编码方法。发送短信指令的流程图如图3.11所示:开始打开串口计算短信内容的长度目的手机号码的PDU编码短信内容的UCS2编码向串口发送指令和短信内容结束打开失败图3.11发送短信指令流程图PDU串的用户信息长度(TP-UDL)在UCS2编码时是指字节数,等于原始短消息的字符数的两倍。-38- 在发送短信前除了要对短信内容进行编码之外,还要对作为发送对象的手机号码进行编码,对手机号码的编码相对就比较容易一些,要做的就是连续将相邻位置的数字进行互换。例如目的手机号码为13755691389,则进行编码后会得到683157651983F9。如果发送对象的手机号码的位数为奇,在编码时要在号码的最后要加上F,如果为偶数则不用加,只需要执行相邻位置数字的互换就可以了。在编码时,目的手机号码长度根据实际长度来定。目的手机号码和短信内容的组合:(1)手机号码前加上字符串11000D91   即pdunumber="11000D91"+number(2)手机号码后加上000800和经过UCS2编码的短信内容 即pdunumber=pdunumber+"000800"+信息长度+UCS2编码后的信息3.4.2设计效果与设计重难点短消息编码模块可以实现对短信内容的UCS2编码和目的手机号码的PDU编码。短信内容的UCS2编码,短信长度的计算和手机号码的PDU编码等过程在程序中都是以被调函数的形式来实现的。设计重难点:短信内容的UCS2编码,手机号码的PDU编码-38- 第四章系统调试与性能分析4.1系统调试调试是软件开发中不可缺少的环节,也是最关键的步骤之一。基于Delphi的GSM报警模块后台系统在开发调试过程中也遇到了相当多的困难,虽然过程比较艰辛,但是正是通过这样的过程,使作者对软件开发过程特别是Delphi平台下的软件开发过程有了更深刻的理解。首先进行串口和GSM模块通讯与AT指令的调试:1.用串口线把计算机的COM5口与GSM模块相连,在计算机上利用虚拟串口软件虚拟一个COM2串口,利用串口调试助手虚拟串口传送温度数据。2.打开串口助手,进行参数设置,然后打开串口:串口号:COM2,COM5波特率:9600数据位:8停止位:13.用串口调试助手通过COM2传送测试数据接着进行了Delphi中Mscomm控件的使用调试。因为在Delphi中没有此控件,所以在使用前要先行安装并在注册表中注册方可使用。并且要了解此控件的重要属性和使用方法。并且在出口通信中,如果发送延迟时间设置的过短,那么长度较短的短信可以顺利发送,但是长度较长的短信有可能会发送失败。所以要设置适当的时间,以免数据丢失。之后是对短信PDU串的接收解码的调试。在考虑PDU串格式长度不全面时,或者发送AT指令间隔过短,则会出现分解失败和不能全部读取的错误。然后是对系统的调试:系统的运行环境:硬件要求:带串口的计算机,串口数据线,GSM模块,传感器模块。操作系统:WINDOWSXP数据库:MicrosoftAccess数据库运行测试过程:首先连接好硬件,运行软件,然后打开串口。将传感器模块靠近高温的地方使其测试到异常的温度。收到报警短信后在界面刷新数据库列表,选中某一条数据进行修改检查状态、删除等操作。4.2性能分析系统运行时窗口情况如图4.1所示:-38- 图4.1系统运行时的窗口本软件在WINDOWSXP环境下运行和测试,可以正常接收温度数据并发送报警短信,可以对数据库进行删除、修改等操作。应用程序经过与前段模块的联合调试后,语气的功能都可以实现。当环境中温度发生异常时,数据采集模块将温度数据通过串口发送给PC机,PC机在接收到数据采集模块传来的数据之后立即将该数据进行存储,一同存储的还有温度数据发送的实时时间,同时,PC机通过另一串口给GSM模块发送指令,使GSM模块向指定号码发送报警,在问题解决后,还可以在界面上进行操作,把温度数据的状态改为已检查。也可以通过界面操作,将数据库中已有的记录进行删除。通过一段时间的调试,该程序具有可移植性好,可扩展性好,操作简单的优点程序模块化的设计方法,使开发人员可以对各个模块进行任意移植,方便后续应用程序的扩展和调整。由于系统未在真实的环境下进行使用过,因此实际应用中的稳定性尚需进一步论证。4.3课题展望由于一些条件的限制,本设计并不是很完善,还有很多后续的工作需要讨论,同时,也对本设计功能的进一步扩展做一些展望。-38- (1)在开发过程中,由于时间不是很充足,因此界面做得并不是很美观,功能也不够全面,这些不足,我将会在以后的使用过程中,不断的进行完善。(2)在使用Access构建数据库的时候,只定义了几个能够实现基本功能的项,在以后的使用和维护的过程中,可以根据需要,设计和添加其它的项。(3)在信息安全部分,可以加入更强的安全策略,比如增加密码验证模块。(4)在程序稳定性部分,可以加入短信发送确认的功能,使程序能够处理更多的异常情况。-38- 结束语在整个毕业设计的过程中,我的收获非常的大。从一开始的开题报告到软件设计再到最后撰写论文的整个流程中,我遇到的阻碍非常多,首先,由于是第一次接触delphi7软件,第一次用Pascal语言进行编程,一切都是从基础知识开始学起的,在软件初始开发过程中不知从何入手,但这并不阻碍我对学习的热情,我把遇到的困难作为鞭策自己不断前进的动力,经过自己看视频学习,到图书馆查阅资料,向老师寻求问题的解答,所遇到的问题都一一得到了解答。通过这段时间的学习我学会了许多软件设计方面相关的知识,学会使用Delphi编写程序,对各种数据库有了基本的了解,并学会熟练的使用Access数据库。最后终于如期完成了软件设计,并撰写好了毕业设计论文。基于Delphi的GSM报警模块后台系统通过不断的调试,应用程序性能稳定,可扩展性强,方便二次开发,界面简单友好,操作人员可以快速掌握并熟练使用本系统,实用性较强。基于Access数据库开发的应用程序具有安全性好、使用成本低等特点。就整个系统而言,由于开发周期较短,还有许多不足之处,将在以后的使用过程中不断进行完善。-38- 致谢首先衷心的感谢我的指导老师!本软件的开发和论文撰写工作是在张祖昶老师的悉心指导和严格要求下完成的。从选题到软件的开发以及论文的写作过程中,张老师给了我很多指导和启发。感谢张老师细心的辅导,使我的毕业设计得以顺利完成,虽然我不是您最好的学生,但是我一直在努力。这次毕业设计让我收获很大,再一次感谢我的老师和同学们。-38- 参考文献[]李俊.GSM系统中的移动定位技术研究[J].国防科技大学学报,2002.[2]黄文钰.Delphi程序设计经典.北京:科学出版社,2005.2.[3]王宇虹.Access数据库系统开发从基础到实践[M].电子工业出版社,2006.[4]黄军.Delphi串口通信编程.北京:人民邮电出版社,2001.[5]周学泳.短信息(SMS)与WAP开发和应用,电子工业出版社.2000.[6]刘建全.对计算机串口通讯测试系统的研究.科技资讯-2006(22)-91-91.[7]李建华.郭明.TS-232和调制解调器高级通信编程[M].北京:人民邮电出版社,2001.[8]王林玮.DELPHI7数据库工程实用编程技术.北京:电子工业出版社,2006.[9]求是科技,赵兰涛,苏彦华.DELPHI串口通信技术与工程实践.北京人民邮电出版社,2004年6月.[10]郑齐心等.DELPHI数据库开发实例解析.北京:机械工业出版社,2005年1月.[11]迟思先.DELPHI6.0开发实例.电子工业出版社,2002.[12]EricHarmon.Delphi/Klyix数据库开发,机械工业出版社,2000.[13]FORTE,HOWM,WALL.Access2002开发实用全书[M].张冕洲,卞昭华,吕建宁,译.北京:电子工业出版社,2002.[14]张威.GSM网络优化[J].M].北京:中国移动,2003.[15]杨长春等.Delphi程序设计教程(第二版)[M].北京:清华大学出版社,2008.1[16]黄军,熊勇,刘燕,等.Delphi串口通信编程[M].人民邮电出版社,2001.[17]李维.Delphi7高效数据库程序设计[M].DynoMediaInc.,2003.[18]肖庆航,陆定淑.Delphi7数据库开发教程[M].清华大学出版社,2004.[19]赵长奎,通信.GSM数字移动通信应用系统[M].国防工业出版社,2001.[20]宣彩平,王皓,邹国良.利用GSM无线模块发送短消息[J].计算机应用,2004,24(5):148-150.-38-'