新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT91RM9200短消息監控系統的設計與實現

        基于AT91RM9200短消息監控系統的設計與實現

        作者: 時間:2013-04-24 來源:網絡 收藏

        3 系統軟件
        系統軟件的主要是Linux下C的編程,無線監控程序是依照收發的原理來對于GSM模塊的控制。
        3.1 收發的原理
        內容的最大長度為140 Byte。它的編碼主要有7位編碼,8位編碼,UC2編碼3種編碼方式。7位編碼是每Byte只使用低7位,每8 By te為一組,去掉最高位,重新編碼為7 Byte,因此,7位編碼實際可以表示到160 Byte。但7位編碼只能發送0x00~0x7F范圍內的字符,一般在發送英文短信時使用。編碼原理是:每8 Byte為一組,分別用A,B,C,D,E,F,G代表8 Byte,An代表每個Byte的位,則8 Byte重新編碼成如表1所示的7 Byte。

        本文引用地址:http://www.104case.com/article/148048.htm

        c.JPG


        8位編碼是所見即所得的編碼方式,即無需編碼,只要將二進制串直接發送即可。8位編碼方式適用于制定各種短消息的通訊協議。U C2編碼常用于中文或中英文混合內容發送,只能發送70個字符(1個UC2占2 Byte)。由于國內一般的編輯器多以GB編碼,因此,若要發送中文,需先將中文轉換為UC2編碼再發送。在手機上,通常的做法是如果全部為英文及半角字符,則以7位編碼發送,如果含有中文,則全部編碼為UC2發送。
        短消息發送方式主要分為文本模式和PDU模式。文本模式其實是針對7位編碼做的一個封裝,它只能用于發送ANSI范圍的字符,發送方式較簡單。而PDU模式中所有短消息數據發送前都必須組織成PDU的格式,在PDU模式下發送短信比較復雜,需要自行組織PDU內容,但發送方式靈活,可以發送各種數據,也可以自行設定各PDU字段的內容。
        3.2 常用的短消息AT指令
        GSM無線模塊采用標準AT指令集通信,AT命令是用于控制TE(Terminal Equipment)(如PC等用戶終端)和MT(Mobile Terminal)(如移動臺等移動終端)之間的相互規則。AT命令類型主要分為基本命令、S寄存器命令、擴展以及廠商定義命令3類。

        d.JPG


        3.3 GSM程序的
        ARM與GSM通信以ttyS1對應的串口為橋梁,與MG323提供的1個UART接口連接,支持短消息、電話本管理、數據業務、嵌入式TCP/UDP等功能。使用ARM發出AT指令集對GSM模塊進行相應的操作,能夠完成發短消息的功能。具體軟件流程如圖3所示。

        e.JPG


        對串口初始化的工作主要是波特率、校驗位和停止位設置。配置完串口的相關屬性,就可以對串口進行打井、讀寫操作了。在Linux系統中,所有的設備文件都位于“/dev”下,其中串口2對應的設備名為“/dev/ttyS1”,在Linux下對設備和對文件的操作方法是一樣的,因此對串口讀寫可以使用簡單的“read”,“‘write”函數完成。
        對GSM模塊進行初始化工作主要是發送“AT”給MT(Mobil Terminal)看起是否有回復以確定ARM與GSM的串口工作正常。在確認串口正常工作后,發送“ATE0”命令關閉MT的回顯。
        設置短信的通知方式、短信的格式(PDU)以及短信的編碼(USC2)。如果每個功能的設定都正常,最后按照PDV格式向指定用戶發送“GSM模塊初始化成功”的短信。
        解析數據并發送短信主要是首先按PDU格式填充發送個MT的緩沖區的前46 Byte。然后打開數據存儲文件,用lseek函數將文件光標由文件結尾向前移動17 Byte。因為數據幀中的數據是以2 Byte的16進制來表示,所以首先將其合并成一個16位的短整型,然后將合并的數據與檢驗位相加。將數據處理后,最后發送短信并檢查MT回復中是否有+CMGS的指令,若有則代表短信發送成功。

        4 結束語
        處理器搭建嵌入式Linux系統,利用GSM/GPRS無線通信模塊短消息的發送。同時嵌入式系統加GSM模塊的系統組成體積小巧,工作穩定,適合偏遠地區或移動數據采集系統,提供了數據采集監控的新手段。隨著無線通信系統的不斷發展和成熟,它必將深入到生活的各個方面。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵溪市| 屯留县| 汕头市| 大宁县| 永清县| 朝阳区| 信阳市| 华阴市| 余姚市| 泸州市| 古丈县| 平罗县| 琼中| 台湾省| 东乌| 茂名市| 汤阴县| 多伦县| 饶河县| 额济纳旗| 和田市| 桃江县| 玉林市| 多伦县| 绿春县| 长宁区| 云龙县| 邯郸县| 安顺市| 手游| 十堰市| 灵台县| 宝丰县| 城口县| 沙雅县| 香河县| 明水县| 海城市| 额济纳旗| 安远县| 安溪县|