好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

GSM管理系统.pdf

12页
  • 卖家[上传人]:飞***
  • 文档编号:47415845
  • 上传时间:2018-07-02
  • 文档格式:PDF
  • 文档大小:1.24MB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 摘要:伴随着无线通信技术、计算机技术的发展以及中国用户数量的快速增加,短信息正以无线化、无时空限制、 低成本的优势成为一种主流的通信方式之一本设计主要对短信(GSM )模块通过 RS232串行通信接口与PC(计算机 ) 的连接做详细介绍借助系统模型,阐明 G S M 模块收发短信的基本概念以及串口控 制S M S 的 基 本 原 理 GSM(Global System for Mobile communication) 系统是目前基于时分多址技术的移动通信体制中, 比较成熟完善,且应用最广泛的一种系统目前已建成的覆盖全国的 G S M 数字蜂窝移动通信网,是我国公众移动通信网的主要方式基于G S M 的短信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上储存和转寄的过程短信模块正是基于无线方式进行短信收发的通信网关设备一、 无线通讯技术系统的发展1. 通信发展概括通信( Communication) 作为电信( Telecommunication) 是从19 世纪 30 年度开始的物理发现通信技术发展1831 年法拉第电磁感应1837 年莫尔斯发明电报1873 年马克斯韦尔的电1876 年贝尔发明磁场理论1895年马可尼发明无线电无线电的发明开辟了电信(Telecommunication) 的新纪元1906 年发明电子管模拟通信得到发展20 世纪 50 年代发明半导体数字通信得到发展20 世纪 60 年代发明集成电路2. 第一代移动通信人们所称的第一代移动通信系统(1G) ,则是诞生于 20 世纪 70 年代至 80 年代,当时集成电路技术、 微型计算机和微处理器技术快速发展,美国贝尔实验室推出了蜂窝式模拟移动通信系统,使得移动通信真正进入了个人领域。

      第一代移动通信主要采用模拟语音调制技术和频分多址(FDMA)技术, 传输速率约 2.4kb/s, 由于受到传输带宽的限制,不能进行移动通信的长途漫游, 只能是一种区域性的移动通信系统 第一代移动通信的缺点容量有限制式太多互不兼容保密性差通话质量不高不能提供数据业务不能提供自动漫游等3. 第二代移动通信2G(second generation )表示第二代移动通讯技术代表为 GSM以数字语音传输技术为核心2G 技术基本可被切为两种,一种是基于TDMA 所发展出来的以GSM 为代表,另一种则是 CDMA规格,复用﹙ Multiplexing ﹚形式的一种GSM 全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称“全球通”CDMA (Code Division Multiple Access) 又称码分多址,是在无线通讯上使用的技术,CDMA 允许所有的使用者同时使用全部频带 (1.2288Mhz),并且把其他使用者发出的讯号视为杂讯,完全不必考虑到讯号碰撞(collision) 的问题 CDMA的优点包括:CDMA 中所提供的语音编码技术,其通话品质比目前的 GSM好,而且可以把用户对话时周围环境的噪音降低,使通话更为清晰。

      GPRS: General Package Radio Service (通用分组无线业务)为中国移动GSM网络 2.5G技术, GPRS数据传输理论最高速率可达 115kbps ,实际平均速率只有20 ?CDMA和 GSM是 2G通信的主流制式,从技术上来说,它们之间的区别就在于无线发送接收的制式不同,调制解调的方法不同对于用户来说,它们的不同在于:一、CDMA 可以说是名副其实的绿色,它发射功率极小 (2mw),只是我们现在使用的GSM(功率为 125mw)的 1/60,甚至低于电视屏幕产生的辐射功率;二、CDMA采用了先进的切换技术——软切换技术(即切换是先接续好后再中断), 使得 CDMA的通话可以与固定媲美,而且没有GSM的掉线现象;三、 使用 CDMA网络, 运营商的投资相对减少, 这就为 CDMA资费的下调预留了空间;四、 因采用以拓频通信为基础的一种调制和多址通信方式,其容量比模拟技术高10 倍,超过 GSM网络约 4 倍;五、更为重要的是, 基于宽带技术的CDMA使得移动通信中视频应用成为可能,从而使从只能打和发送短信息等狭窄的服务中走向宽带多媒体应用4. 什么以太网它不是一种具体的网络, 是一种技术规范。

      以太网是当今现有局域网采用的最通用的通信协议标准该标准定义了在局域网(LAN )中采用的电缆类型和信号处理方法以太网在互联设备之间以10Mbps~10Gbps的速率传送信息包,双绞线电缆 10 Base T以太网由于其低成本、高可靠性以及10Mbps的速率而成为应用最为广泛的以太网技术直扩的无线以太网可达 11Mbps,许多制造供应商提供的产品都能采用通用的软件协议进行通信,开放性最好5. GPRS 简介GPRS是通用分组无线业务 (GeneralPacketRadioService)的英文简称,一种新的承载业务, 目的是为 GSM用户提供分组形式的无线数据传输业务GPRS 的特点是提供了一种高效、 低成本的无线分组数据业务特别适用于间断的、 突发性的和频繁的、 少量的数据传输, 也适用于偶尔的大数据量传输例如 GPRS可实现以无线方式拨打、接听、发短信、接收短信二、 串口通信串口的本质功能是作为 CPU 和串口通信设备间的编码转换器当数据从 CPU 经过串口发送出去时,字节数据转换为串口的位在接收数据时,串口的位被转换为字节数据在Windows 环境下,串口是系统资源的一部分应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源,即关闭串口。

      此设计需三部分组成: GSM 模块、 PC 机、和数据库部分GSM 模块,是将 GSM 射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上, 具有独立的操作系统、 GSM 射频处理、基带处理并提供标准接口的功能模块 因此, GSM 模块具有发送 SMS短信,语音通话, GPRS 数据传输等基于 GSM网络进行通信的所有基本功能我们这里使用PC机通过RS232 串口与 GSM模块通信,使用标准的AT指令来控制GSM模块实现各种无线通信功能,例如:发送短信,拨打,GPRS 拨号上网等?本设计的串口通信技术是在Visual C++ 中实现的,简要内容如下:?使用MSComm控件实现 32位串口通信程序VC ++6.0提供的 MSComm控件通过串口端口发送和接收数据, 为应用程序提供串口通信功能,使用非常方便在当前的对话框中插入一个 M S C o m m 控件,然后在C l a s s W i z a r d 中为新创建的通信控件定义一个成员对象(CMSComm m_Com),接下来只需要通过该成员对象即可设置MSComm控件的相关属性 MSComm控件提供了很多属性,通常我们只需要设置几个常用的属性,即初始化串口,然后需要打开串口。

      1) 初始化串口串口的初始化主要是通过串口的属性设置相应的参数利用成员对象 m_Com 初始化串口参数的主要流程如图1所示2) 捕捉串口事件MSComm控件可以采用查询或事件驱动的方式从端口获取数据事件驱动方式是处理串口端口交互作用的一种非常有效的方法在许多情况下,在事件发生时需要得到通知,例如:在串口接收缓冲区中有字符, 或者CD 线上或RTS 线上一个字符到达或一事件发生时,可以利用 MSComm控件的 OnComm事件捕获并处理这些通信事件, OnComm事件还可以检查和处理通信错误查询方式实质上属于事件驱动,但在某些情况下,这种方式更为便捷在程序的每个关键功能之后, 可以通过检查 CommEvent 属性值来查询霎时间和错误,只要CommEvent 属性的值有了变化, 就表明有一个事件或一个错误发生如果应用程序较小,且自成一体,则该方法更为可取3)串口读写完成读写的函数很简单, 只需调用 GetInput()和SetOutput()两个函数即可 两个函数的原型是: VARIANT GetInput()及void SetOutput(constVARIANT& NEWvALUE) ,两者都要使用 VARIANT类型(所有 Idispatch::Invoke的参数和返回值在内部都是作为VARIANT 对象处理的)。

      无论是在 PC 机读取上传数据时还是在PC 机发送下行命令时,我们都习惯于使用字符串的形式字符串可以用BSTR 表示,但是所有的 BSTR 都是包含宽字符, WinNT 支持宽字符,而 Win95并不支持为解决上述问题, 我们在实际应用中使用 CbyteArray 串口接收数据的处理流程如图2所示OnComm事件的程序结构如下:void CMainFrame::OnCommMscomm() { ??switch( m_Com.GetCommEvent( ) ) { ??case 2: //串口数据接收和处理??} } ?使用32位的API通信函数在VC ++6.0 下,MFC 应用程序的线程由 CWinThread对象表示VC ++把线程分为两种: 用户界面线程和工作者线程 用户界面线程能够提供界面和用户交互, 通常用于处理用户输入及其相应的各种事件和消息;而工作都线程主要用来处理程序的后台任务程序一般不需要直接创建 CWinThread 对象,通过调用 AfxBeginThread() 函数就会自动创建一个 CWinThread对象,从而开始一个线程创建上述的两种线程都利用这个函数首先在在MainFrm.cpp中定义全局变量 (串口句柄 hCom 和hCommWatchThread),然后在程序中创建一个串口, 并进行相应的串口参数设置, 然后启动一个工作者线程,主要用它来监视串口状态,看有无数据到达、通信有无错误;而用户界面线程则可专心进行数据处理、提供友好的用户界面等重要的工作, 最后为工作者线程写一个全局函数, 主要完成数据接收的工作。

      程序处理的流程如图 3所示数据接收函数的编写相对较简单,首先调用 S e t C o m m M a s k 设置只接收字符,然后调用 WAITcOMMeVENT等待串口事件的发生 当串口有数据到来时,判断其是否为字符,若是, 则调用 ClearCommError获取串口的状态并清除串口的错误,再调用 ReadFile 读取数据,并通过串口状态的 cbInQue属性获取数据的大小, 最后再将数据显示出来值得注意的是,如果在 CreateFile()时使用了 FILE_FLAG_ OVERLAPPED, 则在ReadFile() 中必须采用 LPOVERLAPPED结构否则,函数会错误地报告该操作已完成了在此,我们使用了多线程技术,在工作者线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线程报告并且,WaitCommEvent()、ReadFile() 、WriteFile()都使用了非阻塞通信技术,依靠重叠( overlapped )读写操作,让串口读写操作在后台运行使用简单而强大的多线程串口编程工具CSerialPort类使用MSComm控件编程简单, 对付简单的任务完全可以胜任,但当我们需要在程序中用多个串口, 而且还要做很多复杂的处理, 那么最好不用MSComm通信控件。

      如果这时你不想自己编写底层的东西或者对API函数不是很了解,你可以使用 CSerialPort 类来完成比较复杂的任务这是Remon Spekreijse 写的一个串口类, 类作者已作了一个基于对话框,且同时能检测 4个串口的示例程序有了这个类,我们编程就容易多了,只要在程序中加入这个类文件,然后就可以按照通常的方法使用该类中的一些函数该类可在相关网站上下载三、 AT指令AT 即 Attent。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.