基于单片机的水位远程监测系统设计 - 图文

更新时间:2024-02-03 05:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

一 引言 .................................................................................................................................................. 2 二 系统的总体设计 .............................................................................................................................. 3 三 硬件系统的设计 .............................................................................................................................. 4

3.1 传感器的选择 ......................................................................................................................... 4 3.2 单片机的选择 ......................................................................................................................... 5 3.2.3 复位电路 ............................................................................................................................ 7 3.2.4 电源电路 ............................................................................................................................ 7 3.2.5 模拟量采集电路 ................................................................................................................ 8 3.3 远程通信模块的选择 ............................................................................................................. 8 3.4 TC35的介绍 .......................................................................................................................... 12 3.6 单片机的接口设计 ............................................................................................................... 15

4.2.1 首先进行初始化 ........................................................................................................ 23 4.2.2 短信中心地址的设置 ................................................................................................ 24 4.2.3 短消息格式的设置 .................................................................................................... 25 4.2.4 短消息的发送 ............................................................................................................ 25 4.2.5 短信接收 .................................................................................................................... 26 4.2.6 删除短消息 ................................................................................................................ 27 4.3 串口程序 ............................................................................................................................... 28 4.4 主处理程序 ........................................................................................................................... 30 结论 ...................................................................................................................................................... 31 致 谢 .................................................................................................................................................... 32 附 录 .................................................................................................................................................... 34 英文文献 .............................................................................................................................................. 44

唐 山 学 院 毕 业 设 计

一 引言

水位监测属于水利土木安全监测的一个分支,是一项有重大实际意义的研究课题。目前,随着单片机技术和无线通信技术的飞速发展,水利土木安全监测手段也同样得到了快速的发展。从最早的人工观测,到使用电缆传输数据的有线观测方法,再到现在的无线监测系统,可以说新技术层出不穷。国内外己经有大量的文章研究了将单片机技术应用于安全监测领域的课题,也有了很多相关产品的问世。但是水利监测系统有这样的特性,那就是每一个应用,都有区别于其它应用的地方,设计人员不能够简单照搬己有的监测模式,而需要根据实际需求寻找最合适的解决方案。

随着单片机技术的飞速发展,无论是在国内还是国外,单片机技术都己经得到了广泛地应用,其可靠性也得到了广泛地验证。单片机技术应用于水利土木监测领域,为各种安全监测提供了强有力的技术支持。但是国内外这方面的研究成果还是具有一定的差距。主要体现在,国际先进水平的水利土木安全监测系统,己经得到了广泛的应用,形成了一定的市场规模和占有率。国际上处于领先水平的技术相对于国内技术的优势在于: 传感器技术更先进,监测系统的整体设计能力更强,从业公司比较多,市场认知度比较高。国内这方面的研究目前开展的也很多,发展相对来说也很快,市场前景也比较看好。

单片机大多都是发达国家提供的产品,国内在平台设计方面比较落后,但是本课题也能够接触到国际上比较先进的单片机类型,能够为系统构建良好的硬件基础。在无线通信技术方面,也可以接触到国际上比较先进的无线通信技术。就像本课题中采用的GSM技术,是一种远距离低数据率无线技术,适合无线数据采集网络。本文通过使用GSM技术,很好的解决了用户的需求。

2

唐 山 学 院 毕 业 设 计

二 系统的总体设计

本系统采用传感器作为数据采集终端,通过传感器采集水位变化情况,然后用单片机处理数据并且控制水泵启动停止,具体的有A/D转换和数据的接受与发送,远程通信采用短消息的方式,最后由手机接受数据并且远程控制水位的高低。具体的系统方框图如下:

图2-1系统方框图

远程通信模块 GSM网络 水泵启动/停止 传感器采集数据 单片机处理数据 远程通信模块 在本系统中主要分为两大部分,硬件的选择和软件的编程,其中硬件的选择有传感器的选择,单片机的选择,单片机电源的选择,单片机复位芯片的选择。除此之外还要选择远程通讯系统模块,通讯模块的电源芯片,远程通讯系统与上位机的通信电平的转换芯片都需要挑选与搭配。软件部分主要分为单片机的编程和TC35编程。

3

唐 山 学 院 毕 业 设 计

三 硬件系统的设计

3.1 传感器的选择

在本文中采用的是佛山市顺德区昊胜传感仪器有限公司生产的PTH601型传感器,下面具体介绍一下工作标准以及原理。

PTH601采用扩散硅压阻芯体或陶瓷压阻芯体,316全不锈钢结构,主要适用于河流、地

输出信号: 4~20mA(二线制) 供电电压: 24DCV(9~36DCV) 介质温度: 0~85℃ 环境温度: 常温(-20~85℃)

负载电阻: 电流输出型:最大800Ω;电压输出型:大于50KΩ 绝缘电阻: 大于2000MΩ (100VDC) 密封等级: IP68

长期稳定性能: 0.1%FS/年振动影响: 在机械振动频率20Hz~1000Hz内,输出变化小于0.1%FS

电气接口(信号接口): 紧线防水螺母与五芯通气电缆连接。 机械连接(螺纹接口): 投入式

量 程:10mmH2O~100mH2O (水位高/深度) 综合精度: 0.2%FS、0.5%FS、1.0%FS

图3-1 传感器外形尺寸

图3-2 传感器形状

4

唐 山 学 院 毕 业 设 计

具体介绍一下扩散硅压阻芯体或陶瓷压阻芯体传感器的原理,本传感器是利用电阻应变片将应变转换为电阻值变化的传感器,属于应变传感器。

它的基本结构是应变式传感器由弹性元件上粘贴电阻应变片构成。电阻应变片的工作原理是基于应变效应,即导体或半导体材料在外界力的作用下产生机械变形时,其电阻值相应发生变化。

当被测物理量作用于弹性元件上,弹性元件在力、力矩或压力等的作用下发生变形,产生相应的应变或位移,然后传递给与之相连的应变片,引起应变片的电阻值变化,通过测量电路变成电量输出。输出的电量大小反映被测量的大小。

3.2 单片机的选择

MSP430f1XX系列单片机是一种超低功耗的混合信号控制器,它根据不同的应用提供不同的具体型号的单片机,以满足不同用户的需求。

3.2.1 MSP430F149具有以下特点介绍:

1)超低的工作电压1.8-3.6V,1MHz的时钟频率下运行,耗电量在0.1μA-400μA之间。

2)强大的处理能力。MSP430F1XX系列单片机为16位的RSIC结构,具有丰富的寻址方式,简洁的指令,大量的寄存器以及片内的数据存储器都可以参加多种运算。8MHz晶体下运算能力达到1MIPS(每秒运算100万条指令),是传统的51单片机远远达不到的。这些特点是该单片机采用C语言开发时候仍能有很高的工作效率,从而可以提高开发的周期,也可以实现程序的可移植性。 3)系统工作稳定。MSP430F1XX系列单片机在上电复位后,首先由DCOCLK启动CPU,保证系统从正确的位置开始执行,同时也保证晶体震荡器有足够的起振及稳定时间。在CPU运行中,软件可以设置特定的寄存器控制位来确定最后的系统工作时钟频率。如果MCLK发生故障,DCO会自动启动,以保证系统正常工作,如果程序出错,可以通过看门狗来解决。

4)片内有12位的A/D转换器,片内提供参考电压。A/D转换器具有采样保持电路和自动扫描特点。

5)具有灵活的时钟设置。主要有32K的晶体方式,高频率晶体方式,谐振器方式和外部时钟方式。这样可以根据功耗和速度要求进行灵活的时钟设置。 6)串口通信模块:USART0,USART1。两个串口都可以通过软件设置成UART方式或者SPI方式,由于该系列单片机提供了两个串口,因此能为用户进行多机通信设计提供方便。

7)片内提供较多的存储器,MSP430F149提供片内的FLASH为60K,同时片内还

5

唐 山 学 院 毕 业 设 计

提供较多的RAM,以便进行运算处理。

8)提供P1.0-P6.0共6个数据端口,能为用户提供更多的处理功能。

3.2.2 单片机P口介绍:

MSP430F149有6个8位的P口,其中P1、P2口占两个中断向量,共可以接16个中断源,还可以直接利用P口的输入输出寄存器,直接对外进行通信。因为所有的P口都是和其他外设复用的,因此在用端口之前都要用功能选择寄存器选定所用的功能是外设还是P口,选定之后还要在方向寄存器中确定是是输出还是输入。

具体的硬件原理图如下:

图3-3单片机的管脚图

6

唐 山 学 院 毕 业 设 计

3.2.3 复位电路

在单片机系统里,单片机需要复位电路,复位电路可以采用R-C复位电路,也可以采用复位芯片实现复位,R-C复位电路具有经济性,但是可靠性不高,用复位芯片实现复位具有很高的可靠性。复位电路采用复位芯片实现复位,使用芯片具有很高的可靠性,在该系统里采用MAX232芯片,如下图:

图3-4 复位电路图

为了减小电源的干扰,还需要在复位芯片的电源输入端加一个0.1μF的电容实现滤波,减小输入端受到的干扰。

3.2.4 电源电路

单片机系统里使用的是3.3V供电,因为硬件系统里对电源的要求具有稳压功能和纹波小等特点,因此该系统的电源部分采用TI 公司的TPS76033芯片,该芯片能很好的满足硬件的要求,另外该芯片具有很小的封装,因此有效的节约了PCB板的面积。具体电路如下:

图3-5 电源电路

7

唐 山 学 院 毕 业 设 计

为了使输出电源波纹小,在输出部分用了一个2.2μF和0.1μF的电容,另外在输入端也放置了一个0.1μF的滤波电容,减小输入端受到的干扰。

3.2.5 模拟量采集电路

在该系统中最前端为传感器,传感器采集传输的是模拟信号,信号为标准的电流信号(4mA-20 mA),信号相当微弱而且单片机采集的是电压信号所以要求将电流信号转换成电压信号,具体的电路如下图:

图3-6模拟量采集电路

采集电路通过一个电阻将电流信号转换成电压信号,为了提高采集精度,需要很高精度的电阻,这里采用精度为1%的电阻。电路中采用二极管作为ESD保护电路,考虑到干扰的问题,采用电容进行滤波处理,增加电路的干扰问题。

3.3 远程通信模块的选择

3.3.1 GSM的涵义

GSM全名为:Global System for Mobile Communications,中文为全球移动通讯系统,俗称\全球通\,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。我国于20世纪90年代初引进采用此项技术标准,此前一直是采用蜂窝模拟移动技术,即第一代GSM技术(2001年12月31日我国关闭了模拟移动网络)。目前,中国移动、中国联通各拥有一个GSM网,为世界最大的移动通信网络。GSM系统包括 GSM 900:900MHz、GSM1800:1800MHz 及 GSM1900:1900MHz等几个频

8

唐 山 学 院 毕 业 设 计

段。

我国陆地公用蜂窝数字移动通信网GSM通信系统采用900MHz频段: 890~915(移动台发、基站收) 935~960(基站发、移动台收)

双工间隔为45MHz,工作带宽为25 MHz,载频间隔为200 kHz。 随着业务的发展,可视需要向下扩展,或向1.8GHz频段的GSM1800过渡,即1800MHz频段:

1710~1785(移动台发、基站收) 1805~1880(基站发、移动台收)

双工间隔为95MHz,工作带宽为75 MHz,载频间隔为200 kHz。

GSM短信平台组网优点

1) 2) 3)

信道稳定,传输质量好,传输速率可达960bps以上。 系统容量较大,可传输数据量大,一条短信所能容纳的GSM信道无需中继,利用公网,不需要自建和维通信网,

数据量最多可达100字节以上。 组网十分灵活。

GSM系统体积小,重量轻,工耗低。不需要架设室外天线,安装方便,不仅一次性投资少,而且维护管理简单,运行费用低。

短信平台的缺点

1)受到GSM网络覆盖的面积限制,可能有些偏远的站点无法通信组网,因此适合在网络覆盖的范围之内。

2)短信的接受会出现延时现象,这就要求在使用的时候充分考虑具体控制余量的问题。

3.3.2 SMS卡的介绍

SMS(Short Messaging Service)是最早的短消息业务,也是现在普及率最高的一种短消息业务。目前,这种短消息的长度被限定在140字节之内,这些字节可以是文本的,可以是70 个汉字,或者是140个英文字母。SMS以简单方便的使用功能受到大众的欢迎,是属于第一代的无线数据服务。

SIM(Subscriber Identity Module)卡叫用户身份识别模块。它实际上是一张内含大规模集成电路的智能卡,用来登记用户身份识别数据和信息。它是GSM系统中不可缺少的一个重要部分,是用户接入GSM网络的凭证,只有插入了SIM卡,移动终端才能接入网络。它的组成由CPU(8)位,程序存储器(3-8bit),工作存储器(6-16bit),数据存储器(128-256kbit)

9

唐 山 学 院 毕 业 设 计

和串行通信单元五个部分组成。

89860 08110 02405 57419

图3-7 SIM卡的正面

SIM卡正面上有20值数码,前面的6位是中国的代号,第7位是业务接入号,在135,136,137,138,139中分别为5,6,7,8,9一般为0,现在的预付费SIM卡为1,第9,10位是各省的编码,第11,12位是年号,第13 位是供应商代码,第14-19位是用户识别码,第20位是校验位。 SIM卡的物理结构如下:

图3-8 SIM卡的背面

C1 C2 C3 C4

C5 C6 C7 C8

一共有8个触点,各个触点如下: C1:Vcc电源电压。 C2:RST复位端。

C3:CLK时钟,时钟速率通常由移动终端提供,SIM卡支持1-5MHz时钟,它在指定时间内运行监权过程时至少需要13/4MHz的时钟频率,其它情况下使用13/8MHz的时钟频率。

C4:无定义,为将来使用保留。 C5:GND地。 C6:Vpp编程电压。 C7:I/O输入输出。

C8:无定义,为将来使用保留。

3.3.3 AT指令及介绍

10

唐 山 学 院 毕 业 设 计

GSM模块通过AT命令与单片机通信。 首先来了解一下AT指令。 AT 指令如下:

AT+CMGC Send an SMS command(发出一条短消息命令) AT+CMGD Delete SMS message(删除SIM卡内存的短消息)

AT+CMGF Select SMS message formate(选择短消息信息格式:0-PDU;1-文本)

AT+CMGL List SMS message from preferred store(列出SIM卡中的短消息PDU/text: 0/“REC UNREAD”-未读,1/“REC READ”-已读,2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部的)

AT+CMGR Read SMS message(读短消息) AT+CMGS Send SMS message(发送短消息)

AT+CMGW Write SMS message to memory(向SIM内存中写入待发的短消息) AT+CMSS Send SMS message from storage(从SIN|M内存中发送短消息) AT+CNMI New SMS message indications(显示新收到的短消息) AT+CPMS Preferred SMS message storage(选择短消息内存) AT+CSCA SMS service center address(短消息中心地址) AT+CSCB Select cell broadcast messages(选择蜂窝广播消息) AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务) 经过以上了解现在来对GSM模块进行软件编写。

所有的AT指令(除了重复命令A/以外)都由AT开头,除了发送短信消息最后是以+结束外,其余的都是以回车〈CR〉结束的。响应形式都是〈CR〉〈LF〉〈response〉〈CR〉〈LF〉。

常用初始化指令:

1)设置单片机和GSM模块的通信波特率AT+IPR=9600〈CR〉

2)设置短消息中心号码AT+CSCA=“+8613800311500”〈CR〉,正确返回〈CR〉〈LF〉OK〈CR〉〈LF〉,〈CR〉〈LF〉是回车换行符号。如果读取短消息中心号码,则命令为AT+CSCA=?〈CR〉,模块应该返回〈CR〉〈LF〉+CSCA:“8613800311500”〈CR〉〈LF〉。

3)设置短消息发送格式AT+CMGF=1〈CR〉,设置1代表text 格式,指令正确返回〈CR〉〈LF〉OK〈CR〉〈LF〉。

保存当前的设置AT&W。把当前的通信波特率,短消息中心代码和短消息发送格式写入模块。

11

唐 山 学 院 毕 业 设 计

3.3.4 短消息操作指令

1)短消息数据的长度AT+CMGS=8〈CR〉等待GSM 模块返回“〉”则可以将text 格式数据输入,text 格式数据以〈CTRL〉+〈Z〉作为结束符,短消息发送成功返回〈CR〉〈LF〉OK〈CR〉〈LF〉。

2)设置短消息到达自动提示 AT+CNMI=1,1,0,0,,设置正确返回〈LF〉OK〈CR〉〈LF〉。错误返回+CMS ERROR:。设置此命令可使模块在消息到达后向单片机发送指令+CMTI:“SM”,INDEX(信息在SIM中的存储位置)

3)读取短消息。模块接受到新的短消息之后,向单片机发送字符+CMTI:“SM”,INDEX。于是读取该短消息的AT指令AT+CMGR=INDEX,模块返回刚收到的短消息text格式短消息内容。

4)删除短消息。SIM卡内存有限,所以防止卡中内存不足,在收到短息并且处理数据之后,将该短消息删除,删除指令AT+CMGD=INDEX,删除后模块返回OK

3.4 TC35的介绍

TC35是西门子公司推出的一种无线通信GSM模块,可以安全的传输方案中的数据,完成短信服务。模块的工作电压为3.3V-5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2W和1。模块有AT指令接口,支持PDU模式的短信和文本格式的短信。第3组的2类传真以及2.4K,4.8K,9.6K的非透明模式。此外,该模块还有电话薄功能,多方通话,漫游检测等功能。常用的工作模式有省电模式,IDLETALK等模式。具有独特的40管脚的ZIF连接器,通过ZIF连接器以及50Ω天线连接器,可以分别连接SIM卡支架和天线。

TC35模块主要由GSM基带处理器,GSM射频模块,供电模块,闪存,ZIF连接器和天线接口组成。下图是TC35的具体模块图:

电 源 图3-9 TC35物理结构图 射频电路 基带处理器 无线连接器 Flash ROM 40引脚ZIF插座 TC35是一个完整的GSM模块,本身能够完成独立的功能,外部通过40管脚的ZIF

12

唐 山 学 院 毕 业 设 计

连接器对TC35模块进行控制,从而实现电源连接,指令数据,语音信号以及控制信号的双向传输。下图给出了ZIF连接器的管脚图:

图3-10 TC35的管脚图

下面具体介绍在本系统使用到的管脚:

VBATT+:供电胶管。供电电压在3.3V-5.5V之间 ,该胶管还必须满足峰值电流为2A。当模块在充电的时候,该胶管还可以作为输出管脚。所有的VBATT+必须并行连接在一起。

GND:接地管脚。

/IGT:启动管脚。该管脚用来启动TC35模块进行工作。该脚管低电平有效。 RXD0:发送数据到DTE。 TXD0:接收数据从DTE。

CTS0:清除发送。该信号有效表示TC35模块准备接受DTE数据。 RTS0:请求发送。该信号有效表示DTE准备发送数据到TC35模块。如果该管脚不用的话,通过一个10K的电阻将该管脚拉高。

DTR0:数据终端准备好,DTE控制该信号线有效。如果该管脚不用的话,通过一个10K的电阻将该管脚拉高。

CCIN:SIM卡连接胶管。该管脚用来检测SIM卡是否连接上,如果连上,该胶管被设置成高电平,如果没有连接上,则该管脚被设置成低电平。

CCRET:SIM卡复位管脚。由基带处理器提供。 CCIO:SIM卡的串行数据总线。输入输出数据。 CCCLK:SIM卡的时钟线。 CCVCC:SIM卡的电源输出管脚。 CCGND:SIM卡的接地管脚。

13

唐 山 学 院 毕 业 设 计

3.5 TC35的硬件设计

3.5.1 TC35的电源设计

对于TC35模块采用3.6V供电,由于该电源电流必须满足输出电流能够达到2A,在此采用NATIONAL公司的LP3966-ADJ芯片。该芯片的管脚2为shutdown管脚,在设计的时候必须通过一个10K的电阻拉高到5V。为了使3.6V输出电源波纹小,在输出部分用了一个68Pf,33μF和0.1μF的电容,实现滤波。另外在芯片的输入端也放置了一个68μF的滤波电容,减小输入端收到的干扰。具体的电路如下:

图3-11 TC35电源电路

3.5.2 TC35接口设计

TC35主要通过串口与单片机进行通讯,从而对TC35的控制,通过与单片机的UART进行两线连接,对于TC35的其他管脚不用的时候悬空处理,如果该管脚为输入的话,通过一个10K的电阻上拉。另外/IGT管脚使控制TC35模块工作的管脚,需要上拉,并且将该管脚与单片机连接,从而实现单片机控制TC35的工作状态。它的电源管脚并联在一起,另外TC35还需要连接SIM卡座子,下面为具体的接设计:

图3-12 TC35的接口设计图

14

唐 山 学 院 毕 业 设 计

3.5.3 SIM卡座子

TC35模块的SIM卡座子采用的是MOLEX座子,该座子由8个管脚,而TC35模块的管脚只有6个,具体的电路如下:

图3-13 SIM卡座子接线图

上图只需要把对应的管脚与TC35连接,在电源接地端加入电容滤波处理,达到减小波纹的目的。

3.6 单片机的接口设计

作为这个系统的核心处理部分,主要完成与TC35通信,它们是通过串口UART0实现的,虽然这两者的供电电压不同但是他们的接口点评可以直接相连,不需要电平转换。单片机通过一个I/O口来控制TC35的工作状态,MSP430F149单片机由两个时钟输入,即一个32kHz的时钟信号,一个8MHz的时钟信号。该系统的时钟部分是通过晶体振荡器实现的。电源的管脚加入一个0.1μF的电容来滤波,模拟地和数字地共地,模拟电源输入端增加一个滤波电容,设置p1.5口来作为启动通信的按键,由于p1.5作为中断来使用,这里设置成低电平出发方式,需要将管脚拉高。P1.0作为输出口,与TC35模块的/IGT管脚连接实现控制TC35的工作。连接传感器并且进行A/D转换的接口设置为P6.0口,单片机的电源分别接入AVCC和DVCC复位端为RESET0接口,并且通过I/O口P1.1发出高电平信号来实现水泵的启动停止,具体的过程是由软件来实现的。 下面为单片机的接口设计:

15

唐 山 学 院 毕 业 设 计

图3-14 单片机外部接线设计图

3.7 电平转换部分

本板子提供TTL电平可以实现[PC-MCU,PC_TC35,TC35-MCU],简单实现适应各种MCU的TTL电平转换。TTL接口如下图

图3-15TTL接口

16

唐 山 学 院 毕 业 设 计

从排针可以看出需要 6-4 5-3 这样实现TC35的TTL电平和MCU的TTL电平接入 如下图

图3-16TTL接口连线图

接好MCU的TTL电平 ,注意应该是发送对于接收 [MCU_T---TC35_R MCU_R---TC35_T MCU_GND---TC35_GND] 如图

图3-17实物图TC35接线部分

17

唐 山 学 院 毕 业 设 计

GSM端

白色 VCC 黑色 GND 红色 GSM_RXD 橙色 GSM_TXD

图3-18实物图 430接线部分

单片机端 : 红色P3.0 MCU_RXD 橙色P3.1 MCU_TXD

切记 :先启动TC35 。让TC35注册到网络。MCU下载程序后自动复位,TC35不要断电。

18

唐 山 学 院 毕 业 设 计

四 系统的软件设计

4.1 模拟量采集

MSP430F149单片机中集成了14路12位A/D转换,其中8路属于外部的信号转换,3路是对内部参考电压的检测转换,1路是接温控的传感电压转换,每一路转换都有一个可控制的转换存储器,而且,参考电平和时钟源都是可选择的,可以外部提供的.这给使用上带来了很大的灵活性.原理上不同于一般积分和逐次比较等A/D转换原理,它的输入信号是加在A/D的电容网络上的,通过电容的充电来采样信号进行A/D转换的.其时序可以归纳为 : 选择通道模式,参考电平,时钟源,分频因子,及中断允 转换结束 写结束采样控制位,开始转换 延时到采样结束时序 加信号,开始采样 下次转换 图4-1时序框图

模拟量采集模块主要是单片机通过A/D通道采集来自传感器的信号,将信号进行处理。MSP430F149的A/D转换有几种模式,比如序列通道单次转换,序列通道多次转换,在本系统中采用的是序列通道多次转换。 下面是A/D转换方框图:

定时器A中断到来

设置标志位 图4-2 A/D转换方框图

19

停止A/D转换 读取数据 启动A/D转换 唐 山 学 院 毕 业 设 计

单片机通过A/D通道采集来自传感器的信号,然后将信号进行处理。选用序列通道单次转换,数据采集的间隔时间通过定时器A来完成,在每次定时器A中断到来时读取A/D采集到的数据,在读取之前先停止A/D转换,在读取数据完成后自动启动A/D转换,如果得到数据,则设置一个标志位通知主程序,告诉主程序已经得到新的数据。 具体的程序如下: void Init_ADC(void); void Init_TimerA(void); void Init_ADC(void) {

//设置P6.0为模拟输入通道 P6SEL = 0X07;

//设置ENC为0,从而修改ADC12寄存器的值 ADC12CTL0 &= ~(ENC); //转换的起始地址为:ADCMEM0 ADC12CTL1 |= CSTARTADD_0;

//设置参考电压分别为AVSS和AVCC,输入通道为A0

ADC12MCTL0 = INCH_0 + EOS; ADC12CTL0 |= ADC12ON; ADC12CTL0 |= MSC;

//转换模式为:单通道、多次转换 ADC12CTL1 |= CONSEQ_2; //SMCLK

ADC12CTL1 |= ADC12SSEL_1; //时钟分频为1

ADC12CTL1 |= ADC12DIV_0; //采样脉冲由采用定时器产生 ADC12CTL1 |= (SHP); //使能ADC转换 ADC12CTL0 |= ENC; return; }

////////////////////////////////通过设置CCR0设置定时器中断的频率

20

唐 山 学 院 毕 业 设 计

{

TACTL = TASSEL1 + TACLR; //选择SMCLK,清除TAR TACTL += ID1;

TACTL += ID0;

//1/8 SMCLK CCTL0 = CCIE; //CCR0 中断允许 CCR0 = 32768; //时间间隔1s TACTL |= MC0; //增记数模式 return; }

////////////////////////////////////定时器中断完成A/D转换 void Init_ADC(void); void Init_TimerA(void);

//定时器中断,完成ADC转换 interrupt [TIMERA0_VECTOR] void TimerA_ISR(void) {

int results;

ADC12CTLO &= ~ENC; //关闭转换 results = ADC12MEM0; //读出转换结果 ADC_BUF[nADC_Count] = result;

nADC_Count += 1; //设置标志 if(nADC_Count == 10) {

nADC_Flag = 1;

for (int i = 0; i<10; i++) ADC_BUF_Temp[i] = ADC_BUF[i]; nADC_Count = 0; //将数据倒向缓冲区 }

ADC12CTL0 |= ENC = ADC12SC; //开启转换 }

以上程序使用了全局变量nADC_Flag,通过nADC_Flag变量通知主程序有新的数据到来,全局变量nADC_Count用来技术处理, nADC_BUF0[]等全局变量,用来临时存放数据,nADC_BUF_Temp[]等全局变量用来作为与主程序交换数据的缓冲区。

21

唐 山 学 院 毕 业 设 计

4.2 发送与接受短信的实现

在前面了解了短息相关的AT指令之后,对短信的操作有了一些基本的概念,在这一节了面具体介绍相关的短信操作的实现。在本系统中,短信的操作是基于TEXT格式的。因为TEXT格式的短信实现起来比较容易,而且能够满足本系统的要求,在本系统中传感器采集的电压经过转换之后传给TC35的是数字量,不需要编码与解码,所以相对于PDU格式的短信具有相当大的优势。短消息的实现主要有短消息中心地址的设置,短消息格式的设置,短消息发送,短消息接受,短消息删除等操作。

下图是发送短消息软件流程图:

图4-3发送短消息软件流程图

结束 送出短消息目的内容 送出短消息目的号码 发送短消息? 输入短消息内容 开始

22

唐 山 学 院 毕 业 设 计

接受短消息的软件流程图如下:

图4-4接收短消息软件流程

结束 输出短消息内容 传输完毕? 正常响应? 开始 退出 Y 发出读取短消息指令 Y N N 超时? Y 删除接收区中无用的短消息 4.2.1 首先进行初始化

// 初始化

int tc35_init(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T'; pBuf[2] = 'E'; pBuf[3] = '0'; pBuf[4] = 13; return 5; }

23

唐 山 学 院 毕 业 设 计

4.2.2 短信中心地址的设置

// 设置短信中心地址 int setCsca(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T'; pBuf[2] = '+'; pBuf[3] = 'C'; pBuf[4] = 'S'; pBuf[5] = 'C'; pBuf[6] = 'A'; pBuf[7] = '=';

pBuf[8] = '+'; pBuf[9] = '8'; pBuf[10] = '6'; pBuf[11] = '1'; pBuf[12] = '3'; pBuf[13] = '8'; pBuf[14] = '0'; pBuf[15] = '0'; pBuf[16] = '3'; pBuf[17] = '1'; pBuf[18] = '1'; pBuf[19] = '5'; pBuf[20] = '0'; pBuf[21] = '0'; pBuf[22] = ','; pBuf[23] = '1'; pBuf[24] = '4'; pBuf[25] = '9';

pBuf[26] = '13'; //结束字符 return 27; //返回数据包长度 }

24

唐 山 学 院 毕 业 设 计

该程序中,封装好命令“AT+CASC=+8613800311500,149”,函数返回的是数据包的长度,其中“+8613800311500”为信息中心地址。命令中的149为地址识别号

4.2.3 短消息格式的设置

在发送短消息的时候,需要选择短消息的格式,短消息的格式分为两种,分别为TEXT何PDU格式。该系统的格式为TEXT格式,具体程序如下: //设置短消息格式 int setCmgf(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T'; pBuf[2] = '+'; pBuf[3] = 'C'; pBuf[4] = 'M'; pBuf[5] = 'G'; pBuf[6] = 'F'; pBuf[7] = '=';

pBuf[8] = '1'; //短消息格式为TEXT格式 pBuf[9] = 13; //结束字符

return 10; //返回数据包长度 }

在该程序中,封装好命令“AT+CMGF=1”,函数返回的是数据包的长度。由于设置的格式为TEXT格式,所以参数设置为“1”.

4.2.4 短消息的发送

//短消息的发送

int setCsca(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T'; pBuf[2] = '+'; pBuf[3] = 'C'; pBuf[4] = 'M';

25

唐 山 学 院 毕 业 设 计

pBuf[5] = 'G'; pBuf[6] = 'S'; pBuf[7] = '='; pBuf[8] = '+'; pBuf[9] = '8'; pBuf[10] = '6'; pBuf[11] = '1'; pBuf[12] = '3'; pBuf[13] = '8'; pBuf[14] = '0'; pBuf[15] = '0'; pBuf[16] = '3'; pBuf[17] = '1'; pBuf[18] = '1'; pBuf[19] = '5'; pBuf[20] = '0'; pBuf[21] = '0'; pBuf[22] = ','; pBuf[23] = '1'; pBuf[24] = '4'; pBuf[25] = '5';

pBuf[26] = (char)(index & 0xff + 0x30); //指针指向所需数据 pBuf[27] = '26'; //结束字符 return 28; //返回数据包的长度 }

在该程序中,封装好了命令“AT+CMGS=,[]”命令,为字符串形式的目的地址,为地址类型识别号,当的第一个是“+”时候,的值为数值“145”,否则为“129”。

4.2.5 短信接收

//接收短消息

int revSms(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T';

26

唐 山 学 院 毕 业 设 计

pBuf[2] = '+'; pBuf[3] = 'C'; pBuf[4] = 'M'; pBuf[5] = 'G'; pBuf[6] = 'R'; pBuf[7] = '=';

pBuf[8] = (char)(index & 0xff + 0x30); //接收指针指向的数据 pBuf[9] = 13; //结束字符 return 10; //返回数据包长度 }

在该程序中封装好了“AT+CMGR=”其中da为index的具体指针指向数据。

4.2.6 删除短消息

//删除短消息

int deleteSms(char pBuf[]) {

pBuf[0] = 'A'; pBuf[1] = 'T'; pBuf[2] = '+'; pBuf[3] = 'C'; pBuf[4] = 'M'; pBuf[5] = 'G'; pBuf[6] = 'D'; pBuf[7] = '=';

pBuf[8] = (char)(index & 0xff + 0x30); //删除具体内容 pBuf[9] = 13; //结束

return 10; //返回数据包长度 }

在函数中封装好了“AT+CMGD=”指令,删除了指定地址的内容,并且返回了数据包的长度。

27

唐 山 学 院 毕 业 设 计

4.3 串口程序

串口程序主要完成的是单片机与TC35的通信,由于MSP430F149单片机内有UART,因此实现串口通信相当容易,只需要设置适当的寄存器就可以使串口工作起来。串口工作使用中断机制,发送数据和接受数据都采用中断机制。当接收到有数据到来时,设置一个标志来通知主程序数据到来,当主程序有数据要发送的时候,设置一个标志进入中断发送数据,串口通讯流程图如下:

等待 等待 N

N 设置发送标志 数据到来 Y 发送数据 Y 设置标志 图4-5串口通讯流程图

下面是具体的程序

首先完成的是初始化部分,主要是通过设置适当的寄存器相应的位来使能UART功能。

void Init_UART0(void) {

U0CTL = 0X00; //将寄存器的内容清零 U0CTL += CHAR; U0TCTL = 0X00; UBR0_0 = 0X45; UBR1_0 = 0X00;

UMCTL_0 = 0X49; //调整寄存器

ME0 |= UTXE0 + URXE0; //使能UART0的TXD和RXD IE0 |= URXIE0; IE0 |= UTXIE0; P3SEL |= BIT4; P3SEL |= BIT5;

//使能UART0的RX中断 //使能UART0的TX中断 //设置P3.4为UART0的TXD //设置P3.5为UART0的RXD //数据位为8bit //将寄存器的内容清零 //波特率为115200

U0TCTL += SSEL1; //波特率发生器选择SMCLK

28

唐 山 学 院 毕 业 设 计

P3DIR |= BIT4; return; }

//P3.4为输出管脚

串口中断主要是发送和接受中断下面是具体的程序: /////////////////////////////////////// // 处理来自串口 0 的接收中断

interrupt [UART0RX_VECTOR] void UART0_RX_ISR(void) {

UART0_RX_BUF[nRX1_Len_temp] = RXBUF0; //接收来自的数据 nRX1_Len_temp += 1;

if(UART0_RX_BUF[nRX0_Len_temp - 1] == 13) { } }

/////////////////////////////////////// // 处理来自串口 0 的发送中断

interrupt [UART0TX_VECTOR] void UART0_TX_ISR(void) {

if(nTX0_Len != 0) { } }

nTX0_Flag = 0; nSend_TX0 += 1;

if(nSend_TX0 >= nTX0_Len) {

nSend_TX0 = 0; nTX0_Len = 0; nTX0_Flag = 1; }

// 表示缓冲区里的数据没有发送完

TXBUF0 = UART0_TX_BUF[nSend_TX0]; nRX0_Len = nRX0_Len_temp; nRev_UART0 = 1; nRX0_Len_temp = 0;

29

唐 山 学 院 毕 业 设 计

4.4 主处理程序

主处理模块作用是将各个模块进行协调处理和进行数据交互,主处理模块首先完成初始化工作,然后后进入循环处理,在循环过程中主处理获得采集的模拟数据,并将得到的数据发送到上位机,同时下位机也接收来自上位机的数据。整个程序基于中断服务结构,为了实现中断程序与主程序之间的数据交互,通过设置一些全局变量和全局的缓冲区来实现。

通过流程图可以看出,主处理只负责简单的标志判断和设置标志,然后从指定的缓冲区读取数据,或者将数据放到相应的缓冲区,其他的由中断来进行处理,因此主程序主要和中断程序进行数据交换。 主处理模块方框图如下:

采集新数据 等待 打开中断 TC35数据 程序初始化 发送数据 Y 单片机处理 Y 启动/停止水泵 N Y

图4-6 主处理模块方框图

设置发送标志

具体的程序如后面的附录

30

唐 山 学 院 毕 业 设 计

结论

本课题在分析了国内外压力传感器的基础上,在本文中采用的是佛山市顺德区昊胜传感仪器有限公司生产的PTH601型传感器。该系统实现了数据采样,数据存储,数据发送,数据接收等功能。实验证明,该压力传感器的性能令人满意。

论文中采用了先进的数字处理器一一MSP43O系列单片机作为压力传感器系统的控制核心。同时其外围设备使得单片机系统的硬件电路设计变得更为简单。

整个系统在优化硬件配置的基础上采用小型化一体化设计,所有电路芯片如微处理器、存储芯片、时钟芯片、通信接口芯片等都采用低价格、小体积、高集成度的器件,从而使电路板尺寸很小的特点。

系统充分利用MSP430系列单片机具有低功耗模式这个特点,使得系统能够在低功耗模式与正常工作模式下定时切换。在此基础上,其他电路芯片都采用低功耗的芯片,使得系统在电池供电的情况下,在野外现场或者远离电网的地方,能够至少使用半年,真正的实现低功耗工作。

论文中的系统另外一个特色就是拥有非常友好的人机接口与界面。上位机将采集到的数据进行处理经过LABVIEW的可视化操作,大大方便了操作。

远距离传输系统具有多种,本文选择模式是GSM模式,这种模式适用于远端现场信号的采集。充分利用GSM短信息系统进行无线通信具有双向数据传输功能、性能稳定等特点为远程数据传送和监控设备的通信提供了一个强大的支持平台。

31

唐 山 学 院 毕 业 设 计

致 谢

天下没有不散的宴席,虽然大四的生活多半时间还是呆在学校里,但是论文致谢语写就的那一刻也真正标志着我与这所学校就此别离了,没有伤感,更多的是遗憾,但是总归不如意事十有八九,过去的不能挽回,人应该大胆向前看,所以这段文字应该像它的标题一样充满感恩和致谢,感谢四年来在我的成长道路上扶持过我,指点过我的人。

论文得以顺利完成,要感谢的人实在太多了。首先要衷心地感谢我的指导老师魏丽老师,您严谨的治学态度,开阔的思维,循循善诱的指导一直给我很大的帮助。当我对论文的思路感到迷茫时,您为我理清思路,指导我往一条比较清晰的思路上进行修改。在论文的不断修改中,我也努力做到及时积极地跟魏老师交流,因为我觉得这样可以使得我的论文更加完善。在这里还要深深的对您说上一句抱歉,因为我的懒散和懈怠,令您费尽苦心并且几近失望。论文的最终完成,也是一波三折。再次对您表示感谢,师恩伟大,无以回报。

然后还要感谢所有在大学期间传授我知识的老师,每一位老师的悉心教导都是我完成这篇论文的基础。虽然学生没有能力和胆量去实践自己心中的梦想,但是您们对我的寄语会一直在我的脑海里永存,有理想就有希望,有希望就能看到理想实现的那一天。人生是那么的不确定,学生绝对不会甘于平庸和妥协。

最后要感谢的是我的父母和家人,我永远都不会忘记你们的良苦用心和一如既往的支持与鼓励。四年来,快乐的事情因为有你们的分享而更快乐,失意的日子因为有你们的关怀能忘却伤痛,坚强前行。无论我成功与否,你们总以鼓励的言语告诉我我很棒,谢谢你们,我会继续努力。

32

唐 山 学 院 毕 业 设 计

主要参考文献

[1] 秦龙. MSP430单片机应用系统开发典型实例[M].北京:中国电力出版社,2005 [2] 胡大可. MSP430系列超低功耗16位单片机原理与应用[M].北京:北京航空航天大学

出版社,2000

[3] 秦龙. MSP430单片机C语言程序设计实例精讲[M]. 北京:中国电力出版社,2006 [4] 唐慧强,徐芳. 基于GPRS的水情自动测报仪[J]. 仪器仪表学报,2008(1):74-76 [5] 张翼翔. 基于单片机的高精度水位监控仪的设计[J]. 微计算机信息,2008(24):

155-157

[6] 郭志勇,陈小永. 基于uPSD3234的智能水位监测仪的设计与实现[J]. 安徽电子信息

职业技术学院学报, 2008(4):69-71

[7] 赵青. 一种远程水情实时监测系统[J]. 南通职业大学学报,2008(22):79-81 [8] 余立建. 水位远程测量与数据传输技术[J]. 测试技术学报,2008(22):792-794 [9] 林聿胜,林华. 水电站水位遥测系统设计与实现[J].电子技术:2008(1):79-83 [10] 刘英杰. 水位监测系统设计[J].信息技术,2008(5):141-241

[11] 雷建龙,李小乐.基于LM567的实用型液位计的设计[J].自动化仪表,2007(10):

4-6

[12] 陈法国,陈伟.GSM通信在水位远程检测系统中的应用[J].单片机与嵌入式系统应

用,2006(1): 55-57

[13] 芦冰,李海峰.基于JB35GSM模块的水位检测报警系统[J].仪器仪表用户,2006(05):

55-57

[14] 孙贵宁. 基于单片机S3F9454的水位水温检测电路的设计[J].电子工程师,2005

(2):71-91

[15] 王树东,冯磊,邓冰等.基于ADAM5510和GSM的水情远程测报系统设计

[J],2007(10):24-26

[16] 马潮.嵌入式GSM短信息接口的软硬件设计[D].上海:华东师范大学,2004. [17] 曹尉清,韩冰.利用GSM短消息实现远程控制[J].无线电工程,2002(10):34-37 [18] 吴玉田、王瑞光、郑喜凤、肖传武.GSM模块TC35及其应用[J].计算机测量与控制,

2002(10): 557-560

[19] 刘涛、张春业、韩旭东、李鹏.基于手机模块TC35的单片机短消息收发系统[J].

电子技术,2003: 36-38

[20] 陈朝阳、刘谨.GSM移动通信手机射频收发系统的设计与实现.电讯技术口[J].2003

年第4期:81-84

[21] 李鸿.用单片机控制手机收发短信息.电子技术应用,2003(1)

33

唐 山 学 院 毕 业 设 计

附 录

主处理程序:

#include #include \#include \#include \#include \#include \

void sendSms(char pPhone[],int phonelen,char pData[],int nLen,int mode); //定义串口操作变量 // 串口 0 的接收标志 char nRev_UART0;

// 串口 0 的发送缓冲区 char UART0_TX_BUF[200]; // 串口 0 的接收缓冲区 char UART0_RX_BUF[200]; int nTX1_Len; char nRX1_Len; char nRX1_Len_temp; int nTX0_Len; int nRX0_Len; int nRX0_Len_temp; char nTX0_Flag; char nTX1_Flag; int nSend_TX0; int nSend_TX1; int nADC_Count; int nADC_Sa; char nADC_Flag; int ADC_BUF[10 * 8]; int ADC_BUF_Temp[10 * 8]; int nComm;

34

唐 山 学 院 毕 业 设 计

void main(void) {

int count; int i; int nLen;

char PhoneNumber[18]; char UART1_RX_Temp[50]; char csca[14]; char pBuf[80]; int nPhone;

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 _DINT();

// 关闭中断

nSend_TX1 = 0; nSend_TX0 = 0; nTX1_Flag = 0; nTX0_Flag = 0; nTX0_Len = 0; nTX1_Len = 0; nRX1_Len = 0; nRX0_Len = 0; nRev_UART1 = 0; nRev_UART0 = 0; nPhone = 0; nLen = 0; nComm = 0; nADC_Count = 0; count = 0;

///////////////////////////////// // 初始化 Init_CLK(); Init_UART0(); Init_UART1(); Init_ADC(); //打开中断

35

唐 山 学 院 毕 业 设 计

_EINT(); // TC35初始化

nTX0_Len = tc35_init(UART0_TX_BUF); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(100); csca[0] = '+'; csca[1] = '8'; csca[2] = '6'; csca[3] = '1'; csca[4] = '3'; csca[5] = '8'; csca[6] = '0'; csca[7] = '0'; csca[8] = '2'; csca[9] = '3'; csca[10] = '0'; csca[11] = '5'; csca[12] = '0'; csca[13] = '0';

nTX0_Len = setCsca(UART0_TX_BUF,csca); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(500);

nTX0_Len = setCmgf(UART0_TX_BUF,0); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(500);

//首先从FLASH里面读出电话号码数据 nPhone = isPhoneSet(PhoneNumber); if(nPhone == 1) {

//电话号码没有配置的情况下

36

唐 山 学 院 毕 业 设 计

//等待配置 for(;;) {

if(nRev_UART1 == 1) {

nRev_UART1 = 0;

for(i = 0;i < nRX1_Len;i++)

{

UART1_RX_Temp[i] = UART1_RX_BUF[i];

PhoneNumber[i] = UART1_RX_BUF[i];

}

nPhone = setPhone(UART1_RX_Temp); //设置成功 if(nPhone == 1) {

nTX1_Len = SetOK(UART1_TX_BUF); // 设置中断标志,进入发送中断程序

IFG2 |= UTXIFG1; break;

} else {

nTX1_Len = SetError(UART1_TX_BUF); // 设置中断标志,进入发送中断程序

IFG2 |= UTXIFG1;

}

}//if(nPhone == 1) }//if(nRev_UART1 == 1) }//for(;;)

//短消息处理循环 count = 0; for(;;)

37

唐 山 学 院 毕 业 设 计

{

//采集数据 if(nADC_Flag) {

//清除标志 nADC_Flag = 1; count += 1; if(count >= 6500) {

//取采集得到的数据

//将采集得到的数据转换为8位 for(i = 0;i < 80;i++) {

pBuf[i] = (char)((ADC_BUF_Temp[i] >> 4) & 0xff); }

count = 0;

nLen = PhoneNumber[0]; for(i = 0;i < nLen;i++) {

//去掉长度信息

PhoneNumber[i] = PhoneNumber[i + 1]; }

//发送短消息

sendSms(PhoneNumber,nLen,pBuf,80,1);

}//if(count >= 65000) }//if(nADC_Flag) }//for(;;) }

//////////////////////////////////////// // 处理来自串口 0 的接收中断 #if __VER__ < 200

38

唐 山 学 院 毕 业 设 计

interrupt [UART0RX_VECTOR] void UART0_RX_ISR(void) #else

#pragma vector=UART0RX_VECTOR __interrupt void UART0_RX_ISR(void) #endif {

char chrTemp; //接收来自的数据

UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;

nRX0_Len_temp += 1;

chrTemp = UART0_RX_BUF[nRX0_Len_temp - 1]; if((chrTemp == 13) || (chrTemp == 10)) {

//接收到一帧信号

nRX0_Len = nRX0_Len_temp; nRev_UART0 = 1; nRX0_Len_temp = 0; } }

//////////////////////////////////////// // 处理来自串口 0 的发送中断 #if __VER__ < 200

interrupt [UART0TX_VECTOR] void UART0_TX_ISR(void) #else

#pragma vector=UART0TX_VECTOR __interrupt void UART0_TX_ISR(void) #endif {

if(nTX0_Len != 0) {

// 表示缓冲区里的数据没有发送完

nTX0_Flag = 0;

39

唐 山 学 院 毕 业 设 计

} }

TXBUF0 = UART0_TX_BUF[nSend_TX0]; nSend_TX0 += 1; Delay_us(5);

if(nSend_TX0 >= nTX0_Len) {

nSend_TX0 = 0; nTX0_Len = 0; nTX0_Flag = 1; }

//数据发送完毕

void sendSms(char pPhone[],int phonelen,char pData[],int nLen,int mode) {

int i; int len1; int len2; char buf1[100]; char buf2[200]; int res; //TEXT模式

packSms_text(pPhone,phonelen,pData,nLen, &len1,&len2,buf1,buf2); //发送头信息

for(i = 0;i < len1;i++) {

UART0_TX_BUF[i] = buf1[1]; }

//设置发送数据的长度 nTX0_Len = len1;

//设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; //等待 > 响应

40

唐 山 学 院 毕 业 设 计

while(1) {

//接收到数据 if(nRev_UART0 == 1) {

for(i = 0;i < nRX0_Len;i++) {

buf1[i] = UART0_RX_BUF[i]; }

len1 = nRX0_Len; nRX0_Len = 0; nRev_UART0 = 0; break; } }

//判断是否是 > 响应

res = getSendResponse(buf1,len1); if(res == 1) {

//发送数据信息

for(i = 0;i < len2;i++) {

UART0_TX_BUF[i] = buf2[1]; }

//设置发送数据的长度 nTX0_Len = len2;

//设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; }

//等待响应 //接收到数据 while(1) {

if(nRev_UART0 == 1)

41

唐 山 学 院 毕 业 设 计

{

for(i = 0;i < nRX0_Len;i++) {

buf1[i] = UART0_RX_BUF[i]; }

len1 = nRX0_Len; nRX0_Len = 0; nRev_UART0 = 0; break; } }

isSuccessSend(buf1,len1); }

void Init_TimerA(void) {

// 选择SMCLK,清除TAR TACTL = TASSEL1 + TACLR; //时间间隔 CCR0 = 40000; // 增记数模式 TACTL |= MC0; }

////////////////////////////////////////////// // 定时器中断,完成 ADC 转换 #if __VER__ < 200

interrupt [TIMERA0_VECTOR] void TimerA_ISR(void) #else

#pragma vector=TIMERA0_VECTOR __interrupt void TimerA_ISR(void) #endif {

int i; // 关闭转换

ADC12CTL0 &= ~ENC;

42

唐 山 学 院 毕 业 设 计

// 读出转换结果

ADC_BUF[10 * 0 + nADC_Count] = ADC12MEM0; ADC_BUF[10 * 1 + nADC_Count] = ADC12MEM1; ADC_BUF[10 * 2 + nADC_Count] = ADC12MEM2; ADC_BUF[10 * 3 + nADC_Count] = ADC12MEM3; ADC_BUF[10 * 4 + nADC_Count] = ADC12MEM4; ADC_BUF[10 * 5 + nADC_Count] = ADC12MEM5; ADC_BUF[10 * 6 + nADC_Count] = ADC12MEM6; ADC_BUF[10 * 7 + nADC_Count] = ADC12MEM7; nADC_Count += 1; if(nADC_Count >= 10) {

for(i = 0; i < 10 * 8;i++) {

ADC_BUF_Temp[i] = ADC_BUF[i]; }

nADC_Count = 0; nADC_Flag = 1; }

// 开启转换

ADC12CTL0 |= ENC + ADC12SC; }

43

唐 山 学 院 毕 业 设 计

英文文献

A number of the SMS method of

decoding

1, A number of SMS decoding method is characterized, including the following steps: receiving side terminal after receipt of text messages sent to terminal number extracted information, referred to the receiver terminal to the first decoding strategy number of the sender information terminal decoding; if decoding is successful, the recipient in the sender terminal display terminal number; Otherwise, the second decoding strategy number of the sender terminal to decode the information, and decoding in the above results show that the recipient terminal.

2, As described in claim 1 method, and its characteristics is described in the first strategy for decoding and receiving side terminal coding strategy number that corresponds to the number of decoding strategies.

3, As described in claim 2 method, the characteristics is that the strategy described in the first decoder decoding strategy for the second dial (DTMF). 4, As described in claim 3 of the method of characteristics is described in the second decoding strategy for the sender encoding strategy number that corresponds to the number of decoding strategies.

5, As described in claim 3 of the method of characteristics is described in the second decoding strategy for the binary-coded decimal decoding strategy (BCD) o 6, Such as claims 1-5 of the method described in any of its characteristics is that in order to decode the message after the existence of numbers does not belong to the character terminal, decoding the first strategy to determine the success of decoding.

7, A number of SMS decoding method is characterized, including the following steps: receiving side terminal after receipt of text messages sent to terminal number extracted information; to determine the suitability of using the first decoding strategy described in the letter sent to terminal number, decode rate; if so, decoding strategies are the first terminal of the sender number to decode the information, or to the second decoding strategy number of the sender terminal to decode the information.

8, As described in claim 7, method of characteristics is described in the first strategy for decoding and receiving side terminal coding strategy number that corresponds to the number of decoding strategies.

9, Such as claims 7 or 8 of the methods described, and its characteristics is encoded as described in the sender terminal number information does not belong to the

44

唐 山 学 院 毕 业 设 计

existence of the characters in the first decoding strategies to determine first whether or not decoding strategies to decode can be successful.

10, The contents of a text message decoding method is characterized, including the following steps:

If the receiving terminal were told to receive SMS text messages to the global system for mobile communications based on the contents of seven coding strategy (gsm7bit) encoding, the receiver terminal to determine whether the length of the original content and the content is encoded the same length, as well as determine the encoded news of the existence of compensation stream bit; if there is not compensation for the same length, and information exchange with the United States standard decoding strategy code (ascii) text content of the above decoding, and decoding the results show that in the receiver terminal; Otherwise, decoding strategies to gsm7bit content of the messages referred to in decoding, and decoding the results show that in the receiver terminal.

11, As described in claim 10 of the method, the characteristics is described in the contents of the length in bytes.

12, As described in claim 11 of the method, the characteristics is described in the receiver terminal information from the encoded stream to obtain information on the length of the original content.

13, As described in claim 12 method, is characterized, according to the information described in the encoded stream of compensation for carrying digital information content of the field to determine whether there is compensation bit.

14, A mobile terminal, including: receiving module for receiving text messages; first decoding module, receiver module connected with the above, the use of built-in number decoding strategy described in the sender information to decoding terminal number; its characteristics is described in the mobile terminal include: determine the module, the module connected to the first decoder for decoding module to determine the first terminal of the sender number of the success of decoding information; second decoding module, the module connected with the judge referred to in for the decoding module described in the first terminal of the sender number information decoding failure, with its built-in number decoding strategy described in the letter sent to terminal number, income re-decoding.

15, As described in claim 14 of the mobile terminal, and its characteristics is described in the first decoding module decoding strategy built-in number for the

45

唐 山 学 院 毕 业 设 计

receiver terminal number and encoding strategy that corresponds to the number of decoding strategies.

16, As described in claim Qiao mobile terminal, and its characteristics is described in the first module built-in DTMF decoder decoding strategy.

17, As described in claim 16 of the mobile terminal, and its characteristics is described in the second module built-BCD decoder decoding strategy.

18, A mobile terminal, including:

Receiver module for receiving text messages; first decoding module, the use of built-in number decoding strategy described in the letter sent to terminal number, interest rate decoding; its characteristics is described in the mobile terminal include: determine the module with the described in the first decoding module and the receiver module connects to determine whether the first decoding module suitable number of built-in decoder for decoding strategy, and determine the results will be described in a letter sent to terminal number, the corresponding income sent to the decoding module decode; second decoding module, the module connected with the judge referred to in its use of built-in number decoding strategy described in the sender information to decoding terminal numbers.

19, As described in claim 18 of the mobile terminal, and its characteristics is described in the first decoding module decoding strategy built-in number for the receiver terminal number and encoding strategy that corresponds to the number of decoding strategies.

Background technology

With the third-generation mobile communications development, CDMA2000 protocol, TDMA and CDMA combined with a network (TDS-CDMA) and WCDMA protocol agreement will become the third generation mobile communication protocol of the mainstream. SMS the field of mobile communications as an important business, require the agreement of different good compatibility, and proceed to demand that a good codec compatibility strategy.

Currently, CDMA2000 terminal number of SMS using DTMF or 4 to 8 DTMF codec. For example, four DTMF encoding strategy is as follows:

The number of'1 'a'9', coding for 1-9; The number of'0 'coding for OxA; Symbol '*', coding for OxB; Symbol '#' code for OxC

46

唐 山 学 院 毕 业 设 计

Messages in the current WCDMA terminal BCD number using 4 or 8-bit BCD to codecs. For example, 4 BCD encoding strategy is as follows: The number of'1 'a'9' coding for 1-9; The number of'0 'code of 0; Symbol '*' coding for OxA; Symbol '#' code for OxB

As a result of \show that the coding strategy, it can be seen through the above-mentioned coding strategy, if the use of WCDMA mobile terminal 4 BCD coding strategy of the sender terminal to encode numbers, the receiving party Terminal for CDMA2000 mobile terminals, the use of four strategies for DTMF decoding messages received in the terminal to decode the number, then as a result of four DTMF decoding strategies and four different BCD coding strategy, that is, the number'0 ', the provision different decoding strategy, the sender of the digital terminal number'0 'will not be the correct decoding CDMA2000 mobile terminal, CDMA2000 mobile end-user will not be able to see the correct number of the sender terminal. Similarly, as long as the sender and receiver terminals in terminal-to-end codec number of different strategies are likely to result in the receiver terminal can not decode correctly. At present, the contents of the message coding and decoding, the receiving terminal for CDMA2000 mobile terminals, the messages received by the content of the messages were told gsm7bit coding strategy for the introduction of coding, but the sender terminal gsm7bit coding strategies may be used, or the use of ascii code strategy. CDMA2000 mobile terminal if the receiver in accordance with this information, directly gsm7bit decoder decoding strategy, the sender terminal in ascii coding strategy used in the content of the message is encoded, the decoding garbled results.

The invention of the number of decoding steps of the methods include: Received by the recipient terminal extracts message sender terminal number information, referred to the receiver terminal to the first decoding strategy number of the sender terminal to decode the information; if decoding is successful, the recipient in the sender terminal display terminal number; Otherwise, the second decoding strategy of the letter sent to terminal number, interest rate for decoding, and decoding in the above results show that the recipient terminal.

Decoded information to the presence of terminal number does not belong to the characters, the first decoder to determine the success of decoding strategies. The

47

唐 山 学 院 毕 业 设 计

invention of a number of decoding messages, including the following steps: Received by the recipient terminal message sender terminal number extracted information; to determine whether the use of the first decoder for decoding strategy; if so, decoding strategies are the first terminal of the sender number decoding information; otherwise, to the second decoding strategy sender information terminal to decode the number. Decoding strategy described in the first side and receiving-end coding strategy number that corresponds to the number of decoding strategies. Encoded as described in the sender information terminal in the existence of numbers does not belong to the first character decoding strategies to determine first whether the decoding strategy can be successful decoding.

The invention described in the support of the mobile terminal number decoder include: receiver module for receiving text messages; first decoding module, receiver module connected with the above, the use of built-in number decoding strategy described in information sent to terminal number decode . Described in the mobile terminal include: determine the module, the module connected to the first decoder for decoding module to determine the first terminal of the sender number of the success of decoding information; second decoding module, the module connected with the judge referred to by described in the first decoding module of the terminal on the sender number of letters, after the failure of income decoder, using its built-in number decoding strategy described in the sender information to decoding terminal numbers. Described in the first decoding module decoding strategy built-in number for the receiver terminal number and encoding strategy that corresponds to the number of decoding strategies. Described in the first module built-in DTMF decoder decoding strategy. Described in the second module built-BCD decoder decoding strategy.

The beneficial effects of this invention is as follows:

The method of the invention to the receiver terminal number coding strategy used in the corresponding decoding strategy number of the sender SMS number decoded information to determine the success of decoding, if successful, re-use of the second number referred to the number of decoding strategies decode the information, so that increased information on the number of decoder compatibility.

The present invention in order to support the decoding method described in number to provide a mobile terminal, the judge added a module for decoding module to determine the first terminal of the sender number of the success of decoding information; and the second decoding module, for decoding module described in the

48

唐 山 学 院 毕 业 设 计

first terminal of the sender number of letters, after the failure of income decoder, using its built-in number decoding strategy described in the sender information to decoding terminal numbers. The invention of the number of methods can be decoded before decoding to determine whether the use of the first decoder for decoding strategy, if appropriate, directly to the second decoder decoding strategy. To be methods of the present invention also provides a mobile terminal, the judge added a module to determine the suitability of teeth! \decoder decoding strategies to decode and determine the results will be described in accordance with sender terminal number information is sent to the corresponding decoding module to decode; second decoding module, the module connected with the judge referred to in its use of built-in number decoding strategy described in the letter sent to terminal number, interest rate decoding.

The present invention method of the SMS messages received to decode the content before comparing the contents of the original message length and the length of the encoded content of the existence of differences between, as well as to determine whether there is compensation, and to judge according to the results of comparison to determine the use of What kind of decoding strategies to decode, so to avoid a blind decoding of the situation caused by garbled. In order to support the invention described in the contents of decoding methods, provides a mobile terminal, which added a fourth decoder module for docking strategy to ascii decode the SMS messages received to decode the content; compared to determine module, used to compare messages the length of the original content and receive the contents of the encoded length, as well as to determine whether there is compensation, and to determine the basis of comparison results will be the contents of the received messages forwarded to the corresponding decoder decoding module.

49

唐 山 学 院 毕 业 设 计

一种对短信号码解码的方法

1、一种对短信号码解码的方法,其特征在于,包括下列步骤:接收方终端收到短信后提取发送方终端号码信息,所述接收方终端以第一解码策略对发送方终端号码信息进行解码;若解码成功,则在该接收方终端上显示发送方终端号码;否则,以第二解码策略对发送方终端号码信息进行解码,并将解码结果显示在所述接收方终端上。

2、如权利要求1所述的方法,其特征在于,所述第一解码策略为与接收方终端的号码编码策略相对应的号码解码策略。

3、如权利要求2所述的方法,其特征在于,所述第一解码策略为二次拨号解码策略(DTMF)。

4、如权利要求3所述的方法,其特征在于,所述第二解码策略为发送方号码编码策略相对应的号码解码策略。

5、如权利要求3所述的方法,其特征在于,所述第二解码策略为二进制编码的十进制解码策略(BCD )o

6、如权利要求1至5任一项所述的方法,其特征在于,以解码后的信息中是否存在不属于终端号码的字符,来判断第一解码策略解码是否成功。

7、一种对短信号码解码的方法,其特征在于,包括下列步骤: 接收方终端收到短信后提取发送方终端号码信息;判断是否适合利用第一解码策略对所述发送方终端号码信,息进行解码;若是,则以第一解码策略对发送方终端号码信息进行解码,否则,以第二解码策略对发送方终端号码信息进行解码。

8、如权利要求7所述的方法,其特征在于,所述第一解码策略为与接收方终端的号码编码策略相对应的号码解码策略。

9、如权利要求7或8所述的方法,其特征在于,以所述编码后的发送方终端号码信息中是否存在不属于第一解码策略的字符,来判断以第一解码策略进行解码是否可成功。

10、一种对短信内容解码的方法,其特征在于,包括下列步骤:

若接收方终端被告知接收到的短信的短信内容是以全球移动通信7位编码策略(gsm7bit)编码,则该接收方终端判断原始内容的长度是否与编码后的内容长度相同,以及判断编码后的消息流中是否存在补偿位;若长度相同且不存在补偿位,则以美国信息互换标准代码解码策略(ascii )对所述短信内容解码,并将解码结果显示在该接收方终端上;否则,以gsm7bit解码策略对所述短信内容进行解码,并将解码结果显示在该接收方终端上。

中文翻译

50

本文来源:https://www.bwwdw.com/article/k1tw.html

Top