牛红岩++褚凯
摘要:介绍了一种基于计算机并口总线进行语音控制的系统实现,它可以用于语音交换系统或者语音设备组网使用培训。详述其硬件、软件设计,并对设计中遇到的几个关键问题进行了讨论。
关键词:并口;语音控制
中图分类号:TP311 文献识别码:A 文章编号:1009-3044(2015)17-0211-02
Design and Implementation of the Voice Control System Based on Parallel Port
NIU Hong-yan, CHU Kai
(Academy of Armored Forces, PLA, Bengbu 233050,China)
Abstract: In this paper, a system which is based on computer parallel port bus has been implemented. The system is suit for voice communication switching system, and also it can be used for the training of voice devices networking. The hardware and software design of the system has been described in detail and some key problems of the design has been discussed.
Key words: parallel port; voice control
“新型坦克电台通信指挥仿真训练系统”是一套仿真训练系统。它利用图形处理技术和计算机虚拟技术,仿真实装电台的外观和操作效应(参数显示、开关状态、电台工况检测及各种声响效果等),使其行为特性与实装电台基本一致,主要用于装甲机械化部队通信专业技术训练,研制中充分利用计算机网络技术和系统控制技术,以局域网为依托,实现各虚拟电台的数据自动采集与实时传输,通过主控计算机与控制电路对各种(类)数据进行处理,产生相应的控制信息,建立模拟通信网路,实现各种通信功能(停止间定频明语、定频加密、跳频通信的组网通信)的仿真。
1 系统结构
系统主要由总控和单台两大部分组成,如图1所示。总控部分包括服务器兼做主控计算机一台,主控制箱一只。单台部分包括单台控制计算机一台,模拟电台一部。单台最大容量为42部。从该结构图可清楚地看出每部单台中计算机负责与主控机进行数据通信,模拟电台部分负责与主控箱进行语音通信即音频交换,而单台计算机与模拟电台之间则是前者对后者进行管理。主控计算机与主控箱之间也是存在管理与被管理的关系。
2 各部分的构建
2.1 单台部分
单台部分模拟电台的制作完全仿真实装电台的外形、规格以及各开关形状等,外观与实装基本一致以使使用者在操作时有手感。模拟电台的开关信息及工作指示由单台计算机来控制,其控制方式采用计算机并口控制方式。
并口与模拟电台控制板之连接关系及控制原理如图2所示。
2.2 音频网络
音频网络结构也采用星型结构,各模拟电台话音信号经放大处理后通过主控箱实现互通,主控箱内采用高性能多路电磁开关隔离阻通各单台之间的语音通信,采取高性能音频振荡电路实现电台自检单音和噪声功能达到仿真实装训练环境效果。
其工作过程大致如下:当电台A与电台B频率一致,工作开关状态符合坦克电台通信组网要求时,若电台A扳发胸关发信,单台A之计算机检测到发信开关信号后将同时做两件事情:一是该计算机通过并口控制电路把本单台音频控制电磁开关接通,使话筒语音信号通过音频开关传送至主控箱;二是该计算机通过无盘计算机局域网将电台A发信开关信号发送至主控计算机。主控计算机检测到该信号后也将同时做两件事情:一是主控计算机对符合通信组网要求的电台进行检测,发现电台B与电台A处于同一网路内,则主控计算机控制主控箱内相应电磁开关,使电台A传送来的语音信号通过闭合的电磁开关发送至电台B的语音控制电路;二是主控计算机通知单台B之计算机把本单台音频控制电磁开关接通,使电台A传送来的话筒语音信号通过闭合的电磁开关传送至电台B之耳机。如此便完成一次通话过程。
3 程序设计
系统中的程序设计主要是通信协议的实现,读写并行口寄存器。
3.1 UDP通信
1)服务器端:
m_sockSend.Create(6000,SOCK_DGRAM,NULL);
int iSend= m_sockSend.SendTo(szSend,10,"10.78.10.11",6000,0);
int iRecv =m_sockRecv.ReceiveFrom(szRecv,10,"10.78.10.11",6000,0);
2)单台端:
m_sockSend.Create(6000,SOCK_DGRAM,FD_READ);
int iSend= m_sockSend.SendTo(szSend,10, "10.78.10.1",6000,0);
int iRecv =m_sockRecv.ReceiveFrom(szRecv,10,"10.78.10.1",6000,0);
3.2 并行口读写
1)读函数:
int RData(int d)
{ int data_l,data_h;
_outp(0x378,d);
_outp(0x37a,0x8);
data_l=_inp(0x379);
data_l =( data_l >>4)&0xf;
_outp(0x37a,0xc);
data_h=_inp(0x379);
data_h= data_h&0xf0;
return data_h+ data_l;
}
2)写函数:
int WData(int d,int data)
{
_outp(0x378,d);
_outp(0x37a,0x0);
_outp(0x378,0x2);
_outp(0x37a,0x1);
_outp(0x378,data);
return 0;
}
4 结束语
本系统以计算机仿真技术为核心,以计算机网络数据通信技术为依托,以实装电台的操作效应和通信效果为依据,综合运用软硬件仿真技术,实现对实装电台各种操作效应和通信功能的模拟仿真。利用本系统进行通信训练,便于训练的组织与管理,训练也更加安全、保密和有效。经配发部队使用后证明,本仿真训练系统可以有效地解决装甲机械化部队通信新装备专业训练缺乏有效的训练器材的难题,对提高部队战斗力将发挥十分重要的作用,具有显著的军事效益。
参考文献:
[1] 邹逢兴.微型计算机接口原理与技术[M]. 长沙: 国防科技大学出版社, 1999.
[2] KRUG D J, INSKI, WINGO S, SHEPHERD G. Visual C++6.0 技术内幕[M]. 希望图书创作室, 译. 北京: 北京希望电子出版社, 1999.
[3] 王国庆. 虚拟现实(VR)技术及其应用[J]. 航空计算机技术, 1994(2).
[4] Brudea G,Coiffet P. VirtualReality Technology[M]. Published by John wiley & Sons, Inc,1994.
[5] Hugsand O. Interactive multiuser VEs in the DIVE system for distributed virtual reality[J]. Future Generation Computer System, 1998(14): 3-4.