一种基于半实物仿真的超短波模拟电台及其实现方法技术领域
本发明涉及一种基于半实物仿真的超短波模拟电台及其实现方法,具体应用于教
育培训行业的多媒体实时通信技术领域。
背景技术
超短波电台电路复杂、成本高昂,在对学员培训过程中经常由于频繁的操作对设
备造成损坏,因此在教学实践过程中很难大量配备超短波电台,实验设备不足已经成为制
约训练效果提高的主要因素;在电台模拟实现方法中目前主要有使用VB、C++、VC#、.net和
FlashCS等软件技术或者使用ARM进行嵌入式开发的硬件实现方法,而采用纯软件教育培训
的方式只适用于理论知识传授,模拟器的操作使用与真实装备有较大的差异性,不能获得
实践经验,动手能力不足;部分教育培训设备采用ARM芯片与网卡芯片等相结合进行模拟操
作与通信、单片机与无线通信模块进行模拟操作与通信,单纯使用ARM芯片等进行嵌入式开
发的硬件实现方法虽然可以无差异性地模拟真实装备的操作方法和通信过程,成本高昂,
无法普及。
发明内容
本发明所要解决的技术问题是,提供一种能很好地模拟真实设备的操作使用过
程,降低成本的基于半实物仿真的超短波模拟电台及其实现方法。
本发明的基于半实物仿真的超短波模拟电台,包括用于模拟超短波电台操作界面
的半实物电台,用于通讯连接的IP网络,和PC机软件终端,其特征在于:半实物电台通过串
口与PC机软件终端连接,PC机软件终端通过计算机网口连接到IP网络;IP网络构建成星型
的交互式以太网;
所述半实物电台包括单片机,以及与单片机通讯连接的输入模块、串口通信模块
和显示模块,输入模块包括键盘、旋钮和键盘扫描芯片,串口通信模块为COM口,显示模块包
括显示屏、LCD控制芯片;
所述PC机软件终端包括监听模拟电台信号并发出指令的下位机数据处理模块,根
据下位机数据处理模块发出的指令执行开启、修改或终止动作的逻辑判断模块,和由逻辑
判断模块动作触发的音频处理模块三个模块,三模块之间通信连接;
所述PC机软件终端三模块之间通过串口数据收发子线程、网络信令监听子线程、
音频数据采集子线程、音频数据发送子线程、音频数据接收子线程和音频数据播放子线程
实现功能性通信连接;
所述音频处理模块包括通过麦克风采集音视频数据的编码发送部分,和接收数据
解码后送往音频播放器的接收解码部分;
本发明还涉及一种基于半实物仿真的超短波模拟电台实现方法,采用上述基于半
实物仿真的超短波模拟电台,通过以下步骤实现:
半实物模拟电台发送开机信息用自定义消息“REGESTER”表示,PC机软件终端收到
后发送自定义消息“SUCCESS”表示确认成功,如果失败不发送任何消息;
PC机软件终端收到网络发来的电台语音通信数据,则向半实物模拟电台发送
“BUSY”消息,半实物模拟电台收到消息后点亮接收信号指示灯;PC机软件终端停止接收网
络发来的电台通信数据,则向半实物模拟电台发送“RELEASE”消息,半实物模拟电台收到消
息后熄灭接收信号指示灯;
本发明的一种基于半实物仿真的超短波模拟电台实现方法,分为实现被动接受通
信模式和实现主动发起通信模式;
实现被动接受通信模式:
第一步,创建一个专用子线程进行外来信令消息的监听,时刻监听外来的“BC-6字
节状态数据”消息,线程入口函数设为event_listen;
第二步,监听到“BC-6字节状态数据”消息,立即提取其中的“6字节状态数据”跟本
地电台状态进行比对,如果完全相同,则转到下一步,否则忽略消息,流程结束;
第三步,如果接收到的信息与本地完全匹配,则回送“RPT-6字节状态数据”消息;
并启动音频接收子线程,线程入口函数设为os_sound_start_thread;启动音频发送子线
程,线程入口函数设为os_sound_start_out_thread;启动音频数据播放子线程;启动音频
采集子线程。
实现主动发起通信模式:
第一步,用户按下话筒按键PPT键,发出“BC-6字节状态数据”;
第二步,如果IP局域网中有与本地电台状态信息完全相同的其他模拟电台,则会
收到“RPT-6字节状态数据”的消息;
第三步,再次确认“RPT-6字节状态数据”的6字节状态数据与本地电台状态数据完
全匹配,则启动音频接收子线程,线程入口函数设为sound_in_thread;启动音频发送子线
程,线程入口函数设为sound_out_thread;启动音频数据播放子线程;启动音频采集子线
程。
本发明的基于半实物仿真的超短波模拟电台及其实现方法,整体构架采用分布式
结构,不需要专门的控制台,可以依托实验室中现有计算机局域网络和计算机平台,利用单
片机技术开发半实物电台部分,利用C++编程技术实现PC机软件终端部分,在模拟实现真实
超短波电台所有操作功能和通信功能的同时,降低系统实现成本。
附图说明
图1是本发明实施例的基于半实物仿真的超短波模拟电台系统示意图;
图2是本发明实施例的基于半实物仿真的超短波模拟电台半实物电台结构原理
图;
图3是本发明实施例的基于半实物仿真的超短波模拟电台PC机软件终端框架图;
图4是本发明实施例的基于半实物仿真的超短波模拟电台PC机软件终端线程通信
示意图;
图5是本发明实施例的基于半实物仿真的超短波模拟电台音频模块通信流程图。
具体实施方式
如图1所示,一种基于半实物仿真的超短波模拟电台,包括用于模拟超短婆电台操
作界面的半实物电台,用于通讯连接的IP网络,和PC机软件终端,其特征在于:半实物电台
通过串口与PC机软件终端连接,PC机软件终端通过计算机网口连接到IP网络;IP网络构建
成星型的交互式以太网;半实物电台包括单片机,以及与单片机通讯连接的输入模块、串口
通信模块和显示模块,输入模块包括键盘、旋钮和键盘扫描芯片,串口通信模块为COM口,显
示模块包括显示屏、LCD控制芯片;PC机软件终端包括监听模拟电台信号并发出指令的下位
机数据处理模块,根据下位机数据处理模块发出的指令执行开启、修改或终止动作的逻辑
判断模块,和由逻辑判断模块动作触发的音频处理模块三个模块,三模块之间通信连接;PC
机软件终端三模块之间通过串口数据收发子线程、网络信令监听子线程、音频数据采集子
线程、音频数据发送子线程、音频数据接收子线程和音频数据播放子线程实现功能性通信
连接;音频处理模块包括通过麦克风采集音视频数据的编码发送部分,和接收数据解码后
送往音频播放器的接收解码部分。
本发明还涉及一种基于半实物仿真的超短波模拟电台实现方法,采用上述基于半
实物仿真的超短波模拟电台,通过以下步骤实现:
半实物模拟电台发送开机信息用自定义消息“REGESTER”表示,PC机软件终端收到
后发送自定义消息“SUCCESS”表示确认成功,如果失败不发送任何消息;
PC机软件终端收到网络发来的电台语音通信数据,则向半实物模拟电台发送
“BUSY”消息,半实物模拟电台收到消息后点亮接收信号指示灯;PC机软件终端停止接收网
络发来的电台通信数据,则向半实物模拟电台发送“RELEASE”消息,半实物模拟电台收到消
息后熄灭接收信号指示灯;
本发明的一种基于半实物仿真的超短波模拟电台实现方法,分为实现被动接受通
信模式和实现主动发起通信模式;
实现被动接受通信模式:
第一步,要时刻监听外来的“BC-6字节状态数据”消息,因此需要创建一个专用子
线程(子线程1)进行外来信令消息的监听,线程入口函数设为event_listen;
第二步,监听到“BC-6字节状态数据”消息,立即提取其中的“6字节状态数据”跟本
地电台状态进行比对,如果完全相同,则转到下一步,否则忽略消息,流程结束;
第三步,如果接收到的信息与本地完全匹配,则回送“RPT-6字节状态数据”消息;
并启动音频接收子线程(子线程2),线程入口函数设为os_sound_start_thread;启动音频
发送子线程(子线程3),线程入口函数设为os_sound_start_out_thread;启动音频数据播
放子线程(子线程4);启动音频采集子线程(子线程5)。
实现主动发起通信模式:
第一步,用户按下话筒按键PPT键,发出“BC-6字节状态数据”;
第二步,如果IP局域网中有与本地电台状态信息完全相同的其他模拟电台,则会
收到“RPT-6字节状态数据”的消息;
第三步,再次确认“RPT-6字节状态数据”的6字节状态数据与本地电台状态数据完
全匹配,则启动音频接收子线程(子线程2),线程入口函数设为sound_in_thread;启动音频
发送子线程(子线程3),线程入口函数设为sound_out_thread;启动音频数据播放子线程
(子线程4);启动音频采集子线程(子线程5)。
本发明的基于半实物仿真的超短波模拟电台,半实物电台部分通过串口线与计算
机的PC机软件终端相连接,PC机软件终端通过计算机的网口连接到IP网络。其中,半实物电
台部分用于超短波电台操作界面的模拟,操作人员的所有指令的操作和语音数据的采集都
通过半实物电台来完成;PC机软件终端是整个模拟电台实现的核心部分,用于接收并判断
半实物电台通过串口送来的指令是否正确,用于IP网络中模拟电台之间指令和语音数据的
传输并且负责进行逻辑判断,是否允许本地模拟电台与网络中电台进行通信链路的建立;
IP网络用于构建一个星型的交互式以太网,实现安装有PC机软件终端的计算机之间的互
连,对PC机软件终端之间需要交互的数据进行传递,模拟超短波电台工作的无线网络信道。
半实物电台利用51系列单片机模拟完成操作人员与模拟电台操作界面的信息交
互处理过程,主要包括:操作指令的输入,通过键盘和旋钮实现;电台信息的显示,通过LCD
显示屏实现;操作指令和显示信息与计算机的交互,通过单片机与计算机间的串口通信实
现。
键盘的工作方式采用定时扫描的工作方式,利用单片机内的定时器,产生10ms的
定时中断,对键盘进行扫描。键盘采用4X4行列式键盘,用I/O端口线组成行、列结构,行列线
分别连在按键开关的两端,列线通过上拉电阻裂解至电源,使无键按下时列线处于高电平
状态。按键设置在行、列线的交叉点上。
通过单片机的并行总线接口与液晶显示模块直接连接,单片机通过对这些接口的
操作,实现对液晶显示模块的控制,完成相应的显示。
PC机与单片机通信只要3根线就可以,单片机的TXD、RXD与PC的RXD、TXD分别相连,
连接地线。51系列单片机的串行口使用的是TTL电平,因此在PC和单片机间要有RS-232电平
转换电路。
半实物电台的数据处理与相互之间的传输由PC机软件终端部分基于IP网络实现,
PC机软件终端总共设立了下位机数据处理模块、逻辑判断模块和音频处理模块三个模块。
在三个模块的功能实现过程中,采用了子线程技术,整个PC机软件终端总共采用了6个子线
程,分别为:串口数据收发子线程、网络信令监听子线程、音频数据采集子线程、音频数据发
送子线程、音频数据接收子线程和音频数据播放子线程。
PC机软件终端开启后,下位机数据处理模块自动启动串口数据收发子线程。在串
口数据收发子线程中,终端扫描串口信息,当发现半实物模拟电台所使用的串口时,自动打
开此串口。串口打开以后,操作人员通过半实物模拟电台操作界面输入的指令通过串口向
终端传输,为了保证将模拟电台的状态信息与PC机软件终端之间准确无误的传输,本发明
自定义了单片机与PC机之间通信协议,该协议主要用来交互模拟电台的状态信息,包括电
台工作的频率信息、工作的功率信息、工作制式信息以及话筒按键是否按下等。
所述逻辑判断模块主要负责启动IP网络监听子线程,用来监听网络中其他电台发
送来的信令信息,同时判断建立通信所需要的参数指标跟本地模拟电台是否一致,如果一
致则准备建立通信链路,通知音频处理模块准备启动音频传输,并通过监听子线程回送相
应信令消息,如果通过逻辑判断跟本地信息不符,则认定为无法建立链路,忽略此消息。网
络信令监听子线程使用端口6001。
所述音频处理模块,分编码发送和接收解码两部分。编码发送负责将本地数据发
往接收方,输入数据为通过麦克风采集到的音视频数据。原始音频数据经过G.711、G.723.1
或G.729a协议编码以后打包成RTP包发往远端。接收解码部分是编码发送部分的一个逆过
程,先是解包RTP包,将数据进过解码后送往音频播放器,音频传输信道使用端口6002。
各模块在设计中是相对独立的,但是为了协调工作,各模块之间需要进行通信。各
模块之间的通信过程如图3所示,音频处理模块的启动、修改和终止都需要逻辑判断模块的
消息触发,逻辑判读模块是否启动由下位机信令处理模块控制。而下位机信令处理模块自
程序启动时,自动启动串口数据监听子进程,时刻监听模拟电台是否打开,只有当电台打开
时,才能启动逻辑判断模块监听网络信令信息,逻辑判断模块通过判断网络上接收到的他
台信息做出判断是否需要启动音频处理模块。
PC机软件终端实现的功能主要包括:(1)监控并显示半实物模拟电台的工作状态
和接收操作人员指令的输入,并在IP局域网中广播本地电台的状态信息;(2)监听网络信令
信息,并对信令信息做出相应的判断;(3)根据操作人员的操作指令和网络信令信息做出判
断是否启动音频通信。
实现以上功能,PC机软件终端设计采用分层设计思想,将软件分为用户界面层、核
心接口层、功能层和传输层。其中,软件的功能实现是在功能层,主要包括三个模块:下位机
信令处理模块、逻辑判断模块和音频处理模块。
如图3所示,用户界面层是基于Visual studio 2010,位于整个应用程序的最上
层,提供图形界面,确定软件的框架。核心接口层,它调用一些接口函数,屏蔽了下层模块的
细节,提供一些简单的接口,便于用户界面层中控件的回调函数调用,实现用户界面跟功能
层的对接。功能层,实现自定义信令消息的解析和生成,负责完成音频数据的处理,是整个
软件的主体部分,是各个功能实现的关键模块。TCP/UDP传输层,负责实现音频数据的底层
socket传输。
在程序启动时,首先运行串口数据监听子线程。其他模块所用线程只有当相应的
模块建立服务时,子线程才会建立。
下位机数据处理模块在模拟电台的操作控制与通信过程中,主要负责PC机软件终
端与半实物模拟电台之间进行电台状态的信息传递以及操作人员操作指令的接收,整个通
信过程,单片机使用串口通信机制与PC机进行通信。半实物模拟电台通过单片机向PC软件
终端发送两种信息,即开机信息和工作状态信息。在整个信息的交互过程中,本发明自定义
了信息交互的协议和协议过程中所使用到的相关自定义消息。
半实物模拟电台发送开机信息用自定义消息“REGESTER”表示,PC机软件终端收到
后发送自定义消息“SUCCESS”表示确认成功,如果失败不发送任何消息。
半实物模拟电台发送电台工作状态使用6个字节数据:第一个字节表示电台种类
(短波电台用“D”表示,超短波电台用“C”表示),第二个字节表示电台工作频段(UHF、VHF或
者HF,各取大写首字母代表),第三个自己表示工作分组(US、INT和WX各取小写首字母表
示),第四个字节表示频道号,直接用相应char字符类型的数字表示,第五个字节表示功率
大小(1W、25W或者125W等),也是用相应char字符类型的数字表示,第六个字节表示工作状
态(开机用“O”表示、发射用“T”表示、接收用“R”表示),PC机软件终端收到后发送自定义消
息“OK”表示确认成功,同时向IP局域网络发送“BC-6字节状态数据”的广播消息,告知IP局
域网中的其他模拟电台,本地电台的状态信息发生了改变;如果失败不发送任何消息。
PC机软件终端收到网络发来的电台语音通信数据,则向半实物模拟电台发送
“BUSY”消息,半实物模拟电台收到消息后点亮接收信号指示灯。
PC机软件终端停止接收网络发来的电台通信数据,则向半实物模拟电台发送
“RELEASE”消息,半实物模拟电台收到消息后熄灭接收信号指示灯。
PC机软件终端与半实物模拟电台之间的处理信令如下表所示:
服务划分
半实物模拟电台消息
PC机软件终端消息
开机通知
REGESTER
SUCCESS
电台状态通知
“6字节特定类型字符串”
OK/BC-6字节状态数据
电台收到语音通信
BUSY
整个自定义协议交互过程如下所示:
开机通知
![]()
电台状态通知
![]()
电台收到语音通信
![]()
电台停止接收语音通信
![]()
(2)逻辑判断模块
该模块的功能主要是负责监听网络上的广播消息。在整个工作过程中,同样适用
了本发明自定义的协议和自定义消息。IP网络中信令消息交互的协议定义如下。
如果监听到“BC-6字节状态数据”消息,则提取其中的“6字节状态数据”跟本地电
台的状态信息做比对,如果完全相同,则允许两者建立通信链路,同时回送“RPT-6字节状态
数据”消息,告知对方电台,可以建立通信链路,否则忽略此消息。如果监听到“RPT-6字节状
态数据”消息,则立即建立通信链路。PC机软件终端之间的处理信令如下表2所示:
表2:PC机软件终端之间交互信令
服务划分
PC机软件1终端消息
PC机软件2终端消息
状态广播消息
“BC-6字节状态数据”
“RPT-6字节状态数据”
状态广播
![]()
(3)音频处理模块
音频模块总体结构
采用多线程设计思路,音频传输模块总共分配5个子线程。
网络信令监听子线程:负责监听“BC-6字节状态数据”消息和“RPT-6字节状态数
据”;
音频接收子线程:负责接收RTP音频数据包并进行解码;
音频发送子线程:负责对采集到的音频数据编码后进行RTP打包发送;
音频播放子线程:对解码后的RTP音频数据包进行本地播放;
音频采集子线程:利用麦克风采集音频数据,并把采集到的数据放入消息队列中。
音频模块通信流程
主线程启动,在初始化时实现一些参数的设置,如获取本地IP,设置程序通信端口
Port等。音频的传输分为主动发起通信和被动接受通信两种模式。
实现被动接受通信模式:
第一步,要时刻监听外来的“BC-6字节状态数据”消息,因此需要创建一个专用子
线程(子线程1)进行外来信令消息的监听,线程入口函数设为event_listen;
第二步,监听到“BC-6字节状态数据”消息,立即提取其中的“6字节状态数据”跟本
地电台状态进行比对,如果完全相同,则转到下一步,否则忽略消息,流程结束;
第三步,如果接收到的信息与本地完全匹配,则回送“RPT-6字节状态数据”消息;
并启动音频接收子线程(子线程2),线程入口函数设为os_sound_start_thread;启动音频
发送子线程(子线程3),线程入口函数设为os_sound_start_out_thread;启动音频数据播
放子线程(子线程4);启动音频采集子线程(子线程5)。
实现主动发起通信模式(音频为例):
第一步,用户按下话筒按键PPT键,发出“BC-6字节状态数据”;
第二步,如果IP局域网中有与本地电台状态信息完全相同的其他模拟电台,则会
收到“RPT-6字节状态数据”的消息;
第三步,再次确认“RPT-6字节状态数据”的6字节状态数据与本地电台状态数据完
全匹配,则启动音频接收子线程(子线程2),线程入口函数设为sound_in_thread;启动音频
发送子线程(子线程3),线程入口函数设为sound_out_thread;启动音频数据播放子线程
(子线程4);启动音频采集子线程(子线程5)。
利用单片机嵌入式平台实现模拟电台操作的人机交互操作和计算机网络平台实
现模拟电台的语音数据传输相结合的方式完成整个超短波模拟电台的开发;自定义半实物
模拟电台部分单片机与PC机软件终端之间通信的协议和协议中用到的消息类型;自定义了
各模拟电台在IP网络中信令传输时用到的协议和协议中所用到的消息类型。
本发明的基于半实物仿真的超短波模拟电台及其实现方法,整体构架采用分布式
结构,不需要专门的控制台,可以依托实验室中现有计算机局域网络和计算机平台,利用单
片机技术开发半实物电台部分,利用C++编程技术实现PC机软件终端部分,在模拟实现真实
超短波电台所有操作功能和通信功能的同时,降低系统实现成本;模拟器可以完成真实装
备的所有功能,在没有真实装备的环境下利用该模拟器同样可以达到预期的训练效果,解
决了实际装备训练成本高,对于受训人员电磁辐射危害大,装备维护保养困难多的现实问
题;利用计算机软件编程与单片机硬件嵌入式开发相结合的方法,即可以很好地模拟真实
设备的操作使用,又可以尽量地降低模拟电台的成本。使用C++语言在PC机平台上基于IP局
域网络进行多媒体网络通信编程,实现模拟电台的话筒采集到语音数据的传输;使用C语言
在单片机平台上进行嵌入式开发,实现操作人员键盘指令的输入和模拟电台屏幕信息的显
示。
网络多媒体技术是半实物超短波模拟电台应用的核心技术,而IP网络是实现这些
应用的基础平台。多媒体数据传输与播放技术是计算机技术、网络通信技术、多媒体技术等
多学科、多领域融合交叉所产生的网络应用技术,广泛用于多媒体新闻发布、在线直播、网
络广告、电子商务、远程教育和远程医疗等领域。
嵌入式开发技术融合了计算机软/硬件技术、通信技术和微电子技术。随着微电子
技术和半导体技术的高速发展,超大规模集成电路技术和深亚微米制造工艺已十分成熟,
从而使高性能系统芯片的集成成为可能,并推动者嵌入式系统向最高级构建形式,即片上
系统的方向发展,进而促使嵌入式系统得到更深入、更广泛的应用。
基于上述考虑,本专利提出了基于IP网络与单片机的半实物超短波模拟电台实现
方法。该方法基于IP网络利用计算机进行语音媒体数据的网络传输,模拟超短波电台的无
线信道语音传输;基于单片机技术实现键盘指令的输入和屏幕信息的显示,模拟超短波电
台的操作使用方法。在语音数据传输处理中,使用G.711、G.723.1或G.729a协议编码从话筒
采集到的语音数据,利用RTP/RTCP等技术进行语音数据的打包盒实时信息的交互,单片机
与计算机之间所需要的信息交互采用串口通信机制进行,在单片机与计算机之间信息交互
和模拟电台在IP网络中的信令交互本发明自定义了信息与信令交互的协议和协议中使用
的自定义消息。