基于GSM模塊TC35T的無(wú)線遠(yuǎn)程監(jiān)控
gsm系統(tǒng)是目前基于時(shí)分多址技術(shù)的移動(dòng)通信體制中比較成熟、完善、應(yīng)用最廣泛的一種系統(tǒng),gsm的短信息系統(tǒng)以其快捷方便而且廉價(jià)的特點(diǎn)擁有廣泛的用戶,同時(shí)也為遠(yuǎn)程監(jiān)控提供了一種新的技術(shù)手段。利用gsm短信息(sms)進(jìn)行遠(yuǎn)程監(jiān)控具有投資少、成本低、可靠性高等特點(diǎn),在一些對(duì)操作和監(jiān)控的實(shí)時(shí)性要求不高的情況下具有很高的性價(jià)比。
無(wú)線gsm通信模塊tc35t
tc35t是siemens公司推出的gsm專用調(diào)制解調(diào)器,主要由gsm基帶處理器、gsm射頻模塊、供電模塊、閃存、zif連接器、天線接口六部分組成,可完成語(yǔ)音、數(shù)據(jù)、短消息以及傳真的傳送。tc35t具有標(biāo)準(zhǔn)的工業(yè)接口和完整的sim卡閱讀器,因此使用非常簡(jiǎn)單,其結(jié)構(gòu)如圖1所示。
gsm遠(yuǎn)程監(jiān)控原理和實(shí)現(xiàn)
gsm遠(yuǎn)程監(jiān)控系統(tǒng)由控制端和受控端兩部分組成,如圖2所示,控制端可以是手機(jī),也可以用tc35t模塊和pc組成。
在本設(shè)計(jì)中,受控端由單片機(jī)、gsm模塊、檢測(cè)部分、控制部分組成。其中pc用于監(jiān)視與控制,主控程序通過gsm模塊tc35t對(duì)受控設(shè)備發(fā)出短信息。受控端的gsm模塊tc35t接收短信息后,通過串行口r232傳給單片機(jī),單片機(jī)根據(jù)接收到的短信息進(jìn)行處理,從中提取控制命令,再對(duì)被控設(shè)備進(jìn)行相應(yīng)的操作控制。受控設(shè)備的狀態(tài)信息也是以短信息的形式通過gsm模塊發(fā)送給短信息服務(wù)中心(smsc),再由短信息服務(wù)中心發(fā)送給pc。pc收到短信息后,根據(jù)短信息的內(nèi)容可發(fā)回短信息進(jìn)行控制。
at指令介紹
at指令集是由諾基亞、愛立信、摩托羅拉和hp等廠家共同為gsm系統(tǒng)研制的,其中包含了短信息的控制。對(duì)sms的控制共有三種實(shí)現(xiàn)途徑:block模式、text模式和pdu模式。text模式比較簡(jiǎn)單,很多諾基亞手機(jī)支持該模式,但缺點(diǎn)是不能收發(fā)中文短信。發(fā)送和接收中文或中/英文混合的短信息必須采用pdu模式,短信息正文經(jīng)過十六進(jìn)制編碼后進(jìn)行傳送。在本設(shè)計(jì)要實(shí)現(xiàn)中文短消息的傳送和接收處理,因此采用pdu模式來(lái)發(fā)送接收短信息。
由移動(dòng)終端發(fā)起時(shí)(即發(fā)送)的pdu格式為:
以移動(dòng)終端為目的時(shí)的pdu格式為:
其中,smsc為短信息業(yè)務(wù)中心地址,da/oa為源/目的地址,pid為協(xié)議識(shí)別,dcs為數(shù)據(jù)編碼,udl為用戶數(shù)據(jù)長(zhǎng)度,ud為用戶數(shù)據(jù),vp為有效時(shí)間,mr指明是發(fā)出信息,scts指明短信息到達(dá)業(yè)務(wù)中心的時(shí)間。
軟件編程
軟件編程分為控制端(pc和tc35t)編程和受控端(單片atmega128和tc35t)編程。pc機(jī)端的軟件采用vc編程,主要包括控制界面、接收/發(fā)送短信息、數(shù)據(jù)處理。pc以十六進(jìn)制發(fā)送數(shù)據(jù),tc35t再以短信息的格式通過smsc短信息中心發(fā)給受控端的tc35t??刂贫说膖c35t接收短信息后,pc只要發(fā)送一條at+cmgl=0 0d 0a查詢命令即可,0d與0a分別是回車、換行。
受控端采用實(shí)時(shí)嵌入式操作系統(tǒng) μc/os-ii,軟件分為與操作系統(tǒng)和處理器相關(guān)的代碼移植部分和應(yīng)用程序軟件。受控端硬件和軟件的結(jié)構(gòu)如圖3所示。
在atmega128和c編譯器iccavr滿足了μc/os-ii要求的前提下,移植的工作主要包括以下內(nèi)容:用#define設(shè)置一個(gè)常量的值(os_cpu.h);聲明10個(gè)數(shù)據(jù)類型(os_cpu.h);用#define聲明三個(gè)宏(os_cpu.h);用c語(yǔ)言編寫六個(gè)簡(jiǎn)單的函數(shù)(os_cpu_c.c);編寫四個(gè)匯編語(yǔ)言函數(shù)(os_cpuc_a.asm)。
μc/os-ii總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù),最多可以管理64個(gè)任務(wù),其中保留了8個(gè)給系統(tǒng)。系統(tǒng)的工作過程就是在內(nèi)核的管理下,根據(jù)就緒態(tài)任務(wù)的優(yōu)先級(jí)來(lái)運(yùn)行程序,始終在執(zhí)行最重要的任務(wù)。在設(shè)計(jì)中要將系統(tǒng)功能分割成幾個(gè)部分,按照各部分完成任務(wù)的重要性來(lái)確定任務(wù)的優(yōu)先級(jí)。
本系統(tǒng)按照其所能實(shí)現(xiàn)的功能可以分為七個(gè)任務(wù),其優(yōu)先級(jí)從高到低依次為建立任務(wù)的任務(wù)、初始化任務(wù)、監(jiān)控任務(wù)、異常情況處理任務(wù)、短消息接收任務(wù)、短消息處理任務(wù)、短消息發(fā)送任務(wù),再加上兩個(gè)系統(tǒng)本身所固有的空閑任務(wù)、統(tǒng)計(jì)任務(wù)(空閑任務(wù)的優(yōu)先級(jí)最低,其次為統(tǒng)計(jì)任務(wù)),系統(tǒng)的任務(wù)總數(shù)為九個(gè)。
主程序的任務(wù)主要是初始化操作系統(tǒng)和建立一個(gè)建立任務(wù)的任務(wù),啟動(dòng)多任務(wù),下面是應(yīng)用程序主程序的代碼。
void main(void)
{
osinit();
ostaskcreateext( taskstart,
(void*)0,
&taskstartstk[task_stk_size-1],
task_start_prio,
task_start_id,
&taskstartstk[0],
task_stk_size,
(void *)0,
os_task_opt_stk_chr|os_ task_opt_stk_clr);
osstart();
}
本系統(tǒng)采用gsm模塊tc35t實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,具有實(shí)現(xiàn)簡(jiǎn)單、成本低、通信范圍廣和傳輸可靠等優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。
評(píng)論