適于多種通信設備的多媒體通信終端軟件設計
1 概述
本文引用地址:http://www.j9360.com/article/155591.htm應急通信技術是綜合利用現有通信方式,實現通信的快速部署,機動反應的通信技術。 它最先應用于軍事,在戰備行動、野外施工、搶險救災和應對突發事件上有重大的作用。 隨著嵌入式技術和多媒體通信技術的發展,將手持多媒體1通信終端應用于應急通信中,使 得系統更加靈活機動,同時也使得各種信息能在系統中更有效的傳遞。在應急通信系統中, 通常同時具有多種有線、無線通信方式。各種有線通信方式通常采用TCP/IP 協議,以太網 卡是這類設備的典型。從無線通信方式來說,各類短波電臺更適于惡劣通信環境。同時,采 用Ad hoc 方式組網的各種新型網絡電臺在近年來也得到了廣泛的應用,這就要求多媒體通 信終端具備通過多種下層通信設備進行通信的能力。因此,設計一種適用于多種通信設備的 手持多媒體通信終端具有廣泛的應用前景。
針對上述三類設備,本文介紹了一種適用于多種通信設備的多媒體通信終端的軟件實 現。終端軟件采用面向對象的方法設計,對通信模塊的接口進行了合理的抽象,將不同的 通信設備封裝為統一接口的通信模塊。這樣,在采用不同的通信設備時,終端只需要選擇相 應的通信模塊就能進行正常的通信。
終端的硬件平臺采用 Intel 公司生產的嵌入式處理器PXA250 為核心處理器,具有最高400MHz 的處理能力,還支持非常豐富的外圍接口,包括USB 的HOST 接口、CF 接口、 串口、以太網等。如圖1 所示,終端支持語音、視頻、靜態圖像、短信息、電子白板和文件 傳輸等多種通信業務。每一種通信業務由一個獨立的業務模塊完成。業務模塊由用戶界面控 制,并且向用戶界面返回各種控制的反饋信息。業務模塊將產生的各種數據包及其目標地址 交給通信模塊;通信模塊將接收到的數據包和源地址交給對應的業務模塊。顯然,不同的通 信設備其信道特點是不一樣的,需要為不同的通信設備設計相應的通信模塊。如果所有的通 信模塊具有統一的接口并且對業務模塊提供相同性質的服務,那么業務模塊將是完全可重用 的。因此,對通信模塊接口的合理抽象,將使得軟件的結構更加清晰,有利于提高代碼的重 用性,從而降低軟件設計的復雜度。
在對通信模塊的接口進行抽象時,需要遵循兩個原則。首先,對于不同的通信設備,都 能利用這個統一的接口進行封裝。本終端支持三種通信設備:以太網卡、網絡電臺和短波電 臺。通過以太網進行通信時,終端能夠應用操作系統提供的TCP/IP[2]協議棧,采用TCP 和 UDP 方式進行通信。其中,TCP 協議提供可靠的字節流傳輸服務,而UDP 協議提供不可靠 的數據包傳輸服務。多媒體通信終端通過USB 接口與網絡電臺連接,以遙控的方式應用網 絡電臺上的TCP/IP 協議棧,也可以采用TCP 和UDP 方式進行通信。通常,網絡電臺之間 通過Ad Hoc 方式進行組網。由于TCP 連接在Ad hoc 網絡上具有較低的傳輸效率,通常只 使用UDP 方式進行數據傳輸。短波電臺通過串口與多媒體通信終端相連,提供具有隨機誤 碼和突發誤碼的比特鏈路。參考ITU-T 的H.223[3]協議,利用各種糾錯碼和檢錯碼,同樣可 以在該比特鏈路上實現一個不可靠的數據包傳輸服務。
其次,合理界定通信模塊和業務模塊的職能范圍,在保證有效利用信道的前提下,盡可 能提高代碼的重用性。對于在通信流程中需要解決的幾個問題,需要根據這個原則來進行劃 分。第一,由于多種媒體業務可以進行并發的通信,因此需要標識來自不同業務的數據包, 以便接收端辨別數據包的業務類型。采用UDP 方式傳輸數據包時,業務的標識可以通過為 不同業務選擇不同的UDP 端口來實現,也可以通過在數據包中增加標識字節來實現。短波 電臺通信時,業務的標識可以在數據復接時實現,以獲得更高的通信效率。因此,業務標識 的方法與采用的通信設備是相關的,需要在通信模塊中實現。第二,不同業務的數據包在傳 輸時有不同的質量要求。各種業務的信令都需要實現可靠的傳輸;靜態圖像、短信息、電子 白板和文件傳輸業務的數據包也需要實現可靠傳輸;語音和視頻通信業務可以承受一定數量 的丟包,并且在數據包中可以承擔一定程度的誤碼。因此,數據包的可靠傳輸應該在業務模 塊中通過ARQ[4]方式實現;通信模塊根據業務的類型決定是否將具有誤碼的數據包提交給 業務模塊。最后,應該在通信模塊中實現對通信資源的優化分配,優先保證實時通信業務所 需的帶寬資源。
圖1 多媒體通信終端結構圖
根據以上分析,通信模塊提供不可靠的數據包傳輸服務,對業務進行標識,根據業務類 型實現通信資源的優化分配,并判決是否將有誤碼的數據包提交給業務模塊;業務模塊以ARQ 方式保證數據包的可靠傳輸。在用C++語言進行程序設計時,可以將抽象的通信模塊 接口定義為基類,適用于以太網、網絡電臺和短波電臺的通信模塊都是該基類的派生類。下 面分別介紹針對三種通信設備的通信模塊設計。
2.1 適用于以太網的通信模塊
通過以太網卡進行通信時,可以通過套接字(socket)編程[5]實現UDP 數據包傳輸。如圖 2 所示,通信模塊中應用了兩個套接字,分別負責發送和接收數據包。通信模塊主動從各個 業務模塊中讀取數據包,并在數據包前添加一個字節的業務標識。為了優先保證語音和視頻 通信所需的帶寬資源,通信模塊優先讀取來自語音和視頻業務模塊的數據包進行發送。添加 了標識的數據包通過發送套接字發送到目標終端。流量控制模塊按照預先設定的速率控制每 秒鐘發送到以太網上的字節數。UDP 接收套接字在收到數據包時,根據數據包的第一個字 節判斷業務類型,并將數據包寫入相應業務模塊的接收緩沖區。UDP 協議保證了數據包內 不會存在誤碼,因此在此通信模塊中省去了誤碼判斷的功能。適用于以太網的通信模塊是最 直觀也是結構最簡單的一個。
圖2 適用于以太網的通信模塊
評論