《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TC35短信模塊的開關(guān)遠程控制系統(tǒng)設(shè)計
基于TC35短信模塊的開關(guān)遠程控制系統(tǒng)設(shè)計
2015年微型機與應(yīng)用第4期
王 超1,郭顯久1,2
(1.大連海洋大學(xué) 信息工程學(xué)院,遼寧 大連 116023; 2.遼寧省海洋信息技術(shù)重點實驗室,遼寧 大連 116023)
摘要: 主要介紹了單片機短信遠程控制系統(tǒng)的設(shè)計。該系統(tǒng)以GSM移動通信網(wǎng)絡(luò)作為遠程控制信號的通信平臺,用戶可通過手機等設(shè)備向遠程控制系統(tǒng)發(fā)送特定的指令短信,遠程控制系統(tǒng)可根據(jù)指令短信的內(nèi)容進行判斷并執(zhí)行設(shè)定的命令,控制繼電器開關(guān)的跳變。該遠程控制系統(tǒng)有較好的研究價值和發(fā)展前景。
關(guān)鍵詞: TC35 X5045 初始化 遠程控制
Abstract:
Key words :

  摘  要: 主要介紹了單片機短信遠程控制系統(tǒng)的設(shè)計。該系統(tǒng)以GSM移動通信網(wǎng)絡(luò)作為遠程控制信號的通信平臺,用戶可通過手機等設(shè)備向遠程控制系統(tǒng)發(fā)送特定的指令短信,遠程控制系統(tǒng)可根據(jù)指令短信的內(nèi)容進行判斷并執(zhí)行設(shè)定的命令,控制繼電器開關(guān)的跳變。該遠程控制系統(tǒng)有較好的研究價值和發(fā)展前景。

  關(guān)鍵詞TC35;X5045;初始化;遠程控制

0 引言

  隨著通信技術(shù)的發(fā)展,無線通信網(wǎng)絡(luò)在當今人們的生活中發(fā)揮著越來越重要的作用,尤其以GSM為代表的手機移動通信網(wǎng)絡(luò),在工業(yè)控制和遙控領(lǐng)域有不斷擴大的趨勢?;诙绦诺倪h程控制是通過手機等設(shè)備將控制命令以短消息的方式發(fā)送至手機通信網(wǎng)絡(luò),手機通信網(wǎng)絡(luò)即可將控制命令轉(zhuǎn)發(fā)到遠程控制器,而不需要進行撥號連接,從而實現(xiàn)了對遠程設(shè)備的控制[1-2]。本文就是根據(jù)這個原理設(shè)計了一套基于短信模塊的遠程開關(guān)控制系統(tǒng),使用的是西門子公司推出的無線通信GSM模塊——TC35,自主研發(fā)的外圍開關(guān)電路實際應(yīng)用于一套海洋環(huán)境參數(shù)檢測系統(tǒng)的遠程復(fù)位開關(guān)的控制。

1 TC35模塊

  目前,國內(nèi)已經(jīng)開始使用的GSM模塊種類較多,常用的有Falcon的A2D系列、Wavecome的WMO2系列、西門子的TC35系列、愛立信的DM10/DM20系列、中興的ZXGM18系列等。其中,西門子推出的TC35系列模塊設(shè)計緊湊,集射頻電路和基帶于一體,向用戶提供標準的AT命令接口,兼容性強,為數(shù)據(jù)、語音、短消息等提供快速、可靠、安全的傳輸,方便用戶應(yīng)用開發(fā)和設(shè)計,因此其具有很高的性價比,并且已經(jīng)獲得國內(nèi)無線電設(shè)備入網(wǎng)證[3]。因此,本設(shè)計選用西門子TC35系列的XC-TC35_V3.0 GSM模塊。

001.jpg

  本設(shè)計中使用的GSM模塊是XC-TC35_V3.0(簡稱TC35),其實物如圖1所示,圖中已經(jīng)就引腳資源做出了標記,后面會給予介紹。

  TC35工作在EGSM900和EGSM1800雙頻段,電源范圍為直流3.3~4.8 V,SIM卡電壓為3 V/1.8 V。

  TC35的數(shù)據(jù)接口(UART CMOS電平)通過AT命令可以雙向傳輸指令和數(shù)據(jù)。它支持Text和PDU格式的SMS短信,其中,Text支持英文短信的格式,PDU支持中文短信的格式[4-5]。

  引腳資源參見圖1。

 ?。?)電源接頭:5.5×2.1接口輸入電壓7~12 V,實物中標配的是9 V電源。

 ?。?)電源輸入電壓排陣接口:上正下負,輸入電壓7~12 V。

 ?。?)電源開關(guān)按鍵。

 ?。?)4 V電壓輸出排陣接口:上正下負。

 ?。?)手動/自動啟動設(shè)置:上面兩針相連為手動啟動,右邊兩針相連為自動啟動(詳見使用說明)。本設(shè)計用于遠程控制,所以使用自動啟動模式。

 ?。?)通信模式設(shè)置:與PC通信時,6針全裸;與單片機通信時,上面4針兩兩上下連接。本設(shè)計中是與STC89C52RC型單片機相連。

 ?。?)DB9串口頭:接PC串口,讓PC與TC35通信。

 ?。?)手動啟動按鍵:手動啟動模式下使用。

 ?。?)串口TTL接口:直接連接單片機,對應(yīng)連接R—P3.0、T—P3.1、GND—GND。

  (10)語音接口。

  (11)網(wǎng)絡(luò)指示燈:尋找到網(wǎng)絡(luò)時指示燈為1亮3滅;沒有網(wǎng)絡(luò)連接時1亮1滅。

 ?。?2)來電指示燈:默認時常亮,當有來電、短信時燈會閃爍。

2 硬件電路設(shè)計

  TC35使用的標配電源是9 V直流電源,而單片機的電源是5 V直流電源,為避免使用兩個電源,在電路中設(shè)計了電源模塊。開關(guān)選用標準電壓為9 V的繼電器開關(guān)。因為設(shè)計的開關(guān)電路工作在海洋深處,不方便現(xiàn)場操作,考慮到系統(tǒng)可能會出現(xiàn)死循環(huán)(死機)的情況,所以在電路中使用了X5045芯片的看門狗功能,為系統(tǒng)提供硬件復(fù)位。硬件電路設(shè)計原理圖如圖2所示。

002.jpg

  電源模塊使用標準器件7805將9 V電壓轉(zhuǎn)換為5 V電壓。單片機選用STC89C52RC,本設(shè)計中選用P1.7引腳控制繼電器。

  X5045是一種三合一功能監(jiān)控芯片,本文中使用其看門狗復(fù)位功能。用SPI總線與處理器通信,是兼有存儲監(jiān)測的單片機系統(tǒng)的最佳選擇。X5045的引腳封裝圖如圖3所示,其接口說明如下[6]:1為CS/WDI,使能及看門狗復(fù)位輸入;2為SO,數(shù)據(jù)輸出(可與SI復(fù)用);3為WP,寫保護(低電平有效);4為Vss,參考0電位;5為SI,數(shù)據(jù)輸入;6為SCK,時鐘輸入;7為RESET,復(fù)位信號輸出(必須接上拉電阻);8為VCC,電源電壓。

003.jpg

  X5045與單片機接口電路如圖3所示,因該電路中只需要看門狗功能,所以沒有對芯片進行寫保護,直接將WP引腳接上高電平。另外復(fù)位信號引腳RESET與單片機的復(fù)位引腳相連,而且必須加上拉電阻。其他4個引腳與單片機I/O接口相連即可,可根據(jù)設(shè)定電路方便地選擇合適的I/O接口連接。

  X5045在每一次通信之前,都必須輸入2 B的操作數(shù)據(jù)。其中有9 bit是操作地址,3 bit功能選擇位。地址結(jié)構(gòu)如下[6]:

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

  其第一個字節(jié)定義了不同的功能,功能選擇表如表1所示。

005.jpg

  X5045內(nèi)置一個狀態(tài)寄存器,其為8 bit數(shù)據(jù),有單獨的功能操作數(shù)據(jù),用于設(shè)置看門狗和數(shù)據(jù)鎖存。當讀寫狀態(tài)寄存器時,地址位數(shù)據(jù)就成為狀態(tài)寄存器的數(shù)據(jù)鏡像。其數(shù)據(jù)結(jié)構(gòu)如表2[6]所示。

006.jpg

  其中,7、6兩位必須是0,WD1、WD0是看門狗定時器復(fù)位時間選擇,WD1、WD0和定時器復(fù)位時間選擇的關(guān)系如表3所示。

007.jpg

  BL1、BL0是數(shù)據(jù)分區(qū)保護選擇,本設(shè)計中只用到看門狗功能,所以設(shè)置BL1BL0=00,沒有對數(shù)據(jù)分區(qū)選擇保護;WEL是寫保護位,0為禁寫,1為可寫,且運行一次芯片讀寫操作后此位自動置0,所以編程中每運行一次都要將該位置1;WIP是芯片讀忙位,0為就緒,1為芯片忙,進行讀寫操作前做好先讀此位。

3 系統(tǒng)程序設(shè)計

  程序設(shè)計過程中,看門狗電路是在系統(tǒng)發(fā)生錯誤時才會被觸發(fā),從而復(fù)位電路。在程序開始,會在初始化中先對X5045進行初始化,這樣看門狗就開始工作了。在后續(xù)的程序中,需要算好時間,在規(guī)定的時間內(nèi)去“喂狗”,這樣就可以保證系統(tǒng)程序的正常工作了。程序設(shè)計流程圖如圖4所示。

  程序設(shè)計開始時要對設(shè)備進行初始化,包括初始化串口、TC35和X5045。初始化串口即是對單片機串口的初始化,不做具體介紹。下面介紹TC35和X5045的初始化過程。

  3.1 TC35初始化


004.jpg

  前面已經(jīng)提到,TC35模塊支持Text和PDU兩種格式的SMS短信,并且提供了標準的AT命令接口。所以,先向TC35發(fā)送標準的AT命令,做簡單詢問,然后設(shè)定波特率,指令為“AT+IPR=4800”。設(shè)定短信格式為Text格式,“AT+CMGF=1”;設(shè)定字符集‘AT+CSCS=“GSM”’。向TC35發(fā)送的每條指令,其末尾都要有13、10、0,其中13表示回車;10表示換行;0為筆者編程自定義的,作為發(fā)送結(jié)束標志。TC35接收到以上發(fā)送來的AT指令,均會響應(yīng):‘OK’、13、10,即命令有效。

  初始化之前,需要設(shè)置幾個標志位:

  r_OK bit 20H.0;收到TC35發(fā)來OK的標志

  s_RAM bit 20H.3;1代表令串口輸出RAM數(shù)據(jù)

  s_OVER bit 20H.4;1代表串口輸出完畢RAM數(shù)據(jù)

  在本文設(shè)計的程序中,TC35初始化和讀短信程序中反復(fù)調(diào)用串口中斷程序。程序中所有的發(fā)送指令(數(shù)據(jù))和響應(yīng)指令接收數(shù)據(jù)都在調(diào)用中斷程序中執(zhí)行完成,大大減少了編程的復(fù)雜性,提高了編程和執(zhí)行效率。

  3.2 X5045初始化

  X5045作為一個獨立芯片,要使用其看門狗復(fù)位功能,就需要對其內(nèi)部的狀態(tài)寄存器進行初始化設(shè)置。主要是先對芯片的讀寫功能進行設(shè)置,然后再設(shè)置狀態(tài)寄存器的值。下面是部分初始化程序:

  X5045_INIT:

  CALL WRITE_ABLE//調(diào)用寫允許子程序

  CALL READ_STATUS//調(diào)用讀當前寄存器狀態(tài)子程序

  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

  狀態(tài)寄存器最高位為1,設(shè)置看門狗的復(fù)位時間是1 400 ms,設(shè)置WEL=1,所以要在STATBYT存入?yún)?shù)82H。X5045初始化完成后,看門狗開始工作,在1.4 s內(nèi)要給予一次“喂狗”,保證電路正常工作。當系統(tǒng)出現(xiàn)死機或死循環(huán)時,1.4 s內(nèi)沒有“喂狗”,看門狗復(fù)位,系統(tǒng)重啟。

  3.3 短信讀取與執(zhí)行

  初始化完成后,單片機會向TC35發(fā)送讀短信指令。根據(jù)TC35的響應(yīng),將TC35發(fā)送回來的字符存入定義好的串口緩沖接收區(qū),再對緩沖區(qū)中的數(shù)據(jù)進行分析,判斷短信內(nèi)容是否符合設(shè)定的短信內(nèi)容。如果短信內(nèi)容不符合設(shè)定內(nèi)容,刪除本條短信,再去讀下一條短信;如果符合設(shè)定短信內(nèi)容,則執(zhí)行命令,然后刪除本條短信,再去讀下一條短信。如此單片機一直處在循環(huán)讀短信的狀態(tài)。在本設(shè)計中是對P1.7置0,這樣會讓繼電器開關(guān)跳變,從而達到遠程控制的目的。

  短信內(nèi)容是特定的,不是任意亂發(fā)的,這樣可有一定的安全保證。本文設(shè)計的短信內(nèi)容為8個字符:DLXINX01,前面6個是固定的,代表本機發(fā)布命令,后面兩個是可以變化的,00~99可以代表100種不同的命令。因篇幅限制,這里僅給出程序中反復(fù)調(diào)用的核心中斷程序:

  UART_INT:

  PUSHACC

  PUSHPSW

  SETBRS0

  JBTI,$+5

  AJMPRECV

  CLRTI//+5發(fā)送中斷處理

  MOVA,R3

  JNBs_RAM,$+7

  MOVR0,A

  MOVA,@R0

  JMPS_S

  MOVCA,@A+PC

  S_S: JNZS_BUF//將ROM中的數(shù)據(jù)發(fā)送到TC35

  SETB s_OVER//讀短信時,A取到了0,送到了中,

  SBUF表示串口發(fā)送數(shù)據(jù)完畢

  JMP$+5

  S_BUF:MOV SBUF,A

  INCR3

  CALLRESET_WTD

  POPPSW;+5

  POPACC

  RETI

 ?。?-----------------------------------

  RECV://TC35響應(yīng)單片機

  CLR RI

  MOV @R1,SBUF//將TC35發(fā)來的字符存入緩沖

  區(qū),主程序開始,已經(jīng)將緩沖區(qū)首地址地址存入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發(fā)來的OK標志,響應(yīng)成功

  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 設(shè)計結(jié)果


008.jpg

  短信開關(guān)控制電路的實物如圖5所示,圖5(a)是TC35模塊,圖5(b)是本文設(shè)計的開關(guān)控制模塊,按照圖2的電路原理圖將對應(yīng)的引腳連接好。編譯好的程序是從PC中通過下載軟件下載安裝到單片機中的。為了直觀地看到實驗效果,在繼電器控制引腳接上一個LED燈,按圖5連接,測試遠程監(jiān)控的實現(xiàn)狀態(tài)。繼電器下面設(shè)置4組跳針,兩根連接常開狀態(tài),兩根連接常閉狀態(tài)。將LED連接在常閉狀態(tài),處于常亮狀態(tài),如圖5(b)所示;僅當給TC35發(fā)送一條短信且短信內(nèi)容“DLXINX01”時,會看到TC35接收短信的指示燈會熄滅一下(表示已經(jīng)接收到短信),然后聽到繼電器跳變的聲音,同時LED熄滅,如圖5(a)所示。等設(shè)定的延時時間過去,繼電器再跳變回來,LED會重新點亮,變成圖5(b)的狀態(tài)。以上過程已通過實驗驗證,證明已經(jīng)實現(xiàn)了開關(guān)的短信遠程控制。

  5 結(jié)論

  本設(shè)計是基于短信的遠程控制系統(tǒng)進行的,采用的都是低功耗電子元器件,可以有很長的運行周期,并且成本低。使用的GSM信號模塊覆蓋范圍廣,因此應(yīng)用范圍也十分廣泛。當前設(shè)計主要是基礎(chǔ)階段,僅考慮了手機的單方面控制,方便學(xué)習(xí)和掌握。后期可以適當增加智能功能,實現(xiàn)信號的雙向交互,控制的途徑也能更廣泛,這有待進一步去優(yōu)化和完善。值得一提的是,短消息在網(wǎng)絡(luò)流量較大時容易堵塞,所以在實時控制方面有一定局限性,但隨著3G和4G通信的發(fā)展,這一局限性也在逐步改善[2]。綜上所述,基于短信的遠程控制系統(tǒng)具有良好的研究價值和應(yīng)用前景。

  參考文獻

  [1] 程全,李向東.基于GSM模塊與AT89C51的接口設(shè)計及應(yīng)用[J].微計算機信息,2006,22(9-2):293-295.

  [2] 陳浩,李雪梅.一種基于短消息的智能家居遠程控制器[J].綿陽師范學(xué)院學(xué)報(自然科學(xué)版),2013,32(11):47-51.

  [3] 潘斌,郭紅霞.短信收發(fā)模塊TC35i的外圍電路設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(7):38-41.

  [4] 吳玉田,王瑞光,鄭喜鳳,等.GSM模塊TC35及其應(yīng)用[J].計算機測量與控制,2002,10(8):557-560.

  [5] 陶廣冰.四路短信控制開關(guān)的制作[J].制作項目(電子制作),2012(9):67-71.

  [6] 杜洋.監(jiān)控芯片X5045的應(yīng)用[EB/OL].百度文庫,http://wenku.baidu.com/link url=P2EfI5yEzVh7MB4ci26KFJ_4-6cbHY6lbswWIkVW9-tWfKjEa2bIFOVdkcJvS2TCc6_HfAVGx nM6xZYxXfSQTdY9c_0JWuGJHeO9LEcacae.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。