基于ARM9的无线电台网络控制系统的设计与研究
1、引言
在如今的信息时代,由于人们对系统性能和成本控制要求的不断提高,嵌入式系统凭其优良的性价比和独特的便利性得到了越来越多的人们的青睐。无线电台已经由 传统的模拟式向数字化演进,由孤立系统向网络互联迈进。网络技术的快速发展极大地推动了嵌入式系统的发展。
随着无线电台技术的飞速发展,越来越多的行业开始使用无线电台,因为用无线电台方式实现数据采集、监视与控制,相对于架设专用的电缆或光缆,具有造价低 廉、运行可靠、维护方便等优点[1]。无线电台的使用从最早的按键电码、电报发展到模拟电台加无线MODEM、数字电台和DSP及软件无线电。数据传输速 率从低速走到高速,传输的信号从简单代码发展到遥控遥测数据、数字化语音、动态图像等。无线电台因其高稳定性和高可靠性适用于各类无线数据采集与监视控制 系统,尤其是应用在输油供气管网监测、城市防空报警控制、铁路信号监控、电力负荷监控[2]、城市路灯监控、铁路供水集中控制、GPS定位系统、地震测 报、污水处理、环境监测等工业自动化系统。
2、系统概述
本文把嵌入式技术与无线电台通信技术相结合,研究出一种新型的嵌入式网络控制器。控制器内的电路板是以arm9嵌入式微处理器为核心,对外提供多个接口, 包括3个串口,小型的系统总线接口,以及非常丰富的常用嵌入式系统接口,如SPI x 1、I2C x 1、I2S x 1、AD x 2、PWM x 1 、USB Host、 USB Slave接口等,有了这些接口,我们可以根据需求拓展嵌入式网络控制器的功能。在本系统中我们主要使用3个串口及以太网口。
该无线电台网络控制器设计的主要原理是:电台接收对讲机发出的语音信号并通过音频电缆输出到网络控制器终端。控制器内的语音编解码芯片负责把模拟的语音信 号转换成数字信号,控制器内的软件负责压缩音频数据,压缩后的语音数据包通过互联网发送到服务器,服务器软件根据一定的规则转发数据包到其它网络控制器终 端。收到语音压缩码流的控制器负责解码、D/A转换,通过音频电缆把语音信号输入到电台,最后无线电台通过内部的发射模块将语音信号发送到对讲机。这个过 程实现了语音数据跨互联网传输,用户通过PC或其他网络设备将控制指令发送到控制器终端。终端内的软件负责解释指令并且通过串口将指令传送给电台。电台再 下达指令给各个被控制的设备,从而实现了对电台及相关设备的远程控制。
3、硬件设计
在分析了无线电台网络控制器工作原理的基础上,我们对系统的子模块和任务进行了整体设计。整个系统可以分成两个相对独立的部分来完成:无线电台网络控制器 终端和服务器软件。控制器1将编码后的g72x码流发送到服务器,服务器根据路由表信息,将数据转发到控制器2、控制器3、控制器4…控制器n,控制器与 服务器之间采用TCP或UDP协议。无线电台网络控制器结构示意图如图1所示。
硬件设计除了核心板的选型外,主要是外部电路的设计。我们选择了性价比比较好的SBC-2410核心板。外围电路的设计主要包括音频信号采集模块、网络数 据收发模块、串口控制电路等[3],其中音频信号采集电路我们选的是uda1341语音编解码芯片,网络控制器芯片我们采用的是cs8900芯片。
3.1 嵌入式核心板简介
SBC-2410具有高性能、低功耗、接口丰富和体积小等优良特性,并且已经应用在多个设计中,基于可重用的思想,整个平台承载ARM最精简系统,把有用 的信号线通过两排插针引出去。无线电台网络控制器终端的具体应用按照实际的需求进行设计,通过两排插座与核心板相连[4]。
图1 无线电台网络控制器结构图
3.2 语音芯片接口电路
由于S3C2410内置的IIS总线接口能够和其他厂商提供的多媒体编解码芯片配合使用,所以无线电台网络控制器终端内部语音模块的设计是基于 IIS(Integrate Interface of Sound)接口的。提供IIS接口能够读取IIS总线上面的数据,同时也为FIFO(First Input First Output)数据提供DMA(Direct Memory Access)的传输模式,这样能够同时传送和接收数据。IIS接口有3种工作方式,分别是正常传输模式、DMA模式和传输/接受模式,在本文的设计中, 我们选择了传输/接受模式,在这种模式下,IIS总线可以同时接收和发送音频数据。
3.3 网络芯片接口电路
S3C2410内嵌一个以太网控制器,可以在半双工或全双工模式下提供10M/100Mbps的以太网接入,支持媒体独立接口MII(Media Independent Interface) 和带缓冲DMA接口。由于S3C2410内部并未提供物理层接口,所以我们需要外接一块物理层芯片以提供以太网的接入通道。而常用的单口 10M/100Mbps高速以太网接口器件均提供MII接口和传统的网络接口,所以可以方便地与ARM连接。
在无线电台网络控制器终端,我们采用cs8900作为以太网物理层接口。它的基本工作原理如下:在收到主机发来的数据报后,侦听网络线路是否忙。如果线路 忙,它就等到线路空闲为止,否则,立即发送该数据帧。在发送过程中,首先添加以太网帧头,然后生成CRC校验码,最后将此数据帧发送到以太网上。在接受过 程中,它将从以太网收到的数据经过解码、去帧头和地址检验等步骤,然后保存在片内。在通过CRC校验后,它会根据初始化配置情况,通知cs8900收到了 数据帧,最后,用某种传输模式传到ARM的存储区中[5]。
cs8900有三种工作模式:I/O模式、存储器模式和直接存储器存储模式,系统默认为I/O模式,可通过程序使其工作于其它模式。cs8900的各个工作模式各有优缺点,在本系统的设计中,我们采用的是它的I/O模式。
网卡芯片不能单独工作,还必须有一个网络变压器在RJ-45接口和网络芯片中间进行电平交换。另外网卡芯片有两个LED指示是用于指示接收和发送状态的,如果网络连接正常并且正常收发数据报时,LED会闪烁。
4、软件设计
在本系统的软件设计中,主要包括无线电台网络控制器终端应用程序设计及服务器软件设计[6]。
4.1 无线电台网络控制器终端应用程序设计
无线电台网络控制器终端应用软件整体结构图如图2所示。应用软件结构图显示了系统程序设计主要由四个模块组成,分别是语音及串口数据处理模块、工作参数设 置及读取模块、出厂值还原模块、服务器中转及管理模块。其中前三个模块运行于嵌入式开发板,最后一个模块运行于windows 平台。四个模块中,语音及串口数据处理模块是功能相对复杂的模块,划分为两个相对独立的模块:语音数据处理模块和串口数据处理模块,其中语音数据处理模块 又由3个子模块构成,分别是读键值、读网络命令和语音数据流处理。工作参数的设置主要是对写配置文件和读配置文件的设置。
4.2 服务器软件设计
服务器监控及控制模块的程序设计中,我们主要使用两个定时器。定时器1每隔2秒产生一个超时事件,服务器每隔2秒向集群发送一次查询数据包,控制器收到查询数据包后,会产生一个应答包,这个应答包中的信息反映了控制器当前的状态。
5、系统运行截面图
系统的调试过程中,我们用了2个无线电台及服务器进行测试。服务器运行界面截图如图3所示。我们设置2个无线电台网络控制器终端的IP地址分别是 192.168.0.8和192.168.0.18。按下对讲机的PPT按键时,指示灯由绿灯变成蓝灯,表明服务器进入转发状态。如果想隔离某个控制器, 不让其接受或转发信号,则在远程控制的框中,输入对应的IP地址,然后选择关闭,则可以对其进行隔离,
图4 远程串口成功控制kiss modem软件截图
与其相对应的指示灯呈红色。若想关闭或打开所有的控制器,则按远程控制框中相应的按钮即可实现。
kiss modem软件是摩托罗拉电台的专用管理软件,该软件通过串口与电台通信,通过读取电台的数据就可以知道电台当前的工作状态然后通过窗口显示相关信息。我 们通过远程串口对电台下达指令,kiss modem会对指令做出响应,如图4所示。当我们把对讲机的信道切换按钮拨到1时,对讲机发出一个信号给电台,电台通过串口把信号传输给控制器,kiss modem软件把数据通过网络转发出去,另一个控制器经过网口转串口的数据传输,从而电台ID会显示1001,以此类推,目前最多可以设置14个电台6 结束语。实践证明,本文所设计的电台网络控制器已经实现了基本的功能,调试结果证明硬件设计方案完全满足产品的功能需求,软件设计采用功能优异的嵌入式Linux操作系统方便了今后软件的升级。整个系统造价低廉、运行可靠、易于施工和维护,在远程数据监控系统中有较大的推广价值。