【毕业设计】基于TC35模块的GSM远程智能家居控制系统的设计_第1页
【毕业设计】基于TC35模块的GSM远程智能家居控制系统的设计_第2页
【毕业设计】基于TC35模块的GSM远程智能家居控制系统的设计_第3页
【毕业设计】基于TC35模块的GSM远程智能家居控制系统的设计_第4页
【毕业设计】基于TC35模块的GSM远程智能家居控制系统的设计_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、基于sim300模块的gsm远程控制系统的设计基于tc35模块的gsm远程控制系统的设计- 44 -摘要随着 gsm(global system for mobile communication)移动通信网络的迅速普及和竞争的日益激烈,新技术和新业务的开发和应用已经提到一个十分重要的位置。短消息业务(sms)作为 gsm 网络的一种基本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃发展起来。本文提出了一种基于 gsm 短消息的远程控制系统,在给出系统的总体设计的基础上,设计了系统的硬件和软件,并对其应用领域作了一些探讨和研究。系统以 gsm 网络作为远程信号的

2、传输平台。对 gsm 网络体系结构作了详细的讲解,并且着重讲述了对于本课题相当重要的短消息业务的通信原理。数据的传输方式主要是短消息方式,系统中采用 pdu 模式,对短消息的 pdu 编码和解码进行详细的讲述。短消息的接收和发送是通过 at 指令来实现的,讲述了常见的 at 指令及其使用方法。系统的硬件设计中,对主要硬件 tc35 和 msp430f149 单片机及其外围电路进行了详细的讲述。系统分为两个部分进行设计控制中心站和远程控制分站:控制中心站硬件包括一台 pc 机,gsm 通信模块 tc35,两者通过 rs232 连接;远程控制分站硬件包括 gsm 通信模块 tc35,msp430f

3、149 单片机,显示单元,各种传感器和数据采集与处理单元。系统的软件设计包括控制中心站软件设计和远程控制分站软件设计。远程控制分站软件设计中运用 iar 公司为 msp430 系列单片机开发的 c430 集成开发环境和 c 语言调试器作为程序开发工具,其软件包括单片机初始化、主程序、信号采集中断程序、通过串口的短消息接收和发送程序。论文的最后部分以 gsm 短消息的远程控制系统为基础,结合温度检测技术设计出一套基于 gsm 的远程温度控制系统,并给出了此系统应用领域的一些探讨和研究。关键词:msp430,gsm,tc35,远程控制,at指令abstractalong with rapid po

4、pularization and furious competition of gsm net work ,research and application of new technology and new operation have been mentioned to a quite important position. sms as a basic service of gsm network has been attented by more and more system operator and developer ,and kinds of applications base

5、d on this service have been rapid developed .this paper present a remote monitoring system based on gsm-sms, this paper first presents the system design as a whole, then presents the hard ware and software design of system, at last presents some discussions and investigation in applying field.in thi

6、s system gsm network is a medium for transmitting the remote signal, it presents detailed explanation of gsm networks system structure and emphasizes the communication principle that is important for the task. the mode of transmitting data is most sms. pdu mode is used during transmitting sms. it pr

7、esents en cording and decoding of sms pdu mode. transmitting and receiving sms is realized by using at command. it presents the familiar at command and using method.it presents tc35 and microchip msp430f149 mcu and peripheral circuit during design of system hardware. hardware of system includes two

8、parts: the monitoring center and the remote monitoring station. it consists of a computer and a tc35 communication module of gsm in the monitoring center .computer and tc35 are joined by rs232. it includes a tc35 communication module of gsm, a msp430f149 mcu, a display part and a gathering data part

9、.it includes the monitoring center software and the remote monitoring station software in design of system software. the remote monitoring station software is designed with c430 integration developing environment that iar designed formsp430 single chip and c-language debugger. it includes single chi

10、p initialization and main program and interrupt of gathering signal and sms receiving and transmitting program through the serial port .in the end of the paper, it presents a remote temperature monitoring system based on gsm, using the designed system of remote monitoring system based on gsm-sms and

11、 technique of measuring temperature. and then presents any discussions and investigation in applying field.keywords: gsm; sms; remote monitoring; pdu mode; at command;msp430目 录摘要iabstractii目 录iv前言- 1 -1 总体方案与论证- 3 -1.1 设计方案模块- 3 -1.2 无线通信模块- 4 -1.3 控制单元模块的选择- 4 -1.4 电源模块的选择- 5 -1.5 系统总体框架- 5 -2 系统硬件

12、模块设计- 7 -2.1 电源及复位电路的设计- 7 -2.1.1 msp430电源模块的设计- 7 -2.1.2 tc35的电源模块- 7 -2.1.3、复位电路- 8 -2.2 串口通信模块设计- 9 -2.3 gsm模块接口设计- 10 -2.3.1、gsm模块简介- 10 -2.3.2 gsm模块接口设计- 10 -2.3.3 指示灯电路- 12 -2.3.4 sim卡电路- 13 -2.4 串行存储器的设计- 14 -2.5 采集系统模块设计- 15 -2.6 外部继电器控制模块设计- 16 -2.7 单片机模块的设计- 17 -3系统软件设计- 21 -3.1串口程序设计- 22

13、-3.1.1串口初始化程序- 22 -3.1.2中断服务程序- 23 -3.2 存储程序设计- 25 -3.2.1写操作- 25 -3.2.2读操作- 27 -3.3短消息程序设计- 29 -3.3.1 at命令介绍- 29 -3.3.2 短消息的设置- 33 -3.4信息采集控制程序设计- 39 -总结- 41 -致谢- 42 -参考文献- 43 -附件- 44 -附件一:系统总电路图- 44 -前言短消息业务(sms)作为 gsm(globalsystem for mobile communication)网络的一种基本业务,以其连接简单、费用低廉、覆盖范围广、实现方便等优点得到越来越多的

14、系统运营商和系统开发商的重视,基于短消息业务的各种应用也蓬勃发展起来。短消息业务与语音及传真是 gsm 网络提供的主要电信业务,它通过无线控制信道进行传输,经短消息中心完成存储和转发功能,每条短消息的信息量为 140bit。在短消息的可靠传递基础上,gsm 专业调制解调器的出现给 gsm 的发展注入了新的活力,它改变了传统的以语音为主要的通信手段,使 gsm 网络数据通信得到广泛的应用1-3。目前市场上提供的gsm 调制解调器和模块提供了 rs232 标准数据接口,采用 at 指令控制,符合 etsi 标准 gsm0707 和 gsm0705。基于这种技术,以 gsm 网络作为无线传输平台可以

15、开发出多种应用领域。目前远程控制主要有以下几种方式:短距离长线控制;通过市话网;通过 internet 网络;通过自组网络(cdpd 网);通过数传电台方式。短距离长线控制和通过自组网络(cdpd网)首先要自行建设通信网络,建网初期投资巨大,运营期间自主维护耗费人力物力较大,信号质量得以保证,效果好,相对运营费用高;通过市话网和 internet 方式以现有的网络为依托,无需自行建设通信网络,但是由于市话网和 internet 难以达到工业现场覆盖面,接入网络受到限制,局限性很大,网络运行效果取决于网络运营商,线路安全不能得到保证,其通信效果好,信号量大,运营费用相对低廉;数传电台出现较早,应

16、用很广泛,是一种不错的无线数传方式,但是建网初期投资巨大,数传电台的传输范围有限,而且容易受到空间无线信号的干扰,信号不能得到保障,但是数传电台信号传输实时性好,运行费用低。远程控制系统应用广泛,遍及国民经济的很多领域,而目前这些控制系统无论从成本、可靠性、稳定性、使用方便性、还是维护的难易程度等方面都不能最大限度的使人满意。因此本文把 gsm网络引入到远程控制系统中,提出了基于 gsm 短消息的远程控制系统。gsm 网络是目前基于时分多址技术的移动通信体制中最成熟完善、覆盖面最广、功能最强、用户最多的移动通信网络,gsm 短消息业务不需要建立拨号连接,只需把待发的消息加上目的地址发送至短消息

17、中心,再由短消息中心转发到最终目标。运用 gsm 短消息实现远程控制可靠性高、信号传播距离远、覆盖面积广,并且可以节省建网初期的巨额投资,运营期间无需维护网络,运行费用低廉。1 总体方案与论证1.1 设计方案模块本设计是一个基于gsm模块的远程控制系统,gsm就是global system for mobile communications 【电信】全球通, 全球移动通信系统 (亦称“泛欧数字式移动通信系统”, 是一个根据欧洲电信标准协会出版的 gsm 技术规范建造的国际无线蜂窝网) 。gsm模块,是将gsm射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、gs

18、m射频处理、基带处理并提供标准接口的功能模块。本设计是一种利用手机短信息实现对远程监控设备如交通路灯,家庭里的门锁、家用电器、可视对讲、报警装置等进行智能控制或信息采集交流的设计思路。系统的开发基于短信息技术、自动控制技术、计算机技术、数字通信技术及加密技术,系统利用相关的网络、计算机系统和控制器,以短信息为基本控制指令和数据信息传送方式,实现手机无线遥控和数据传送,通过专设的短信控制中心和服务中心,为远程监控设备提供全方位的数字化服务。本设计就是用单片机控制gsm模块采集和控制远程设备信息的无线通信控制系统。本设计采用模块化设计,整个系统由gsm模块、控制模块、电源模块和外围模块组成,系统的

19、整体方案框图如下图1-1:1.2 无线通信模块我们设计此系统的前提是基于短信方式,简单、方便使用、价格低廉的实用性系统,而不需要联网使用的gprs通信模块,如sim300t和mc35等系列模块。所以我们有两种选择,一是用tc35模块和tc35i模块。tc35和tc35i功能相似,随着西门子公司对tc35系列产品的发展,tc35i在相同技术领域相对tc35更胜一筹,但它的价格比tc35要昂贵得多,而且在本设计系统中的技术要求tc35同样能够达到标准,因此综合来考虑,选择tc35做为本设计系统的无线通信模块。1.3 控制单元模块的选择控制模块是本设计的核心,通过外围电路和向gsm模块写入相关程序,

20、控制部分要实现能够控制gsm模块短消息的接收和发送、接收频率、功耗大小、工作模式等各项参数的功能。因此必须需要一个微控制器才能达到要求,而msp430f149单片机开发板不仅满足设计要求,而且是自带a/d转换器、显示器和本设计调试时所需的温度传感器模块,在短时间内和有限的条件下使设计更加轻松和方便。因此本设计采用msp430f149单片机开发板作为系统的控制核心。1.4 电源模块的选择单片机的供电电压要求是3.3v,tc35模块要求的供电电压要求是2.5v5.0v。由于收音机模块的应用范围很广,比如手机中就采用3.7v锂电池供电,dvd、电视等系统中则是对220v市电进行变压后供电。本设计中采

21、用7805稳压芯片对系统进行供电,由于这个电源可以很容易得到,设计中不再单独给出。1.5 系统总体框架本系统采用msp430控制tc35无线模块进行远程通信。通过读取tc35接收到的短信内容从而控制相应的外部继电器组工作,或者控制数据采集系统工作,把相应的数据通过串口0发给tc35模块,进而发送数据。图1.1所示为系统远程端系统框图:图1.1 系统远程端框图系统远程端负责数据采集及控制外部设备,以及存储重要的数据。系统由msp430单片机主控,tc35作为无线通信模块,继电器组控制外部设备,传感器组为数据采集模块,24lc02b串行存储器作为数据存储器,电源模块提供模块的电源供应。图1.2所示

22、为系统终端系统框图:图1.2 系统终端框图系统终端由用户gsm手机或者pc机,pc由串口接tc35模块,上位机控制tc35模块通信。2 系统硬件模块设计通过图1.1可知,硬件系统主要包括电源模块、串口模块、采集控制模块、gsm模块、串行存储器模块及单片机模块。下面对各个模块进行详细介绍。2.1 电源及复位电路的设计2.1.1 msp430电源模块的设计 msp430电源模块:使用tps70633稳压芯片经稳压得到3.3v电压。如图2.1所示。 图2.1 3.3v电源电路为了使输出的3.3v输出电源的纹波小,在输出部分用了一个100uf和0.1uf的电容,另外在芯片的输入管脚也放置了一个100n

23、f的滤波电容,以减小输入端受到的干扰。2.1.2 tc35的电源模块tc35模块需要提供4v直流电压,如图2.2 图 2.2 3.6v电源电压对于tc35模块采用的4v供电,为了使输出的4v电压的纹波小,在输出部分用了一个22pf和100uf的电容,实现滤波。另外在芯片的输入管脚也放置了100nf的滤波电容,以减小输入端受到的干扰。2.1.3、复位电路在单片系统中,为了保证系统在上电时进行初始化,同时也为了保证对电源的监视,需要采用复位芯片,在此系统中采用max809str芯片,复位电路如下图: 图2.4 复位电路由上图可以看出:该电路非常简单,只在电源管脚处加了一个0.1uf的电容进行滤波处

24、理,以减小干扰。2.2 串口通信模块设计该系统实现的串口电路(rs-232电路)主要是msp430与上位机进行通信,实现单片机系统与上位机进行通信处理。由于单片机与上位机进行通信时接口电平不同,因此需要进行接口转换,这里采用max3238e芯片来完成接口电平的转换。具体的rs-232电路图如图所示。 图2.5 rs-232电路图 由图可以看出,通过一个上拉电阻将shdn管脚拉高,使该芯片一直处于工作状态,如果系统需要处于低功耗状态,也可以通过单片机来控制该管脚。工作时将该管脚设置为低电平,需要处于低功耗时将该管脚设置为高电平这样很容易实现控制。在管脚c1+、c1-、c2+、c2-、v+和v-分

25、别放置0.1uf电容实现充电作用,满足相应的充电电泵的要求,管脚t1out、tin、r1out和rin分别是232转换的输入/输出脚,实现单片机的ttl电平与上位机的接口电平的转换。考虑到减小电源的干扰,还需要在芯片的电源输入管脚加一个104pf的电容来实现滤波,以减小输入端受到的干扰。2.3 gsm模块接口设计2.3.1、gsm模块简介本系统采用tc35。tc35是西门子公司推出的一种完整的无线gsm模块,主要由gsm基带处理器、gsm射频模块、供电模块(asic)、闪存、zif连接器、天线接口六部分组成。它可以快速、安全可靠地实现系统方案中的数据传输、语音传输、短消息服务(short me

26、ssage service)和传真服务。模块的工作电压为3.34.8v。该模块有at指令集接口,支持文本和pdu模式的短消息第三组的二类传真等。此外,该模块还具有电话簿功能、多方通话、漫游检测等功能。常用工作模式有省电模式、idle、talk等模式。通过独特的40管脚zif连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过zif连接器及50天线连接器,可分别连接sim卡支架和天线。基带处理器作为tc35的核心,主要处理gsm终端内的语音、数据信号,并涵盖了蜂窝射频设备中所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持fr、hr和efr语音编码。2.3.2 gsm模

27、块接口设计tc35模块主要通过串口与单片机进行连接,从而单片机实现对tc35模块的控制。虽然tc35的串口提供了许多控制线,但由于考虑到设计接口的简单性,并且与单片机的uart进行连接,所以采用两线(txd、rxd)连接。对tc35模块通信的控制可以通过软件来实现,采用软件实现控制具有使用灵活等特点,也很好地避免了过多硬件信号的检测。对于tc35的其它管脚在不使用的时候,如果该管脚为输出时,一般将该管脚悬空;如果该管脚为输入管脚,则需要将该管脚通过10的电阻上拉。另外由于/igt管脚是控制tc35模块工作的管脚,所以需要将该管脚上拉,并且将该管脚与单片机进行连接,从而可以通过单片机来控制tc3

28、5模块的工作状态。在设计时需要考虑tc35模块的电源管脚并连在一起,由于tc35是一个功能完全的模块,因此这里不需要做任何的信号处理和射频处理。另外tc35模块还需要连接sim卡座,这样才能够实现一个完整独立的gsm终端。以下为tc35模块的接口设计。由图可以看出,tc35接口电路的设计比较简单。在进行串口设计时,虽然tc35模块串口管脚的工作电平是cmos电平,单片机串口管脚的工作电平是ttl电平,但由于单片机的高电平和低电平的逻辑判断电平可以实现屯tc35的管脚进行连接(具体可以参看msp430f149的数据手册),因此tc35模块的串口线直接与单片机的串口线进行连接。由于tc35模块的串

29、口管脚中的dtr0和rts0两个管脚是输入管脚,因此分别通过10k的电阻将这两个管脚拉高。/igt为tc35模块的工作状态控制管脚,该管脚首先通过一个电阻拉高,平时该管脚为高电平,处于不工作状态;另外该管脚还同时与单片机的一般i/o端口进行连接,这样通过单片机来实现对tc35模块的工作状态的控制,当单片机在该管脚送低电平时,则tc35模块工作。tc35模块的sync管脚用来指示gsm模块的工作状态,连接一个指示灯来指示工作状态,如图2.6、图2.7所示。图2.6 tc-35_zif管脚接口电路2.3.3 指示灯电路tc35 有一个同步信号脚sync (32脚 synchronization s

30、ignal ) ,该脚是一个同步信号输出端,该脚输出的信号,反应了模块的工作情况。本系统在该端通过一个三级管接入 led 灯,接法如图 2.7 所示。 led 灯受到该脚信号控制,可以显示 tc35模块运行的状态。图2.7 指示灯电路1)、 led 灯熄灭时:表示 tc35 处于关闭、休眠、报警或者充电状态二;2)、 led灯 600ms 亮 600ms 暗:表示 sim 卡没有插入,或者正在搜索网络,或者正在认证用户,或者正在注册网络;3)、 led 灯 75ms 亮 3s 暗: 表示已经注册上网,处于待机状态二; 4)、 led灯 75ms 亮 75ms 暗 75ms 亮 3s 暗:表示一

31、个或多个 gprs 文件被激活二; 5)、 led 灯闪烁:表示 gprs 的数据传输,当 gprs 数据传输时,在交换一个数据包后, le 。灯将会在一秒内点亮。闪烁的持续时间约为 0 . 5 秒。2.3.4 sim卡电路tc35模块的sim卡座采用的是molex座,该座有8个管脚,而tc35模块的sim管脚只有6个管脚,如下图所示。其中编程端我们不用,其它的接口分别对应于 tc35 的 5 个管脚,sim上的ccrst、ccio、cccl、ccvcc和ccgnd通过sim卡阅读器与tc35的同名端直接相连。其接口示意图如下图图2.8所示: 图2.8 sim卡接口示意图图2.8 所示的图为s

32、im座接口电路图,由图可以看出sim座直接与tc35模块的zif连接器对应的sim卡管脚进行连接,在需要的地方加了电容进行滤波处理。当sim座的管脚7与tc35模块的simdata进行连接时,则用来模拟sim卡插入的情况;当sim座的管脚7不与tc35模块的simdata进行连接时,则用来模拟sim卡没有插入的情况。图2.9为sim座接口电路。 图2.9 sim座接口电路图2.4 串行存储器的设计在本系统中,串行存储器使用24lc02b芯片来实现。24lc02b主要是通过i2c实现与单片机的连接,具体的电路如图2.10所示。 图2.10 串行存储器电路由图可以看出,该电路的设计比较简单。将24

33、lc02b的第7管脚(写保护管脚)接地,可使该芯片始终处于可以进行读/写的状态。在实际设计的时候,也可以将wp管脚与单片机的一个一般i/o端口进行连接,通过单片机来控制24lc02b就处于写保护状态;单片机在该管脚输出低电平,则24lc02b不处于写保护状态。在本电路中,主要为了简化设计,直接将wp管脚接地,使24lc02b不处于写保护状态。24lc02b的a0、a1和a2都接地,表示该器件的地址为000.由于i2c是总线工作方式,该总线上可以挂接很多器件,所以总线上的每个器件都应该有相应的地址,这样才能实现寻址操作。24lc02b的scl和sda管脚分别与单片机的p1.2和p1.3进行连接,

34、连接的方式是i2c总线方式。由于msp430系列单片机里有的单片机没有i2c接口,因此本系统在设计时采用msp430单片机的一般i/o端口p1.2和p1.3分别作为i2c总线的scl和sda线,采用软件来模拟i2c总线,从而实现与24lc02b进行接口。在设计时,需要将scl和sda分别通过一个10k的电阻将其拉高,以满足i2c工作条件。此外,为了减小电源的干扰,还需要在24lc02b芯片的电源输入管脚加一个0.1uf的电容来实现滤波,以减小输入端受到的干扰。2.5 采集系统模块设计在该系统中主要考虑模拟前端为传感器,从传感器送来的是标准信号,即4ma到20ma,这样设计具有一定的通用性,只要

35、前端接不同的传感器就可以采集不同的信号源。由于a/d转折基准为电压,也就是参考源为电压,所以a/d转换的是电压,这样需要将电流信号转换成电压信号。如图2.11所示为模拟量采集具体的电路。图2.11 采集电路设计由图可以看出,采集电路通过一个电阻将电流信号转换成电压信号,为了提高采集的进度,需要采用高精度的电阻,这里采用的是精度为1%的电阻。电路中采用二极管作为esd保护电路,考虑到干扰问题,采用电容进行滤波处理,增加采集电路的抗干扰问题。2.6 外部继电器控制模块设计在某些应用场合,需要控制设备的状态,比如开机或者关机,因此本系统也设计了相应的控制电路。该控制电路相对比较简单,主要利用继电器来

36、实现,具体的控制电路如图2.12所示。在图2.12中,p4.0、p4.1、p4.2和p4.3与单片机连接的同时也接地。在一般状态下,继电器处于开路状态,当单片机在p4.0、p4.1、p4.2和p4.3管脚输出高电平时,继电器吸合,则电路导通,这样就可以控制设备的状态了。图2.12 控制电路2.7 单片机模块的设计msp430f149 结构概述msp430 系列单片机是一个特别强调超低功耗性能的单片机品种。它适合应用在各种要求极低功耗的场合,具有一定的技术特点。在这个系列中有多个型号,它们由一些基本功能模块按不同的应用目标组合而成。其中 flash 型芯片又可分为几个分支,如 11x、11x1、

37、13x、14x 等。它们都具有开发设备简便、可现场编程等特点。msp430 系列采用存储器-存储器结构,即用一个公共的空间对全部功能模块寻址,同时用精简指令组对全部功能模块进行操作34,35。图2.13 是 msp430f14x 系统结构图。首先来看一下 cpu(central processing unit)。msp430 的 cpu 运行正交的精简指令集,由 16 位 alu(arithmetic and logic unit)、指令控制逻辑和 16 个寄存器组成。寄存器中有 4 个具有特殊用途,即程序计数器r0/pc(register 0/program counter)、堆栈指针 r1

38、/sp(stack pointer)、状态寄存器和常数发生器 r2/sr/cg1(special register/constant generator 1)、r3/cg2。除了 cg1 和 cg2,所有寄存器都可作为通用寄存器,用所有指令操作。常数发生器只用于指令执行时提供常数,但不能存储数据。对cg1、cg2 访问时的寻址模式可以区分所获得的常数数值。pc(program counter)、sp 和 sr 配合精简指令所实现的控制,可以使应用系统的程序设计实现复杂的寻址模式和软件算法。对程序存储器进行访问时,对于程序代码总是以字形式取得,而对于数据可以用字或字节指令进行访问。每次访问均需要

39、 16 位数据总线(mdb,即:memory data bus)和访问当前存储器模块所需的地址总线(mab,即:memory address bus)。存储模块由内部模块允许信号自动选中,这样可以减少总的电流消耗。对于 msp430f 系列,程序存储器是 flash 的。在程序设计中,可以将数据安排在程序存储器中,它们可以用字或字节指令方式访问,因此可以实现查表处理等应用。64 kb 空间顶部的 16 字(0ffffh0ffe0h)保留用作复位及中断的向量地址。数据存储器(ram)与程序存储器相同,经地址总线(mab)和数据总线(mdb)与 cpu 相连。ram 内的数据可以以字或字节宽度访问

40、。ram与程序存储器是经过相同的地址总线和数据总线与 cpu 相连。 图2.13 单片机电路图单片机电路作为整个系统的核心控制部分,主要采集来自传感器的数据,将数据传输数据中心。单片机通过a/d通道进行数据采集,单片机与gsm模块之间的通信采用单片机的串口0(uart0)来实现,gsm模块与单片机接口时不不需要进行电平转换。单片机与pc通信则需要通过串口芯片(sp3220)完成接口电平的转换。此外,单片机还与串行存储器接口,以记录某些关键数据。单片机电路如图2.13所示。通过图2.13可以看出,该单片机的接口电路非常简单。在单片机的时钟设计上与其他单片机有一定的区别:msp430f149单片机

41、采用两个时钟输入,即一个32khz的时钟信号,另外一个为8mhz的时钟信号,该系统的时钟部分都是采用晶体振荡器来实现的。考虑到电源的输入纹波对单片机的影响,在电源的管脚增加一个0.1uf的电容来实现滤波,以减小输入管脚处受到的干扰,另外单片机还有模拟电源的输入端,因此在这里需要考虑干扰问题,由于在该系统中的干扰比较小,因此模拟地和数字地共地,并在模拟电源输入管脚增加一个滤波电容以减小干扰。单片机的串口0与gsm模块接口,串口1与pc进行通信,由于接口电平不同,因此串口1与rs-232芯片进行连接。单片机的p1.2和p1.3管脚与串行存储器进行接口。此外,单片机的p4.0、p4.1、p4.2和p

42、4.3分别与继电器进行连接,以控制设备的状态。 3系统软件设计经过前面的系统硬件设计可知,系统的软件主要包括串口程序、存储程序、短消息程序、采集控制程序和测试程序等。本系统软件采用了前后台的设计方式,前台系统是主程序,后台是由所有的中断服务程序,如串口接收中断服务程序,定时器中断服务程序等功能模块组成。装置的远程报警和开启功能通过软件控制实现,在使用装置前需准备好一张已开通的gsm网sim卡,并在手机终端上向sim卡第一个电话本位置存入报警的目的手机号码(无+86),此号码也是用户进行远程开启时的唯一有效号码;向sim卡的第一个短信存储位置存入欲发送的报警短信内容。将设置好的sim卡装入装置并

43、上电后,装置即可按程序设计的流程运行。iar 公司为 msp430 系列单片机开发的 c430 集成开发环境和 c 语言调试器作为程序开发工具,程序主要由三部分代码组成:启动与初始化、报警监控、远程开启与控制。启动与初始化的设计图3.1 tc35模块的初始化装置上电后首先必须对单片机、系统变量等进行初始化,然后通过拉低igt启动tc35,并通过发送at命令进行模块的初始化设置,初始化流程如图3.1所示。单片机的初始化包括设置波特率、设置外部中断(电平触发方式)和串口中断等,tc35的初始化包括设置短信到达时提醒方式、接收短信的存储位置、电话薄的寻址位置等,初始化过程中用到的at命令详见表1。3

44、.1串口程序设计在本系统中,串口0与gsm模块接口,串口程序部分需要实现串口0。串口程序主要包括初始化和中断服务程序两个部分。下面具体介绍程序实现的代码。3.1.1串口初始化程序串口初始化程序主要包括初始化和中断服务程序两个部分。下面为体和程序。void init_uart0(void) /将寄存器的内容清零 u0ctl = 0x00; /数据位为8bit u0ctl += char; /将寄存器的内容清零 u0tctl = 0x00; /波特率发生器选择smclk u0tctl += ssel1; /波特率为19200 ubr0_0 = 0xa1; ubr1_0 = 0x01; /调整寄存器

45、 umctl_0 = 0x49; /使能uart0的txd和rxd me1 |= utxe0 + urxe0; /使能uart0的rx中断 ie1 |= urxie0; /使能uart0的tx中断 ie1 |= utxie0; /设置p3.4为uart0的txd p3sel |= bit4; /设置p3.5为uart0的rxd p3sel |= bit5; /p3.4为输出管脚 p3dir |= bit4; return;通过上面的程序可以看出,只要设置相应的寄存器就可以设置串口工作的参数。在上面的程序中,串口0的通信率为19200波特/秒。3.1.2中断服务程序串口进行数据的发送和接收处理时

46、,采用中断服务程序来实现,下面为具体的中断服务程序。/ 处理来自串口 0 的接收中断#if _ver_ 200 interrupt uart0rx_vector void uart0_rx_isr(void)#else #pragma vector=uart0rx_vector _interrupt void uart0_rx_isr(void)#endif char chrtemp; /接收来自的数据 uart0_rx_bufnrx0_len_temp = rxbuf0; nrx0_len_temp += 1; chrtemp= uart0_rx_bufnrx0_len_temp - 1;

47、if(chrtemp = 13) | (chrtemp = 10) /接收到一帧信号 nrx0_len= nrx0_len_temp; nrev_uart0 = 1; nrx0_len_temp = 0; / 处理来自串口 0 的发送中断#if _ver_ = ntx0_len) /数据发送完毕 nsend_tx0 = 0; ntx0_len = 0; ntx0_flag = 1; 在上面的中断服务程序中,为了与其他程序进行数据交互,使用全局变量或者全局缓冲区来实现,例如“uart1_tx_buf”和“ntx1_flag”等。3.2 存储程序设计在本系统中,利用串行存储器存储某些重要数据。单片

48、机通过i2c与串行存储器进行接口。由于本系统使用的单片机是msp430f149,该单片机没有i2c外围接口,因此需要采用一般的i/o端口来模拟i2c总线的功能,从而实现串行存储器的读/写操作。本系统使用的串行存储器为24lc02b.串行存储器主要有读/写操作,下面分别进行详细介绍。3.2.1写操作24lc02b的写操作有两种形式:单字节写和按页写。下面对单字节写和按页写两种方式分别进行介绍。单字节写就是在指定的地址中写入内容。首先单片机发送控制字节,然后发送地址字节,最后输入写的内容,具体程序如下。int writesinglebyte(char naddr,char nvalue)int n

49、temp = 0xa0;/写命令/ 启动数据总线i2c_start();/ 发送控制字节i2c_txbyte(ntemp);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 发送地址字节i2c_txbyte(naddr);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 发送数据字节i2c_txbyte(nvalue);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 停止总线i2c_stop(); re

50、turn (ntemp & sda);按页写是一次写入8个字节。按页写操作的第一个字节的操作和按字节写操作是一致的。当写完第一个字节后,单片机继续写下一个内容,在写完最后一个字后,单片机在总线上产生停止信号,需要注意的是:一次最多只能写入8个字节,如果操作多于8个字节,则写入的内容会被黑覆盖。下面为具体的程序。int pagewrite(char naddr,char pbuf) int i;int ntemp = 0xa0;/写命令/ 启动数据总线i2c_start();/ 发送控制字节i2c_txbyte(ntemp);/ 等待 ackntemp = i2c_getack();if(nte

51、mp & bit3) return 0;/ 发送地址字节i2c_txbyte(naddr);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 发送数据字节for(i = 0; i 8;i+)i2c_txbyte(pbuf0);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 停止总线i2c_stop(); return (ntemp & sda);3.2.2读操作24lc02b的读操作有3种形式:当前地址、随机读和顺序地读。当前地址读需要知道上次读操作后的地址,因此不

52、具有操作独立性,这里不做介绍。下面对随机读和顺序读你好吗进行介绍。随机读可以读任何地址的数据。首先由单片机发送一个控制字节,然后发送地址数据,最后读出该地址的数据。下面给出具体的程序。int readrandom(char naddr, char *nvalue)/写命令int ntemp = 0xa0;/ 启动数据总线i2c_start();/ 发送控制字节i2c_txbyte(ntemp);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/ 发送地址字节i2c_txbyte(naddr);/ 等待 ackntemp = i2c_

53、getack();if(ntemp & bit3) return 0;/ 启动数据总线i2c_start();/ 发送控制字节ntemp = 0xa1;i2c_txbyte(ntemp);/ 等待 ackntemp = i2c_getack();if(ntemp & bit3) return 0;/读取数据 *nvalue = i2c_rxbyte();/ 停止总线i2c_stop();/成功返回return 1;顺序读是连续读出多个字节。它的开始操作和随机读是一样的,在读完一个字节后,对24lc02b发送确认(ack)信号,再继续下一个字节,当读到最后一个字节的时候,音片机需要在总线上产生停

54、止信号,具体程序如下。int readseq(char naddr, char nvalue, int nlen)int i;int ntemp = 0xa0; /写命令i2c_start();/ 启动数据总线i2c_txbyte(ntemp); / 发送控制字节ntemp = i2c_getack();/ 等待 ackif(ntemp & bit3) return 0;i2c_txbyte(naddr); / 发送地址字节ntemp = i2c_getack();/ 等待 ackif(ntemp & bit3) return 0;i2c_start();/ 启动数据总线ntemp = 0xa1;i2c_txbyte(ntemp); / 发送控制字节ntemp = i2c_getack();/ 等待 ackif(ntemp & bit3) return 0;for(i = 0; i nlen; i+)/读取数据nv

温馨提示

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

评论

0/150

提交评论