基于嵌入式linux的短信收發(fā)系統(tǒng)設計_第1頁
基于嵌入式linux的短信收發(fā)系統(tǒng)設計_第2頁
基于嵌入式linux的短信收發(fā)系統(tǒng)設計_第3頁
基于嵌入式linux的短信收發(fā)系統(tǒng)設計_第4頁
基于嵌入式linux的短信收發(fā)系統(tǒng)設計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、基于Linux 的收發(fā)系統(tǒng)設計日期:2008-5-19來源:微計算機信息作者:沙泉字體:大 中 小<noscript<ahref= HYPERLINK http:/a/ http:/a/main/adfclick?user=Afp21ic|innewshtml|innews_200 x200&db=afp21ic<imgsrc= HYPERLINK http:/a/ http:/a/main/adfshow?user=Afp21ic|innewshtml|innews_200 x200&db=afp21ic width=200 height=200 border=0摘要:移動通信中

2、的短消息業(yè)務以其方便、可靠和價廉得到了廣泛應用,本文在Linux系統(tǒng)中,通過西門子 MC35 模塊,實現(xiàn)了收發(fā)系統(tǒng),該系統(tǒng)采用 PDU模式,能支持中文。程序設計采用異步事件驅(qū)動方式,提高了系統(tǒng)的運行效率。系統(tǒng)體積小巧,Linux 資源開放,因此該系統(tǒng)經(jīng)過二次開發(fā),可方便地用于各種移動系統(tǒng)中。1.引言全球移動通信系統(tǒng) GSM 是我國范圍最廣、通信能力最強的移動通信業(yè)務,而其中的短消息Linux 也是目前得到廣Linux 系統(tǒng)中利用 GSM功能由于其使用方便、價格低廉、可靠性高而得到廣泛應用。泛應用的技術,功能強大和資源豐富是其最大的優(yōu)勢。本文在模塊實現(xiàn)的收發(fā),對不方便架設通信線的偏遠地區(qū),提供了

3、的新。同時嵌入式系統(tǒng)體積小巧,Linux 操作系統(tǒng)資源開放,所以本系統(tǒng)經(jīng)過二次開發(fā),可方便地移動系統(tǒng),用于、。2.收發(fā)原理服務業(yè)務 SMS(Short Message Service)是 GSM 系統(tǒng)提供給用戶的一種數(shù)字業(yè)務。它與話音傳輸及傳真一樣同為GSM 數(shù)字蜂窩移動通信網(wǎng)絡提供的主要電信業(yè)務。涉及 SMS管理的協(xié)議如圖 1 所示。圖 1 SMS 管理的協(xié)議圖中 SME 為實體, SMSC 為服務中心,SMCGWMS 為 SMS 網(wǎng)關,HLR 是歸屬管理用戶和服務的數(shù)據(jù)庫,MSC 為移動交換中心,VLR 為位置寄存器,用于位置寄存器,含有用戶臨時信息的數(shù)據(jù)庫,交換中心服務用戶時需要這些信息

4、。短消息模塊的接入方式支持兩種模式:基于 AT 指令的 TEXT 模式和基于 AT 指令的 PDU模式,它指的是息數(shù)據(jù)的編碼格式,文本模式只支持 7- bit 編碼,只能發(fā)送純英文和數(shù)字信息,而 PDU 模式支持 7-bit 編碼、8-bit 編碼和 UCS-2 編碼,其中后者可進行 Unicode編碼,如中文,所以本系統(tǒng)采用 PDU 模式。GSM 模塊采用標準 AT 指令集通信,其中本系統(tǒng)用到的 AT 指令如表 1 所示。表 1相關 AT 指令3.GSM數(shù)據(jù)格式分析3.1PDU 字符串由于模式選擇的是 PDU 格式,因此對 PDU 的編碼和轉(zhuǎn)碼就變得很重要。中文息的實現(xiàn)需要將 GB2312

5、的中文編碼轉(zhuǎn)換為代碼頁為 CP936 的 Unicode 編碼,PDU 發(fā)送字符串數(shù)據(jù)格式中主要由中心地址、文件頭字節(jié)、信息類型、目的地址、協(xié)議標識、數(shù)據(jù)編碼方案、有效期、用戶數(shù)據(jù)長度和用戶數(shù)據(jù)組成。例如:設置 PDU 格式的編碼為 08 91 6831 08 20 01 05 F0 11 00 0D 91 68 31 21 43 65 87 F9 00 08 00 04 4F 60 59 7DH,這組代碼的含義如下所示:功能AT 指令短消息格式AT+CMGF短消息中心號碼AT+CSCA新消息提示MI讀短消息AT+列短消息AT+CMGL發(fā)送短消息AT+CMGS短消息刪除AT+CMGD08H:服

6、務中心地址信息的長度,共 8 個八位字節(jié)(包括 91) ;91H:服務中心地址格式,用國際格式號碼,面加+ ;68 31 08 20 01 05 F0H:服務中心地址,8613800210500,補F湊成偶數(shù)個;11H:基本參數(shù),協(xié)議數(shù)據(jù)單元類型,表示發(fā)送,TP-VP 用相對格式;00H :信息參考,00H 表示參考本身號碼 ;0DH :對方號數(shù)字個數(shù),共 13 個十進制數(shù) ;91H :對方號,用國際格式號碼,面加+ ;68 31 21 43 65 87 F9H:對方號(TP-DA),8613123456789,補F湊成偶數(shù)個;00H:協(xié)議標識(TP-),是普通 GSM 類型,點到點方式;08

7、H:用戶信息編碼方式(TP-),主要用其 1 個字節(jié)的第 2 和第 3 位表示編碼方式,08H表示為 UCS-2 編碼,最多發(fā) 140 個字符;04H 為 8-bit 編碼,最多發(fā) 140 個字符;00H 為7-bit 編碼,最多發(fā) 160 個字符;00H:有效期(TP-VP),5 分鐘;04H:長度(TP-UDL),實際長度 4 個字節(jié);4F 60 59 7DH:用戶信息(TP-UD),“你好”的 Unicode 編碼 。3.2接收 PDU 字符串接收方 PDU 字符串的含義和發(fā)送方不同,同樣以“你好”為例,接收方的 PDU 字符串為:0891 68 31 08 20 01 05 F0 24

8、 0D 91 68 31 67 24 47 63 F0 00 08 70 50 91 31 21 25 23 044F 60 59 7DH,其含義如下:08 91 68 31 08 20 01 05 F0H:服務中心,分析同發(fā)送相同;24H:協(xié)議數(shù)據(jù)單元類型基本參數(shù)(TP-MTI/VFP) ,發(fā)送,TP-VP 用相對格式;0DH:對方號數(shù)字個數(shù);91H:對方號(TON/NPI),用國際格式號碼(面加+);68 31 67 24 47 63 F0H :對方號(TP-DA),8613764274360,補F湊成偶數(shù)個;00H:協(xié)議標識(TP-) ,是普通 GSM 類型,點到點方式;08H:用戶信息

9、編碼方式(TP-) ,分析同發(fā)送方;70 50 91 31 21 25H:息發(fā)送時間(SCTS),07 年 05 月 19 日 13 時 12 分 52 秒;23H:發(fā)送時間對應的時區(qū);04H:長度(TP-UDL),實際長度 4 個字節(jié);4F 60 59 7DH:用戶信息(TP-UD) ,“你好”的 Unicode 編碼。4.系統(tǒng)組成4.1硬件組成系統(tǒng)由Linux 系統(tǒng)和西門子 MC35 模塊通過串行接口三線制連接而, MC35 模塊通過串口 1 與系統(tǒng)配置包括 50MHz 主頻的 MPC860 32 位處理系統(tǒng)相連,器,16M SDRAM 內(nèi)存,2 個 RS232,操作系統(tǒng)采用Linux f

10、orC。MC35 模塊由 GSM 基帶處理器、電源集成電路、射頻電路和閃速器等部分組成,負責處理GSM 蜂窩設備中的音頻、數(shù)據(jù)信號,內(nèi)嵌的部分執(zhí)行應用接口和所有 GSM 協(xié)議棧的功能。MC35 模塊支持中文,支持 GPRS 功能,便于將來功能的擴展。4.2libcssl 函數(shù)庫Linux 下通過串口發(fā)送一系列的 AT 指令。串行通信是計為了實現(xiàn)收發(fā),需要在算機與其它設備通信的常用方法,在本系統(tǒng)中采用一個基于 Linux 的串行通信函數(shù)庫libcssl,可實現(xiàn)串行接口的異步事件驅(qū)動并發(fā)。采用該方法,用戶只要在服務器和數(shù)據(jù)源之間建立異步連接,編寫數(shù)據(jù)處理函數(shù),而對數(shù)據(jù)源事件的監(jiān)測、數(shù)據(jù)、多事件的處

11、理等操作是由操作系統(tǒng)完成的,因而,很大程度上簡化了編程者的工作,同時保證了較高的資源利用率。libcssl 函數(shù)庫提供給用戶多種基于事件驅(qū)動方式的串行接口函數(shù)。其主要的函數(shù)有 4 類,分別進行串口初始化、收發(fā)數(shù)據(jù)、錯誤信息和結(jié)束串口操作。在使用某個串口之前,應調(diào)用初始化函數(shù),為其設定相應的參數(shù),使得收發(fā)雙方遵循相同的通信協(xié)議和數(shù)據(jù)格式,同時通過初始化操作,為串口數(shù)據(jù)源和服務器之間建立異步連接,分配句柄。當數(shù)據(jù)源通過串口向系統(tǒng)發(fā)送數(shù)據(jù)時,該數(shù)據(jù)會被送入數(shù)據(jù)緩沖區(qū),并通過該數(shù)據(jù)源句柄訪問該串口的事件回調(diào)函數(shù),在該函數(shù)中完成數(shù)據(jù)的處理。這樣,當用戶使用多個串口時,不需要用多個線程,只需為每個串口設置

12、獨立的回調(diào)函數(shù),各回調(diào)函數(shù)之間可方便地實現(xiàn)數(shù)據(jù)交換共享。程序中可通過獲取錯誤信息得知系統(tǒng)出現(xiàn)的錯誤狀態(tài),而程序結(jié)束,應關閉串口,系統(tǒng)資源。相關的函數(shù)如表 2 所示。表 2 libcssl 函數(shù)庫中的主要函數(shù)類型函數(shù)名功能初始化cssl_start啟動串口cssl_open打開串口cssl_setflowcontrol設置數(shù)據(jù)流控制釋放資源cssl_close關閉串口cssl_stop停止串口串口發(fā)送數(shù)據(jù)cssl_phar向串口輸出字符cssl_putstring向串口輸出字符串cssl_putdata向串口輸出數(shù)據(jù)錯cssl_geterror獲取錯誤碼4.3設計使用了異步事件驅(qū)動函數(shù)庫,程序設

13、計簡單而容易實現(xiàn),程序主要由 2 部分組成,即主程序設計和回調(diào)函數(shù)程序設計,主程序只需做初始化和,其余功能都放在回調(diào)函數(shù)中完成。在主程序中,各變量賦初值,調(diào)用 cssl_open 函數(shù)打開串口,設定的參數(shù)為采用串口 1,即Linux 的 ttyS0 設備,波特率 9600bps,8 位數(shù)據(jù)位,1 位停止位,無奇偶校驗,無數(shù)據(jù)流控制,定義串口接收數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)輸入時,回調(diào)函數(shù)為 callback 函數(shù),該函數(shù)對數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)進行分析處理。通過發(fā)送 AT+CMGF=0 指令定義模式為 PDU需要發(fā)送。對待發(fā)送的按照 PDU 發(fā)送字符串格式進行編碼。模式,并判斷是否有回調(diào)函數(shù)中首先輸入緩沖區(qū)內(nèi)

14、容,根據(jù)對標志和緩沖區(qū)內(nèi)容的判斷,可以得知回調(diào)事件是由哪個事件引起,分別加以處理,由于每次向 GSM 模塊發(fā)送 AT 指令后,模塊會發(fā)送OK 或 ERROR 等響應表示操作成功或失敗,所以在回調(diào)函數(shù)中一個很重要的功能就是判斷AT 指令是否發(fā)送成功,為了區(qū)分不同 AT 指令的響應,程序中采用狀態(tài)標志,表征系統(tǒng)發(fā)送 AT 指令的類型。在收到新后,需要提取發(fā)送方號碼、發(fā)送時間和內(nèi)容等相關信息,并加以,提取的依據(jù)就是接收 PDU 字符串的編碼格式。為了避,需要將處理過的刪除。相關的流程圖如圖 2 和圖 3免由于滿而無法接收新所示。圖 2 主程序流程圖誤信息圖 3 回調(diào)函數(shù)程序流程圖5.結(jié)論本文的創(chuàng)新之處在于提供了Linux 下 GSM 模塊的收發(fā)系統(tǒng)設計方法,程序設計中利用串行接口驅(qū)動函數(shù)庫 libcssl,以串口 I/O 事件驅(qū)動設備的。收發(fā)采用PDU 模式,能夠處理中文、英文和中英文。異步事件驅(qū)動的架構(gòu)可以提高系統(tǒng)并發(fā)處理性能,程序能夠執(zhí)行多個異步操作而不調(diào)用阻塞線程,降低系統(tǒng)開銷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論