首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 通信与网络
基于TCP/IP的浮标网络通信系统设计
来源:本站整理  作者:佚名  2010-04-22 16:13:28



引言

        水声信道匹配基础研究是建立在水声学、海洋物理声学以及现代信号处理技术基础上的新兴研究领域。为满足研究需要而构建的局部海域水声信道测量平台(图 1),能够实现环境信息和信道参量的系统采集和实时传递,对信道宽容匹配方法的可行性进行检验。

 
        浮标系统以它的灵活、高效、自身干扰小等特点,在水声信道研究中发挥着其它设备不可替代的作用。现有的浮标系统大多采用直接序列扩频电台直接进行水面通讯,这种方式往往不使用网络协议或使用自定义的网络协议。而采用无线网桥进行水面通讯,以TCP/IP作为网络协议,将大大增强浮标系统网络化。同时由于TCP/IP协议是目前最为成熟的网络协议之一,浮标网络的稳定性、可扩展性都得以提高,甚至通过互联网直接控制浮标系统也成为可能。因此,本文基于TCP/IP网络协议设计并实现了浮标网络通信系统。

1、浮标网络通讯系统设计

1.1 基于TCP/IP网络协议的浮标通讯系统

        水声信道匹配基础研究所使用的浮标具有水下传感器单元、信号处理单元及水面通讯单元。其中水面通讯单元负责浮标与岸基控制站、测量船及其它浮标的信息交换,要求具备网络通讯功能。

  浮标网络通讯系统由无线网桥、TCP/IP协议控制单元及微控制器(MCU)组成,如图 2所示。无线网桥采用较为成熟网桥产品,如BreezeNET无线网桥,其功能是通过无线网路传输TCP/IP数据包。MCU负责对TCP/IP协议栈的进行设置,并写入待发数据及读出接收数据。


 
        TCP/IP协议栈的实现是浮标网络通讯系统的核心部分。其实现方式可以采用软件实现,但该方法一般要求处理速度较高的MCU,而且占用大量代码空间,同时编程需要对整个TCP/IP 协议的机制和细节十分熟悉,开发难度大。而硬件实现方式则把MCU从繁重的网络协议运行工作中解放出来,从而提高了系统效率。

        数据或指令由无线网桥发送或接收。它通过RJ45接口经变压器与10Base-T通用以太网接口控制器RTL8201相连。RTL8201通过MII标准接口与W3100A交换数据。RTL8201从W3100A处接收以太帧,然后进行曼彻斯特编码,发送以太网帧时,先在帧前端加上帧起始标志。当监听到网络中有以太网帧存在时,RTL8201接收模块首先用锁相环电路实现与物理信号同步,然后对物理信号采样接收并送给曼彻斯特解码功能块,最后得到W3100A能识别的归“0”码(已把帧前导码分离),并将其通过MII接口送入网络接口层模块。发送数据时,数据由MCU数据接口写入W3100A的发送缓冲区,通过控制各个协议层的相关控制寄存器,数据在TCP层中添加上各个控制标志等,封装成为TCP段,实现面向连接的可靠传输;TCP段接着交给IP层进行打包,IP层的一个重要功能是实现对TCP段的分片,以达到IP数据报能够最大效率利用以太网帧的数据区的目的。完整的IP数据报继续传给网络接口层,LLC子层使用物理层提供的不可靠的比特链路,实现可靠的分组传输服务,MAC子层为数据分组添加目的节点的物理地址,MAC实现不可靠的分组传输。经过网络接口层后,最终封装成帧格式,然后再经过MII接口送入RTL8201,在RTL8201里进行曼彻斯特编码并添加前导信号等。当RTL8201监听到物理链路空闲时,立即通过RJ45接口把数据帧发送到以太网上。接收数据时则进行相反的操作,收发器接收以太网上的物理信号把前导码分离出来并进行曼彻斯特解码,把结果传送给网络接口层,网络接口层MAC子层检查帧的物理目的地址是否与自己的相同,以决定是否交给LLC子层,LLC用差错检测位判断分组是否正确。正确的分组被送入IP层,在IP层中检测错误、拆封并进行分片重组后送给TCP层,TCP层实现面向连接的可靠传输,所以TCP层将进行严格的差错控制,再从TCP段中取出数据,然后通过数据接口传送回MCU。物理帧经过各个协议层进行解包,最终把数据传回MCU,但在各层解包时如果IP地址或数据出错等,数据包将被丢弃,并要求重传。如果处理的报文是ICMP、UDP 或ARP等时,其大致流程是一样的,不同报文的区别会在相应的包头指示出来,供协议识别。

[1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:72,378.91000 毫秒