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