基于CDMA網(wǎng)絡(luò)的遠(yuǎn)程自動抄表系統(tǒng)設(shè)計
2短信收發(fā)平臺設(shè)計 該模塊的內(nèi)部實現(xiàn)可用圖4所示的類圖描述。其中ISerialComm為串口操作接口,CSerialComm為它的具體實現(xiàn);ISMParser是短消息內(nèi)容分解接口,可對一條或多條短信息進(jìn)行分解,提取短消息內(nèi)容;SMS_INFO 是短消息結(jié)構(gòu),包含有序列號,消息狀態(tài),呼叫號碼,服務(wù)中心時間戳,編碼語言,編碼方法,優(yōu)先級,回叫號碼;IHandler 是系統(tǒng)消息處理類,處理諸如新消息到來,SIM卡已滿,不完整消息,收到單條消息,收到短消息列表,AT命令正確,錯誤等類型的消息;CATFactory 是AT 指令形成類,負(fù)責(zé)各種AT指令的形成,以字符串的形式返回;CSMCC 則為該接口的具體實現(xiàn),它負(fù)責(zé)總的系統(tǒng)調(diào)度,如:利用CATFactory形成AT指令,用CserialComm發(fā)送接收,利用ISMParser分解返回結(jié)果,以及利用ImessageHandler處理系統(tǒng)消息等。動態(tài)鏈接庫的程序流程圖5所示。 2.3 短信收發(fā)應(yīng)用程序設(shè)計 參 考 文 獻(xiàn) 作者簡介:齊海兵(1969-),男,湖北天門人,黃石理工學(xué)院電子工程師。1991年畢業(yè)于中南大學(xué)應(yīng)用物理專業(yè),2004年碩士就讀于中南大學(xué)物理科學(xué)與技術(shù)學(xué)院物理電子學(xué)專業(yè),主要研究方向:信息與信號處理。
在整個遠(yuǎn)程抄表系統(tǒng)中,Q2358C模塊用做數(shù)據(jù)和指令傳輸?shù)墓ぞ?,它的短信收發(fā)功能的實現(xiàn)對于整個系統(tǒng)功能的實現(xiàn)起著決定性的作用。短信不能收發(fā),數(shù)據(jù)和指令也就不能傳輸,系統(tǒng)也就無法工作。下面主要介紹的短信收發(fā)平臺由PC機(jī)和短信收發(fā)模塊組成,以及通過軟件設(shè)計實現(xiàn)短信收發(fā)的方法。
2.1 AT指令與應(yīng)用
AT指令最初由Hayes公司推出,用于對調(diào)制解調(diào)器的控制,現(xiàn)在已演化為一種的標(biāo)準(zhǔn),所有移動模塊都支持AT指令。基于Q2358C模塊的AT指令采用的是1.70版本,共240多條,歸納起來可分成通用指令、功能操作指令和安全保護(hù)指令三大類。其中有關(guān)短信息服務(wù)的指令共17條。利用這些AT指令可實現(xiàn)短信的發(fā)送、接收、列表、閱讀、刪除和存儲等功能。
AT指令的基本格式為:AT+命令字符及相關(guān)設(shè)置參數(shù)。AT為前導(dǎo)符,表示命令的開始;命令字符及相關(guān)設(shè)置參數(shù)表示進(jìn)行何種操作,如:AT+CMGR=〈n〉表示讀索引號為n的短消息[5]。
AT 指令的返回代碼分別以字符
2.2 動態(tài)鏈接庫
動態(tài)鏈接庫(Dynamic-Link Libraries),就是一個可執(zhí)行模塊(其擴(kuò)展名為.DLL),模塊中包含了可以被其它應(yīng)用程序使用或其它DLLs使用的例程和資源。DLLs的特點在于它的代碼是在運(yùn)行時動態(tài)地鏈接到調(diào)用它的程序中,DLLs一旦加載,就能被多個應(yīng)用程序或其它DLLs共享。在CDMA短信收發(fā)平臺的設(shè)計過程中,作者采用VC的COM組件技術(shù)來建立動態(tài)鏈接庫,實現(xiàn)模塊的短信收發(fā)功能。建立的方法是首先在VC中新建一個ATL COM工程,然后創(chuàng)建接口SMCC,接著按照最初的設(shè)計添加其它類,最后完成編碼和調(diào)試[6]。
該組件的接口名稱是SMCC,提供的接口函數(shù)有:Initialize,UnInitialize,SendSMS,ReadSMS,ListSMS,DeleSMS,NextSMS,SetLangAndEncod。其功能分別為:初始化系統(tǒng),打開串口,設(shè)置波特率等參數(shù);關(guān)閉串口,釋放系統(tǒng)資源;發(fā)送短信息;根據(jù)索引讀取一條短信息;根據(jù)短消息狀態(tài)羅列短消息;刪除短消息;在ListSMS后獲得下一條短消息;設(shè)置短消息語言和編碼。
短信收發(fā)應(yīng)用程序是在VB的開發(fā)環(huán)境下完成的。首先創(chuàng)建一個工程進(jìn)入操作界面的設(shè)計窗口,在界面上設(shè)置兩個文本框和命令按鈕,文本框用來顯示短信內(nèi)容或輸入?yún)?shù),命令按鈕用來啟動發(fā)送或接收事件。然后在代碼窗口中編寫應(yīng)用程序代碼[6]。編寫代碼時首先要調(diào)用動態(tài)鏈接庫,方法是在工程菜單中選擇“引用”,然后在出現(xiàn)的對話框中選擇要引用的動態(tài)鏈接庫。
2.4程序調(diào)試
在短信收發(fā)的程序調(diào)試過程中出現(xiàn)了兩個比較明顯的問題。一個是串口操作問題,當(dāng)向串口傳送AT指令時,通過串口接收的數(shù)據(jù)卻不是完整信息,要分多次才接收完整。經(jīng)仔細(xì)調(diào)試發(fā)現(xiàn),原來系統(tǒng)硬件部分在收到指令后是分兩次應(yīng)答,先是指令的返回,然后才是指令執(zhí)行結(jié)果,但指令執(zhí)行結(jié)果也不是一次返回,而是有可能分發(fā)多次,而作者在設(shè)置串口模式時是異步模式,這樣才造成以上的問題。解決辦法是,通過SetCommTimeouts函數(shù)來設(shè)置ReadIntervalTimeout(讀取間隔超時)。由于默認(rèn)的超時間隔過短,以致還沒讀取完整信息就退出了。將超時間隔改為10ms就解決問題了。
另一個比較明顯的問題是當(dāng)采用UNICODE編碼方式發(fā)送短信時,對方手機(jī)接收到的信息不完整,通過程序調(diào)試發(fā)現(xiàn)原來在采用此編碼時,因為原始數(shù)據(jù)為ASCII,轉(zhuǎn)換為UNICODE后數(shù)據(jù)大小變?yōu)樵瓉淼膬杀?,而最初分配的緩沖區(qū)是按照 ASCII的,所以導(dǎo)致部分信息丟失。重新分配緩沖區(qū)即解決問題。
3結(jié)語
基于CDMA網(wǎng)絡(luò)的遠(yuǎn)程自動抄表系統(tǒng)可擴(kuò)展成對多路電表數(shù)據(jù)的傳輸,這樣可充分的利用短信收發(fā)模塊,同時降低系統(tǒng)的成本。系統(tǒng)覆蓋范圍廣,不受地域限制(只要是無線網(wǎng)絡(luò)覆蓋范圍即可),成本低,能及時準(zhǔn)確的向用電管理部門提供數(shù)據(jù)[7],且數(shù)據(jù)的分析和處理以及用電管理由系統(tǒng)自動完成,因此節(jié)約了人力物力,可避免用電欠費(fèi)問題,提高了管理水平,具有廣闊的應(yīng)用前景。
[1] 張愷, 李祥珍, 張晶等. 自動抄表系統(tǒng)應(yīng)用模式的探討[J]. 電網(wǎng)技術(shù), 2001, 25(5): 41~45
[2] 陳愛萍, 劉望軍, 李信德. 遠(yuǎn)程抄表技術(shù)通信方法的研究, 集成電路[J]. 2003年4月: 85-86
[3] 王柏林. 一種用于配電自動化系統(tǒng)的多功能電能表[J]. 電力系統(tǒng)自動化, 2000, 24(10): 53~54
[4] 鄒盟軍, 翟志強(qiáng), 曹健雄等. 電能量計量計費(fèi)系統(tǒng)的工程實現(xiàn)[J]. 電力系統(tǒng)自動化, 2003, 27(1): 83~85
[5] 周學(xué)泳, 石丹. 短信息(SMS)與WAP的開發(fā)及應(yīng)用[M]. 北京: 電子工業(yè)出版社, 2002
[6] 范逸之, 陳立元. 利用Visual Bbsic實現(xiàn)串并行通信技術(shù)M]. 北京: 人民郵電出版社, 2002
[7] 楊忠春. 如何組建高效可靠的專用無線數(shù)據(jù)傳輸系統(tǒng), 微計算機(jī)信息[J]. 2002年9月: 31
本文作者的創(chuàng)新點是:
研究了電表數(shù)據(jù)在CDMA無線網(wǎng)絡(luò)中以短信收發(fā)的平臺及其實現(xiàn)方法。系統(tǒng)具有成本低、實時性好、安全方便等特點。
Email: qhbcs@yahoo.com.cn
通信地址:黃石理工學(xué)院,湖北 黃石 435003
評論