微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 适于多种通信设备的多媒体通信终端软件设计

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

时间:10-26 来源:互联网 点击:

并判决是否将有误码的数据包提交给业务模块;业务模块以ARQ 方式保证数据包的可靠传输。在用C++语言进行程序设计时,可以将抽象的通信模块 接口定义为基类,适用于以太网、网络电台和短波电台的通信模块都是该基类的派生类。下 面分别介绍针对三种通信设备的通信模块设计。

2.1 适用于以太网的通信模块

通过以太网卡进行通信时,可以通过套接字(socket)编程[5]实现UDP 数据包传输。如图 2 所示,通信模块中应用了两个套接字,分别负责发送和接收数据包。通信模块主动从各个 业务模块中读取数据包,并在数据包前添加一个字节的业务标识。为了优先保证语音和视频 通信所需的带宽资源,通信模块优先读取来自语音和视频业务模块的数据包进行发送。添加 了标识的数据包通过发送套接字发送到目标终端。流量控制模块按照预先设定的速率控制每 秒钟发送到以太网上的字节数。UDP 接收套接字在收到数据包时,根据数据包的第一个字 节判断业务类型,并将数据包写入相应业务模块的接收缓冲区。UDP 协议保证了数据包内 不会存在误码,因此在此通信模块中省去了误码判断的功能。适用于以太网的通信模块是最 直观也是结构最简单的一个。

图2 适用于以太网的通信模块2.2 适用于网络电台的通信模块

通过网络电台进行通信时,终端软件通过 USB 连接将数据包交给网络电台,由电台进 行数据传输。图3 描述了适用于网络电台的通信模块的结构。网络电台上运行的服务程序维 护着一个套接字列表,同时多媒体通信终端程序维护了套接字的索引表。终端程序和电台服 务程序根据一个自定义的遥控套接字协议进行通信,保持索引和套接字的一一对应。在需要 进行套接字操作(创建、关闭或者发送数据)时,终端程序通过协议将命令发送电台服务程序; 电台服务程序将命令执行的结果通过协议返回给终端。电台服务程序接收到来自套接字的数 据包时,也通过协议传递给终端程序。于是,终端程序可以构造出虚拟的套接字,使虚拟套 接字的接口与系统提供的套接字一致。这样,只要用虚拟套接字替换图2 所示通信模块中的 套接字,就能实现适用于网络电台的通信模块。

2.3 适用于短波电台的通信模块

短波电台与上述两种通信设备有着极大的差别,因此相应的通信模块也迥然不同。由于短波信道具有较窄的通信带宽,因此终端不支持视频通信业务。为了充分利用短波信道有限 的带宽资源,需要对实时业务和非实时业务进行不同的处理。语音通信业务具有定长的数据 包,并且等间隔时间产生一个数据包;各种非实时业务具有不定长的数据包,并且数据包产 生的时间间隔也不固定。针对信道和业务的特点,通信模块采用了双层复接结构进行数据复 接,为业务模块提供了不可靠的数据包传输服务,同时取得了较高的通信效率和较短的语音 通信延迟。数据复接算法在文[6]中进行了详细的描述,本文只针对通信模块的接口做简单 的介绍。

在发送端,通信模块读取来自各非实时业务的数据包,通过增加分隔字节、业务标识和 CRC 校验字节将数据包复接为比特流。然后,根据语音通信状态和数据比特流的长度,定 长帧复接模块选择出合适的帧模式,并将语音数据包和数据比特流复接到定长帧中。在帧模 式的选择中,将优先保证语音通信所需的带宽资源。最后,将定长帧通过串口发送出去。在 接收端,通信模块读取来自串口的比特流数据,进行帧同步、定长帧解复接和变长帧的解复 接,从而获得各个业务的数据包。然后,通信模块将接收到的所有语音数据包写入语音业务 模块的接收缓冲区;而对于其它非实时通信业务,通信模块只将CRC 校验正确的数据包提 交给相应的业务模块。

图4 适用于短波通信的通信模块

3 结论

实验证明,本文介绍的多媒体通信终端能适用于以太网卡、网络电台和短波电台等多种通信设备,并且具有较高的通信效率和良好的多媒体通信效果。软件结构清晰,具有较强的 可扩展性:可以通过增加业务模块实现通信业务的扩展;也可以通过增加新的通信模块使多媒体通信终端能适用于新的通信设备。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top