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

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于嵌入式Linux的短信收發(fā)系統(tǒng)設(shè)計(jì)

摘要:移動(dòng)通信中的短消息業(yè)務(wù)以其方便、可靠和價(jià)廉得到了廣泛應(yīng)用,本文在嵌入式Linux系統(tǒng)中,通過(guò)西門子MC35模塊,實(shí)現(xiàn)了短信收發(fā)系統(tǒng),該系統(tǒng)采用PDU短信模式,能支持中文短信。程序設(shè)計(jì)采用異步事件驅(qū)動(dòng)方式,提高了系統(tǒng)的運(yùn)行效率。嵌入式系統(tǒng)體積小巧,Linux資源開(kāi)放,因此該系統(tǒng)經(jīng)過(guò)二次開(kāi)發(fā),可方便地用于各種移動(dòng)數(shù)據(jù)采集系統(tǒng)中。

1.        引言

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

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

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

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

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

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

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

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

功能

AT指令

短消息格式

AT+CMGF

短消息中心號(hào)碼

AT+CSCA

新消息提示

AT+CNMI

讀短消息

AT+CMGR

列短消息

AT+CMGL

發(fā)送短消息

AT+CMGS

短消息刪除

AT+CMGD

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

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

由于短信模式選擇的是PDU格式,因此對(duì)PDU的編碼和轉(zhuǎn)碼就變得很重要。中文短信息的實(shí)現(xiàn)需要將GB2312的中文編碼轉(zhuǎn)換為代碼頁(yè)為CP936的Unicode編碼,PDU發(fā)送字符串?dāng)?shù)據(jù)格式中主要由短信中心地址、文件頭字節(jié)、信息類型、目的地址、協(xié)議標(biāo)識(shí)、數(shù)據(jù)編碼方案、有效期、用戶數(shù)據(jù)長(zhǎng)度和用戶數(shù)據(jù)組成。例如:設(shè)置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ù)中心地址信息的長(zhǎng)度,共8個(gè)八位字節(jié)(包括91) ;

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

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

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

00H :信息參考,00H表示參考本身號(hào)碼 ;

0DH :對(duì)方手機(jī)號(hào)數(shù)字個(gè)數(shù),共13個(gè)十進(jìn)制數(shù) ;

91H :對(duì)方手機(jī)號(hào),用國(guó)際格式號(hào)碼,在前面加‘+’ ;

68 31 21 43 65 87 F9H:對(duì)方手機(jī)號(hào)(TP-DA),8613123456789,補(bǔ)‘F’湊成偶數(shù)個(gè);

00H:協(xié)議標(biāo)識(shí)(TP-PID),                                               是普通GSM類型,點(diǎn)到點(diǎn)方式;

08H:用戶信息編碼方式(TP-DCS),主要用其1個(gè)字節(jié)的第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:短信長(zhǎng)度(TP-UDL),實(shí)際長(zhǎng)度4個(gè)字節(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用相對(duì)格式;

0DH:對(duì)方手機(jī)號(hào)數(shù)字個(gè)數(shù);

91H:對(duì)方手機(jī)號(hào)(TON/NPI),用國(guó)際格式號(hào)碼(在前面加‘+’);

68 31 67 24 47 63 F0H :對(duì)方手機(jī)號(hào)(TP-DA),8613764274360,補(bǔ)‘F’湊成偶數(shù)個(gè);

00H:協(xié)議標(biāo)識(shí)(TP-PID) ,是普通GSM類型,點(diǎn)到點(diǎn)方式;

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

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

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

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

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

4.        系統(tǒng)組成

4.1      硬件組成

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

4.2     libcssl函數(shù)庫(kù)

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

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

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

類型

函數(shù)名

功能

初始化

cssl_start

啟動(dòng)串口

cssl_open

打開(kāi)串口

cssl_setflowcontrol

設(shè)置數(shù)據(jù)流控制

釋放資源

cssl_close

關(guān)閉串口

cssl_stop

停止串口

串口發(fā)送數(shù)據(jù)

cssl_putchar

向串口輸出字符

cssl_putstring

向串口輸出字符串

cssl_putdata

向串口輸出數(shù)據(jù)

錯(cuò)誤信息

cssl_geterror

獲取錯(cuò)誤碼

4.3     軟件設(shè)計(jì)

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

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

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

圖2 主程序流程圖                                         

圖3 回調(diào)函數(shù)程序流程圖

5.        結(jié)論

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

參考文獻(xiàn):

[1]         程全.李向東.基于GSM模塊與AT98C51的接口設(shè)計(jì)及應(yīng)用.微計(jì)算機(jī)信息.2006:9-2:293-295

[2]         萬(wàn)求.李淼.張建.羅毅.GSM短信傳送文件的方法的研究與實(shí)現(xiàn).計(jì)算機(jī)工程與應(yīng)用.2006:32:122-125

[3]         吳琳艷.基于TC35模塊和VB的短消息接入收發(fā)設(shè)計(jì).武漢理工大學(xué)學(xué)報(bào).2006.28.11:153-155

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

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

要問(wèn)機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開(kāi)發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國(guó)高端家電品牌G50峰會(huì)》于浙江寧波落幕,來(lái)自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉