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

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。