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操作系统方便了今后软件的升级。整个系统造价低廉、运行可靠、易于施工和维护,在远程数据监控系统中有较大的推广价值。