基于ARM的GPRS数据终端短信收发系统设计_第1页
基于ARM的GPRS数据终端短信收发系统设计_第2页
基于ARM的GPRS数据终端短信收发系统设计_第3页
基于ARM的GPRS数据终端短信收发系统设计_第4页
基于ARM的GPRS数据终端短信收发系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳建筑大学毕业设计(论文)PAGE1目录1350第一章绪论 121121.1前言 11421.2ARM简介 2297341.2.1ARM微处理器的特点 290341.2.2ARM微处理器的结构 3229851.3GPRS技术简介 61405第二章短信息介绍 910182.1短消息的体系结构 10302472.2短消息业务的局限性 1116231第三章系统硬件设计 1226203.1硬件设计要点 12256433.2AT89C系列单片机介绍 13236833.2.1AT89C52介绍 131933.3AT命令 19197563.4单片机与手机的硬件接口 20229533.4.1串口控制SMS的工作原理 21182753.4.29针串口 2319280第四章系统软件的实现 2510664.1软件接口及控制原理 25184094.2PDU格式下短信息的接收 26156714.3短信息的发送 2814684第五章技术经济分析NO 316069第六章结论 323965参考文献 333607致谢 34基于ARM的GPRS数据终端短信收发系统设计第一章绪论1.1前言ARM技术具有很高的功效和性能,得到众多芯片厂家的好评。现在ARM的合作伙伴包括许多世界顶级的半导体公司,前10大半导体公司都使用了ARM的技术授权,全世界有近百家大公司生产ARM芯片。目前,采用ARM技术知识产权核的微处理器,已遍及消费类电子产品、网络系统、无线系统、通信系统等各类产品市场,基于ARM技术的微处理器应用已经占据了32位RISC微处理器75%以上的市场份额。ARM技术正在逐步渗入到人们生活的各个方面。由于全世界有几十家大的半导体公司都使用ARM公司的授权,因此使得ARM处理器技术获得更多的第三方面工具、软件的支持、制造、使基于ARM微处理器的整个系统成本降低,开发时间周期明显缩短,是产品更容易、更快速地进入市场被消费者所接受,更具有竞争力。GPRS(GeneralPacketRadioService)是通用分组无线业务的简称。它是第二代移动通信技术GSM向第三代移动通信技术3G的过度技术,经常被描述成2.5G,GPRS是GSMPhase2.1规范实现的内容之一,是在现有的GSM移动通信系统基础之上发展起来的一种移动分组数据业务。GPRS通过在GSM数字移动通信网络中引入分组交换功能实体,以支持采用分组方式进行的数据传输。GPRS能提供比现有GSM网9.6kb/s更高的数据传输速率。同时,GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、跳频规则以及相同的TDMA贞结构。因此,在GSM系统的基础上构建GPRS系统时,GSM系统中的绝大部分部件都不需要做硬件改动,只需做软件升级。这样的GPRS系统可以看做是对原有的GSM电路交换系统进行的扩充,以满足用户利用移动终端接入Internet或其他分组数据网络的要求。本论文正是利用ARM微处理器和GPRS控制无线数据传输应用系统。1.2ARM简介 1990年,ARM公司成立于英国剑桥,ARM公司自己并不生产芯片,而是出售芯片设计技术的授权。ARM公司作为知识产权供应商,靠转让设计许可由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买的ARM微处理器内核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。到目前为止,ARM处理器及技术的应用几乎已经深入到各个领域。·工业控制领域。作为32位的RISC架构,基于ARM核的微处理器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展。ARM微控制器的底功耗、高性价比,向传统的8位/16位微控制器提出了挑战。·无线通信领域。目前已有超过85%的无线通信设备采用了ARM技术,ARM以其高性能和低成本等特性,在该领域的地位日益巩固。·网络应用。随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。·消费类电子产品。ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛应用。此外,ARM在语音及视频处理上得到优化,并获得了广泛的支持,同时也对DSP的应用领域提出了挑战。手机中的32位SIM智能卡甚至处理芯片也采用了ARM技术·成像和安全产品。现在流行的数码相机和摄像头中绝大部分采用ARM技术。·海量存储设备。如硬盘、微型闪存卡和可读/写优盘等都大量使用ARM技术的芯片来构成核心系统。·汽车上使用的ARM技术的芯片也无处不在,包括驾驶、娱乐、安全等方面的电子应用都使用ARM系列芯片。除此以外,ARM微处理器及技术还应用到其他不同领域,并会在将来取得更加广泛的应用。1.2.1ARM微处理器的特点采用RISC架构的ARM微处理器一般具有如下特点:·体积小、低功耗、低成本、高性能。·支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。·大量使用寄存器,指令执行速度更快。·大多数数据操作都在寄存器中完成。·寻址方式灵活简单,执行效率高。·指令长度固定。除了上述基本的特点外,为了使ARM更具高效的性能,ARM还采用了一些具有自己特色的使用技术,是基于ARM技术的系统能在保证高性能的同时使授权的半导体厂家设计具有自己特色的芯片。这些技术主要包括:·使用程序地址自动加减功能来优化用户程序的循环处理应用。·体系结构设计了LOAD/STORE指令可以批量地传输数据流,达到高效的数据传输能力。·可以在同一条数据处理指令中进行算术逻辑运算功能和移位处理,达到精简指令提高执行效率的目的。·所有指令都可以判断前一条指令的输出结果,决定执行哪条指令,以提高前瞻的成功率。1.2.2ARM微处理器的结构传统的CISC(ComplexInstructionSetComputer,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂。但是,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令回被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%,显然这种结构是不太合理的。基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(ReducedInstructionSetComputer,精简指令集计算机)的概念。RISC并非只是简单地去减少指令,而是把重点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长度固定、指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。到目前为止,RISC体系结构还没有严格定义。一般认为,RISC体系结构应具有如下特点:·采用固定长度的指令格式,指令归整、简单,基本寻址方式有2~3种。·使用单周期指令,便于流水线操作执行。·大量使用存储器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令执行的效率。除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低消耗:·所有的指令都可以根据前面的执行结果决定是否被执行,从而提高指令的执行效率。·可用加载/存储指令批量传输数据,以提高数据的传输效率。·可在一条数据处理指令中同时完成逻辑处理和移位处理。·在循环处理中使用地址的自动增减来提高运行效率。当然,与CISC架构相比较,尽管RISC结构上有上述优点,但决不能认为RISC结构就可以取代CISC结构。事实上,RISC和CISC各有优势,而且界限不是很明显。现代的CPU往往采用CISC的外围,内部加入RISC的特性,例如超长指令集CPU就是融合了RISC和CISC的优势,成为未来的CPU发展方向之一。ARM微处理器的寄存器结构ARM状态下的通用寄存器包括R0~R15,可以分为三类:未分组(Unbanked)寄存器R0~R7;分组(Banked)寄存器R8~R14;程序计数器PC(R15)CPSR(CurrentProgramStatusRegister,当前程序状态寄存器)。ARM处理器共有37各寄存器,被分为若干个组(BANK)。这些寄存器包括:31个通用寄存器,包括程序计数器(PC指针),均为32位寄存器。寄存器包括R0~R15可以分为三类:未分组(Unbanked)寄存器R0~R7。对于每一个未分组的寄存器来说,在所有的处理器模式下指的都是同一个物理寄存器。在异常中断造成处理模式的切换时,由于不同的处理器模式使用相同的物理寄存器,可能会造成寄存器中的数据被破坏。未分组寄存器没有被破坏。未分组寄存器没有被系统用于别的用途,任何可采用通用寄存器的应用场合都可以使用未分组寄存器。(2)分组(Banked)寄存器R8~R14。对于分组寄存器R8~R12每个寄存器都对应两个不同的物理寄存器。对于分组寄存器R13和R14,每个寄存器都对应6个不同的物理寄存器,其中一个是用户模式和系统模式共用的,另外的5个对应于其他5种处理器模式。(3)程序计数器PC(R15)。程序计数器虽然可以作为一般的通用寄存器使用,但是有一些指令在使用R15时有一些特殊限制。由于ARM采用了流水线技术,当正确读取了PC的值时,该值为当前指令地址值加8个字节。6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。CPSR可在任何运行模式下被访问,每一种运算模式下都有一个专用的物理状态寄存器,称为SPSR(SavedProgramStatusRegister,备份的程序状态寄存器)。同时,ARM微处理器还支持7种运算模式。·用户模式(usr):ARM处理器正常的程序执行状态。·快速中断模式(fiq):用于高速数据传输或通道处理。·外部中断模式(irq):用于通用的中断处理。·管理模式(svc):操作系统使用的保护模式。·指令终止模式(abt):当指令欲取终止时进入该模式。·数据访问终止模式(abt):当数据访问终止时进入该模式,可用于虚拟存储及存储保护。·系统模式(sys):运行具有特权的操作系统任务。ARM中断的种类如下:·复位中断:当处理器的复位信号有效时,系统产生复位中断,程序强制跳转到复位中断处理程序中。·未定义中断:当ARM处理器认为当前需要执行的指令没有定义时,就会产生未定义中断。·软件中断:这是一个用户定义的中断指令,可以在用户模式下调用特殊系统操作指令。在操作系统中就可以通过调用该软件中断来实现任务切换。·指令欲取中止中断:如果数据访问指令的目标地址不存在或者地址不允许访问,就会产生指令欲取中止中断。·数据访问中止中断:如果数据访问指令的目标地址不存在或地址不允许访问,就会产生数据访问中止中断。·外部中断:通过外围器件使相应外部中断管脚有效,处理器进入外部中断程序开始响应外设的请求。·快速中断:当该信号有效时处理器产生外部中断FIQ。在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、1~2个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理存储器。ARM微处理器的指令结构ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thunb指令集。从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种之间进行切换。第一种为ARM指令状态,此时处理器执行32位的字对齐的ARM指令,该指令具有字节、半字、字带符号或不带符号的数据传输能力。第二种为Thunb指令状态,此时处理器执行16位的、半字对齐的Thunb指令。Thunb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。1.3GPRS技术简介GPRS(GeneralPacketRadioService)是在现有的GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用,如无线数据的双向传送、无线远程检测和控制等。典型的应用有:工业控制、环境保护、道路交通、商务金融、移动办公、零售服务等等。GPRS客户端软件运行于控制机上的客户端软件具有以下功能:(1)串口通信,包括AT指令通信和数据文件通信。(2)显示传输过程计时,用于测试系统的传输速率。(3)中止GPRS模块TCP协议栈通信。系统传输出错时中止协议栈工作。Q2406B内嵌TCP协议栈的缓存区有限,若串口写入速率远高于GPRS传输速率,协议栈将会丢失数据。为保证数据传输的可靠性,必须进行流控制。设计中采用了两种流控制方法:数据分包法和硬件握手法。采用数据分包法的GPRS客户端传输图像文件流程图如图4所示。该方法将图像文件先打成若干个小数据包,逐个写入串口,由GPRS模块发送。监控中心的服务器端接收完一个数据包后返回应答帧,GPRS模块再发下一个数据包。若超时还未返回应答帧,则重发上一个数据包。此法牺牲了一定时间,但很好地保证了图像传输的可靠性。硬件握手法采用9线串口中的硬件握手信号:RTS/CTS做流控制。系统工作时。控制机使用RTS启动GPRS模块的数据流,GPRS模块用CTS启动和暂停来自控制机的数据流。当缓存区内数据量达到高位时,模块将CTS线置低电平,控制机程序检测到CTS为低后,就停止发送数据,直到协议栈缓存区的数据量低于低位而将CTS置高电平。此法也可保证写入数据不丢失,而且传输图像文件的耗时低于前种方法。但它不能用于简化的三线串口协议,也不能如前种方法那样检测到GPRS数据传输过程中的丢包现象,通过重发来保证传输过程的可靠性。GPRS服务器端软件GPRS图像传输系统采用多个移动终端都与监控中心服务器连接的方法。服务器采用普通Internet上的主机方式,作为TCP服务器端,具有静态公网IP,开放了侦听端口,可从外部访问,其上运行TCP端口监听程序,接收来自移动台的TCP数据包,并向移动台发送回应数据。采用数据分包法的GPRS服务器端接收图像文件流程如图5所示。该服务器端软件具有以下功能:(1)监听TCP端口;(2)接收数据包,发送接收应答帧;(3)显示接收数据和大小,保存图像文件。本系统的发送端设计了两种流控制方法,一种从硬件上实现,另一种从软件上实现。前者在网络状况稳定的情况下,传输速度较快。后者可有效保证整个GPRS传输过程的稳定可靠,并能直接用于简化的三线串口协议,当控制机采用嵌入式微处理器时,能方便地与微处理器串口相连,无需串口转换芯片。使用中国移动提供的普通GPRS业务进行测试,本系统的传输速率可达10kbps,大量测试中未出现丢失数据的情况,整套系统工作稳定可靠。同时也可胜任传输任何形式的文件数据,应用于需要远程传送数据的系统中。第二章短信息介绍短消息业务又可分为包括移动台起始和移动台终止的点对点的短消息业务和点对多点的小区广播短消息业务。移动台起始的短消息业务能使GSM客户发送短消息给其它GSM点对点客户;点对点移动台终止的短消息业务,则可使GSM客户接收由其它GSM客户发送的短消息。点对点的短消息业务是由短消息业务中心完成存储和前转功能的。短消息业务中心是在功能上与GSM网完全分离的实体,不仅可服务于GSM客户,亦可服务于具备接收短消息业务功能的固定网客户,尤其是把短消息业务与话音信箱业务相结合,更能经济地综合地发挥短消息业务的优势。点对点的信息发送或接收即可在MS处于呼叫状态(话音或数据)时进行,也可在空闲状态下进行。当其在控制信道内传送时,信息量限制为140个八位组(7比特编码,160个字符)。点对多点的小区广播短消息业务是指在GSM移动通信网某一特定区域内以有规则的间隔向移动台MS重复广播具有通用意义的短消息,如道路交通信息、天气预报等。移动台连续不断地监视广播消息,并在移动台上向客户显示广播短消息。此种短消息也是在控制信道上发送,移动台只有在空闲状态时才可接收,其最大长度为82个八位组(7比特编码,92个字符)。短消息通信仅限于一个消息,换言之,一个消息的传输就构成了一次通信。因此,业务是非对称的,一般认为移动起始短消息传输与移动终接短报文传输是两回事。这并不阻碍实时对话,但系统认为不同的消息彼此独立,消息的传输总是由处于GSM外部的短消息服务中心(SMSC)进行中继,消息有目的地或起源地,但只与用户和SMSC有关,而与其他GSM基础设施无关。2.1短消息的体系结构GSM[2]标准中定义的点-点短消息服务使得短消息能在移动台和短消息服务中心之间传递。这些服务中心是通过称为SMS-GMSC的特定MSC同GSM网络联系的。涉及SMS管理的协议如图2一1所示。图2-1SMS系统结构框图SME:ShortMessagingEntity,短消息实体。它可以接收或改善短消息,位于固话系统、移动基站或其他服务中心内;SMSC:ShortMessageServiceCenter,短消息服务中心,负责在基站和SME间中继、储存或转发短消息;移动台(ME)到SMSC的协议能传输来自移动台或朝向移动台的短消息,协议名为SMTP(ShortMessageTransmissionProtocol);SMCGWMS或SMCGMSC:SMS-GatewayMSC,SMS网关。接收由SMSC发送的短消息,向HLR查询路由信息,并将短消息传送给接收者所在基站的交换中心;HLR:HomeLocationRegister,归属位置寄存器。用于永久储存管理用户和服务记录的数据库,由SMSC产生。SMS网关与HLR之间的协议使前者可以要求HLR搜索可找到的用户地址。它与MSC与HLR之间的协议一起,能在移动台因超出覆盖区而丢失报文、随后又可找到时加以提示。MSC:MobileSwitchingCenter,移动交换中心。负责系统切换管理并控制来自或发向其他电话或数据系统的拔叫。VLR:VisitorLocationRegister:,访问位置寄存器。含有用户临时信息的数据库。交换中心服务访问用户时需要这些信息。目前,人们设计的各类DTE设备基础上以微处理器为核心,带有RS232/RS485等通信接口,在物理层上很容易实现与GSM设置(如手机等)的连接。但对SMS协议的研究文献却较少,特别是用单片机控制手机的SMS(ShortMessageService)收发的研究更少。在用单片机设计基于GSM的SMS数据采集器时,对怎样用单片机控制手机收发短信息进行了探讨。2.2短消息业务的局限性毫无疑问,短消息现在炙手可热,上面所列的数字即是明证。但热炒的喧闹却仍无法掩饰其内在的缺点和局限性。消息格式简单,只支持简单文本,无法传输图象或音频信息。SMS的下一代版本EMS(增强消息业务)将有望改进SMS的这一缺陷。消息长度受限。SMS消息长度不得超过160个字符(这是GSM中的MAP协议规范所导致的),如果发送的电子邮件或新闻等服务信息太长,则需要拆分成多个消息分段,分段的结果就会使得SMS较其他同类服务的成本要高;此外,在手机上查看分段消息的感觉总不太舒服。我们后面要谈的MMS(多媒体消息业务)将去除简短消息长度的限制。用手机发送短消息的输入过程太麻烦,尤其是当字数超过10个时感觉更明显。有些厂商在手机上实现了预测文本输入算法,还有些公司正在开发手机语音识别系统以及其他键盘,这些工作将大大减少用户的击键次数,改善短信息输入难的问题。很多SMS运营商和应用开发商采用的都是专有协议,为了实现不同的SMS中心之间的互操作,就需要实现许多不同的接口,这种混乱的局面显然不利于短消息市场的规范发展。现在,X.25已被确定为连接不同SMS中心的公共协议。GSM03.40中定义的SMS协议数据单元(PDU)固定了各种首部域,效率不高,使得SMS的适应能力大打折扣。人们正在从3G规范入手,寻求解决此问题的办法。数据传输速率低,等待时间长。与GPRS和USSD相比,SMS提供数据传输速率低,且等待时间长,主要是因为SMS使用的是速度很慢的信令信道,在GSM网络中,信令信道还要干很多其他事情。SMS后面的版本MMS将使用专有的数据信道,从而提高码率,降低等待时间。尽管SMS采取的存储转发机制获得了广泛的应用,但它并不适用于WAP[3]。第三章系统硬件设计3.1硬件设计要点一个项目定下来后,经过详细调研,方案论证后,就进入正式研制阶段。从总体上来看,设计任务可以分为硬件设计和软件设计,这两者相互结合,不可分离。从时间上来看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要作一些修改。软件设计任务贯彻始终,到中后期基本上都是软件设计任务。为使硬件设计尽可能合理,应重点考虑以下几点:(1)尽可能采用功能强的芯片,以简化电路。(2)留有余地。在设计硬件电路时,要考虑到将来修改,扩展的方便。RAM空间。AT89C内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。这就要求系统配置外部RAM,如6264,62256等。I/O端口。在样机研制出来后进行现场试用时,往往会发现一些被忽略的问题,而这些问题是不能单靠软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端,有些物理量需要控制,就必须增加输出端。如果在硬件设计之处就多设计出一些I/O端口,这些问题就会迎刃而解。A/D通道。和I/O端口同样的原因,留出一些A/D通道将来可能会解决大问题。(3)以软代硬。单片机和数字电路本质的区别,就是它具有软件系统。很多硬件电路能做到的,软件也能做到。原则上,只要软件能做到的,就不用硬件。硬件多了不但增加成本,而且系统故障率也提高了。以软代硬的实质是以时间代空间,软件执行过程需要消耗时间,因此,这种代替带来的不足就是实时性下降。在实时性要求不高的场合,以软代硬是很合算的。(4)工艺设计。包括机箱、面板、配线、接插件等。必须考虑到安装,调试,维修的方便。另外,硬件抗干扰措施也必须在硬件设计时一并考虑进去。3.2AT89C系列单片机介绍AT89C[3]系列单片机是Atmel公司1993年开始研制生产的,优越的性能价格比使其成为颇受欢迎的8位单片机。AT89C系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整个硬件电路的体积更小。AT89C系列单片机有4种型号:AT89C51、AT89C52、AT89C1051、AT90C2051,其中AT89C2051/1051以较小的体积、良好的性能价格比倍受青睐,在家电产品、工业控制、计算机产品、医疗器械、汽车工业、智能仪器等应用方面成为用户降低成本的首选器件。本文选用的单片机是AT89C52,下面以AT89C52为代表对AT89C系列单片机作一简要阐述。3.2.1AT89C52介绍AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。制造工艺为CMOS的AT89C52单片机采用的是40只引脚的双列直插封装(DIP)方式。其片内的结构如图(3-2)所示,如果按功能划分,它由8个部件组成,即微处理数据(CPU),存储器(RAM),程序存储器(E2PROM),I/O口(P0口、P1口、P2口、P3口),串行口,定时器/计数器,中断系统及特殊功能寄存器(SFR)。图3-189C52单片机内结构图(一)对各功能部件作进一步的说明:1.数据存储器(RAM):片内为256个字节(单元),片外最多扩至64K字节。2.程序存储器(E2PROM):AT89C52单片机含有8K字节的快擦写可编程/擦除只读存储器(E2PROM)。片内最多可扩至64K字节。3.中断系统:具有6个中断源,2级中断优先权。4.定时器/计数器:3个16位的定时器/计时器,具有四种工作方式。5.串行口:1个全双工的串行口,具有四种工作方式。6.P0口、P1口、P2口、P3口:为4个并行8位I/O口/。7.特殊功能寄存器(SFR):共有21个,用于对于片内各功能模块进行管理,控制监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM区。8.微处理器(CPU):为8位的CPU,且内含一个1位CPU(微处理器),不仅可处理字节数据,还可进行位变量的处理。主要性能参数•与MCS-51产品指令和引脚完全兼容•8k字节可重擦写Flash闪速存储器•1000次擦写周期•全静态操作:0Hz—24MHz•三级加密程序存储器•256×8字节内部RAM•32个可编程I/O口线•3个16位定时/计数器•8个中断源•可编程串行UART通道•低功耗空闲和掉电模式功能特性概述:AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并图3-2AT89C52管脚图禁止其它所有部件工作直到下一个硬件复位。引脚功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash编程和程序校验期间,P1接收低8位地址。表(3-1)P1.0和P1.1的第二功能引脚号功能特性P1.0T2(定时/计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时/计数2捕获/重装载触发和方向控制)引脚号 功能特性P1.0 T2(定时/计数器2外部计数脉冲输入),时钟输出P1.1 T2EX(定时/计数2捕获/重装载触发和方向控制)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上位电阻高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:表(3-2)P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外中断0)P3.3 INT1(外中断1)P3.4 T0(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置。可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次RSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.3AT命令现在市场上大多数手机均支持GSM07.05规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制手机收发SMS的目的。ETSI的GSM07.05中用于SMS收发控制的主要AT命令见表3-3。AT指令在当代手机通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等。表(3-3)常用AT指令GSM07.05Function(功能)ATE0RESETAT+CSMS选择短信息服务AT+CPMS选择短信息内存AT+CMGF选择短信息格式AT+CSCA短信息中心地址AT+CNMI显示新收到的短信息AT+CMGR读短信息AT+CMGS发送短信息AT+CMGL列出SIM卡中短信息AT+CMSS从SIM内存中发短信息AT+CMGW向SIM内存中写入待发短信息AT+CMGD删除SIM内存中的短信息AT+CSCB选择蜂窝广播信息3.4单片机与手机的硬件接口目前市场上流行的大部分手机几乎都具有数据引出口,并基本上都支持与GSM短信息相关的AT控制指令(GSM—SMS—AT指令),手机通过数据口以串行方式接收指令并向外输出数据。理论上讲,在数据口中找出RXD、TXD和GND引脚与单片机的串口对应连接即完成了硬件接口,然而,实际上由于不同品牌,不同型号手机的RXD、TXD和GNG引脚并非一致,找查这三根线有时也非易事,况且手机数据口的电平既不是RS232电平,也不是TTL电平,与由5V供电的单片机的串口还不能直接联接。最简单、最可靠的方法是使用手机的数据线建立单片机与手机的硬件连接。手机数据线是专为连接PC机9针串口而设计的,一是信号电平为标准的RS232电平,只要单片机的串口也转换为RS232电平,就可方便连接。二是9针串口引脚定义是固定的,即2脚为TXD(手机发送),3脚为RXD(手机接收)、5脚为GNG,这样,无论什么型号的手机与单片机的连接就成了固定连接,不需要知道手机数据口信号的具体定义,二者通过数据线的连接电路如图3-3所示:图3-3数据线的连接电路图需要注意的是:不同手机数据线内部电平转换芯片的供电方式是不同的,有的是通过手机直接供电;有的是通过窃取PC机串口某些引脚(通常为4、6、7、8引脚)的电流经内部整流滤波稳压后提供,判断的方法是将数据线一端插到手机数据口,测量另一端2脚与5脚之间的电压,如果有-7V左右的电压,则为前者,如果测不出电压,则为后者,对于后者则需要单片机为4、6、7、8、引脚任意一引脚提供+5V电压即可,如图3-3中虚线所示[4]。3.4.1串口控制SMS的工作原理单片机[5]与手机一般采用串行异步通信接口,具有红外和通信电缆两种连接方式,通信速度可设定,通常为19200bps。采用红外接口的优点是单片机系统与手机电气隔离,相互不干扰,接口各自独立,使用方便;缺点是通信距离较短,红外传播的方向性对接口相对位置有要求。采用电缆连接时,数据传输的可靠性较好;其主要缺点是接口的电气参数不兼容,设计不当时会对手机的通信质量产生影响。GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的地址发送到短信息服务中心,经短消息服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短消息的信息量限制为160字节。GSM手机通过异步通信接口实现对SMS的控制共有三种接入协议:BlockMode;基于AT命令的TextMode;基于AT命令的PDUMode。PDU模式是发送或接收手机SMS信息的一种方法,短信息正文经过十六进制编码后被传送。目前,PDUMode应用最为广泛,基本上全国所有的电信局都提供支持PDUMode的短消息业务。有些地址则不支持TextMode和BlockMode,这就限制了这两种接入协议的应用,而且PDUMode已有取代BlockMode的趋势。为了保证系统具有广泛的适用性,本文采用PDU模式收发SMS。图3-4接口电平转换电路PDU相当于一个数据包,它由构成消息(SMS)的信息组成。作为一种数据单元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。PDU结构根据短消息由移动终端发起或以移动终端为目的而不同。当由移动终端发起时,PDU的格式为:SMSC PDU类型 MR DA PID DCS VP UDL UD(0~140octed)当以移动终端为目的时,PDU的格式为:SMSC PDU类型 OA PID DCS SCTS UDL UD(0~140octed)其中,SMSC为短消息业务中心地址,DA/OA为源/目的地址,PID为协议识别,DCS为数据编码,UDL为用户数据长度,UD为用户数据,VP为有效时间,MR指明是发出信息,SCTS指明短消息到达业务中心的时间。SMS是由Etsi所制定的一个规范(GSM03.40和GSM03.38)。它可以发送最多160个字符,当使用7-bits编码的时候。8-bit编码(最多140个字符)通常无法直接通过手机显示;通常被用来作为数据消息,例如:smartmessaging中的图片和铃声)和OTAWAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class0开头的16-bit的文本信息将在某些手机上作为FlashSMS显示(闪烁的SMS和警告SMS)。有两种方式来发送和接收SMS信息:使用文本模式或者使用PDU(protocoldescriptionunit)模式。文本模式(可能某些手机不支持)实际上也是一种PDU编码的一种表现形式。在显示SMS信息,可能使用不同的字符集和不同的编码方式。最常见的选择是"PCCP437","PCDN","8859-1","IRA"和"GSM"。这些都通过读取应用程序的at-command中的AT+CSCS指定。如果你想阅读手机上的信息,手机会为你选择一种合适的编码。那么一个可以阅读SMS消息的应用要么使用test模式,要么是PDU模式。如果使用text模式,那么应用将绑定(或限制在)一些可能的编码选择中。在某些情况下是不够的,如果使用PDU模式,那么就可以使用任何编码方式。(1)一种通信数据单元(编码),ProtocolDataUnit,协议数据单元;(2)在机房及通信硬件领域中常见的PDU,指的是机柜电源插座.是英文"PowerDistributionUnit"或者"DESIGNTEDPOWERDISTRIBUTIONUNITFORCABINET"的缩写。3.4.29针串口目前较为常用的串口有9针串口(DB9),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。表(3-4)DB9的常用信号脚说明9针串口针号功能说明缩写1数据载波检测DCD2接收数据RXD3发送数据TXD4数据终端准备DTR5信号地GND6数据设备准备好DSR7请求发送RTS9清除发送CTS9振铃指示DELL第四章系统软件的实现4.1软件接口及控制原理单片机[5]与手机的软件接口其实就是单片机通过与GSM短信息有关的AT指令控制手机的控制技术,如读取手机的短消息内容,删除短消息内容,列出手机中还未读的短消息等。关于AT指令的功能描述见参考3.3的文章内容,此处不再赘述。然而,执行一条指令,也并非某些资料中介绍得那么简单。事实上,指令的执行过程需要单片机与手机交互应答完成,每一次发送或接收的字节数有严格的规定,二者必须依据这些规定实现数据交换,否则,通信就是失败的。对几个问题说明如下。(1)所有AT指令的指令符号、常数、PDU数据包等都是以ASCII编码形式传送的,比如“A”的ASCII编码为41H,“T”的ASCII编码为54H,数字“0,,的ASCⅡ编码为30H等。(2)单片机控制手机工作,必须把手机的短信息工作模式设置为PDU格式,即通过指令AT+CMGF=O完成。(3)单片机向手机发送每一条指令后,必须以回车符作为该条指令的结束,回车的ASCII编码为0DH。例如,单片机向手机发送“AT+CMGF=0”这条指令,其ASCII编码序列为“41H、54H、2BH、42H、4DH、47H、46H、3DH、30H、0DH”,最后一个字节0DH就是回车符,表示该条指令结束,如果没有这个回车符,手机将不识别这条指令。(4)当手机接收到一条完整的AT指令后,手机并不立即执行这条指令,而是先把刚才接收到的AT指令的全部ASCII编码序列全部反发送出来(含0DH),然后发送一个回车符和换行符的ASCII编码,即0DH和0AH,最后执行该条指令。(5)手机向单片机传送短信息内容时,其PDU数据包的内容是以十六进制表示的数据,但并不是直接向单片机传递十六进制数据,而仍然是把每一位十六进制数以ASCII编码来发送。这样,二个字节的十六进制数就变成4字节的ASCII码。但是,PDU数据包中的数据字节长度部分仍然是实际字节长度,而不是变成ASCII码的字节长度,这在编程时应特别注意,否则,接收的数据就不完整。单片机接收到PDU数据包数据后,必须将其恢复成十六进制数据,其算法如下:设a为接收的ASCII码,b为转换后的十六进制数。如果a<39H,则b=a-30H;如果a>39H,则b=a-30H-07H,最后把前后两个数合并为一个字节。(6)手机向单片机应答PDU数据包的字节数不包括前9字节数据(短信服务中心地址),但向单片机传送PDU数据包时,包括这9个字节的数据。例如,如果手机应答的PDU数据长度为50,而实际向单片机传送的十六进制数据为59字节,ASCII码为2×59字节,所以,单片机必须按2×59字节接收PDU数据[6]。4.2PDU格式下短信息的接收根据设置不同,手机将收到的短消息保存在缓存单元或存入SIM卡,单片机从手机中接收短消息实质上就是从SIM或缓存中读出信息。这主要利用AT+CMGR和AT+CMGL两条指令来完成,其工作过程见图2。由于不同的厂商对AT指令集的解释代码和响应信息不一样,所以单片机首先要确认能否与手机建立起通信,一般用ATE指令完成此确认;然后用AT+CMGF指令选定短消息的数据格式;在收到手机的正确回答反以AT指令完成读出功能。一般用AT+CMGL读取以前的信息,在收到手机的RING(振铃)数据时,用AT+CMGR读取实时信息。以下是设计的物流数据采集系统中用到的接收SMS的一个实例,它说明了PDU模式的应用。单片机发送和接收(手机回答)均为ASCII码。所用手机为SIEMENSS3508i。操作过程如下({}内为注释):发送:ATE手机回答:OK{已建立联接}发送:AT+CMGF=0{选用PDU格式}手机回答:OK{允许选择PDU格式}发送:AT+CMGL=2{列出已有的短信息}手机回答:+CMGL:1,2,,24{1表示信息个数,2表示未发信息,24表示信息总容量}0D71683108370105F004000D81683179133208F10000026080410033802632184CF682D95E0DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608OK以上这组PDU格式的十六进制字符串,不但包含了短消息的内容,同时包含了发送者的手机号码、短信息中心号码、短消息发送时间等。下面对信息内容进行分析:0D:短信息中心地址(号码)长度。91:短信息中心号码类型,91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加'+'号;此外还可直有其他数值,但91最常用。683108370105F0:SMSC短信息所使用的服务中心号它经过十六进制以字节为单位的高低半字节换位处理,号码是奇数的添F,构成一个HEX字节。04:PDU类型,文件头字节。0B:主叫号码长度。81:主叫号码类型。3179133208F1:0A主叫号码,也经过了处理,实际号码00:PID,为协议标识。00:DCS短信息编码类型是GSMDefaultAlphabet,即由7位ASCII码移位组成8位十六进制码(octet)。表(4-1)8位十六进制码1sthexB0A6A5A4A3A2A1A02ndhexC1C0B6B5B4B3B2B13rdhexD2D1D0C6C5C4C3C24thhexE3E2E1E0D6D5D4D35thhexF4F3F2F1F0E6E5E46thhexG5G4G3G2G1G0F6F57thhexH6H5H4H3H2H1H0G602608041003380:SCTS短信息发送时间,02/06/08/14:00:33.08。26:UDL经过处理的8位码(octet)短信息字节长度,它小于信息ASCII码的长度。32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A024510682B1983492608:UD编码后的PDU数据,短信息内容“2002/06/08/13:48ID102OKID103OKID201FAIL”。4.3短信息的发送与接收短信息一样,发送时也要先建立联接,传送一些初始化指令,然后发送短消息内容。下面是用SIEMENSS3508i发送一个短信息的例子,内容为:“2002/06/08/13:48ID102OKID103OKID201FAIL”。其ASCII码为:“32030322F30362F30382F31333A34382049443130324F4B2049443130334F4B2049443230314641494C20”。发送:ATE{请求建立联接}手机回答:OK{已建立联接}发送:AT+CMGF=0{选择PDU模式}手机回答:OK发送:AT+CSMS=0{检测手机是否支持SMS命令}手机回答:OK发送:AT+CMGS=52{发送短信息,52octets(不包括最初9个短信息元字节)}手机回答:>{允许上传数据,ASCII码是($20H,$2EH)}发送:0891683108701305F011000B813179133208F10000AA2632184CF682D95E30DC2B36D3D170A0243106

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论