新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 适于多种通信设备的多媒体通信终端软件设计

适于多种通信设备的多媒体通信终端软件设计

作者:时间:2011-10-26来源:网络收藏

1 概述

本文引用地址:http://www.eepw.com.cn/article/155591.htm

  应急技术是综合利用现有方式,实现的快速部署,机动反应的通信技术。 它最先应用于军事,在战备行动、野外施工、抢险救灾和应对突发事件上有重大的作用。 随着嵌入式技术和通信技术的发展,将手持1通信应用于应急通信中,使 得系统更加灵活机动,同时也使得各种信息能在系统中更有效的传递。在应急通信系统中, 通常同时具有有线、无线通信方式。各种有线通信方式通常采用TCP/IP 协议,以太网 卡是这类设备的典型。从无线通信方式来说,各类短波电台更恶劣通信环境。同时,采 用Ad hoc 方式组网的各种新型网络电台在近年来也得到了广泛的应用,这就要求通 信具备通过下层进行通信的能力。因此,一种适用于的 手持多媒体通信具有广泛的应用前景。

  针对上述三类设备,本文介绍了一种适用于多种的多媒体通信终端的实 现。终端采用面向对象的方法,对通信模块的接口进行了合理的抽象,将不同的 通信设备封装为统一接口的通信模块。这样,在采用不同的通信设备时,终端只需要选择相 应的通信模块就能进行正常的通信。

  2 多媒体通信终端的

  终端的硬件平台采用 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 适用于以太网的通信模块


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭