<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 適于多種通信設備的多媒體通信終端軟件設計

          適于多種通信設備的多媒體通信終端軟件設計

          作者: 時間:2011-10-26 來源:網(wǎng)絡 收藏

          1 概述

          本文引用地址:http://www.ex-cimer.com/article/155591.htm

            應急技術是綜合利用現(xiàn)有方式,實現(xiàn)的快速部署,機動反應的通信技術。 它最先應用于軍事,在戰(zhàn)備行動、野外施工、搶險救災和應對突發(fā)事件上有重大的作用。 隨著嵌入式技術和通信技術的發(fā)展,將手持1通信應用于應急通信中,使 得系統(tǒng)更加靈活機動,同時也使得各種信息能在系統(tǒng)中更有效的傳遞。在應急通信系統(tǒng)中, 通常同時具有有線、無線通信方式。各種有線通信方式通常采用TCP/IP 協(xié)議,以太網(wǎng) 卡是這類設備的典型。從無線通信方式來說,各類短波電臺更惡劣通信環(huán)境。同時,采 用Ad hoc 方式組網(wǎng)的各種新型網(wǎng)絡電臺在近年來也得到了廣泛的應用,這就要求通 信具備通過下層進行通信的能力。因此,一種適用于的 手持多媒體通信具有廣泛的應用前景。

            針對上述三類設備,本文介紹了一種適用于多種的多媒體通信終端的實 現(xiàn)。終端采用面向?qū)ο蟮姆椒?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/設計">設計,對通信模塊的接口進行了合理的抽象,將不同的 通信設備封裝為統(tǒng)一接口的通信模塊。這樣,在采用不同的通信設備時,終端只需要選擇相 應的通信模塊就能進行正常的通信。

            2 多媒體通信終端的

            終端的硬件平臺采用 Intel 公司生產(chǎn)的嵌入式處理器PXA250 為核心處理器,具有最高400MHz 的處理能力,還支持非常豐富的外圍接口,包括USB 的HOST 接口、CF 接口、 串口、以太網(wǎng)等。如圖1 所示,終端支持語音、視頻、靜態(tài)圖像、短信息、電子白板和文件 傳輸?shù)榷喾N通信業(yè)務。每一種通信業(yè)務由一個獨立的業(yè)務模塊完成。業(yè)務模塊由用戶界面控 制,并且向用戶界面返回各種控制的反饋信息。業(yè)務模塊將產(chǎn)生的各種數(shù)據(jù)包及其目標地址 交給通信模塊;通信模塊將接收到的數(shù)據(jù)包和源地址交給對應的業(yè)務模塊。顯然,不同的通 信設備其信道特點是不一樣的,需要為不同的通信設備設計相應的通信模塊。如果所有的通 信模塊具有統(tǒng)一的接口并且對業(yè)務模塊提供相同性質(zhì)的服務,那么業(yè)務模塊將是完全可重用 的。因此,對通信模塊接口的合理抽象,將使得軟件的結(jié)構更加清晰,有利于提高代碼的重 用性,從而降低軟件設計的復雜度。

            在對通信模塊的接口進行抽象時,需要遵循兩個原則。首先,對于不同的通信設備,都 能利用這個統(tǒng)一的接口進行封裝。本終端支持三種通信設備:以太網(wǎng)卡、網(wǎng)絡電臺和短波電 臺。通過以太網(wǎng)進行通信時,終端能夠應用操作系統(tǒng)提供的TCP/IP[2]協(xié)議棧,采用TCP 和 UDP 方式進行通信。其中,TCP 協(xié)議提供可靠的字節(jié)流傳輸服務,而UDP 協(xié)議提供不可靠 的數(shù)據(jù)包傳輸服務。多媒體通信終端通過USB 接口與網(wǎng)絡電臺連接,以遙控的方式應用網(wǎng) 絡電臺上的TCP/IP 協(xié)議棧,也可以采用TCP 和UDP 方式進行通信。通常,網(wǎng)絡電臺之間 通過Ad Hoc 方式進行組網(wǎng)。由于TCP 連接在Ad hoc 網(wǎng)絡上具有較低的傳輸效率,通常只 使用UDP 方式進行數(shù)據(jù)傳輸。短波電臺通過串口與多媒體通信終端相連,提供具有隨機誤 碼和突發(fā)誤碼的比特鏈路。參考ITU-T 的H.223[3]協(xié)議,利用各種糾錯碼和檢錯碼,同樣可 以在該比特鏈路上實現(xiàn)一個不可靠的數(shù)據(jù)包傳輸服務。

            其次,合理界定通信模塊和業(yè)務模塊的職能范圍,在保證有效利用信道的前提下,盡可 能提高代碼的重用性。對于在通信流程中需要解決的幾個問題,需要根據(jù)這個原則來進行劃 分。第一,由于多種媒體業(yè)務可以進行并發(fā)的通信,因此需要標識來自不同業(yè)務的數(shù)據(jù)包, 以便接收端辨別數(shù)據(jù)包的業(yè)務類型。采用UDP 方式傳輸數(shù)據(jù)包時,業(yè)務的標識可以通過為 不同業(yè)務選擇不同的UDP 端口來實現(xiàn),也可以通過在數(shù)據(jù)包中增加標識字節(jié)來實現(xiàn)。短波 電臺通信時,業(yè)務的標識可以在數(shù)據(jù)復接時實現(xiàn),以獲得更高的通信效率。因此,業(yè)務標識 的方法與采用的通信設備是相關的,需要在通信模塊中實現(xiàn)。第二,不同業(yè)務的數(shù)據(jù)包在傳 輸時有不同的質(zhì)量要求。各種業(yè)務的信令都需要實現(xiàn)可靠的傳輸;靜態(tài)圖像、短信息、電子 白板和文件傳輸業(yè)務的數(shù)據(jù)包也需要實現(xiàn)可靠傳輸;語音和視頻通信業(yè)務可以承受一定數(shù)量 的丟包,并且在數(shù)據(jù)包中可以承擔一定程度的誤碼。因此,數(shù)據(jù)包的可靠傳輸應該在業(yè)務模 塊中通過ARQ[4]方式實現(xiàn);通信模塊根據(jù)業(yè)務的類型決定是否將具有誤碼的數(shù)據(jù)包提交給 業(yè)務模塊。最后,應該在通信模塊中實現(xiàn)對通信資源的優(yōu)化分配,優(yōu)先保證實時通信業(yè)務所 需的帶寬資源。

          圖1 多媒體通信終端結(jié)構圖

            根據(jù)以上分析,通信模塊提供不可靠的數(shù)據(jù)包傳輸服務,對業(yè)務進行標識,根據(jù)業(yè)務類 型實現(xiàn)通信資源的優(yōu)化分配,并判決是否將有誤碼的數(shù)據(jù)包提交給業(yè)務模塊;業(yè)務模塊以ARQ 方式保證數(shù)據(jù)包的可靠傳輸。在用C++語言進行程序設計時,可以將抽象的通信模塊 接口定義為基類,適用于以太網(wǎng)、網(wǎng)絡電臺和短波電臺的通信模塊都是該基類的派生類。下 面分別介紹針對三種通信設備的通信模塊設計。

            2.1 適用于以太網(wǎng)的通信模塊

            通過以太網(wǎng)卡進行通信時,可以通過套接字(socket)編程[5]實現(xiàn)UDP 數(shù)據(jù)包傳輸。如圖 2 所示,通信模塊中應用了兩個套接字,分別負責發(fā)送和接收數(shù)據(jù)包。通信模塊主動從各個 業(yè)務模塊中讀取數(shù)據(jù)包,并在數(shù)據(jù)包前添加一個字節(jié)的業(yè)務標識。為了優(yōu)先保證語音和視頻 通信所需的帶寬資源,通信模塊優(yōu)先讀取來自語音和視頻業(yè)務模塊的數(shù)據(jù)包進行發(fā)送。添加 了標識的數(shù)據(jù)包通過發(fā)送套接字發(fā)送到目標終端。流量控制模塊按照預先設定的速率控制每 秒鐘發(fā)送到以太網(wǎng)上的字節(jié)數(shù)。UDP 接收套接字在收到數(shù)據(jù)包時,根據(jù)數(shù)據(jù)包的第一個字 節(jié)判斷業(yè)務類型,并將數(shù)據(jù)包寫入相應業(yè)務模塊的接收緩沖區(qū)。UDP 協(xié)議保證了數(shù)據(jù)包內(nèi) 不會存在誤碼,因此在此通信模塊中省去了誤碼判斷的功能。適用于以太網(wǎng)的通信模塊是最 直觀也是結(jié)構最簡單的一個。

          圖2 適用于以太網(wǎng)的通信模塊


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();