<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于嵌入式Linux的短信收發(fā)系統設計方案

基于嵌入式Linux的短信收發(fā)系統設計方案

作者: 時(shí)間:2017-06-08 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 引言

本文引用地址:http://dyxdggzs.com/article/201706/351190.htm

全球移動(dòng)通信系統是我國范圍最廣、通信能力最強的移動(dòng)通信業(yè)務(wù),而其中的短消息功能由于其使用方便、價(jià)格低廉、可靠性高而得到廣泛應用。嵌入式也是目前得到廣泛應用的技術(shù),功能強大和資源豐富是其最大的優(yōu)勢。本文在嵌入式系統中利用模塊實(shí)現短信的收發(fā),對不方便架設通信線(xiàn)的偏遠地區,提供了數據采集的新手段。同時(shí)嵌入式系統體積小巧,操作系統資源開(kāi)放,所以本系統經(jīng)過(guò)二次開(kāi)發(fā),可方便地構成移動(dòng)數據采集系統,用于遠程數據采集、監控。

2. 原理

短信服務(wù)業(yè)務(wù)SMS(Short Message Service)是系統提供給用戶(hù)的一種數字業(yè)務(wù)。它與話(huà)音傳輸及傳真一樣同為GSM數字蜂窩移動(dòng)通信網(wǎng)絡(luò )提供的主要電信業(yè)務(wù)。涉及SMS管理的協(xié)議如圖1所示。

圖1 SMS管理的協(xié)議

圖中SME為短信實(shí)體, SMSC為短信服務(wù)中心,SMCGWMS為SMS網(wǎng)關(guān),HLR是歸屬位置寄存器,用于永久儲存管理用戶(hù)和服務(wù)記錄的數據庫,MSC為移動(dòng)交換中心,VLR為訪(fǎng)問(wèn)位置寄存器,含有用戶(hù)臨時(shí)信息的數據庫,交換中心服務(wù)訪(fǎng)問(wèn)用戶(hù)時(shí)需要這些信息。

短消息模塊的接入方式支持兩種模式:基于A(yíng)T指令的TEXT模式和基于A(yíng)T指令的PDU模式,它指的是短信息數據的編碼格式,文本模式只支持7-bit編碼,只能發(fā)送純英文和數字信息,而PDU模式支持7-bit編碼、8-bit編碼和UCS-2編碼,其中后者可進(jìn)行Unicode編碼,如中文,所以本系統采用PDU模式。

GSM模塊采用標準AT指令集通信,其中本系統用到的AT指令如表1所示。

 

3. GSM短信數據格式分析

3.1 發(fā)送短信PDU字符串

由于短信模式選擇的是PDU格式,因此對PDU的編碼和轉碼就變得很重要。中文短信息的實(shí)現需要將GB2312的中文編碼轉換為代碼頁(yè)為CP936的Unicode編碼,PDU發(fā)送字符串數據格式中主要由短信中心地址、文件頭字節、信息類(lèi)型、目的地址、協(xié)議標識、數據編碼方案、有效期、用戶(hù)數據長(cháng)度和用戶(hù)數據組成。例如:設置PDU格式的編碼為08 91 68 31 08 20 01 05 F0 11 00 0D 91 68 31 21 43 65 87 F9 00 08 00 04 4F 60 59 7DH,這組代碼的含義如下所示:

08H:短信服務(wù)中心地址信息的長(cháng)度,共8個(gè)八位字節(包括91) ;

91H:短信服務(wù)中心地址格式,用國際格式號碼,在前面加‘+’ ;

68 31 08 20 01 05 F0H:短信服務(wù)中心地址,8613800210500,補‘F’湊成偶數個(gè);

11H:基本參數,協(xié)議數據單元類(lèi)型,表示發(fā)送,TP-VP用相對格式;

00H :信息參考,00H表示參考本身號碼;

0DH :對方手機號數字個(gè)數,共13個(gè)十進(jìn)制數 ;

91H :對方手機號,用國際格式號碼,在前面加‘+’ ;

68 31 21 43 65 87 F9H:對方手機號(TP-DA),8613123456789,補‘F’湊成偶數個(gè);

00H:協(xié)議標識(TP-PID), 是普通GSM類(lèi)型,點(diǎn)到點(diǎn)方式;

08H:用戶(hù)信息編碼方式(TP-DCS),主要用其1個(gè)字節的第2和第3位表示編碼方式,08H表示為UCS-2編碼,最多發(fā)140個(gè)字符;04H為8-bit編碼,最多發(fā)140個(gè)字符;00H為7-bit編碼,最多發(fā)160個(gè)字符;

00H:有效期(TP-VP),5分鐘;

04H:短信長(cháng)度(TP-UDL),實(shí)際長(cháng)度4個(gè)字節;

4F 60 59 7DH:用戶(hù)信息(TP-UD),“你好”的Unicode編碼 。

3.2 短信接收PDU字符串

接收方PDU字符串的含義和發(fā)送方不同,同樣以“你好”為例,接收方的PDU字符串為:08 91 68 31 08 20 01 05 F0 24 0D 91 68 31 67 24 47 63 F0 00 08 70 50 91 31 21 25 23 04 4F 60 59 7DH,其含義如下:

08 91 68 31 08 20 01 05 F0H:短信服務(wù)中心,分析同發(fā)送相同;

24H:協(xié)議數據單元類(lèi)型基本參數(TP-MTI/VFP) ,發(fā)送,TP-VP用相對格式;

0DH:對方手機號數字個(gè)數;

91H:對方手機號(TON/NPI),用國際格式號碼(在前面加‘+’);

68 31 67 24 47 63 F0H :對方手機號(TP-DA),8613764274360,補‘F’湊成偶數個(gè);

00H:協(xié)議標識(TP-PID) ,是普通GSM類(lèi)型,點(diǎn)到點(diǎn)方式;

08H:用戶(hù)信息編碼方式(TP-DCS) ,分析同發(fā)送方;

70 50 91 31 21 25H:短信息發(fā)送時(shí)間(SCTS),07年05月19日13時(shí)12分52秒;

23H:發(fā)送時(shí)間對應的時(shí)區;

04H:短信長(cháng)度(TP-UDL),實(shí)際長(cháng)度4個(gè)字節;

4F 60 59 7DH:用戶(hù)信息(TP-UD) ,“你好”的Unicode編碼。

4. 系統組成

4.1 硬件組成

系統由嵌入式Linux系統和西門(mén)子MC35模塊通過(guò)串行接口三線(xiàn)制連接而構成, MC35模塊通過(guò)串口1與嵌入式系統相連,嵌入式系統配置包括50MHz 主頻的MPC860 32位處理器,16M SDRAM內存,2個(gè)RS232,操作系統采用嵌入式Linux for PowerPC。MC35模塊由GSM基帶處理器、電源專(zhuān)用集成電路、射頻電路和閃速存儲器等部分組成,負責處理GSM蜂窩設備中的音頻、數據信號,內嵌的軟件部分執行應用接口和所有GSM協(xié)議棧的功能。MC35模塊支持中文短信,支持GPRS功能,便于將來(lái)功能的擴展。

4.2 libcssl函數庫

為了實(shí)現,需要在嵌入式Linux下通過(guò)串口發(fā)送一系列的AT指令。串行通信是計算機與其它設備通信的常用方法,在本系統中采用一個(gè)基于Linux的串行通信函數庫libcssl,可實(shí)現串行接口的異步事件驅動(dòng)并發(fā)。采用該方法,用戶(hù)只要在服務(wù)器和數據源之間建立異步連接,編寫(xiě)數據處理函數,而對數據源事件的監測、數據讀取、多事件的處理等操作是由操作系統內部完成的,因而,很大程度上簡(jiǎn)化了編程者的工作,同時(shí)保證了較高的資源利用率。

libcssl函數庫提供給用戶(hù)多種基于事件驅動(dòng)方式的串行接口函數。其主要的函數有4類(lèi),分別進(jìn)行串口初始化、收發(fā)數據、錯誤信息和結束串口操作。在使用某個(gè)串口之前,應調用初始化函數,為其設定相應的參數,使得收發(fā)雙方遵循相同的通信協(xié)議和數據格式,同時(shí)通過(guò)初始化操作,為串口數據源和采集服務(wù)器之間建立異步連接,分配采集句柄。當數據源通過(guò)串口向嵌入式系統發(fā)送數據時(shí),該數據會(huì )被送入數據緩沖區,并通過(guò)該數據源的采集句柄訪(fǎng)問(wèn)該串口的事件回調函數,在該函數中完成數據的處理。這樣,當用戶(hù)使用多個(gè)串口時(shí),不需要用多個(gè)線(xiàn)程,只需為每個(gè)串口設置獨立的回調函數,各回調函數之間可方便地實(shí)現數據交換共享。程序中可通過(guò)獲取錯誤信息得知系統出現的錯誤狀態(tài),而采集程序結束,應關(guān)閉串口,釋放系統資源。相關(guān)的函數如表2所示。

 

4.3 軟件設計

使用了異步事件驅動(dòng)函數庫,程序設計簡(jiǎn)單而容易實(shí)現,程序主要由2部分組成,即主程序設計和回調函數程序設計,主程序只需做初始化和發(fā)送短信,其余功能都放在回調函數中完成。

在主程序中,各變量賦初值,調用cssl_open函數打開(kāi)串口,設定的參數為采用串口1,即嵌入式Linux的ttyS0設備,波特率9600bps,8位數據位,1位停止位,無(wú)奇偶校驗,無(wú)數據流控制,定義串口接收數據緩沖區有數據輸入時(shí),回調函數為callback函數,該函數對數據緩沖區中的數據進(jìn)行分析處理。通過(guò)發(fā)送AT+CMGF=0指令定義短信模式為PDU模式,并判斷是否有短信需要發(fā)送。對待發(fā)送的短信按照PDU發(fā)送字符串格式進(jìn)行編碼。

回調函數中首先讀取輸入緩沖區內容,根據對標志和緩沖區內容的判斷,可以得知回調事件是由哪個(gè)事件引起,分別加以處理,由于每次向GSM模塊發(fā)送AT指令后,模塊會(huì )發(fā)送OK或ERROR等響應表示操作成功或失敗,所以在回調函數中一個(gè)很重要的功能就是判斷AT指令是否發(fā)送成功,為了區分不同AT指令的響應,程序中采用狀態(tài)標志,表征系統發(fā)送AT指令的類(lèi)型。在收到新短信后,需要提取短信發(fā)送方電話(huà)號碼、短信發(fā)送時(shí)間和短信內容等相關(guān)信息,并加以存儲,提取的依據就是短信接收PDU字符串的編碼格式。為了避免由于短信滿(mǎn)而無(wú)法接收新短信,需要將處理過(guò)的短信刪除。相關(guān)的流程圖如圖2和圖3所示。

圖2 主程序流程圖

圖3 回調函數程序流程圖

5. 結論

本文的創(chuàng )新之處在于提供了嵌入式Linux下GSM模塊的系統設計方法,程序設計中利用串行接口驅動(dòng)函數庫libcssl,以串口I/O事件驅動(dòng)設備的數據采集。短信收發(fā)采用PDU模式,能夠處理中文、英文和中英文短信。異步事件驅動(dòng)的架構可以提高系統并發(fā)處理性能,程序能夠執行多個(gè)異步操作而不調用阻塞線(xiàn)程,降低系統開(kāi)銷(xiāo)。嵌入式系統加GSM模塊的系統組成體積小巧,非常適合于偏遠地區或移動(dòng)的數據采集系統。根據系統的需要,還可以充分利用MC35模塊的GPRS功能,實(shí)現高速的數據采集。




關(guān)鍵詞: 短信收發(fā) Linux GSM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>