摘 要:針對智能家居的應用場合,提出采用BENQ公司的M23模塊,借助SMS平臺實現遠程控制,詳細介紹了M23 GSM/GPRS通信模塊的性能特點,電源與通信電路設計及調試方法,并分析了M23模塊在遠程智能家居控制應用中的軟件設計方法。綜合調試與實驗結果表明,利用上述方法構建的遠程智能家居控制系統工作穩定可靠,實用性強,對于其他需要應用M23模塊的系統也有很好的參考價值。關鍵詞:M23; 遠程控制; 單片機; AT指令; 智能家居
中圖分類號:TN914-33文獻標識碼:A
文章編號:1004-373X(2010)18-0041-03
Application of BENQ-M23 Module in Remote Control of Intelligent House
XU Jin-qiang
(Department of Communication Engineering, Weihai Vocational College, Weihai 264210, China)
Abstract: A remote control system with SMS platform based on BENQ-M23 module is introduced for the application of the intelligent house. The performance characteristics of GSM/GPRS M23 module, as well as the design principle and methods of hardware circuit and software program are discussed in detail. The experimental results show that the control system based on M23 works stably and has practicability. This scheme has a good reference value for other applications which need M23 module.Keywords: M23; remote control; MCU; AT instruction; intelligent house
0 引 言
對家居環境進行遠程監控可以采取多種方式,其中借助短信(SMS)服務平臺或通用分組無線業務(GPRS)的數據業務功能傳送數據或命令是重要方式之一[1]。
BENQ公司的M22/M23模塊是目前市場上的主流GSM/GPRS模塊之一,可以應用于GSM短信息通信以及語音通信。其中,短信息適合對實時性要求不高,數據量不大的數據通信。由于支持GPRS和嵌入式的TCP/IP,M23還可以用于實時性要求較高,數據量相對較大,傳輸速度相對較快的數據通信領域[2-3]。
1 M23模塊功能簡介與電源設計
M23主要由GSM基帶控制器、射頻模塊、供電模塊(VBAT)、閃存、ZIF連接器、音頻、天線接口、常用接口等部分組成。該模塊具有短消息服務、語音通話、數據傳輸等功能,對外可提供天線接口、模擬音頻接口、異步串接口、SIM卡接口等,給用戶設計帶來很大的方便[4-5]。
無線通信模塊的耗電具有不穩定的特點,在待機狀態、基站的握手狀態、通話狀態、撥號狀態或是在信號強弱不同的地方這些因素都會直接影響無線模塊的耗電,因此電源設計非常重要。M23推薦的電源電壓范圍為3.6~4.2 V直流,在工作中模塊的最大瞬間電流能夠達到1.7 A。考慮到大電流的需要,電源設計方案采用LM7805和LM2576開關穩壓芯片的聯合設計。直流電源(+12 V)輸入給LM7805,輸出的5 V直流電壓對單片機進行供電,與此同時通過LM2576產生4 V直流電壓供給M23[6]。
2 M23模塊與MCU和PC機間的通信電路設計
M23模塊配備了UART/RS 232接口,通過它可以與MCU,PC連接,將MCU和PC機作為系統的控制核心,方便了控制中心的后臺設計。當M23模塊與MCU通信時,只需要將模塊的RXD,TXD與MCU的RXD,TXD交叉相連就可以了。由于M23模塊與PC的邏輯電平不一致,因此模塊與PC機通信時,必須進行信號的電平轉換。這種轉換可以由專用電平轉換芯片SIPEX3238實現[7]。
開發人員初次使用M23模塊,可以利用M23與PC間的串口通信功能,借助串口調試助手或超級終端,理解M23的工作過程。例如,在系統電路設計中,可以采用8位平撥開關,分別控制M23的串口與MCU連接或者與DB9連接。當開關1斷開,開關2連通時,模塊的串口與DB9連通,此時模塊不受MCU控制,可以用PC機通過串口調試程序直接對模塊進行配置或者測試。在測試正常后,就可以將開關1連通,開關2斷開。此時,MCU與M23模塊通信。
3 M23模塊常用指令與調試方法
下面以智能家居防盜報警遠程控制中主要用到的短消息命令為例,介紹與SMS相關的AT命令、調試方法及程序設計。
3.1 常用的AT指令
在SMS短消息的編碼方式中,TextMode是純文本方式。Text模式的短信息發送和接收比較簡單,只能發送ASCII碼信息,如不需要傳中文,則最好采用Text模式發送和接收短信息。這種模式對于智能家居遠程控制而言已經足夠[8]。
GMS模塊的通信全部采用Al+XXX的格式完成,與SMS相關的主要AT指令如表1所示[9]。
表1 主要AT指令
連機AT回車GSM模塊連機后回答OK
發送模式設置AT+CMGF=1回車采用文本模式,PDU模式為AT+CMGF=0
短消息中心設置AT+CSCA=“XXX”回車具體號碼由當地運營商決定
接收短消息AT+CMGR=X回車從X存儲區接收消息
刪除短消息AT+CMGD=X回車從X存儲區刪除消息
發送短消息AT+CMGS=“XXX”發送短消息的目標號碼
………
3.2 AT指令調試方法
任何一個GSM模塊首次使用時,必須要測試其工作是否正常。利用上面介紹的PC機通信電路,可以采用Windows自帶的超級終端,也可以使用各種串口調試助手軟件進行調試。下面以串口調試助手為例,介紹調試過程。
圖1為通過串口發送各AT命令后M23模塊的返回結果。根據返回的數據即可判斷M23的工作情況,為后續控制程序的編寫提供了依據。值得注意的是,在通信的波特率上,M23是一個自適應的波特率,即M23支持從1 200~115 200 b/s的任何一個標稱的波特率,而不必另外使用AT指令去設置波特率[10]。
如圖1所示,在發送連機、模式設置、設置短消息中心等命令后,正常情況下M23原樣返回指令,并在回車換行后添加OK字符。AT+CMGL=“REC UNREAD”為列出未讀短信的命令,M23返回SIM卡中未讀短信的位置、電話號碼、接收日期、短信內容等信息。圖1中的未讀短信內容為“GOOD LUCK!”。
圖1 串口調試助手調試AT指令過程
3.3 單片機與M23通信模塊的軟件設計
單片機作為整個系統的控制核心,承擔著系統初始化、短信息的接收/解釋、發送控制命令,以向用戶發送家居環境和報警信號短信息的功能。M23模塊初始化以及單片機與GSM通信的流程圖分別如圖2、圖3所示。
圖2 初始化M23模塊流程圖
圖3 單片機與M23模塊通信程序流程圖
程序開始處需要定義各命令及函數,如下:
char code ATAT_M23[]=\"AT\";//聯機指令
char code AT_M23[]=\"AT+\";//必發前綴
char code Text_M23[]=\"CMGF=1\";//設置文本格式
char code Center_M23[]=\"CSCA=\\\"+8613800631500\\\"\";//短消息中心
char code Message3_M23[]=\"GOOD LUCK!\";//要發送的短信內容
char code Read_M23[]=\"CMGL=\\\"REC UNREAD\\\"\";//讀取未讀短信
…
/*******函數聲明*******/
void SendASC(char ASC);//發送1個字符
void SendToM23(char *P,unsigned char geshu);// 發送1個命令
void SetText(void);//設置文本模式
void SetCenter(void);//設置短消息中心
void SendMessage();//發送短信息
void LinkM23(void);//聯機指令
void RecMessage(void);//讀取未讀短信
…
4 結 語
經過調試運行,依據上述方法構建的智能家居遠程控制系統能夠可靠穩定的運行,較好地完成了控制任務。值得注意的是,M23對電源有較高要求,這一點不容忽視。例如,在M23初步調試階段,使用了數字程控電源YB3203,結果發現M23無法連機。在電源輸出端加上2 000 μF的大電容,并且將電源電壓調整至5.1 V時,M23才正常工作。實際設計方案中,由于LM2576具有可靠的工作性能、較高的工作效率和較強的輸出電流驅動能力,從而為M23的穩定、可靠工作提供了強有力的保證。軟件編程方面,在給M23發送AT命令時,一定要先多發送幾遍連機命令,以保證M23正常連機,而且在發送不同AT命令時,命令間最好加上2 s左右的延時,以保證指令被可靠接收和執行。
參考文獻
[1]于園園.基于GSM的遠程家居智能控制研究[D].長春:長春理工大學,2009.
[2]徐秀麗,歐陽斌林.GPRS無線終端在收獲機上的應用[J].東北農業大學學報,2008,39(10):121-126.
[3]魏芬.GPRS模塊M23在無線數據傳輸方面的應用設計[J].工業控制計算機,2009(5):5-6.
[4]劉建平.基于GPRS的遠程無線抄表系統設計[J].中國高新技術企業,2009(2):45-47.
[5]郁波.基于GPRS的遠程視頻監控系統設計與實現[J].微計算機信息,2008,24(36):160-161.
[6]郭偉.基于GPRS的無線安全報警系統的研究與實現[D].上海:東華大學,2009.
[7]余為清.智能家用遠程控制儀的設計與實現[J].單片機開發與應用,2008,24(8):70-73.
[8]張銀勝.一種無線溫度報警系統的設計[J].武漢:武漢理工大學學報,2009,31(2):14-17.
[9]羅蔚.基于GPS_GPRS的智能測控器的設計與實現[D].武漢:武漢科技大學,2009.
[10]毛慧琴.基于GSM和單片機的遠程家電控制系統[D].南寧:廣西大學,2008.