《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 家電遠(yuǎn)程監(jiān)控系統(tǒng)中MMS發(fā)送的研究與實現(xiàn)
家電遠(yuǎn)程監(jiān)控系統(tǒng)中MMS發(fā)送的研究與實現(xiàn)
來源:微型機(jī)與應(yīng)用2010年第10期
張 秋,呂 楊
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明650051)
摘要: 通過GPRS網(wǎng)絡(luò),基于家電遠(yuǎn)程監(jiān)控系統(tǒng)可以將室內(nèi)攝像機(jī)采集的圖片信息發(fā)送到用戶的手機(jī)終端。用戶只需連接GPRS網(wǎng)絡(luò),便可輕松獲取家電的圖像信息。
Abstract:
Key words :

摘  要: 通過GPRS網(wǎng)絡(luò),基于家電遠(yuǎn)程監(jiān)控系統(tǒng)可以將室內(nèi)攝像機(jī)采集的圖片信息發(fā)送到用戶的手機(jī)終端。用戶只需連接GPRS網(wǎng)絡(luò),便可輕松獲取家電的圖像信息。
關(guān)鍵詞: MMS;GPRS;嵌入式系統(tǒng)

    隨著科技水平的不斷提高和社會的不斷進(jìn)步,人們對于家居安全性的要求也與日俱增。因此,智能化的家電監(jiān)控系統(tǒng)就有了廣闊的發(fā)展空間。本文研究了在家電遠(yuǎn)程監(jiān)控系統(tǒng)中應(yīng)用MMS發(fā)送方式實現(xiàn)監(jiān)控目的的方法。由于家電遠(yuǎn)程監(jiān)控系統(tǒng)基于嵌入式平臺,硬件資源相對較少,因此在MMS封裝方式和發(fā)送協(xié)議的選擇上需要充分考慮和權(quán)衡。
1 MMS相關(guān)技術(shù)與協(xié)議
    在家電遠(yuǎn)程監(jiān)控系統(tǒng)中,最重要的環(huán)節(jié)是家電監(jiān)控信息的發(fā)送。在硬件資源十分有限的嵌入式平臺上,封裝與發(fā)送包含圖片信息的MMS,選擇占用資源少、適合嵌入式系統(tǒng)的彩信封裝方式和通信協(xié)議。
    (1)SMIL語言
    同步多媒體集成語言SMIL(Synchronized Multimedia Integration Language)[1]專為流式多媒體設(shè)計,用來規(guī)定多媒體片斷在什么時候、在什么地方、以什么樣的方式播放,可通過時序排列對聲音、影像、文字及圖形文件進(jìn)行順序安排。
    (2)MIME封裝
    使用SMIL語言描述的MMS,在通過無線網(wǎng)絡(luò)發(fā)送的時候,必須通過某種方式把SMIL和附屬的內(nèi)容包裝在一起,作為一個unit發(fā)送出去,同時還要保證SMIL文件各個部分內(nèi)容的reference變得有效。因此可以使用MIME(Multipart Internet Mail Extensions)規(guī)范。MIME負(fù)責(zé)把所有的獨立的圖像、聲音、文本、視頻內(nèi)容以及SMIL文件本身捆綁在一起,這個規(guī)范稱為MIME Encapsulation Aggregate Documents,用于告訴接收的手持終端,這個MMS的內(nèi)容是相互關(guān)聯(lián)并且相互參考的[2]。
    (3)WAP協(xié)議與HTTP協(xié)議的比較
    家電遠(yuǎn)程監(jiān)控系統(tǒng)是在嵌入式平臺上構(gòu)建的,硬件資源相對較少,所以在網(wǎng)絡(luò)協(xié)議的選擇上需要充分考慮硬件資源是否能夠滿足需要。WAP(Wireless Application Protocol)是一種向移動終端提供互聯(lián)網(wǎng)內(nèi)容和先進(jìn)增值服務(wù)的全球統(tǒng)一的開放式協(xié)議標(biāo)準(zhǔn), 是簡化了的無線Internet 協(xié)議。在嵌入式設(shè)備的小屏幕上很難顯示標(biāo)準(zhǔn)Web發(fā)布的內(nèi)容,同時屏幕間的切換非常不便。HTTP協(xié)議沒有針對無線網(wǎng)絡(luò)做特殊處理,如長時間延時、非連續(xù)信號覆蓋以及帶寬有限。在Internet應(yīng)用中,HTTP協(xié)議以低效率的文本格式發(fā)送數(shù)據(jù),而非壓縮的二進(jìn)制方式。所以,在無線通信服務(wù)中使用普通Internet協(xié)議,會導(dǎo)致成本高、速度慢且難以大規(guī)模應(yīng)用的問題。為了解決此類問題,對WAP協(xié)議進(jìn)行了很好的優(yōu)化處理,如對無線網(wǎng)絡(luò)的長延時和中低帶寬進(jìn)行優(yōu)化,利用高度壓縮的二進(jìn)制方式傳輸數(shù)據(jù)。在WAP協(xié)議中,會話功能解決了不連續(xù)覆蓋的問題,并且在IP不可用時自動改用其他優(yōu)化協(xié)議傳輸信息[3]。
    綜上所述,在分析了WAP協(xié)議和HTTP協(xié)議之后,本文采用WAP協(xié)議,以便在嵌入式系統(tǒng)硬件資源較少的情況下實現(xiàn)MMS的發(fā)送。
2 MMS發(fā)送的研究與實現(xiàn)
2.1 手機(jī)模塊撥號上GPRS網(wǎng)

    連接無線網(wǎng)絡(luò)的基本步驟是:手機(jī)模塊通過串口向無線模塊發(fā)送AT命令,無線模塊進(jìn)行撥號連接到中國移動GPRS的WAP網(wǎng)關(guān),獲得臨時分配的IP地址、DNS地址和臨時端口號。連接成功后,手機(jī)模塊從GPRS的WAP網(wǎng)關(guān)上獲得一個動態(tài)IP地址,該IP地址一般是10.188.xxx.xxx。然后,無線模塊傳輸TCP/IP數(shù)據(jù)包,訪問GPRS網(wǎng)內(nèi)的主機(jī),發(fā)送封裝好的MMS信息。
    (1)AT+CGDCONT=l,“IP”,“CMWAP”
    此命令用于設(shè)置GPRS接入網(wǎng)關(guān)。其中第二部分表示PDP(Packet Data Protocol)類型為IP;第三部分表示接入網(wǎng)關(guān)為移動夢網(wǎng),APN是CMWAP,表示中國移動網(wǎng)應(yīng)用接口。APN也可以設(shè)置為CMNET,CMNET主要應(yīng)用于PC、筆記本電腦、PDA等[4]。
    (2)ATD *99***1#
    ATD用于設(shè)置撥號方式,同時完成撥號,使手機(jī)模塊進(jìn)入在線狀態(tài)。ATD指令采用如下兩種格式:
    格式一:ATD*99[*[<called address>][*[<L2P>][*[<cid>]]]]#
其中99是服務(wù)碼,也可用98,國內(nèi)一般用99。<called address>是w.x.y.z格式的IPv4地址;<L2P>是用于TE和ME連接的Layer2協(xié)議或用于PPP協(xié)議的Layer2協(xié)議;<cid>是表明PDP上下文的一個數(shù)字編號,用AT+CGDCONT命令創(chuàng)建,一般為1或20。
    格式二:ATD*98[*<cid>]#
    具體含義與格式一相同。
    國內(nèi)最常用的是:ATD *99***1#,本設(shè)計中就是采用了此種格式。用ATD指令,若成功連線則返回“CONNECT”,否則返回“NO CARRIER”。當(dāng)手機(jī)模塊返回“CONNECT”,說明手機(jī)模塊已經(jīng)連上了移動GPRS的WAP網(wǎng)關(guān),之后即為通過三階段協(xié)商建立PPP鏈路的過程[5]。
2.2 用QT實現(xiàn)UDP Soket數(shù)據(jù)收發(fā)
    在WAP協(xié)議發(fā)送MMS的過程中,使用UDP協(xié)議發(fā)送數(shù)據(jù)與WAP網(wǎng)關(guān)進(jìn)行交互。在QT 4中,QUdpSoket類可以用來發(fā)送和接收UDP數(shù)據(jù)報。具體的實現(xiàn)方法如下:
    (1)創(chuàng)建QUdpSocket對象
        QUdpSocket *udpSocket;
        udpSocket=new QUdpSocket;
    (2)綁定WAP網(wǎng)關(guān)地址參數(shù)
        udpSocket->bind(WAPHostIP,9201);
    WAPHostIP是一個QT自定義的QhostAddress類,表示IP地址。WAP網(wǎng)關(guān)的IP為10.0.0.172,端口是9201。
    (3)發(fā)送、接收數(shù)據(jù)
        udpSocket->writeDatagram(qPrintable(str),4096,
WAPHostIP,9201);//發(fā)送數(shù)據(jù)
        char buffer[4096];
        udpSocker->readDatagram(buffer,4096,0,0);//接收數(shù)據(jù)在此之前要進(jìn)行信號和槽的連接:
        connect(sendButton,SIGNAL(clicked()),this,SLOT
(send_slot()));
        connect(udpSocket,SIGNAL(readyRead()),this,SLOT
(recv_slot()));
2.3 實現(xiàn)過程
    當(dāng)GPRS模塊成功連接服務(wù)器并且進(jìn)入在線模式,就可以控制手機(jī)模塊發(fā)送彩信。數(shù)據(jù)的收發(fā)程序用UDP Socket實現(xiàn),在此過程中, WAP網(wǎng)關(guān)的IP為10.0.0.172,端口是9201。
    (1)手機(jī)模塊向WAP網(wǎng)關(guān)發(fā)起Connect請求
    數(shù)據(jù)包由兩部分組成:WTP PDU和WSP PDU
    例如:
         0001 0A OO OO 12 01 10 OO 00
其中,發(fā)送數(shù)據(jù)序列中前4字節(jié)“0A 00 00 12”是WTP Invoke PDU;第5字節(jié)“01”是WSP會話Connect代碼,第6~8字節(jié)是WSP Connect PDU。
    (2)服務(wù)器確認(rèn)連接
    服務(wù)器返回數(shù)據(jù)如下(30字節(jié)):
    0001 12 80 00 02 B5 C5 15 00 15 45 6E 63 6F 64 69 6E....Encodin
    00 17 67 2D 76 65 72 73 69 6F 6E 00 31 2F 32 00...g-version.1.2.
    返回數(shù)據(jù)中第1~3字節(jié)是WTP Result PDU,其余為WSP協(xié)議數(shù)據(jù)單元;第4字節(jié)“02”是WSP會話連接確認(rèn)(ConnectReply)的代碼;第5~30字節(jié)是WSP ConnectReply PDU。
    (3)控制設(shè)備發(fā)送WTP確認(rèn)完成會話連接
    控制設(shè)備發(fā)送WTP確認(rèn)(WTP Acknowledgement,3字節(jié))為:18 00 00。
    (4)控制設(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個字節(jié)“0E 00 01 12”是WTP Invoke PDU,后45個字節(jié)是WSP協(xié)議數(shù)據(jù)單元。
    (5)網(wǎng)關(guān)返回事務(wù)操作結(jié)果,控制設(shè)備發(fā)送WTP確認(rèn)完成會話
    當(dāng)網(wǎng)關(guān)返回事務(wù)操作結(jié)果后,然后控制手機(jī)模塊發(fā)送WTP確認(rèn)(WTP AcknowledgementPDU):
    1C 00 01。
    家電遠(yuǎn)程監(jiān)控系統(tǒng)的硬件資源十分有限,經(jīng)過對各種封裝方式和傳輸協(xié)議的研究分析,在此系統(tǒng)中采用MIME封裝和WAP協(xié)議完成彩信的封裝和發(fā)送。經(jīng)過實驗,本文所闡述的方法成功地在家電遠(yuǎn)程監(jiān)控系統(tǒng)中實現(xiàn)了MMS的發(fā)送。
參考文獻(xiàn)
[1] SMIL[OL].[2009-12].http://baike.baidu.com/view/147922.htm?fr=ala0.
[2] TCP/IP和WAP協(xié)議結(jié)構(gòu)的比較[OL].[2000-5].http://www.lhtelecom.com/accept/intel/168/tcpwap.htm.
[3] CMWAP和CMNET的區(qū)別[OL].[2007-12].http://www.51nb.com/forum/thread-295540-1-1.html.
[4] 余琴,趙振華.基于GPRS的SOCKET通信的應(yīng)用研究[J]. 單片機(jī)及嵌入式系統(tǒng)應(yīng)用,2005(11):52-53,57.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。