- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TCP/IP的浮标网络通信系统设计
3.2 网络传输控制
通过Wiznet公司为W3100A专门提供的Socket API函数,可使网络通讯的软件设计更加方便。首先初始化W3100A的网络设置,即在相应的寄存器中设置默认网关、子网掩码、本机物理地址和IP地址,然后建立Socket连接以实现通讯。整个过程与Windows Socket编程十分类似。
建立TCP连接的流程如图 9所示。首先完成芯片的TCP/IP初始化,设置相应通道如0通道的协议选择寄存器C0_SPOR为0X01;选择TCP协议,执行通道0命令寄存器C0_CR中的sock_init命令位, 同时将C0_TW_PR、C0_TR_PR及C0_TA_PR置成同一值;然后执行C0_CR的connect和listen命令位,此时TCP连接就建立起来。
W3100A内部的16KB的双口RAM作为数据发送和接收缓冲。其中0x4000~0x5FFF的地址空间是发送数据缓冲区,0x6000~0x7FFF的地址空间是接收数据缓冲区。MCU程序将要发送的数据写入发送缓冲区,并从接收缓冲区读出收到的数据。当成批的数据发送时,一定要先查询1次发送数据指针,从而计算出可以利用的发送缓冲区的大小。图 10示意了TCP数据发送的程序流程。数据接收的过程与发送过程类似,在此不再赘述。
4、测试及分析
功能测试的关键在于对系统的可用性及稳定性进行实验。为此,建立了一个简化通讯网络,采用PC机作为通讯网络的一个终端,浮标作为另一终端。通过测试两者间的通讯情况来实验本系统功能。
首先,测试网络连接情况。作为必要的IP实验,由PC机将PING命令发送给浮标,PC机显示结果如图 11所示。
在局域网畅通的情况下,理论上0字节的PING请求平均响应时间为1ms,实验结果验证了网络连接的正常。
通过大量转发数据的方法测试系统稳定性。由PC机发送数据至浮标,浮标将数据直接转发回PC机,PC机比较发出数据与接收数据,以判断误码情况。室温条件下,通讯距离100米,进行三组各持续10小时的收发实验,无丢包现象,误码率<10-9,符合设计要求。要指出的是,由于海况及通讯距离的不同,系统的传输误码率将有所不同,但在多数情况下该系统作为指令收发的通道是完全可靠的。
5、结论
TCP/IP协议在浮标系统中的应用极大的增强了浮标网络的稳定性及可扩展性。本设计采用MSP430微控制器及网络协议栈W3100A很好地实现了浮标系统的低功耗网络通讯系统,为水声信道匹配基础研究提供了理想的网络通讯保障。同时本设计也可以嵌入到其它设备中,如野外测量仪器、车载系统等,为更多的嵌入式系统提供网络化服务,具有非常广阔的应有前景。
作者:张志博、孙长瑜 中国科学院声学研究所 来源:电子测量技术
上一篇:基于FPGA的新型数字电压表设计
下一篇:可检测电池漏电率的自供电8通道测试仪