www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]一種短信收發(fā)系統(tǒng)設(shè)計與實現(xiàn)

1.引言

全球移動通訊系統(tǒng)Global System of Mobile communicaTION就是眾所周知的GSM,是當前應(yīng)用最為廣泛的移動電話標準。全球超過200個國家和地區(qū)超過10億人正在使用GSM電話。GSM標準的無處不在使得在移動電話運營商之間簽署"漫游協(xié)定"后用戶的國際漫游變得很平常。GSM 較之它以前的標準最大的不同是他的信令和語音信道都是數(shù)字式的,因此GSM被看作是第二代 (2G)移動電話系統(tǒng)。這說明數(shù)字通訊從很早就已經(jīng)構(gòu)建到系統(tǒng)中。GSM是一個當前由3GPP開發(fā)的開放標準。同時嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行的裝置”。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內(nèi)一個普遍被認同的定義是:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。

2.短信收發(fā)原理

SMS 是一種存儲和轉(zhuǎn)發(fā)服務(wù)。也就是說,短消息并不是直接從發(fā)送人發(fā)送到接收人,而始終通過 SMS 中心進行轉(zhuǎn)發(fā)。如果接收人處于未連接狀態(tài)(可能電話已關(guān)閉),則消息將在接收人再次連接時發(fā)送。短信息應(yīng)用于內(nèi)部管理,業(yè)務(wù)系統(tǒng)和客戶服務(wù)系統(tǒng): A公司在全國已有100多個業(yè)務(wù)劃分區(qū)域,日常工作中有大量諸如新商品信息、價格調(diào)整等業(yè)務(wù)資訊需要及時提供給所有區(qū)域經(jīng)理,在應(yīng)用短信息之前,主要通過電話或Email來完成這些事情,需要投入大量的人力來完成這些工作,并且還經(jīng)常由于各種因素的影響而出現(xiàn)延誤的現(xiàn)象,現(xiàn)在用短信息則可以快捷和輕松地完成這部分工作。涉及SMS管理的協(xié)議如圖1所示。

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

短消息模塊的接入方式支持兩種模式:基于AT指令的teXT模式和基于AT指令的PDU模式,它指的是短信息數(shù)據(jù)的編碼格式,文本模式只支持7-bit編碼,只能發(fā)送純英文和數(shù)字信息,而PDU模式支持7-bit編碼、8-bit編碼和UCS-2編碼,其中后者可進行Unicode編碼。

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

表1  相關(guān)AT指令

3.GSM短信數(shù)據(jù)格式分析

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

由于短信模式選擇的是PDU格式,因此對PDU的編碼和轉(zhuǎn)碼就變得很重要。中文短信息的實現(xiàn)需要將GB2312的中文編碼轉(zhuǎn)換為代碼頁為CP936的Unicode編碼,PDU發(fā)送字符串數(shù)據(jù)格式中主要由短信中心地址、文件頭字節(jié)、信息類型、目的地址、協(xié)議標識、數(shù)據(jù)編碼方案、有效期、用戶數(shù)據(jù)長度和用戶數(shù)據(jù)組成。代碼的含義如下所示:

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

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

68 31 08 20 01 05 F0H:短信服務(wù)中心地址,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-PID),是普通GSM類型,點到點方式;

08H:用戶信息編碼方式(TP-DCS),主要用其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字符串為: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é)議數(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-PID) ,是普通GSM類型,點到點方式;

08H:用戶信息編碼方式(TP-DCS) ,分析同發(fā)送方;[!--empirenews.page--]

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

23H:發(fā)送時間對應(yīng)的時區(qū);

04H:短信長度(TP-UDL),實際長度4個字節(jié);

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

4.系統(tǒng)組成

4.1硬件組成

系統(tǒng)由嵌入式Linux系統(tǒng)和西門子MC35模塊通過串行接口三線制連接而構(gòu)成, MC35模塊通過串口1與嵌入式系統(tǒng)相連,嵌入式系統(tǒng)配置包括50MHz 主頻的MPC860 32位處理器,16M SDRAM內(nèi)存,2個RS232,操作系統(tǒng)采用嵌入式Linux for PowerPC。MC35模塊由GSM基帶處理器、電源專用集成電路、射頻電路和閃速存儲器等部分組成,負責(zé)處理GSM蜂窩設(shè)備中的音頻、數(shù)據(jù)信號,內(nèi)嵌的軟件部分執(zhí)行應(yīng)用接口和所有GSM協(xié)議棧的功能。GSM 是Global SySTem of Mobile communication(全球移動通訊系統(tǒng))的英文縮寫,是當前應(yīng)用最為廣泛的移動電話標準。全球超過200個國家和地區(qū)超過10億人正在使用GSM電話。所有用戶可以在簽署了"漫游協(xié)定"移動電話運營商之間自由漫游。 GSM 較之它以前的標準最大的不同是它的信令和語音信道都是數(shù)字式的,因此GSM被看作是 第二代 (2G)移動電話系統(tǒng)。 這說明數(shù)字通訊從很早就已經(jīng)構(gòu)建到系統(tǒng)中。GSM是一個當前由3GPP開發(fā)的開放標準。

4.2libcssl函數(shù)庫

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

libcssl函數(shù)庫提供給用戶多種基于事件驅(qū)動方式的串行接口函數(shù)。其主要的函數(shù)有4類,分別進行串口初始化、收發(fā)數(shù)據(jù)、錯誤信息和結(jié)束串口操作。在使用某個串口之前,應(yīng)調(diào)用初始化函數(shù),為其設(shè)定相應(yīng)的參數(shù),使得收發(fā)雙方遵循相同的通信協(xié)議和數(shù)據(jù)格式,同時通過初始化操作,為串口數(shù)據(jù)源和采集服務(wù)器之間建立異步連接,分配采集句柄。當數(shù)據(jù)源通過串口向嵌入式系統(tǒng)發(fā)送數(shù)據(jù)時,該數(shù)據(jù)會被送入數(shù)據(jù)緩沖區(qū),并通過該數(shù)據(jù)源的采集句柄訪問該串口的事件回調(diào)函數(shù),在該函數(shù)中完成數(shù)據(jù)的處理。相關(guān)的函數(shù)如表2所示。

表2 libcssl函數(shù)庫中的主要函數(shù)

4.3軟件設(shè)計

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

在主程序中,各變量賦初值,調(diào)用cssl_open函數(shù)打開串口,設(shè)定的參數(shù)為采用串口1,即嵌入式Linux的ttyS0設(shè)備,波特率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ā)送。

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

圖2 主程序流程圖

5.結(jié)論

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉