關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于CDMA網絡的遠程自動抄表系統設計

        基于CDMA網絡的遠程自動抄表系統設計

        作者: 時間:2016-12-22 來源:網絡 收藏

          2短信收發平臺設計

          在整個遠程抄表系統中,Q2358C模塊用做數據和指令傳輸的工具,它的短信收發功能的實現對于整個系統功能的實現起著決定性的作用。短信不能收發,數據和指令也就不能傳輸,系統也就無法工作。下面主要介紹的短信收發平臺由PC機和短信收發模塊組成,以及通過軟件設計實現短信收發的方法。

          2.1 AT指令與應用

          AT指令最初由Hayes公司推出,用于對調制解調器的控制,現在已演化為一種的標準,所有移動模塊都支持AT指令。基于Q2358C模塊的AT指令采用的是1.70版本,共240多條,歸納起來可分成通用指令、功能操作指令和安全保護指令三大類。其中有關短信息服務的指令共17條。利用這些AT指令可實現短信的發送、接收、列表、閱讀、刪除和存儲等功能。

          AT指令的基本格式為:AT+命令字符及相關設置參數。AT為前導符,表示命令的開始;命令字符及相關設置參數表示進行何種操作,如:AT+CMGR=〈n〉表示讀索引號為n的短消息[5]。

          AT 指令的返回代碼分別以字符開始和結束。如果指令的語法不正確,就返回“ERROR”字符;如果指令是正確的,但存在錯誤的參數,便返回“+CME ERROR:”或“+CMS ERROR:”。< Err >和< SmsErr >是不同的錯誤代碼;如果指令被成功的執行則會返回“OK”。

          2.2 動態鏈接庫

          動態鏈接庫(Dynamic-Link Libraries),就是一個可執行模塊(其擴展名為.DLL),模塊中包含了可以被其它應用程序使用或其它DLLs使用的例程和資源。DLLs的特點在于它的代碼是在運行時動態地鏈接到調用它的程序中,DLLs一旦加載,就能被多個應用程序或其它DLLs共享。在CDMA短信收發平臺的設計過程中,作者采用VC的COM組件技術來建立動態鏈接庫,實現模塊的短信收發功能。建立的方法是首先在VC中新建一個ATL COM工程,然后創建接口SMCC,接著按照最初的設計添加其它類,最后完成編碼和調試[6]。

          該組件的接口名稱是SMCC,提供的接口函數有:Initialize,UnInitialize,SendSMS,ReadSMS,ListSMS,DeleSMS,NextSMS,SetLangAndEncod。其功能分別為:初始化系統,打開串口,設置波特率等參數;關閉串口,釋放系統資源;發送短信息;根據索引讀取一條短信息;根據短消息狀態羅列短消息;刪除短消息;在ListSMS后獲得下一條短消息;設置短消息語言和編碼。

          該模塊的內部實現可用圖4所示的類圖描述。其中ISerialComm為串口操作接口,CSerialComm為它的具體實現;ISMParser是短消息內容分解接口,可對一條或多條短信息進行分解,提取短消息內容;SMS_INFO 是短消息結構,包含有序列號,消息狀態,呼叫號碼,服務中心時間戳,編碼語言,編碼方法,優先級,回叫號碼;IHandler 是系統消息處理類,處理諸如新消息到來,SIM卡已滿,不完整消息,收到單條消息,收到短消息列表,AT命令正確,錯誤等類型的消息;CATFactory 是AT 指令形成類,負責各種AT指令的形成,以字符串的形式返回;CSMCC 則為該接口的具體實現,它負責總的系統調度,如:利用CATFactory形成AT指令,用CserialComm發送接收,利用ISMParser分解返回結果,以及利用ImessageHandler處理系統消息等。動態鏈接庫的程序流程圖5所示。

          2.3 短信收發應用程序設計

          短信收發應用程序是在VB的開發環境下完成的。首先創建一個工程進入操作界面的設計窗口,在界面上設置兩個文本框和命令按鈕,文本框用來顯示短信內容或輸入參數,命令按鈕用來啟動發送或接收事件。然后在代碼窗口中編寫應用程序代碼[6]。編寫代碼時首先要調用動態鏈接庫,方法是在工程菜單中選擇“引用”,然后在出現的對話框中選擇要引用的動態鏈接庫。

          2.4程序調試

          在短信收發的程序調試過程中出現了兩個比較明顯的問題。一個是串口操作問題,當向串口傳送AT指令時,通過串口接收的數據卻不是完整信息,要分多次才接收完整。經仔細調試發現,原來系統硬件部分在收到指令后是分兩次應答,先是指令的返回,然后才是指令執行結果,但指令執行結果也不是一次返回,而是有可能分發多次,而作者在設置串口模式時是異步模式,這樣才造成以上的問題。解決辦法是,通過SetCommTimeouts函數來設置ReadIntervalTimeout(讀取間隔超時)。由于默認的超時間隔過短,以致還沒讀取完整信息就退出了。將超時間隔改為10ms就解決問題了。

          另一個比較明顯的問題是當采用UNICODE編碼方式發送短信時,對方手機接收到的信息不完整,通過程序調試發現原來在采用此編碼時,因為原始數據為ASCII,轉換為UNICODE后數據大小變為原來的兩倍,而最初分配的緩沖區是按照 ASCII的,所以導致部分信息丟失。重新分配緩沖區即解決問題。

          3結語

          基于CDMA網絡的遠程自動抄表系統可擴展成對多路電表數據的傳輸,這樣可充分的利用短信收發模塊,同時降低系統的成本。系統覆蓋范圍廣,不受地域限制(只要是無線網絡覆蓋范圍即可),成本低,能及時準確的向用電管理部門提供數據[7],且數據的分析和處理以及用電管理由系統自動完成,因此節約了人力物力,可避免用電欠費問題,提高了管理水平,具有廣闊的應用前景。

          參 考 文 獻
        [1] 張愷, 李祥珍, 張晶等. 自動抄表系統應用模式的探討[J]. 電網技術, 2001, 25(5): 41~45
        [2] 陳愛萍, 劉望軍, 李信德. 遠程抄表技術通信方法的研究, 集成電路[J]. 2003年4月: 85-86
        [3] 王柏林. 一種用于配電自動化系統的多功能電能表[J]. 電力系統自動化, 2000, 24(10): 53~54
        [4] 鄒盟軍, 翟志強, 曹健雄等. 電能量計量計費系統的工程實現[J]. 電力系統自動化, 2003, 27(1): 83~85
        [5] 周學泳, 石丹. 短信息(SMS)與WAP的開發及應用[M]. 北京: 電子工業出版社, 2002
        [6] 范逸之, 陳立元. 利用Visual Bbsic實現串并行通信技術M]. 北京: 人民郵電出版社, 2002
        [7] 楊忠春. 如何組建高效可靠的專用無線數據傳輸系統, 微計算機信息[J]. 2002年9月: 31

          本文作者的創新點是:
          研究了電表數據在CDMA無線網絡中以短信收發的平臺及其實現方法。系統具有成本低、實時性好、安全方便等特點。

          作者簡介:齊海兵(1969-),男,湖北天門人,黃石理工學院電子工程師。1991年畢業于中南大學應用物理專業,2004年碩士就讀于中南大學物理科學與技術學院物理電子學專業,主要研究方向:信息與信號處理。
        Email: qhbcs@yahoo.com.cn
        通信地址:黃石理工學院,湖北 黃石 435003


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 禹州市| 安徽省| 邯郸县| 石屏县| 吕梁市| 仙居县| 平泉县| 奇台县| 金坛市| 民勤县| 阿拉善右旗| 卓尼县| 双鸭山市| 陕西省| 哈密市| 华池县| 乌兰县| 晴隆县| 子长县| 浦县| 东明县| 舟山市| 克山县| 花莲市| 隆昌县| 宿州市| 呼玛县| 安岳县| 界首市| 宕昌县| 天台县| 得荣县| 万载县| 安多县| 长岭县| 汝阳县| 麻栗坡县| 阿拉善盟| 万年县| 肥城市| 平塘县|