单片机控制实现短信收发课程设计2个例文

上传人:细水****9 文档编号:58658893 上传时间:2022-02-28 格式:DOC 页数:51 大小:1.26MB
收藏 版权申诉 举报 下载
单片机控制实现短信收发课程设计2个例文_第1页
第1页 / 共51页
单片机控制实现短信收发课程设计2个例文_第2页
第2页 / 共51页
单片机控制实现短信收发课程设计2个例文_第3页
第3页 / 共51页
资源描述:

《单片机控制实现短信收发课程设计2个例文》由会员分享,可在线阅读,更多相关《单片机控制实现短信收发课程设计2个例文(51页珍藏版)》请在装配图网上搜索。

1、 数理与信息工程学院课 程 设 计 题 目: 单片机控制实现短信收发 专 业: 计算机科学与技术(专升本) 班 级: 056 姓 名: 黄丹丹 学号: 05191112 成 绩: ( 2006.6 )目 录摘 要 1第1节引言 1第2节工作原理及其软件设计2 21串口控制SMS的工作原理 222软件实现 323短信数据的处理ExecData函数 6第3节 系统硬件介绍 631 系统核心部分-闪电存储型器件AT89C51 632 GSM模块MZ28 1033 单片机MSC1210 10 第4节SMS的体系结构 13第5节SMS应用新领域1551 SMS在银行中间业务领域中的通知功能1552 SM

2、S在保险公司客户服务体系中的定时提醒功能1553 SMS在证券交易中的成交回复与价格预警功15第6节 结语16参考文献 17附录一程序18附录 二21单片机控制实现短信收发信息科学与工程学院 计算机专升本 班 黄丹丹【摘 要】借助系统模型,阐明GSM模块收发短信的基本概念以及串口控制SMS的基本原理。详细介绍用单片机AT89C51控制GSM模块工作的硬件和软件实现过程,介绍了单片机AT89C51和MSC1210内部结构和性能,并对AT89C51和MSC1210的性能、用途进行了比较,特别提出了MSC1210在高精度温度采集中所体现出别的芯片所不及的优势。对怎样用单片机控制GSM模块收发短信进行

3、探讨,也对程序设计的主体思想作了细致的分析。大致介绍了SMS的体系结构以及在当今社会中SMS应用的新领域.本系统技术较先进,科技含量高运行速度快,精度高。【关键词】单片机短信收发GSMSMS 第1节 引言中国联通数字移动电话(GSM)网是向社会公众提供通信服务的公用通信网,与中国电信网同为国家通信网的有机组成部分。两网互联互通,自动接续,共享国家通信资源。目前,中国联通数字移动电话业务由GSM网130、131业务和CDMA网133业务组成。GSM是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的GSM数字蜂窝移动通信网,是我国公众移动通信网的主

4、要方式。基于GSM的短信信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网络上存储和转寄的过程。由于公众GSM网络在全球范围内实现了联网和漫游,上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。本软件的设计基于GSM网络的温度数据采集与无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。系统模型图如图1-1所示。本系统由数据采集部分、数据接收和发送部分、终端处理部分三个模块组成。数据采集模块将采集到的温度数据存入存储器中。数据收发模块采用双单片机共用EERPOM的方式,单片机2控制数据从存储器转存入EEPROM中;单片机1负

5、责将数据从EEPROM中读出,并经GSM模块2借助GSM网络将数据发送出去。单片机1不仅控制数据的发送,也控制数据的接收。在这里,EEPROM是温度数据临时存储和上传的中转站。终端处理模块负责将接收到的数据交给计算机处理,并将处理后的结果存放到数据库中,以供查询。当终端处理模块需要向GSM模块2发送控制命令时,GSM模块2接收过程正好与上述过程相反,从而实现数据的自动双向传递。图1-1系统模型系统中,三个模块相互独立,彼此又相互依赖,共同完成数据的传输。数据收发模块在系统中起着承上启下的作用,是系统的核心模块。该模块以双单片机为核心,以RS232通信接口,在物理层上实现与GSM模块的连接。由于

6、篇幅的限制,本文主要介绍单片机控制这一模块工作的软件实现过程,旨在对怎样用单片机控制GSM模块收发短信息进行探讨。第2节 工作原理及其软件设计2 1 串口控制SMS的工作原理单片机与GSM模块一般采用串行异步通信接口,通信速度可设定,通常为19200bps。采用这种RSM232电缆方式进行连接时,数据传输的可靠性较好。RS232接口方式连接,通过串行接口集成电路和电平转换电路与GSM模块连接,电路比较简单,所涉及的芯片包括单片机89C51和电平转换芯片MAX232,是非常常见的接口电路。需要说明的是,该接口通过I2C总线扩展了一个EEPROM存储器芯片AT24C64,它的主要作用是存储数据,而

7、且断电信息也不会丢失,这些特性正是存储数据所必须的。GSM的短信息业务SMS利用信令信道传输,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的数据发送到短信息服务中心,经短信服务中心完成存储后再发送给最终的信宿。所以当目的GSM终端没开机时信息不会丢失。每个短信的信息量限制为160字节。现在市场上大多数手机均支持GSM07.05规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制。利用GSM手机的串行接口,单片机向手机收发一系列的AT命令,就能达到控制GSM模块收发SMS的目的。必须注意的是,用单片机实现时,编程必须注意它发送指令与接收到

8、的响应都是字符的ASCII码。用单片机控制GSM模块收发短信息所涉及以的AT指令如表21所列。表21 AT指令AT指令功 能 描 述AT+OFF关机并重新启动AT+CSDH=0在TEXT模式下在返回值中不显示详细的头信息ATE0关闭回显AT+CMGF=1选择短信格式为TEXT模式AT+CMGS发送短信息AT+CMGR读取短信息AT+CMGD=0删除全部短信息22软件实现2. 2. 1 上位机模块和下位机模块半双工通信协议的实现2.2.1.1应答和重发上位机模块和下位模块的通信双方遵照半双工通信方式进行,即数据传送是双向的。但是,任何时刻只能由其中的一方发送数据,另一方接收数据,因为EEPROM

9、的读出和写入不能同时进行。为了避免一方在发送信息帧时(这里的信息帧指的是下位机模块发送的数据帧和上位机模块发送的命令帧,下同),另一方也会发送数据,必须把信道变成半双工方式。尽管这样效率可能不如全双工方式,但通过此举牺牲效率可以换取模块工作性能的稳定。双方采取的顺序是:发收到应答后再发。按照整个系统的设计思路,上位机模块(即图1-1中的GSM模块1,下同)发送的帧包括命令帧、确认帧和非确认帧;下位机模块(即图1-1中的GSM模块2,下同)发送的帧包括数据帧、确认帧和非确认帧。其中确认帧和非确认帧是发送数据后等待对方发送的应答帧,以此作为继续发送下一帧和重新发送上一帧的依据。命令帧和数据帧是信息

10、帧,当一方先发送完信息帧,如果收方接收到对方的信息帧,而又没有信息帧需要发送,那么情况就比较简单,收方将根据信息帧的正确与否决定发送确认帧还是非确认帧,以使对方决定是继续发送还是重新发送;如果此刻收方也有信息帧需要发送,那么收方将不立即发送应答帧,而是立即发送本方的信息帧给对方,并等待对方对此帧的应的应答帧,在收到对方的应答帧后,收方将依据应答帧的内容(即确认帧或者是非确认帧,下同)决定是继续发送下一信息帧,还是重新发送原来的信息帧。如果由于链路本身不可靠等因素造成应答帧的丢失,收方将在一定时间内因为没有收到应答帧而延时重发原来的信息帧。在收到对方的应答帧后,收方将继续发送下一信息帧,并等待对

11、方的应答帧,如此反复,直到收方全部发送完信息帧。在本方收到对方最后一个应答帧后,表明本方全部的信息帧发送完毕。然后收方将发送对方仍然等待的应答帧,通知对方收到的信息帧正确与否。2.2.1.2延时重发在双方通信过程中,有两个时间t1和t2,分别表示重新发送信息帧的最大延时。t1表示一方发送完信息帧到收到对方应答帧的时间,如果等待应答帧的时间超过了t1,则发方会重新发送原来的信息帧;当收方接收到对方发送的信息帧,如果收方此时有需要发送的信息帧,则收方此时不发送应答帧,而是发送信息帧给对方。也就是说,利用对方等待收方应答帧的时间t1内,收方插入发送本文的信息帧,同样本方的发送也存在一个延时重发的问题

12、。在规定的时间内,如果没有收到对方应答帧,收方也同样需要重发原来的信息帧,这个规定的时间就是t2。显然由于收方是利用间隙时间发送本方信息帧,所以t2、+CMGS、+CMGR、OK。根据接收到的不同参数,下位机模块将转向不同的操作步骤,判断并改变标志位的值。比如,如果某时刻接收到,这表明呼叫对方模块号码获得成功,接下来需要发送数据。这时SHELL函数将检查发送不同数据所代表的标志位f_sending、f_ack、f_nack,从而决定需要发送何种类型的数据。23短信数据的处理ExecData函数进入时钟中断调用SHELL函数时,如果接收到了返回的参数+CMTI,表明上位机模块向下位机模块发送了短

13、信数据,可能是命令帧,也可能是确认帧或者非确认帧。在这种情况下,SHELL函数需要对短信内容进行分析,并根据短信的内容进行不同的处理,负责完成以上功能的就是ExecData函数,它是被SHELL函数调用的,用来分析并处理短信数据。第3节 系统硬件介绍31系统核心部分-闪电存储型器件AT89C51单片机AT89C51有内部RAM,可以作为各种数据区使用,内部闪电存储器存放数字时钟的控制程序。它的主要功能是控制74LS138和74LS47,实现对LED显示器的位控和段控,完成时间的转换计算,并把计算的时间转换到相应的显示段码,控制LED显示器以动态扫描方式进行时、分、秒的显示。AT89系列单片机是

14、ATMEL公司生产的。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52和8751/52。与87C51相比,AT89系列的优越性在于,其片内闪电存储器的编程与擦除完全用电实现;数据不易挥发,可保存10年;编程/擦除速度快,全4K字节编程只需时3s,擦除时间约用10ms;AT89系列了实现在线编程;也可借助电话线进行远距离编程。AT89C51是一种低功耗、高性能内含4K字节闪电存储器(Flash Memory)的8位CMOS微控制器。这种器件系以ATMEL高密度不挥发存储技术制造,与工业标准MCS-51指令系统和引脚完全兼容。片内闪电存储

15、器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如,MP-100这样一种经济型的编程器,它支持通用EPROM等各种存储器、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列51单片机的编程。ME5103和ME5105仿真器支持AT89系列所有器件的调试、仿真和编程。3.1.189C51具有下列主要性能: 4KB可改编程序Flash存储器(可经受1,000次的写入/擦除周期)全静态工作:0Hz24MHz三级程序存储器保密 128 X 8字节内部RAM 32条可编程I/O线 2个16位定时器/计数器 6个中断源可编程串行通道片内时钟振荡器另外,89C51是用静态逻辑

16、来设计的,其工作频率可下降到0 Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。3.1.289C51的引脚及功能3.1.2.1 主要电源引脚 Vcc 电源端 GND 接地端3.1.2.2 外接晶体引脚XTAL1和XTAL2 XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡

17、器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。3.1.2.3 控制或与其它电源复用引脚RST、ALE/PROG、/PSEN和/EA/Vpp RES 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,

18、或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。如果需要的话,通过对专用寄存器(SFR)区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。 /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当80C51由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有

19、效的/PSEN信号将不出现。/EA/Vpp 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存/EA端的状态。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序,并可延续至外部程序存储器。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。3.1.2.4输入/输出引脚 P0.0 P0.7、P10.P1.7、P2.0 P2.7 和P3.0P3.7P0端口(P0.0 P0.7) P0是一个8位漏极开路型双向I

20、/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0 P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Fl

21、ash编程和程序验证时,P1接收低8位地址。P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX DPIR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Fl

22、ash编程和程序验证期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7) P3 是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在89C51中,P3端口还用于一些专门功能,这些兼用功能见表3-1表 31 P3端口兼用功能表 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中

23、断1) P3.4T0 ( 定时器/计数器0的外部输入) P3.5T1 (定时器/计数器1的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通)在对Flash编程和程序验证时,P3还接收一些控制信号。3.1.3Flash存储器的编程和程序校验:AT89C51单片机内部有一个4K字节的Flash PEROM。这个Flash存储阵列通常是处于已擦除状态(既存储单元的内容为FFH),随时可对它进行编程。编程接口可接收高电压(12V)或低电压(Vcc)的允许编程信号。低电压编程方式可很方便地对AT89C51内的用户系统进行编程;而高电压编程方式则可与通用的EPR

24、OM编程器兼容。AT89C51的程序存储器阵列是采用字节写入方式编程的,既每次写入一个字节。要对片内的PEROM程序存储器写入任何一个非空字节,都必须用片擦除方式将整个存储器的内容清除。3.1.3.1 对Flash存储器编程编程前,必须建立好地址、数据和相应的控制信号。编程单元的地址加在P1端口和P2端口的P2.0P2.3(11位地址为0000H0FFFH),数据从P0端口输入。引脚P2.6、P2.7和P3.6、P3.7的电平选择见表2。/PSEN应保持低电平,而RST应保持高电平。/EA/VPP是编程电源的输入端,按要求加入编程电压。ALE/PROG端输入编程脉冲(应为负脉冲信号)。编程时,

25、采用420 MHz的振荡器。对AT89C51编程的步骤如下:在地址线上输入要编程单元的地址。在数据线上输入要写入的数据字节。激活相应的控制信号。在采用高电压编程方式时,将/EA/VPP端的电压加到12V。每对Flash存储阵列写入一个字节或每写入一个程序加密位,加一个ALE/PROG编程脉冲。改变编程单元的地址和要写入的数据,重复上述步骤,直到全部文件编程完毕。每个字节写入周期是自动定时的,通常不大于1.5ms。数据查询方式AT89C51单片机用数据查询方式来检测一个写周期是否结束。在一个写周期期间,如果想读出最后写入的哪个字,则读出数据的最高位(P0.7)是原来写入字节最高位的反码。写周期一

26、旦完成后,有效的数据就会出现在所有输出端上,这时可开始下一个写周期。一个写周期开始后,可在任何时间开始进行数据查询。 准备就绪/忙信号字节编程的过程也可通过RDY/BSY输出信号来监视。在编程期间,当ALE变为高电平后,P3.4(RDY/BSY)端的电平被拉低,表示忙(正在编程)状态。编程完毕后,P3.4的电平变高表示就绪状态。3.1.3.2程序的校验 如果加密位LB1和LB2没有被编程,那么就可以对AT89C51内部已编好的程序进行校验。程序存储器的地址仍由P1端口和P2端口的P2.0P2.3输入,数据由P0端口输入。/PSEN保持低电平,而ALE、/EA和RST保持高电平。校验时,在P0端

27、口上要求外接约10K左右的上拉电阻。程序加密位不能直接校验。加密位的校验可通过观察它们的功能是否被允许来进行。32 GSM模块MZ28MZ28是中兴通讯推出的GSM无线双频调制解调器,主要为语音传输、短信发送和数据业务提供无线接口。MZ28集成了完整的射频电路和GSM的基带处理器,特别适合于迅速开发基于GSM无线网络的无线应用产品。带有人机接口(MMI)界面的应用产品内部与MZ28的通信可通过标准的串行接口(RS232)进行。MZ28使用简单的20-PIN ZIP插座与用户自己的应用系统相连,此ZIP连接方式提供开发所需的数据通信、音频和电源等接口信号。MZ28可以作为无线引擎,嵌入到用户自己

28、的产品当中,用户可以用单片机或其它CPU的UART口,使用相应的AT命令,对模块进行控制,达到使其产品可以轻松进入GSM网络的目的。33单片机MSC1210在许多传统行业中,多路高精度温度采集系统是不可或缺的。电厂、石化行业、钢铁厂以及制药厂等企业使用了大量的各类测温器件,如热电阻、热电偶等,这些器件需要定期校准;在严格执行GMP规范的制药厂等企业,高温灭菌需要定期进行灭菌率的验证;在某些要求进行严格的温度控制的场合,也需要进行多点高精度温度测量。这些工作往往需要一多路高精度测温系统来完成。德州仪器(TI)的MSC1210单片机解决了上述问题。它集成了一个增强型8051内核、高达33 MHz的

29、时钟周期、8路24位高精度-A/D转换器、Flash存储器等.3.3.1MSC1210具有以下主要特性: 3个16位的定时器,16位PWM波输出; 多达21个中断源; 32个数字输入/输出端口,带有看门狗; 8路ADC提供24位分辨率可编程的无丢失码解决方案; 可编程增益放大(PGA)在1128之间可调,极大提高了ADC精度; 供电电源2.75.25 V,在3 V时功耗低于4 mW,停止方式电流小于1A; 内核兼容8051,指令与8051完全兼容,可以使用原有8051开发系统; 时钟频率可达33 MHz,单周期指令执行速度达8 MIPS,执行速度比标准8051快3倍; 高达32 KB的Flas

30、h存储器,SRAM达1.2 KB,外部可扩展至64 KB存储器; Flash在电压低达2.7 V时仍可串行或并行编程,可10万次擦除/写操作; 具有32位累加器; 有电源管理功能,能够进行低电压检测,在片上电复位; 带FIFO的SPI端口,双UART; 64TQFP封装,MSC1210系列的硬件和引脚完全兼容,必要时可以互换。3.3.2. MSC1210的增强功能作为智能高精度测温模块的核心,MSC1210完成了微弱信号的多路切换、信号缓冲、PGA编程放大、24位-A/D转换、数字滤波、数据处理、信号校准以及SPI通讯等功能。MSC1210集成了一个8通道24位-A/D转换器,采用8051兼容

31、内核。与ADuC824相比,其有如下增强的功能:3.3.2.1 CPU工作频率可达33MHz,每条指令只需4个时钟周期,运算速度较快。3.3.2.2采用非常灵活的FLASH与SRAM存储器配置,可以对片上FLASH进行分区,根据需要设定程序FLASH与数据SRAM所占的比例。改写次数可达一百万次,数据可保存100年。3.3.2.3片上RAM为1280B,有34个高电流驱动I/O,可以设外部存储器的存取时间,使用双数据指针提高存取速度,具有完善的节电功能,还有电压监视器、21个中断源、3个16位定时器计数器以及内部时间间隔计数器(TIC)。3.3.2.4自带BOOT ROM,可以调试使用或在程序

32、中调用内置固化程序,完成在线调试、数据采集、UART通讯以及读写FLASH等工作,方便了编程以及调试。3.3.2.5片上24位-ADC具有一些增强特性:8位输入通道可以任意配置为单端或差分输入;有快速、Sinc2、Sinc3三种数字滤波,同时有自动数字滤波功能,可以加快A/D转换输出;带PGA偏置DAC,可以不引入额外误差而扩大测量范围;自带一个32位累加器,可以对ADC输出数据作快速平均处理。3.3.2.6自带高精度电压标准,精度为0.2%,漂移为5ppm/,可以节省空间以及器件成本,也可输出该电压标准或外接电压标准。3.3.2.7片上16位PWM,可以作为DAC输出来源。3.3.2.8增强

33、的SPI接口可以使用DMA方式传输数据,在DMA方式下,可以间接寻址RAM,设定多达128B的发送接收FIFO;具有完整的端口驱动以及发送接收中断设定,适合大批量的数据传输:,同时点用C3.3.3. 使用注意事项3.3.3.1 MSC1210片内FLASH分区只能通过对HCR0以及HCR1这两个硬件配置寄存器事先编程来进行,在程序运行过程中无法设定或更改分区比例。在程序运行中读写FLASH时,要注意读写地址与调试时的地址不同,具体应参考存储器分配表;用户程序无法直接读写FLASH,调用BOOT ROM中的读写函数来进行;与AVR等芯片的EEPROM不同,写入FLASH之前必须先进行擦除操作,B

34、OOT ROM中有可调和场擦除子程序,可以在汇编或C程序中调用。3.3.3.2 在做A/D转换时,每次更改PGA放大倍数需要重新校准,在需要频繁切换输入通道的场合,建议设定特殊寄存器ADCON1的SM10位为00,即进入自动模式数字滤波。这样当通道切换后,随着A/D采样次数的增强,数据滤波依次为快速转换、Sinc2、Sinc3数字滤波,可以最大限度地提高转换速度和转换精度。3.3.3.3 BOOT ROM中固化的程序对于MSC1210的编程和调试非常关键,其中部分可以在用户程序中直接调用,完成数据采集、UART输入输出等重要功能。可以通过串口或并口进行编程。3.3.3.4使用TI提供的下载工具

35、及调试终端,可以对MSC1210实现在线调试。这种调试会占用UARTO资源,同时辅助中断的入口地址也有变化,这在编程时需要注意。也可以利用Windows自带的超级终端进行调试。与TI终端不同,Windows超级终端不能自动初始化MSC1210使之进入调试状态,需要人工进行调试复位。3.3.4. 片内存储器MSC1210包括片上1.2 KB SRAM ,256字节DARAM,2KB启动ROM,32 KB Flash存储器。MSC1210用内存寻址表来区分程序存储空间和数据存储空间。程序空间由单片机自动读取,通过指令MOVC来读程序空间;数据空间通过指令MOVX来读写。当片上存储使能时,在片内范围

36、内的读写将在片内存储器上进行,片外存储器通过P0和P2寻址来实现。HCR1寄存器的第0位和第1位设为0就可以访问外部存储器,此时可以通过P0和P2口访问所有片内和片外存储空间。为了安全起见,在访问片内存储器期间,P0口全部置位为0。MSC1210包含1.2 KB片上SRAM。SRAM起始地址位“0”,通过MOVX指令读写。SRAM也可以从8400H开始,既可作程序空间又可作数据空间。MSC1210有256字节DARAM,地址为0000H00FFH,其中128字节为128个SFR,地址为0080H00FFH。SFR寄存器用做控制和状态,标准的8051功能和MSC1210的附加功能是通过SFR实现

37、的。从没有定义的SFR寄存器将得到“0”,写入没有定义过的SFR得到的结果无法确定。DARAM的另一个用途,是通过SFR的堆栈指针作为堆栈使用。在串行或并行编程时,有2KB启动ROM控制运行。在用户模式下,BOOT ROM位于F800HFFFFH;在编程模式下,BOOT ROM位于程序空间的起始2K。Flash存储器既可用做程序存储空间又可用做数据存储空间,用户可以灵活配置程序和数据存储空间的大小。分区大小通过硬件配置位来确定,可以通过串行或并行的方式来编程确定。在用户应用模式下,程序和数据Flash存储空间都可读可写。3.3.5Flash编程应用可编程的Flash存储器分为4个部分:128字

38、节的配置部分、复位向量、程序存储空间、数据存储空间。Flash编程模式有串行和并行两种模式,通过上电复位过程当中的ALE和信号状态确定。当ALE=1,=0时,选择串行编程模式;当ALE=0,=1时,选择并行编程模式。当ALE和都为高电平时,MSC1210运行在用户模式下;当ALE和都为低电平时,MSC1210没有定义。MSC1210的Flash存储器初始值全部为“1”,并行编程模式包括一个专用的编程器,串行编程方式通常为在线编程,用户应用模式允许对Flash程序和数据存储器编程。对Flash编程的实际代码不能从Flash执行,而必须从BOOT ROM或RAM处开始执行。MSC1210有两个硬件

39、配置存储器(HCR0、HCR1),在Flash编程模式下可编程。用户通过对这两个存储器编程可以在程序存储空间(PM)和数据存储空间(DM)之间定义分区,如表3-2所列。表3-2 MSC1210的Flash分区HCR0MSC1210Y2MSC1210Y3MSC1210Y4MSC1210Y5DFSELPM/KBDM/KBPM/KBDM/KBPM/KBDM/KBPM/KBDM/KB0000408-0010408-03201004080161616011040888248100044412428410122621423021103171151311111(缺省)4080160320注:当程序空间选择0

40、KB时,程序在片外执行;一表示保留。用户可以通过MOVX指令来读写Flash存储器,而不论Flash存储器是被定义为程序存储器还是数据存储器。这意味着用户可以将全部空间分为程序存储空间,并将程序空间当数据存储空间用。当PC指针指向的程序空间实际上存放的是数据时,将会导致不可预知的后果。因此,当要用Flash存储数据时,一定要求使用Flash分区,Flash分区禁止在数据存储空间执行程序。同样,也禁止程序空间的擦写而允许在数据存储空间读写。3.3.6. 内核兼容8051但速度更快功能更强MSC1210系列的所有指令功能与标准8051相同,对位、标志和寄存器的影响相同,但时序不同。MSC120单片

41、机使用精简的8051内核,在同样的外部时钟作用下,其执行速度比标准8051快1.53倍(每条指令有4个时钟周期与12个时钟周期的区别)。在同样的指令和时钟下,速度提高到2.5倍以上。因此,一个时钟为33 MHz的MSC1210执行速度与一个时钟为82.5 MHz的标准8051相同,其区别可以从图2看出;而且MSC1210的定时器和计数器可以选择每12个或4个时钟周期计数一次。MSC1210提供了双数据指针(DPTR)加速数据块的移动速度,它能根据外部存储器的速度调节读写速度,在29个指令周期之间变化;它还提供给外部存储器16位地址总线(P0和P2)。低位地址通过P0口复用得到,硬件可以控制P0

42、和P2口是作为地址线还是作为通用的I/O。为了更好地提高效率,外围设备也在8051基础上作了改进。如SPI端口就增加了FIFO,使得传输数据有了缓冲区间。32位累加器的使用在处理ADC采样或其它数据源来的多字节数据时将大大减轻CPU的负担,使得24位加法和移位可以在几个指令周期内完成,而无需通过软件用数百个指令周期来完成。MSC1210系列的硬件和引脚完全兼容,对用户而言,唯一的区别在于内存配置不同。MSC1210Y2上编写的程序代码可以直接在MSC1210Y3、MSC1210Y4、MSC1210Y5上执行。用户可以在软件功能上增减并配以不同的CPU型号,MSC1210已成为一个拥有几个不同应

43、用平台的标准设备。MSC1210的开发工具与8051的开发系统完全兼容,用户可以使用原有的8051开发系统,也可以使用DEMO板带的开发系统或者第三方支持者提供的开发工具。第4节 SMS的体系结构GSM标准中定义的点-点短消息服务使得短消息能在移动台和短消息服务中心之间传递。这些服务中心是通过称为SMS- GMSC的特定MSC同GSM网络联系的。SME:Short Messaging Entity,短消息实体。它可以接收或改善短消息,位于固话系统、移动基站或其他服务中心内; SMSC:Short Message Service Center,短消息服务中心,负责在基站和SME间中继、储存或转发

44、短消息;移动台(ME)到SMSC的协议能传输来自移动台或朝向移动台的短消息,协议名为SMTP(Short Message Transmission Protocol); SMCGWMS或SMCGMSC:SMS-Gateway MSC,SMS网关。接收由SMSC发送的短消息,向HLR查询路由信息,并将短消息传送给接收者所在基站的交换中心; HLR:Home Location Register,归属位置寄存器。用于永久储存管理用户和服务记录的数据库,由SMSC产生。SMS网关与HLR之间的协议使前者可以要求HLR搜索可找到的用户地址。它与MSC与HLR之间的协议一起,能在移动台因超出覆盖区而丢失报

45、文、随后又可找到时加以提示。 MSC:Mobile Switching Center,移动交换中心。负责系统切换管理并控制来自或发向其他电话或数据系统的拔叫。VLR:Visitor Location Register:,访问位置寄存器。含有用户临时信息的数据库。交换中心服务访问用户时需要这些信息。移动起始短消息:Mobile Originated Short Message。 一个GSM用户发送短消息时,他必须至少在其内容中包含最终地址的识别符,和处理这消息的服务中心号码,然后请求传递。 短消息的传输要求在移动台和MSC之间建立信令连接。消息本身的传递要求在无线路径上建立专用的链路层链接,并要

46、求采用专用的消息传递协议。在规定的协议栈的顶部是所谓的传输层协议,在移动起始短消息情形下,它是一条单独的报文,即SMTP(不是TCP/IP的SMTP)短消息传送报文,低层处理应答的传送,它只指出SMSC已收到报文。 移动终接短消息:Mobile Terminated Short Message。 目的地为GSM用户的短消息必须首先从发送方路由至短消息服务中心,然后再被路由至实际地址。 当SMSC有短消息需发送到其某一GSM用户时,它建立一条包含各种利于接收者的信息的SMS-DELIVER报文。此信息包括用户的内容,最初的发送者身份及用于批示短消息已被SMSC接收的时间标记。与MO情形相似,SM

47、S-DELIVER报文将在各种接口上传送。 在达到目的地前,报文的实际路由必须利用MAP/C查询功能获得,采用的是如下方法:SMSC将短消息传到与服务中心相连的SMS网关,网关的选择依赖于它想到在的用户,因为通常网关仅能处理某些用户(某家营运商或某个国家的用户)。这样,用户通过目录号(一般同电话一样)来识别,这些目录号最初是由短消息发送者输入的,这使得SMS网关能识别有关的HLR并查询它。查询是通过发送一个专用报文,即用于短消息的MAP/C SEND ROUTING INFOR报文来实现;对其应答既可采用包含用户正在访问的MSC/VLR的SS7地址的MAP/C SEND ROUNTING IN

48、FO FOR SHORT MESSAGE RESULT报文,又可当已知用户此时不可到达时采用拒绝报文。SMS由几个与提交或接收相关的服务要素组成,如:有效期(在将短消息成功送达用户前SMSC需要保证的储存时间),优先性。此外,短消息还提供提交消息的时间、告诉移动台是否还有更多消息要发送,以及还有多少条消息要发送等。 短消息不可到达 短消息不可到达的情况有三种: 当被SMS网关查询时,移动台不在服务区域、未获得服务授权、或有未成功发送报文正等待告警,HLR就会立即知道不能发送; 第二种情形是,MSC/VLR已收到报文但不能传送的情况。此时,它先向SMS网关发送一故障指示,作为MAP/H FORW

49、ARD SHORT MESSAGE报文的应答;然后,网关一方面会向SMSC发送否定报告,另一方面向HLR发送MAP/C SET MESSAGE WAITING DATA报文,在收到报文确认后进行表格更新。该事件会储存在VLR和HLR内的用户记录中; 第三种情况是MSC/VLR向用户发送有效报文后发现不可送达。第5节 SMS应用新领域随着社会不断进步发展,SMS在各个领域都起着及其重要的作用,最近,经济学家提出了SMS在金融CRM中的应用51 SMS在银行中间业务领域中的通知功能商业银行在运营中间业务的过程中,常常会遇到如下问题:客户还贷不及时;信用卡用户担心账户资金安全问题;用户账号出现被盗用

50、、无意透支、汇款到账和账务变动等情况,却不能及时获知。针对上述问题,虚拟电信运营商可以定制短信息系统,通过其在商业银行与基础电信运营商之间的桥梁作用,可以帮助商业银行完善与客户沟通的渠道。52 SMS在保险公司客户服务体系中的定时提醒功能对于每一家保险公司而言,除了发展新用户这个最现实的挑战之外,就是要留住已有客户,使用适当的手段,提醒客户每月及时续缴保费,并及时向部分用户发布通知,将新的险种和费率变化通知到每一位用户。目前,国内保险公司采用邮政信函为主要通知手段,再辅以业务员直接致电的办法,耗费大量人力和财力,效果依然不佳。引入SMS技术的及时通知功能后,保险公司可以定时以发送短信息的方式完

51、成,而且可以方便地解决CRM系统中的用户地址与姓名匹配问题。53 SMS在证券交易中的成交回复与价格预警功能现阶段国内各主要证券公司极为重视计算机网络系统在业务中的应用,尽可能地向股民提供及时、准确的股市行情,简化交易流程,确保股民交易安全。而证券交易商现有的交易体系都不同程度地要求股民实时注意行情,却不能让股民更好地利用证券交易经纪人所提供的辅助作用,限制了股民的投资热情。利用SMS技术,一方面可以在股民通过各种交易工具完成一笔交易后,由系统实时向股民的手机发送一条成交信息,从而提高股民对交易系统的实时性的监督,保证交易的透明性;另一方面可以允许股民在设定参数告警值后,当行情的相应参数上涨或

52、下跌到阈值时,马上触发系统,向股民的手机发送预警通知,从而使股民从繁复的K线图和指数涨跌中解脱出来,掌握最佳投资操作时机。第6节 结语通过以上的分析不难发现,整个程序错综复杂,函数之间相互牵扯。标志位在程序的实现过程中扮演着非常重要的角色,正是依靠这些标志位,程序才能很好地实现各个功能之间的切换,而标志位的值是通过OSM模块返回的参数修改的。因此程序的实现过程应该是阅读参数修改标志位发送指令。主函数、时钟中断和串口中断程序、SHELL函数、ExecData函数贯穿整个程序的主线和核心部分,对它们的分析可以理解程序的主体思想,这也正是笔者着重介绍的原因所在。然而这些函数和中断程序的实现,还需要依

53、靠其它函数的配合,比如基于I2C总线的EEPROM操作函数、字符串操作函数以及串口发送函数等,由于篇幅所限,在此不再介绍。GSM网络本身是不完全可靠的,可能会发生帧发送错误、帧丢失的现象。但是由于重发、延时重发机制的存在,程序可以最大程度避免上述情况的发生。在实际应用过程中,模块运行正常,性能稳定,实时性好。参 考 文 献1公茂法等单片机人机接口实例集北京:北京航空航天大学出版社 1998.2.2赵亮,侯国锐单片机C语言编程与实例北京:人民邮电出版社 2003.9.3胡伟单片机C程序设计及应用实例北京:人民邮电出版社 2003.7.4赵长德,李东,李华编.MCS51/98单片机原理与应用M.北

54、京:机械工业出版社, 1996.5徐爱卿编.单片微型计算机应用和开发系统M.北京:北京航空航天大学出版社,1998.6戴梅芳编.微型计算机技术及应用M.北京:清华大学出版社,1996.7李广弟,朱月秀,王秀山编.单片机基础M. 北京:北京航空航天大学出版社,2001.8潘新民编.单片微型计算机实用系统设计M.北京:人民邮电出版社,2000.9王福瑞编. 单片微机测控系统设计大全M. 北京:北京航空航天大学出版社, 1998.10何立民编. MCS51系列单片机应用系统设计系统配置与接口技术.M北京:北京航空航天大学出版社, 1996. 附录一程序/*sms for GSM*/#include AT89*51.h#include reg51.h#include ATcommend.h#include ExecData.h#include ScanKey.h#include Shell.h#include ReceivePara.h/*初始化串行端口*/int_rs232() /*通信协议:192000 N 8 1*/ int inbufl20;/*接收缓存*/ SCON=0x50; TMOD=0x20; TH1=0xFF; TR1=1; TI=1;tx_char(unsigned char c)/*发送字符*/ while(1)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!