當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]中國(guó)移動(dòng)將MMS(Multimedia Messaging Service)命名為“彩信”,大多數(shù)手機(jī)都支持彩信的發(fā)送和接收。本文介紹一種采用Winbond公司的77E58單片機(jī)控制臺(tái)灣BenQ公司的GSM/GPRS模塊BENQ23G發(fā)送MMS彩信的方法,深入分析了通過(guò)中國(guó)移動(dòng)夢(mèng)網(wǎng)發(fā)送MMS彩信時(shí)與網(wǎng)關(guān)服務(wù)器之間的通信方式、方法,以及傳輸協(xié)議命令格式和傳輸數(shù)據(jù)格式。

引 言
   
目前,基于GSM/GPRS模塊的無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)大多數(shù)采用嵌入式處理器,選用Linux操作系統(tǒng)。本文介紹一種采用Winbond公司的77FA8單片機(jī)控制明基的GSM/GPRS模塊BENQ23G發(fā)送MMS彩信的方法。該方法成本低、可靠性高,器件選用工業(yè)級(jí)產(chǎn)品,能夠在較寬溫度范圍內(nèi)工作,即使在室外較惡劣的環(huán)境下也可以使用。
    本系統(tǒng)組成如圖1所示。其中,單片機(jī)77E58有2個(gè)串口,串口O用于與BENQ23G模塊進(jìn)行通信,控制BENQ23G發(fā)送彩信;串口1用于與串口攝像頭(如C328-JPEG模塊)進(jìn)行通信,控制攝像頭捕獲圖像。外部傳感器報(bào)警接口用于連接外部報(bào)警傳感器,77E58最小系統(tǒng)收到外部傳感器報(bào)警觸發(fā)信號(hào)后,捕獲照片、封裝MMS彩信,控制BENQ23G模塊向指定的手機(jī)或遠(yuǎn)程接收設(shè)備發(fā)送彩信;同時(shí)還可以撥打指定電話號(hào)碼,將現(xiàn)場(chǎng)聲音傳送過(guò)去。MIC及信號(hào)放大電路用于采集外部現(xiàn)場(chǎng)聲音并進(jìn)行放大。

    從前面的分析可以看出,本系統(tǒng)充分利用了各個(gè)部件的硬件資源,最大限度地降低了硬件成本。本文主要介紹圖1所示的無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)通過(guò)中國(guó)移動(dòng)夢(mèng)網(wǎng)發(fā)送彩信時(shí),所使用的傳輸協(xié)議命令格式和傳輸數(shù)據(jù)格式。

1 BENQ23G模塊簡(jiǎn)介
    BENQ23G是臺(tái)灣BenQ公司生產(chǎn)的嵌入TCP/IP協(xié)議的GSM/GPRS模塊,在BENQ23A模塊的基礎(chǔ)上增加了M2M(Machine-to—Maehine)功能,可以通過(guò)GPRS承載在BENQ23G模塊和因特網(wǎng)TCP/UDP服務(wù)器上實(shí)現(xiàn)連接??刂圃O(shè)備和BENQ23G模塊之間通過(guò)UART串口連接,傳輸命令和數(shù)據(jù)。
    控制設(shè)備首先通過(guò)UART串口設(shè)置網(wǎng)絡(luò)連接參數(shù),然后撥號(hào)連接GPRS,BENQ23G模塊建立GPRS連接并和指定的因特網(wǎng)TCP/UDP服務(wù)器建立Socket連接。如果Socket連接成功,則模塊在控制設(shè)備和因特網(wǎng)TCP/UDP服務(wù)器之間通過(guò)UART串口建立點(diǎn)對(duì)點(diǎn)數(shù)據(jù)連接模式,控制設(shè)備可以通過(guò)UART串口將數(shù)據(jù)原封不動(dòng)地上傳至因特網(wǎng)TCP/UDP服務(wù)器,同時(shí)可以通過(guò)UART串口原封不動(dòng)地下載因特網(wǎng)TCP/UDP服務(wù)器上的數(shù)據(jù),而上傳和下載數(shù)據(jù)的TCP/UDP打包和解包工作由BENQ23G模塊實(shí)現(xiàn)。
    控制設(shè)備在數(shù)據(jù)模式下通過(guò)UART串口發(fā)送數(shù)據(jù)時(shí),如果BENQ23G模塊在規(guī)定時(shí)間間隔內(nèi)沒(méi)有繼續(xù)收到UART串口的數(shù)據(jù),就將前面接收的數(shù)據(jù)進(jìn)行TCP/UDP打包并發(fā)送到服務(wù)器。
    當(dāng)BENQ23G模塊通過(guò)UART串口連續(xù)收到控制模塊發(fā)送的3個(gè)“+”符號(hào)后,將退出點(diǎn)對(duì)點(diǎn)數(shù)據(jù)模式而進(jìn)入命令模式,可以通過(guò)UART串口接收控制設(shè)備發(fā)送的AT指令。但這時(shí)BENQ23G模塊和服務(wù)器之間的TCP/UDP協(xié)議Socket連接并沒(méi)有中斷,控制設(shè)備如果想再次進(jìn)入數(shù)據(jù)模式上傳數(shù)據(jù)給服務(wù)器,可以鍵入ATO命令實(shí)現(xiàn)。
    控制設(shè)備可以在命令模式下通過(guò)鍵入ATH命令來(lái)中斷BENQ23G模塊和服務(wù)器之間的Socket連接。下面給出一個(gè)控制設(shè)備和彩信網(wǎng)關(guān)服務(wù)器連接的例子:

   
    該例子說(shuō)明如何通過(guò)BENQ23G模塊實(shí)現(xiàn)和遠(yuǎn)程服務(wù)器的連接,以及上傳和下載數(shù)據(jù)。BENQ23G模塊AT指令的詳細(xì)說(shuō)明見(jiàn)參考文獻(xiàn)。
    測(cè)試MMS組成及編碼格式分析略,詳細(xì)的編碼含義見(jiàn)參考文獻(xiàn)。

2 基于BENQ23G發(fā)送MMS編碼格式分析
   
當(dāng)控制設(shè)備需要發(fā)送彩信時(shí),首先通過(guò)UART串口傳送AT指令完成相應(yīng)的參數(shù)設(shè)置(如前面例子所示),再傳送“ATD*97#”指令進(jìn)行GPRS撥號(hào),并等待BENQ23G模塊完成與服務(wù)器之間的Socket連接。當(dāng)收到BENQ23G模塊發(fā)送的響應(yīng)“Wait Socket Open”時(shí),表明BENQ23G模塊完成了與服務(wù)器的連接,并進(jìn)入數(shù)據(jù)模式,控制設(shè)備可以進(jìn)行發(fā)送彩信操作。
2.1 首先建立會(huì)話連接
    控制設(shè)備發(fā)送會(huì)話建立連接請(qǐng)求(8字節(jié)):
    0001 0A OO OO 12 01 10 OO 00
    發(fā)送數(shù)據(jù)序列中前4字節(jié)“0A 00 00 12”是WTP In—voke PDU。WTP Invoke PDU采用了固定長(zhǎng)度格式,其結(jié)構(gòu)如表1所列。

    其中,CON=0,PDU Type=0001,GTR=0,TTR=1,RID=0,故第1字節(jié)為0A;TID High Byte=00000000,故第2字節(jié)為00;TID Low Byte=00000000,故第3字節(jié)為00;Version=00,TIDnew=0,U/p=1,RES=00,TCL=10,故第4字節(jié)為12。
    發(fā)送數(shù)據(jù)序列中的第5到8字節(jié)“01 10 O000”是WSP協(xié)議數(shù)據(jù)單元。其中第5字節(jié)“01”是WSP會(huì)話連接Connect的代碼,第6到8字節(jié)是WSP Connect PDU。WSP Connect PDU結(jié)構(gòu)如表2所列。

    其中,第6字節(jié)“10”是WSP協(xié)議版本號(hào),高4位是版本號(hào)的整數(shù)部分,低4位是版本號(hào)的小數(shù)部分,這里為V1.0;第7字節(jié)是能力字段長(zhǎng)度,沒(méi)有使用能力請(qǐng)求,故長(zhǎng)度為00;第8字節(jié)是報(bào)頭字段長(zhǎng)度,沒(méi)有報(bào)頭,故長(zhǎng)度為00。
    服務(wù)器返回?cái)?shù)據(jù)如下(30字節(jié)):
    0001 12 80 00 02 B5 C5 1 5 00 15 45 6E 63 6F 64 69 6E........Encodin
    0017 67 2D 76 65 72 73 69 6F 6E 00 31 2F 32 00 00 00 g—version.1.2...
    返回?cái)?shù)據(jù)中第1~3字節(jié)是WTP Result PDU,其余為WSP協(xié)議數(shù)據(jù)單元。WTP Result PDU采用固定長(zhǎng)度格式,其結(jié)構(gòu)如表3所列。

    其中,CON=0,PDU Type=0010,GTR=0,TTR=1,RID=O,故第1字節(jié)為12;TID High Byte=10000000,故第2字節(jié)為80;TID Low Byte=00000000,故第3字節(jié)為OO。
    返回?cái)?shù)據(jù)中的第4字節(jié)“02”是WSP會(huì)話連接確認(rèn)ConnectReply的代碼;第5~30字節(jié)是WSP ConnectReplyPDU。

    WSP ConneetReply PDU結(jié)構(gòu)如表4所列。

    第5~8字節(jié)“B5 C5 15”是會(huì)話標(biāo)識(shí);第10字節(jié)“15”是HeadersLen(21字節(jié)),Headers是以00結(jié)束的字符串,即Encoding—version 1.2。
2.2 控制設(shè)備發(fā)送WTP確認(rèn)完成會(huì)話連接
    控制設(shè)備發(fā)送WTP確認(rèn)(WTP Acknowledgement,3字節(jié)):18 00 00。WTP Acknowledgement PDU采用固定長(zhǎng)度格式,如表5所列。

    其中,CON=0,PDU Type=0011,Tve/Tok=0,RES=0,RID=0,故第1字節(jié)為18;TID High Byte=00000000,故第2字節(jié)為00;TID Low Byte=00000000,故第3字節(jié)為OO。
2.3 控制設(shè)備發(fā)送WTP、WSP和MMS包
    控制設(shè)備首先發(fā)送WTP和WSP(49字節(jié)):
0001 0E 00 01 1 2 60 1A 10 68 74 74 70 3A 2F 2F 6D 6D.......http://mm
0017 73 63 2E 6D 6F 6E 74 6 5 72 6E 65 74 2E 63 6F 6D SC.monternet.com
0033 2F BE 80 BE C7 80 A1 09 80 77 61 70 00 77 61 70/........wap.wap
0049 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00................
    發(fā)送數(shù)據(jù)序列中,前4個(gè)字節(jié)“0E 00 01 12”是WTPInvoke PDU,后45個(gè)字節(jié)是WSP協(xié)議數(shù)據(jù)單元。
    WTP Invoke PDU同樣采用了固定結(jié)構(gòu)格式(如表1所列)。其中,CON=0,PDU Type=0001,GTR=1,TTR=1,RID=0,故第1字節(jié)為0E;TID High Byte=00000000,故第2字節(jié)為00;TID Low Byte=00000001,故第3字節(jié)為01;Version=00,TIDnew=0,U/P=1,RES=00,TCL=10,故第4字節(jié)為12。
    發(fā)送數(shù)據(jù)序列中第5字節(jié)“60”是WSP方法Post的代碼,第6~49字節(jié)是WSP Post PDU。WSP Post PDU結(jié)構(gòu)如表6所列。

    第6字節(jié)“1A”是UriLen(26字節(jié));第7字節(jié)“10”是HeadersLen(16字節(jié));第8~33字節(jié)是Uri字段,URI=http:/mmsc.monternet.com/(中國(guó)移動(dòng)夢(mèng)網(wǎng));第34字節(jié)“BE”是ContentType的內(nèi)容類型(著名域值applica—tion/vnd.wap.mms—message的代碼),即Content Type=application/vnd.wap.mms—message;第35~49字節(jié)是由3個(gè)Header組成的Headers字段,第35、36字節(jié)是第1個(gè)Header,第37、38字節(jié)是第2個(gè)Header,第39~49字節(jié)是第3個(gè)Header。
    Headerl:80 BE(Accept:application/vnd.wap.mms—message)。
    Header2:C7 80(Cashe Control:None)。
    Header3:A1是域Proxy authorization的代碼,第40字節(jié)“09”是域長(zhǎng)度(9字節(jié)),第41字節(jié)“80”是Basic的代碼,第42~44字節(jié)是User—id=wap,第46~48字節(jié)是Password=wap。
    數(shù)據(jù)字段就是緊接著發(fā)送的MMS包。
    服務(wù)器返回?cái)?shù)據(jù)序列如下:


    返回?cái)?shù)據(jù)中,第1~3字節(jié)是WTP Result PDU,其余為WSP協(xié)議數(shù)據(jù)單元。WTP Result PDU格式與前面相同,只是TID=8001,與WTP Invoke PDU中的TID=0001相對(duì)應(yīng)。
    返回?cái)?shù)據(jù)中第4字節(jié)“04”是WSP會(huì)話響應(yīng)Reply的代碼,第5~173字節(jié)是WSP Reply PDU。WSP ReplyPDU結(jié)構(gòu)如表7所列。

    第5字節(jié)“20”是Status編碼,表示成功;第6、7字節(jié)“81 26”是Headers的長(zhǎng)度(解碼后為A6,即166個(gè)字節(jié),從第8字節(jié)“61”到173字節(jié)“B1”);第8~38字節(jié)是Cont—entType的域值,ContentType=application/vnd.wap.
mms—message;第40~173字節(jié)是由6個(gè)Header組成的Headers字段,第40~52字節(jié)是第1個(gè)Header,第53~78字節(jié)是第2個(gè)Header,第79~111字節(jié)是第3個(gè)Header,第112~143字節(jié)是第4個(gè)Header,第144~167字節(jié)是第5個(gè)Header,第168~173字節(jié)是第6個(gè)Header。

     
    Header6:Date=48 29 41 EB,以秒計(jì)算的日期,起始日期為1970—01-01。
    返回?cái)?shù)據(jù)中,第174~209字節(jié)是Data字段,其內(nèi)容與MMS頭內(nèi)容相對(duì)應(yīng),解碼后含義:

   
2.4 控制設(shè)備發(fā)送WTP確認(rèn)完成會(huì)話
    控制設(shè)備發(fā)送WTP確認(rèn)(WTP AcknowledgementPDU,3字節(jié)):1C 00 01。
    WTP Acknowledgement PDU格式同表5。其中,CON=0,PDU Type=0011,Tve/Tok=1,RES=0,RID=0,故第l字節(jié)為1C;TID High Byte=00000000,故第2字節(jié)為00;TID Low Byte=00000001,故第3字節(jié)為01。
2.5 斷開(kāi)服務(wù)器連接
    如果要退出數(shù)據(jù)模式,控制設(shè)備可通過(guò)UART串口傳送符號(hào)+++,BENQ23G返回命令模式,但與服務(wù)器的Socket連接并沒(méi)有斷開(kāi)。如果要斷開(kāi)BENQ23G與服務(wù)器的Socket連接,則控制設(shè)備需通過(guò)UART串口發(fā)送ATH命令給BENQ23G模塊。

3 結(jié) 論
    本文介紹了一種通過(guò)彩信傳送圖像的低成本遠(yuǎn)程監(jiān)控系統(tǒng)。該系統(tǒng)采用Winbond公司的77E58單片機(jī)作為控制器,由外部報(bào)警傳感器觸發(fā),控制串口攝像頭捕獲現(xiàn)場(chǎng)圖像,封裝MMS彩信,并通過(guò)控制BenQ公司的GSM/GPRS模塊BENQ23G發(fā)送,同時(shí)還可以通過(guò)撥打預(yù)設(shè)號(hào)碼將現(xiàn)場(chǎng)聲音傳送出去。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉