1 概述
應急通信技術是綜合利用現(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)。終端軟件采用面向對象的方法設計,對通信模塊的接口進行了合理的抽象,將不同的 通信設備封裝為統(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è)務模塊提供相同性質的服務,那么業(yè)務模塊將是完全可重用 的。因此,對通信模塊接口的合理抽象,將使得軟件的結構更加清晰,有利于提高代碼的重 用性,從而降低軟件設計的復雜度。
在對通信模塊的接口進行抽象時,需要遵循兩個原則。首先,對于不同的通信設備,都 能利用這個統(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ù)包在傳 輸時有不同的質量要求。各種業(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 多媒體通信終端結構圖
根據(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ù)包內 不會存在誤碼,因此在此通信模塊中省去了誤碼判斷的功能。適用于以太網(wǎng)的通信模塊是最 直觀也是結構最簡單的一個。
圖2 適用于以太網(wǎng)的通信模塊2.2 適用于網(wǎng)絡電臺的通信模塊
通過網(wǎng)絡電臺進行通信時,終端軟件通過 USB 連接將數(shù)據(jù)包交給網(wǎng)絡電臺,由電臺進 行數(shù)據(jù)傳輸。圖3 描述了適用于網(wǎng)絡電臺的通信模塊的結構。網(wǎng)絡電臺上運行的服務程序維 護著一個套接字列表,同時多媒體通信終端程序維護了套接字的索引表。終端程序和電臺服 務程序根據(jù)一個自定義的遙控套接字協(xié)議進行通信,保持索引和套接字的一一對應。在需要 進行套接字操作(創(chuàng)建、關閉或者發(fā)送數(shù)據(jù))時,終端程序通過協(xié)議將命令發(fā)送電臺服務程序; 電臺服務程序將命令執(zhí)行的結果通過協(xié)議返回給終端。電臺服務程序接收到來自套接字的數(shù) 據(jù)包時,也通過協(xié)議傳遞給終端程序。于是,終端程序可以構造出虛擬的套接字,使虛擬套 接字的接口與系統(tǒng)提供的套接字一致。這樣,只要用虛擬套接字替換圖2 所示通信模塊中的 套接字,就能實現(xiàn)適用于網(wǎng)絡電臺的通信模塊。
2.3 適用于短波電臺的通信模塊
短波電臺與上述兩種通信設備有著極大的差別,因此相應的通信模塊也迥然不同。由于短波信道具有較窄的通信帶寬,因此終端不支持視頻通信業(yè)務。為了充分利用短波信道有限 的帶寬資源,需要對實時業(yè)務和非實時業(yè)務進行不同的處理。語音通信業(yè)務具有定長的數(shù)據(jù) 包,并且等間隔時間產(chǎn)生一個數(shù)據(jù)包;各種非實時業(yè)務具有不定長的數(shù)據(jù)包,并且數(shù)據(jù)包產(chǎn) 生的時間間隔也不固定。針對信道和業(yè)務的特點,通信模塊采用了雙層復接結構進行數(shù)據(jù)復 接,為業(yè)務模塊提供了不可靠的數(shù)據(jù)包傳輸服務,同時取得了較高的通信效率和較短的語音 通信延遲。數(shù)據(jù)復接算法在文[6]中進行了詳細的描述,本文只針對通信模塊的接口做簡單 的介紹。
在發(fā)送端,通信模塊讀取來自各非實時業(yè)務的數(shù)據(jù)包,通過增加分隔字節(jié)、業(yè)務標識和 CRC 校驗字節(jié)將數(shù)據(jù)包復接為比特流。然后,根據(jù)語音通信狀態(tài)和數(shù)據(jù)比特流的長度,定 長幀復接模塊選擇出合適的幀模式,并將語音數(shù)據(jù)包和數(shù)據(jù)比特流復接到定長幀中。在幀模 式的選擇中,將優(yōu)先保證語音通信所需的帶寬資源。最后,將定長幀通過串口發(fā)送出去。在 接收端,通信模塊讀取來自串口的比特流數(shù)據(jù),進行幀同步、定長幀解復接和變長幀的解復 接,從而獲得各個業(yè)務的數(shù)據(jù)包。然后,通信模塊將接收到的所有語音數(shù)據(jù)包寫入語音業(yè)務 模塊的接收緩沖區(qū);而對于其它非實時通信業(yè)務,通信模塊只將CRC 校驗正確的數(shù)據(jù)包提 交給相應的業(yè)務模塊。
圖4 適用于短波通信的通信模塊
3 結論
實驗證明,本文介紹的多媒體通信終端能適用于以太網(wǎng)卡、網(wǎng)絡電臺和短波電臺等多種通信設備,并且具有較高的通信效率和良好的多媒體通信效果。軟件結構清晰,具有較強的 可擴展性:可以通過增加業(yè)務模塊實現(xiàn)通信業(yè)務的擴展;也可以通過增加新的通信模塊使多媒體通信終端能適用于新的通信設備。