王 超,郭顯久,2
基于TC35短信模塊的開關(guān)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)*
王超1,郭顯久1,2
(1.大連海洋大學(xué)信息工程學(xué)院,遼寧大連116023;2.遼寧省海洋信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,遼寧大連116023)
主要介紹了單片機(jī)短信遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)。該系統(tǒng)以GSM移動(dòng)通信網(wǎng)絡(luò)作為遠(yuǎn)程控制信號(hào)的通信平臺(tái),用戶可通過手機(jī)等設(shè)備向遠(yuǎn)程控制系統(tǒng)發(fā)送特定的指令短信,遠(yuǎn)程控制系統(tǒng)可根據(jù)指令短信的內(nèi)容進(jìn)行判斷并執(zhí)行設(shè)定的命令,控制繼電器開關(guān)的跳變。該遠(yuǎn)程控制系統(tǒng)有較好的研究價(jià)值和發(fā)展前景。
TC35;X5045;初始化;遠(yuǎn)程控制
隨著通信技術(shù)的發(fā)展,無線通信網(wǎng)絡(luò)在當(dāng)今人們的生活中發(fā)揮著越來越重要的作用,尤其以GSM為代表的手機(jī)移動(dòng)通信網(wǎng)絡(luò),在工業(yè)控制和遙控領(lǐng)域有不斷擴(kuò)大的趨勢。基于短信的遠(yuǎn)程控制是通過手機(jī)等設(shè)備將控制命令以短消息的方式發(fā)送至手機(jī)通信網(wǎng)絡(luò),手機(jī)通信網(wǎng)絡(luò)即可將控制命令轉(zhuǎn)發(fā)到遠(yuǎn)程控制器,而不需要進(jìn)行撥號(hào)連接,從而實(shí)現(xiàn)了對遠(yuǎn)程設(shè)備的控制[1-2]。本文就是根據(jù)這個(gè)原理設(shè)計(jì)了一套基于短信模塊的遠(yuǎn)程開關(guān)控制系統(tǒng),使用的是西門子公司推出的無線通信GSM模塊——TC35,自主研發(fā)的外圍開關(guān)電路實(shí)際應(yīng)用于一套海洋環(huán)境參數(shù)檢測系統(tǒng)的遠(yuǎn)程復(fù)位開關(guān)的控制。
目前,國內(nèi)已經(jīng)開始使用的GSM模塊種類較多,常用的有Falcon的A2D系列、Wavecome的WMO2系列、西門子的TC35系列、愛立信的DM10/DM20系列、中興的ZXGM18系列等。其中,西門子推出的TC35系列模塊設(shè)計(jì)緊湊,集射頻電路和基帶于一體,向用戶提供標(biāo)準(zhǔn)的AT命令接口,兼容性強(qiáng),為數(shù)據(jù)、語音、短消息等提供快速、可靠、安全的傳輸,方便用戶應(yīng)用開發(fā)和設(shè)計(jì),因此其具有很高的性價(jià)比,并且已經(jīng)獲得國內(nèi)無線電設(shè)備入網(wǎng)證[3]。因此,本設(shè)計(jì)選用西門子TC35系列的XCTC35_V3.0 GSM模塊。
本設(shè)計(jì)中使用的GSM模塊是XC-TC35_V3.0(簡稱TC35),其實(shí)物如圖1所示,圖中已經(jīng)就引腳資源做出了標(biāo)記,后面會(huì)給予介紹。
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 XC-TC35_V3.0資源模塊實(shí)物
引腳資源參見圖1。
(1)電源接頭:5.5×2.1接口輸入電壓7~12 V,實(shí)物中標(biāo)配的是9 V電源。
(2)電源輸入電壓排陣接口:上正下負(fù),輸入電壓7~12 V。
(3)電源開關(guān)按鍵。
(4)4 V電壓輸出排陣接口:上正下負(fù)。
(5)手動(dòng)/自動(dòng)啟動(dòng)設(shè)置:上面兩針相連為手動(dòng)啟動(dòng),右邊兩針相連為自動(dòng)啟動(dòng)(詳見使用說明)。本設(shè)計(jì)用于遠(yuǎn)程控制,所以使用自動(dòng)啟動(dòng)模式。
(6)通信模式設(shè)置:與PC通信時(shí),6針全裸;與單片機(jī)通信時(shí),上面4針兩兩上下連接。本設(shè)計(jì)中是與STC89C52RC型單片機(jī)相連。
(7)DB9串口頭:接PC串口,讓PC與TC35通信。
(8)手動(dòng)啟動(dòng)按鍵:手動(dòng)啟動(dòng)模式下使用。
(9)串口TTL接口:直接連接單片機(jī),對應(yīng)連接R—P3.0、T—P3.1、GND—GND。
(10)語音接口。
(11)網(wǎng)絡(luò)指示燈:尋找到網(wǎng)絡(luò)時(shí)指示燈為1亮3滅;沒有網(wǎng)絡(luò)連接時(shí)1亮1滅。
(12)來電指示燈:默認(rèn)時(shí)常亮,當(dāng)有來電、短信時(shí)燈會(huì)閃爍。
圖2 硬件電路設(shè)計(jì)原理圖
TC35使用的標(biāo)配電源是9 V直流電源,而單片機(jī)的電源是5 V直流電源,為避免使用兩個(gè)電源,在電路中設(shè)計(jì)了電源模塊。開關(guān)選用標(biāo)準(zhǔn)電壓為9 V的繼電器開關(guān)。因?yàn)樵O(shè)計(jì)的開關(guān)電路工作在海洋深處,不方便現(xiàn)場操作,考慮到系統(tǒng)可能會(huì)出現(xiàn)死循環(huán)(死機(jī))的情況,所以在電路中使用了X5045芯片的看門狗功能,為系統(tǒng)提供硬件復(fù)位。硬件電路設(shè)計(jì)原理圖如圖2所示。
電源模塊使用標(biāo)準(zhǔn)器件7805將9 V電壓轉(zhuǎn)換為5 V電壓。單片機(jī)選用STC89C52RC,本設(shè)計(jì)中選用P1.7引腳控制繼電器。
圖3 X5045引腳封裝圖
X5045是一種三合一功能監(jiān)控芯片,本文中使用其看門狗復(fù)位功能。用SPI總線與處理器通信,是兼有存儲(chǔ)監(jiān)測的單片機(jī)系統(tǒng)的最佳選擇。X5045的引腳封裝圖如圖3所示,其接口說明如下[6]:1為CS/WDI,使能及看門狗復(fù)位輸入;2為SO,數(shù)據(jù)輸出(可與SI復(fù)用);3為WP,寫保護(hù)(低電平有效);4為Vss,參考0電位;5為SI,數(shù)據(jù)輸入;6為SCK,時(shí)鐘輸入;7為RESET,復(fù)位信號(hào)輸出(必須接上拉電阻);8為VCC,電源電壓。
X5045與單片機(jī)接口電路如圖3所示,因該電路中只需要看門狗功能,所以沒有對芯片進(jìn)行寫保護(hù),直接將WP引腳接上高電平。另外復(fù)位信號(hào)引腳RESET與單片機(jī)的復(fù)位引腳相連,而且必須加上拉電阻。其他4個(gè)引腳與單片機(jī)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為功能)
其第一個(gè)字節(jié)定義了不同的功能,功能選擇表如表1所示。
表1 X5045功能選擇表
X5045內(nèi)置一個(gè)狀態(tài)寄存器,其為8 bit數(shù)據(jù),有單獨(dú)的功能操作數(shù)據(jù),用于設(shè)置看門狗和數(shù)據(jù)鎖存。當(dāng)讀寫狀態(tài)寄存器時(shí),地址位數(shù)據(jù)就成為狀態(tài)寄存器的數(shù)據(jù)鏡像。其數(shù)據(jù)結(jié)構(gòu)如表2[6]所示。
表2 狀態(tài)寄存器數(shù)據(jù)結(jié)構(gòu)表
其中,7、6兩位必須是0,WD1、WD0是看門狗定時(shí)器復(fù)位時(shí)間選擇,WD1、WD0和定時(shí)器復(fù)位時(shí)間選擇的關(guān)系如表3所示。
表3 看門狗定時(shí)器功能選擇表
BL1、BL0是數(shù)據(jù)分區(qū)保護(hù)選擇,本設(shè)計(jì)中只用到看門狗功能,所以設(shè)置BL1BL0=00,沒有對數(shù)據(jù)分區(qū)選擇保護(hù);WEL是寫保護(hù)位,0為禁寫,1為可寫,且運(yùn)行一次芯片讀寫操作后此位自動(dòng)置0,所以編程中每運(yùn)行一次都要將該位置1;WIP是芯片讀忙位,0為就緒,1為芯片忙,進(jìn)行讀寫操作前做好先讀此位。
程序設(shè)計(jì)過程中,看門狗電路是在系統(tǒng)發(fā)生錯(cuò)誤時(shí)才會(huì)被觸發(fā),從而復(fù)位電路。在程序開始,會(huì)在初始化中先對X5045進(jìn)行初始化,這樣看門狗就開始工作了。在后續(xù)的程序中,需要算好時(shí)間,在規(guī)定的時(shí)間內(nèi)去“喂狗”,這樣就可以保證系統(tǒng)程序的正常工作了。程序設(shè)計(jì)流程圖如圖4所示。
程序設(shè)計(jì)開始時(shí)要對設(shè)備進(jìn)行初始化,包括初始化串口、TC35和X5045。初始化串口即是對單片機(jī)串口的初始化,不做具體介紹。下面介紹TC35和X5045的初始化過程。
圖4 程序設(shè)計(jì)流程圖
3.1TC35初始化
前面已經(jīng)提到,TC35模塊支持Text和PDU兩種格式的SMS短信,并且提供了標(biāo)準(zhǔn)的AT命令接口。所以,先向TC35發(fā)送標(biāo)準(zhǔn)的AT命令,做簡單詢問,然后設(shè)定波特率,指令為“AT+IPR=4800”。設(shè)定短信格式為Text格式,“AT+CMGF=1”;設(shè)定字符集‘AT+CSCS=“GSM”’。向TC35發(fā)送的每條指令,其末尾都要有13、10、0,其中13表示回車;10表示換行;0為筆者編程自定義的,作為發(fā)送結(jié)束標(biāo)志。TC35接收到以上發(fā)送來的AT指令,均會(huì)響應(yīng):‘OK’、13、10,即命令有效。
初始化之前,需要設(shè)置幾個(gè)標(biāo)志位:
r_OK bit 20H.0;收到TC35發(fā)來OK的標(biāo)志
s_RAM bit 20H.3;1代表令串口輸出RAM數(shù)據(jù)
s_OVER bit 20H.4;1代表串口輸出完畢RAM數(shù)據(jù)
在本文設(shè)計(jì)的程序中,TC35初始化和讀短信程序中反復(fù)調(diào)用串口中斷程序。程序中所有的發(fā)送指令(數(shù)據(jù))和響應(yīng)指令接收數(shù)據(jù)都在調(diào)用中斷程序中執(zhí)行完成,大大減少了編程的復(fù)雜性,提高了編程和執(zhí)行效率。
3.2X5045初始化
X5045作為一個(gè)獨(dú)立芯片,要使用其看門狗復(fù)位功能,就需要對其內(nèi)部的狀態(tài)寄存器進(jìn)行初始化設(shè)置。主要是先對芯片的讀寫功能進(jìn)行設(shè)置,然后再設(shè)置狀態(tài)寄存器的值。下面是部分初始化程序:
狀態(tài)寄存器最高位為1,設(shè)置看門狗的復(fù)位時(shí)間是1 400 ms,設(shè)置WEL=1,所以要在STATBYT存入?yún)?shù)82H。X5045初始化完成后,看門狗開始工作,在1.4 s內(nèi)要給予一次“喂狗”,保證電路正常工作。當(dāng)系統(tǒng)出現(xiàn)死機(jī)或死循環(huán)時(shí),1.4 s內(nèi)沒有“喂狗”,看門狗復(fù)位,系統(tǒng)重啟。
3.3短信讀取與執(zhí)行
初始化完成后,單片機(jī)會(huì)向TC35發(fā)送讀短信指令。根據(jù)TC35的響應(yīng),將TC35發(fā)送回來的字符存入定義好的串口緩沖接收區(qū),再對緩沖區(qū)中的數(shù)據(jù)進(jìn)行分析,判斷短信內(nèi)容是否符合設(shè)定的短信內(nèi)容。如果短信內(nèi)容不符合設(shè)定內(nèi)容,刪除本條短信,再去讀下一條短信;如果符合設(shè)定短信內(nèi)容,則執(zhí)行命令,然后刪除本條短信,再去讀下一條短信。如此單片機(jī)一直處在循環(huán)讀短信的狀態(tài)。在本設(shè)計(jì)中是對P1.7置0,這樣會(huì)讓繼電器開關(guān)跳變,從而達(dá)到遠(yuǎn)程控制的目的。
短信內(nèi)容是特定的,不是任意亂發(fā)的,這樣可有一定的安全保證。本文設(shè)計(jì)的短信內(nèi)容為8個(gè)字符:DLXINX01,前面6個(gè)是固定的,代表本機(jī)發(fā)布命令,后面兩個(gè)是可以變化的,00~99可以代表100種不同的命令。因篇幅限制,這里僅給出程序中反復(fù)調(diào)用的核心中斷程序:
短信開關(guān)控制電路的實(shí)物如圖5所示,圖5(a)是TC35模塊,圖5(b)是本文設(shè)計(jì)的開關(guān)控制模塊,按照圖2的電路原理圖將對應(yīng)的引腳連接好。編譯好的程序是從PC中通過下載軟件下載安裝到單片機(jī)中的。為了直觀地看到實(shí)驗(yàn)效果,在繼電器控制引腳接上一個(gè)LED燈,按圖5連接,測試遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)狀態(tài)。繼電器下面設(shè)置4組跳針,兩根連接常開狀態(tài),兩根連接常閉狀態(tài)。將LED連接在常閉狀態(tài),處于常亮狀態(tài),如圖5(b)所示;僅當(dāng)給TC35發(fā)送一條短信且短信內(nèi)容“DLXINX01”時(shí),會(huì)看到TC35接收短信的指示燈會(huì)熄滅一下(表示已經(jīng)接收到短信),然后聽到繼電器跳變的聲音,同時(shí)LED熄滅,如圖5(a)所示。等設(shè)定的延時(shí)時(shí)間過去,繼電器再跳變回來,LED會(huì)重新點(diǎn)亮,變成圖5(b)的狀態(tài)。以上過程已通過實(shí)驗(yàn)驗(yàn)證,證明已經(jīng)實(shí)現(xiàn)了開關(guān)的短信遠(yuǎn)程控制。
圖5 短信開關(guān)控制實(shí)物圖
本設(shè)計(jì)是基于短信的遠(yuǎn)程控制系統(tǒng)進(jìn)行的,采用的都是低功耗電子元器件,可以有很長的運(yùn)行周期,并且成本低。使用的GSM信號(hào)模塊覆蓋范圍廣,因此應(yīng)用范圍也十分廣泛。當(dāng)前設(shè)計(jì)主要是基礎(chǔ)階段,僅考慮了手機(jī)的單方面控制,方便學(xué)習(xí)和掌握。后期可以適當(dāng)增加智能功能,實(shí)現(xiàn)信號(hào)的雙向交互,控制的途徑也能更廣泛,這有待進(jìn)一步去優(yōu)化和完善。值得一提的是,短消息在網(wǎng)絡(luò)流量較大時(shí)容易堵塞,所以在實(shí)時(shí)控制方面有一定局限性,但隨著3G和4G通信的發(fā)展,這一局限性也在逐步改善[2]。綜上所述,基于短信的遠(yuǎn)程控制系統(tǒng)具有良好的研究價(jià)值和應(yīng)用前景。
[1]程全,李向東.基于GSM模塊與AT89C51的接口設(shè)計(jì)及應(yīng)用[J].微計(jì)算機(jī)信息,2006,22(9-2):293-295.
[2]陳浩,李雪梅.一種基于短消息的智能家居遠(yuǎn)程控制器[J].綿陽師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2013,32(11):47-51.
[3]潘斌,郭紅霞.短信收發(fā)模塊TC35i的外圍電路設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(7):38-41.
[4]吳玉田,王瑞光,鄭喜鳳,等.GSM模塊TC35及其應(yīng)用[J].計(jì)算機(jī)測量與控制,2002,10(8):557-560.
[5]陶廣冰.四路短信控制開關(guān)的制作[J].制作項(xiàng)目(電子制作),2012(9):67-71.
[6]杜洋.監(jiān)控芯片X5045的應(yīng)用[EB/OL].百度文庫,http:// wenku.baidu.com/link url=P2EfI5yEzVh7MB4ci26KFJ_4-6cbHY6lbswWIkVW9-tW fKjEa2bIFOVdkcJvS2TCc6_HfAVGx nM6xZYxX fSQTdY9c_0JWuGJHeO9LEcacae.
Switch remote contro l system based on SMS TC35 module design
Wang Chao1,Guo Xianjiu1,2
(1.Information Engineering College,Dalian Ocean University,Dalian 116023,China;2.Liaoning Key Laboratory of Marine IT,Dalian 116023,China)
This paper mainly describes the design of microcontroller SMS remote control system.The system uses the GSM mobile communication network as a remote control signal communications platform,users can send messages with a specific commands to the remote control system by mobile phones or other devices,and the remote control system can judge according to the content of the instruction messages and execute the commands which we have set to control the relays hopping.The remote control system has good prospect for development and research value.
TC35;X5045;initialization;remote control
TP302.1
A
1674-7720(2015)04-0029-05
遼寧省科技計(jì)劃項(xiàng)目(2012216012)
(2014-10-17)
郭顯久(1963-),通信作者,男,博士,教授,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)。E-mail:gxj@dlou.edu.cn。
王超(1990-),男,碩士研究生,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)。