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

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

  關鍵詞TC35,;X5045初始化,;遠程控制

0 引言

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

1 TC35模塊

  目前,,國內已經開始使用的GSM模塊種類較多,常用的有Falcon的A2D系列,、Wavecome的WMO2系列,、西門子的TC35系列、愛立信的DM10/DM20系列,、中興的ZXGM18系列等,。其中,西門子推出的TC35系列模塊設計緊湊,,集射頻電路和基帶于一體,,向用戶提供標準的AT命令接口,兼容性強,,為數據,、語音、短消息等提供快速,、可靠,、安全的傳輸,方便用戶應用開發(fā)和設計,,因此其具有很高的性價比,,并且已經獲得國內無線電設備入網證[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 V電壓輸出排陣接口:上正下負。

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

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

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

  (8)手動啟動按鍵:手動啟動模式下使用,。

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

 ?。?0)語音接口,。

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

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

2 硬件電路設計

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

002.jpg

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

  X5045是一種三合一功能監(jiān)控芯片,本文中使用其看門狗復位功能,。用SPI總線與處理器通信,,是兼有存儲監(jiān)測的單片機系統(tǒng)的最佳選擇。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為功能)

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

005.jpg

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

006.jpg

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

007.jpg

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

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

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

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

  3.1 TC35初始化


004.jpg

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

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

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

  s_RAM bit 20H.3;1代表令串口輸出RAM數據

  s_OVER bit 20H.4,;1代表串口輸出完畢RAM數據

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

  3.2 X5045初始化

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

  X5045_INIT:

  CALL WRITE_ABLE//調用寫允許子程序

  CALL READ_STATUS//調用讀當前寄存器狀態(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,,設置看門狗的復位時間是1 400 ms,設置WEL=1,,所以要在STATBYT存入參數82H,。X5045初始化完成后,看門狗開始工作,,在1.4 s內要給予一次“喂狗”,,保證電路正常工作。當系統(tǒng)出現(xiàn)死機或死循環(huán)時,,1.4 s內沒有“喂狗”,,看門狗復位,系統(tǒng)重啟,。

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

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

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

  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中的數據發(fā)送到TC35

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

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

  JMP$+5

  S_BUF:MOV SBUF,A

  INCR3

  CALLRESET_WTD

  POPPSW,;+5

  POPACC

  RETI

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

  RECV://TC35響應單片機

  CLR RI

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

  區(qū),,主程序開始,已經將緩沖區(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標志,響應成功

  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連接,測試遠程監(jiān)控的實現(xiàn)狀態(tài),。繼電器下面設置4組跳針,,兩根連接常開狀態(tài),兩根連接常閉狀態(tài),。將LED連接在常閉狀態(tài),,處于常亮狀態(tài),如圖5(b)所示,;僅當給TC35發(fā)送一條短信且短信內容“DLXINX01”時,會看到TC35接收短信的指示燈會熄滅一下(表示已經接收到短信),,然后聽到繼電器跳變的聲音,,同時LED熄滅,如圖5(a)所示,。等設定的延時時間過去,,繼電器再跳變回來,LED會重新點亮,,變成圖5(b)的狀態(tài),。以上過程已通過實驗驗證,證明已經實現(xiàn)了開關的短信遠程控制,。

  5 結論

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

  參考文獻

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

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

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

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

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

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


此內容為AET網站原創(chuàng),未經授權禁止轉載,。