基于单片机的短信收发系统设计.doc
《基于单片机的短信收发系统设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的短信收发系统设计.doc(18页珍藏版)》请在沃文网上搜索。
1、基于单片机的短信收发系统设计目录前言11 系统模型12 工作原理及其软件设计22.1 串口控制SMS的工作原理22.2 软件实现32.3 短信数据的处理63 系统硬件介绍63.1 系统核心部分63.2 GSM模块MZ2893.3 单片机MSC1210104 SMS的体系结构105 结束语11最后,谨借此机会向所有关心、支持和帮助过本人的同学。朋友致以最真挚的谢意!11附录:程序12参考文献:17前言SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务
2、中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短信息服务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用,如无线数据的双向传送、无线远程检测和控制等。典型的应用有:变电站、电表、水塔、水库或环保监测点等监测数据的无线传输和无线自动警报;远程无线控制高压线路断路器、加热系统、防洪拦阻系统或其它机电系统的启动和关闭;车队交通管理和控制指挥系统;控制和监测香烟、食品和饮料自动售货机的运行状态和存货水平;远程加点
3、控制等等。鉴于此,本文对基于单片机的短消息收发系统进行了设计研究。1 系统模型 中国联通数字移动电话(GSM)网是向社会公众提供通信服务的公用通信网,与中国电信网同为国家通信网的有机组成部分。两网互联互通,自动接续,共享国家通信资源。目前,中国联通数字移动电话业务由GSM网130、131业务和CDMA网133业务组成。基于GSM的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。本软件的设计基于GSM网络的温度数据采集与无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。系统模型图如图1-1所示。本系统由数据采集部分、数据接收和发
4、送部分、终端处理部分三个模块组成。数据采集模块将采集到的温度数据存入存储器中。数据收发模块采用双单片机共用EERPOM的方式,单片机2控制数据从存储器转存入EEPROM中;单片机1负责将数据从EEPROM中读出,并经GSM模块2借助GSM网络将数据发送出去。单片机1不仅控制数据的发送,也控制数据的接收。在这里,EEPROM是温度数据临时存储和上传的中转站。终端处理模块负责将接收到的数据交给计算机处理,并将处理后的结果存放到数据库中,以供查询。当终端处理模块需要向GSM模块2发送控制命令时,GSM模块2接收过程正好与上述过程相反,从而实现数据的自动双向传递。图1-1 系统模型2 工作原理及其软件
5、设计2.1 串口控制SMS的工作原理单片机与GSM模块一般采用串行异步通信接口,通信速度可设定,通常为19200bps。采用这种RSM232电缆方式进行连接时,数据传输的可靠性较好。RS232接口方式连接,通过串行接口集成电路和电平转换电路与GSM模块连接,电路比较简单,所涉及的芯片包括单片机89C51和电平转换芯片MAX232,是非常常见的接口电路。GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的数据发送到短信息服务中心,经短信服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短信的信息量限制为16
6、0字节。及以的AT指令如表2.1-1所列。表2.1-1 AT指令AT指令功 能 描 述AT+OFF关机并重新启动AT+CSDH=0在TEXT模式下在返回值中不显示详细的头信息ATE0关闭回显AT+CMGF=1选择短信格式为TEXT模式AT+CMGS发送短信息AT+CMGR读取短信息AT+CMGD=0删除全部短信息2.2 软件实现2.2.1 上位机模块、下位机模块2.2.1.1 应答和重发 上位机模块和下位模块的通信双方遵照半双工通信方式进行,即数据传送是双向的。但是,任何时刻只能由其中的一方发送数据,另一方接收数据,因为EEPROM的读出和写入不能同时进行。为了避免一方在发送信息帧时(这里的信
7、息帧指的是下位机模块发送的数据帧和上位机模块发送的命令帧,下同),另一方也会发送数据,必须把信道变成半双工方式。尽管这样效率可能不如全双工方式,但通过此举牺牲效率可以换取模块工作性能的稳定。双方采取的顺序是:发收到应答后再发。 按照整个系统的设计思路,上位机模块(即图1-1中的GSM模块1,下同)发送的帧包括命令帧、确认帧和非确认帧;下位机模块(即图1-1中的GSM模块2,下同)发送的帧包括数据帧、确认帧和非确认帧。其中确认帧和非确认帧是发送数据后等待对方发送的应答帧,以此作为继续发送下一帧和重新发送上一帧的依据。命令帧和数据帧是信息帧,当一方先发送完信息帧。2.2.1.2 延时重发 在双方通
8、信过程中,有两个时间t1和t2,分别表示重新发送信息帧的最大延时。t1表示一方发送完信息帧到收到对方应答帧的时间,如果等待应答帧的时间超过了t1,则发方会重新发送原来的信息帧;当收方接收到对方发送的信息帧,如果收方此时有需要发送的信息帧,则收方此时不发送应答帧,而是发送信息帧给对方。图2.1.1-1以下位机模块先发数据帧为例,阐述双方通信的具体实现过程。图2.2.1-1 下位机模块2.2.2 帧格式GSM模块通过异步通信接口实现对SMS的控制共有三种接入协议:Block Mode;基于AT指令的Text Mode;基于AT指令PDU Mode。本系统发送和接收的数据都是基于数字的温度数据和命令
9、字,为了保证系统的适用性,SMS的收发采用TEXT模式。TEXT模式是基于字符的,更具体地说是基于ASCII码的一种结构模式。在该模式下,模块发送和接收的信息帧格式如下:表2.2.2-1 发送接收帧头帧序号数据校验子 信息帧包括数据帧和命令帧。帧头表示数据帧的标记,是由固定的字符“WQ”构成。 帧序号表示数据帧的序号,由两个字节组成。帧序号表示下位机模块发送的递增数据帧序号和上位机模块发送的命令帧序号。为了简化帧结构,命令帧的序号统一为00H。除了信息帧外,双向传递的还有应答帧,它包括确认帧和非确认帧。确认帧是双方反馈给发方的应答帧,表示收方已经正确接收到了发方发送的信息帧。确认帧格式仅包括两
10、个字段,且两个字段的内容都是固定的,即帧头“WQ”和数据字段“ACK”,确认帧格式如下。表2.2.2-2 帧格式WQACK 非确认帧是收方给发方的应答帧,表示收方收到的是无效的信息帧,其格式与确认帧格式类似,帧格式如下。表2.2.2-3 信息帧WQNACK2.2.3 EEPROM空间的分配采用8KB的EEPROM,按照每77个字节为一个块进行划分,共106块,如图2.2.3-1所示。第00、01块留作系统使用,第02块第105块是数据块,用作存放数据。图2.2.3-1 EEPROM空间的分配2.2.4 收发端与采集端的握手协议 收发端与采集端共用一个存储器,即双CPU对同一个EEPROM进行操
11、作。实现方案是分别使两个微处理器的一个I/O脚相连,两个CPU采用查询方式对此I/O端进行查询。如果某时候收发端查询到本地I/O端为高电平,则单片机1拥有此存储器的操作权,可以对EEPROM进行读写操作。2.2.5 程序的设计2.2.5.1 主函数的设计思路 开机上电后,程序在主函数中运行,单片机和GSM模块分别进行初始化。单片机的初始化包括设置串口工作方式、波特率,并初始化变量参数和标志位。GSM模块初始化包括重新启动、关闭回显、设置在TEXT模式下的返回值中不显示详细的头信息、选择短信格式为TEXT模式、开发串口中断准备接收数据。2.3 短信数据的处理 进入时钟中断调用SHELL函数时,如
12、果接收到了返回的参数+CMTI,表明上位机模块向下位机模块发送了短信数据,可能是命令帧,也可能是确认帧或者非确认帧。在这种情况下,SHELL函数需要对短信内容进行分析,并根据短信的内容进行不同的处理,负责完成以上功能的就是ExecData函数,它是被SHELL函数调用的,用来分析并处理短信数据。3 系统硬件介绍3.1 系统核心部分 单片机AT89C51有内部RAM,可以作为各种数据区使用,内部闪电存储器存放数字时钟的控制程序。它的主要功能是控制74LS138和74LS47,实现对LED显示器的位控和段控,完成时间的转换计算,并把计算的时间转换到相应的显示段码,控制LED显示器以动态扫描方式进行
13、时、分、秒的显示。AT89系列单片机是ATMEL公司生产的。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52和8751/52。3.1.1 89C51具有下列主要性能4KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)全静态工作:0Hz24MHz三级程序存储器保密 128 X 8字节内部RAM 32条可编程I/O线3.1.2 89C51的引脚及功能3.1.2.1 主要电源引脚 Vcc 电源端 GND 接地端3.1.2.2 外接晶体引脚 XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端
14、。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。3.1.2.3电源复用引脚 RES 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。3.1.2.4 输入/输出引脚 P0.0 P0.7、P10.P1.7、P2.0
15、P2.7 和P3.0P3.7 P0端口(P0.0 P0.7) P0是一个8位漏极开路型双向I/O端口。P1端口(P1.0 P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入在对Flash编程和程序验证时,P1接收低8位地址。P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。P3端口(P3.0P3.7) P3 是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。在89C51中,P3端口还用
16、于一些专门功能,这些兼用功能见表3.1.2-1表3.1.2-1 P3端口兼用功能表 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中断1) P3.4T0 ( 定时器/计数器0的外部输入) P3.5T1 (定时器/计数器1的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通)3.1.3 Flash存储器的编程 AT89C51单片机内部有一个4K字节的Flash PEROM。这个Flash存储阵列通常是处于已擦除状态(既存储单元的内容为FFH),随时可
17、对它进行编程。编程接口可接收高电压(12V)或低电压(Vcc)的允许编程信号。低电压编程方式可很方便地对AT89C51内的用户系统进行编程;而高电压编程方式则可与通用的EPROM编程器兼容。AT89C51的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的PEROM程序存储器写入任何一个非空字节,都必须用片擦除方式将整个存储器的内容清除。3.1.3.1 对Flash存储器编程编程前,必须建立好地址、数据和相应的控制信号。编程单元的地址加在P1端口和P2端口的P2.0P2.3(11位地址为0000H0FFFH),数据从P0端口输入。引脚P2.6、P2.7和P3.6、P3.7的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 短信 收发 系统 设计
