《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于TC35短信模块的开关远程控制系统设计
基于TC35短信模块的开关远程控制系统设计
2015年微型机与应用第4期
王 超1,郭显久1,2
(1.大连海洋大学 信息工程学院,辽宁 大连 116023; 2.辽宁省海洋信息技术重点实验室,辽宁 大连 116023)
摘要: 主要介绍了单片机短信远程控制系统的设计。该系统以GSM移动通信网络作为远程控制信号的通信平台,用户可通过手机等设备向远程控制系统发送特定的指令短信,远程控制系统可根据指令短信的内容进行判断并执行设定的命令,控制继电器开关的跳变。该远程控制系统有较好的研究价值和发展前景。
Abstract:
Key words :

  摘  要: 主要介绍了单片机短信远程控制系统的设计。该系统以GSM移动通信网络作为远程控制信号的通信平台,用户可通过手机等设备向远程控制系统发送特定的指令短信,远程控制系统可根据指令短信的内容进行判断并执行设定的命令,控制继电器开关的跳变。该远程控制系统有较好的研究价值和发展前景。

  关键词TC35X5045初始化;远程控制

0 引言

  随着通信技术的发展,无线通信网络在当今人们的生活中发挥着越来越重要的作用,尤其以GSM为代表的手机移动通信网络,在工业控制和遥控领域有不断扩大的趋势。基于短信的远程控制是通过手机等设备将控制命令以短消息的方式发送至手机通信网络,手机通信网络即可将控制命令转发到远程控制器,而不需要进行拨号连接,从而实现了对远程设备的控制[1-2]。本文就是根据这个原理设计了一套基于短信模块的远程开关控制系统,使用的是西门子公司推出的无线通信GSM模块——TC35,自主研发的外围开关电路实际应用于一套海洋环境参数检测系统的远程复位开关的控制。

1 TC35模块

  目前,国内已经开始使用的GSM模块种类较多,常用的有Falcon的A2D系列、Wavecome的WMO2系列、西门子的TC35系列、爱立信的DM10/DM20系列、中兴的ZXGM18系列等。其中,西门子推出的TC35系列模块设计紧凑,集射频电路和基带于一体,向用户提供标准的AT命令接口,兼容性强,为数据、语音、短消息等提供快速、可靠、安全的传输,方便用户应用开发和设计,因此其具有很高的性价比,并且已经获得国内无线电设备入网证[3]。因此,本设计选用西门子TC35系列的XC-TC35_V3.0 GSM模块。

001.jpg

  本设计中使用的GSM模块是XC-TC35_V3.0(简称TC35),其实物如图1所示,图中已经就引脚资源做出了标记,后面会给予介绍。

  TC35工作在EGSM900和EGSM1800双频段,电源范围为直流3.3~4.8 V,SIM卡电压为3 V/1.8 V。

  TC35的数据接口(UART CMOS电平)通过AT命令可以双向传输指令和数据。它支持Text和PDU格式的SMS短信,其中,Text支持英文短信的格式,PDU支持中文短信的格式[4-5]。

  引脚资源参见图1。

  (1)电源接头:5.5×2.1接口输入电压7~12 V,实物中标配的是9 V电源。

  (2)电源输入电压排阵接口:上正下负,输入电压7~12 V。

  (3)电源开关按键。

  (4)4 V电压输出排阵接口:上正下负。

  (5)手动/自动启动设置:上面两针相连为手动启动,右边两针相连为自动启动(详见使用说明)。本设计用于远程控制,所以使用自动启动模式。

  (6)通信模式设置:与PC通信时,6针全裸;与单片机通信时,上面4针两两上下连接。本设计中是与STC89C52RC型单片机相连。

  (7)DB9串口头:接PC串口,让PC与TC35通信。

  (8)手动启动按键:手动启动模式下使用。

  (9)串口TTL接口:直接连接单片机,对应连接R—P3.0、T—P3.1、GND—GND。

  (10)语音接口。

  (11)网络指示灯:寻找到网络时指示灯为1亮3灭;没有网络连接时1亮1灭。

  (12)来电指示灯:默认时常亮,当有来电、短信时灯会闪烁。

2 硬件电路设计

  TC35使用的标配电源是9 V直流电源,而单片机的电源是5 V直流电源,为避免使用两个电源,在电路中设计了电源模块。开关选用标准电压为9 V的继电器开关。因为设计的开关电路工作在海洋深处,不方便现场操作,考虑到系统可能会出现死循环(死机)的情况,所以在电路中使用了X5045芯片的看门狗功能,为系统提供硬件复位。硬件电路设计原理图如图2所示。

002.jpg

  电源模块使用标准器件7805将9 V电压转换为5 V电压。单片机选用STC89C52RC,本设计中选用P1.7引脚控制继电器。

  X5045是一种三合一功能监控芯片,本文中使用其看门狗复位功能。用SPI总线与处理器通信,是兼有存储监测的单片机系统的最佳选择。X5045的引脚封装图如图3所示,其接口说明如下[6]:1为CS/WDI,使能及看门狗复位输入;2为SO,数据输出(可与SI复用);3为WP,写保护(低电平有效);4为Vss,参考0电位;5为SI,数据输入;6为SCK,时钟输入;7为RESET,复位信号输出(必须接上拉电阻);8为VCC,电源电压。

003.jpg

  X5045与单片机接口电路如图3所示,因该电路中只需要看门狗功能,所以没有对芯片进行写保护,直接将WP引脚接上高电平。另外复位信号引脚RESET与单片机的复位引脚相连,而且必须加上拉电阻。其他4个引脚与单片机I/O接口相连即可,可根据设定电路方便地选择合适的I/O接口连接。

  X5045在每一次通信之前,都必须输入2 B的操作数据。其中有9 bit是操作地址,3 bit功能选择位。地址结构如下[6]:

  0 0 0 0 A8 M2 M1 M0 A7 A6 A5 A4 A3 A2 A1 A0(A为地址,M为功能)

  其第一个字节定义了不同的功能,功能选择表如表1所示。

005.jpg

  X5045内置一个状态寄存器,其为8 bit数据,有单独的功能操作数据,用于设置看门狗和数据锁存。当读写状态寄存器时,地址位数据就成为状态寄存器的数据镜像。其数据结构如表2[6]所示。

006.jpg

  其中,7、6两位必须是0,WD1、WD0是看门狗定时器复位时间选择,WD1、WD0和定时器复位时间选择的关系如表3所示。

007.jpg

  BL1、BL0是数据分区保护选择,本设计中只用到看门狗功能,所以设置BL1BL0=00,没有对数据分区选择保护;WEL是写保护位,0为禁写,1为可写,且运行一次芯片读写操作后此位自动置0,所以编程中每运行一次都要将该位置1;WIP是芯片读忙位,0为就绪,1为芯片忙,进行读写操作前做好先读此位。

3 系统程序设计

  程序设计过程中,看门狗电路是在系统发生错误时才会被触发,从而复位电路。在程序开始,会在初始化中先对X5045进行初始化,这样看门狗就开始工作了。在后续的程序中,需要算好时间,在规定的时间内去“喂狗”,这样就可以保证系统程序的正常工作了。程序设计流程图如图4所示。

  程序设计开始时要对设备进行初始化,包括初始化串口、TC35和X5045。初始化串口即是对单片机串口的初始化,不做具体介绍。下面介绍TC35和X5045的初始化过程。

  3.1 TC35初始化


004.jpg

  前面已经提到,TC35模块支持Text和PDU两种格式的SMS短信,并且提供了标准的AT命令接口。所以,先向TC35发送标准的AT命令,做简单询问,然后设定波特率,指令为“AT+IPR=4800”。设定短信格式为Text格式,“AT+CMGF=1”;设定字符集‘AT+CSCS=“GSM”’。向TC35发送的每条指令,其末尾都要有13、10、0,其中13表示回车;10表示换行;0为笔者编程自定义的,作为发送结束标志。TC35接收到以上发送来的AT指令,均会响应:‘OK’、13、10,即命令有效。

  初始化之前,需要设置几个标志位:

  r_OK bit 20H.0;收到TC35发来OK的标志

  s_RAM bit 20H.3;1代表令串口输出RAM数据

  s_OVER bit 20H.4;1代表串口输出完毕RAM数据

  在本文设计的程序中,TC35初始化和读短信程序中反复调用串口中断程序。程序中所有的发送指令(数据)和响应指令接收数据都在调用中断程序中执行完成,大大减少了编程的复杂性,提高了编程和执行效率。

  3.2 X5045初始化

  X5045作为一个独立芯片,要使用其看门狗复位功能,就需要对其内部的状态寄存器进行初始化设置。主要是先对芯片的读写功能进行设置,然后再设置状态寄存器的值。下面是部分初始化程序:

  X5045_INIT:

  CALL WRITE_ABLE//调用写允许子程序

  CALL READ_STATUS//调用读当前寄存器状态子程序

  MOV B, A

  MOV A, 40H

  MOV C, ACC.4

  MOV B.2,C

  MOV C,ACC.5

  MOV B.3,C

  CLR SCK

  CLR CS

  MOV A,#WREN_INST

  CALL WRITE_EEPROM

  MOV A,B

  CALL WRITE_EEPROM

  CLR SCK

  SETB CS

  CALL READ_BUSY

  RET

  状态寄存器最高位为1,设置看门狗的复位时间是1 400 ms,设置WEL=1,所以要在STATBYT存入参数82H。X5045初始化完成后,看门狗开始工作,在1.4 s内要给予一次“喂狗”,保证电路正常工作。当系统出现死机或死循环时,1.4 s内没有“喂狗”,看门狗复位,系统重启。

  3.3 短信读取与执行

  初始化完成后,单片机会向TC35发送读短信指令。根据TC35的响应,将TC35发送回来的字符存入定义好的串口缓冲接收区,再对缓冲区中的数据进行分析,判断短信内容是否符合设定的短信内容。如果短信内容不符合设定内容,删除本条短信,再去读下一条短信;如果符合设定短信内容,则执行命令,然后删除本条短信,再去读下一条短信。如此单片机一直处在循环读短信的状态。在本设计中是对P1.7置0,这样会让继电器开关跳变,从而达到远程控制的目的。

  短信内容是特定的,不是任意乱发的,这样可有一定的安全保证。本文设计的短信内容为8个字符:DLXINX01,前面6个是固定的,代表本机发布命令,后面两个是可以变化的,00~99可以代表100种不同的命令。因篇幅限制,这里仅给出程序中反复调用的核心中断程序:

  UART_INT:

  PUSHACC

  PUSHPSW

  SETBRS0

  JBTI,$+5

  AJMPRECV

  CLRTI//+5发送中断处理

  MOVA,R3

  JNBs_RAM,$+7

  MOVR0,A

  MOVA,@R0

  JMPS_S

  MOVCA,@A+PC

  S_S: JNZS_BUF//将ROM中的数据发送到TC35

  SETB s_OVER//读短信时,A取到了0,送到了中,

  SBUF表示串口发送数据完毕

  JMP$+5

  S_BUF:MOV SBUF,A

  INCR3

  CALLRESET_WTD

  POPPSW;+5

  POPACC

  RETI

  ;------------------------------------

  RECV://TC35响应单片机

  CLR RI

  MOV @R1,SBUF//将TC35发来的字符存入缓冲

  区,主程序开始,已经将缓冲区首地址地址存入R1

  CJNE@R1,#10,DY_HAO//10是串口通信的

  最后一个字符,即是TC35返回的字符串的最后一个字符

  MOVA,R1

  MOVR0,A

  DECR0

  CJNE@R0,#13,DY_HAODECR0

  CJNE@R0,#′K′,DY_HAO

  DECR0

  CJNE@R0,#′0′,DY_HAO

  SETBr_OK//收到TC35发来的OK标志,响应成功

  JMPRE_SAVE//保存当前指针

  DY_HAO:INCR1

  CJNER1,#0E8H,RE_EXIT

  JMPRE_RST

  RE_SAVE:MOVA,R1

  MOVR2,A

  RE_RST:MOVR1,#SMS_BF

  RE_EXIT:CALLRESET_WTD

  POPPSW

  POPACC

  RETI

4 设计结果


008.jpg

  短信开关控制电路的实物如图5所示,图5(a)是TC35模块,图5(b)是本文设计的开关控制模块,按照图2的电路原理图将对应的引脚连接好。编译好的程序是从PC中通过下载软件下载安装到单片机中的。为了直观地看到实验效果,在继电器控制引脚接上一个LED灯,按图5连接,测试远程监控的实现状态。继电器下面设置4组跳针,两根连接常开状态,两根连接常闭状态。将LED连接在常闭状态,处于常亮状态,如图5(b)所示;仅当给TC35发送一条短信且短信内容“DLXINX01”时,会看到TC35接收短信的指示灯会熄灭一下(表示已经接收到短信),然后听到继电器跳变的声音,同时LED熄灭,如图5(a)所示。等设定的延时时间过去,继电器再跳变回来,LED会重新点亮,变成图5(b)的状态。以上过程已通过实验验证,证明已经实现了开关的短信远程控制。

  5 结论

  本设计是基于短信的远程控制系统进行的,采用的都是低功耗电子元器件,可以有很长的运行周期,并且成本低。使用的GSM信号模块覆盖范围广,因此应用范围也十分广泛。当前设计主要是基础阶段,仅考虑了手机的单方面控制,方便学习和掌握。后期可以适当增加智能功能,实现信号的双向交互,控制的途径也能更广泛,这有待进一步去优化和完善。值得一提的是,短消息在网络流量较大时容易堵塞,所以在实时控制方面有一定局限性,但随着3G和4G通信的发展,这一局限性也在逐步改善[2]。综上所述,基于短信的远程控制系统具有良好的研究价值和应用前景。

  参考文献

  [1] 程全,李向东.基于GSM模块与AT89C51的接口设计及应用[J].微计算机信息,2006,22(9-2):293-295.

  [2] 陈浩,李雪梅.一种基于短消息的智能家居远程控制器[J].绵阳师范学院学报(自然科学版),2013,32(11):47-51.

  [3] 潘斌,郭红霞.短信收发模块TC35i的外围电路设计[J].单片机与嵌入式系统应用,2004(7):38-41.

  [4] 吴玉田,王瑞光,郑喜凤,等.GSM模块TC35及其应用[J].计算机测量与控制,2002,10(8):557-560.

  [5] 陶广冰.四路短信控制开关的制作[J].制作项目(电子制作),2012(9):67-71.

  [6] 杜洋.监控芯片X5045的应用[EB/OL].百度文库,http://wenku.baidu.com/link url=P2EfI5yEzVh7MB4ci26KFJ_4-6cbHY6lbswWIkVW9-tWfKjEa2bIFOVdkcJvS2TCc6_HfAVGx nM6xZYxXfSQTdY9c_0JWuGJHeO9LEcacae.


此内容为AET网站原创,未经授权禁止转载。