基于W7100A芯片的海洋仪器网络接口的设计
2014-03-20张小磊徐俊臣胡轶群邱文博王亚丁
张小磊,徐俊臣,胡轶群,邱文博,王亚丁
(国家海洋技术中心,天津 300112)
在海洋自动观测领域,随着大规模集成电路技术和微处理器技术的快速发展,各种形式的测量传感器和海洋观测仪器已经实现了高度的数字化和自动化(蔡树群等,2007)。而近年来计算机网络尤其是物联网技术的高速发展(李四海等,2012),已经成为信息化时代的核心,网络通讯技术的发展不仅深入到人们的工作和生活,也为自动观测设备提供了一种通用、快速、经济的标准接口和数据传输通道(沈苏彬等,2009)。具有网络接口的海洋观测仪器不仅可以方便和其他设备以及计算机系统连接,便于系统集成和数据共享,更可以凭借因特网这一高速通道实现远程设备管理和数据通讯,极大扩展了设备的通讯范围和应用灵活性(李嘉等,2001)。因此,网络化和智能化已经成为自动观测设备的一种发展趋势。
目前大多数自动仪器设备实现网络接入可以采用以下方式,第一种是基于单片机和以太网控制芯片来实现(刘亚萍等,2010),这种方式硬件电路简单,仅需两个主要芯片,价格低,但由于单片机的资源和性能所限,网络通讯能力受到一定制约,同时对软件设计人员的要求较高,需要熟练掌握TCP/IP 网络协议,代码设计工作量和难度都较大;第二种方式是采用高端ARM 芯片并移植网络操作系统(徐荣珍等,2006),使用操作系统提供网络功能,这种方式需要较高的硬件电路配置以运行操作系统,并需要专业人员负责网络操作系统的移植,系统功耗较大且成本较高。
本文介绍的基于W7100A 芯片来实现网络接口设计,网络部分采用高集成度的工业级单芯片设计,具有硬件电路简单、功耗及成本低、工业级设计、尤其适应海洋工作环境的特点,同时由于芯片内置硬件TCP/IP 协议,极大地简化了软件设计难度,软件设计人员无需过多的了解复杂的TCP/IP协议,只需具有一定的socket 编程基础即可实现网络编程。
1 W7100A 芯片介绍
W7100A 是韩国WIZnet 公司在原网络协议芯片W5100 的基础上于2011年推出的新一代网络芯片,该芯片在原有硬件TCP/IP 协议栈、MAC 层和物理层接口的基础上,为方便嵌入式设备应用而集成了高速微控制器和大容量程序及数据存储器,可单芯片构成网络接口,非常适合应用于自动化仪器设备尤其是没有网络操作系统支持的现场观测仪器设备的网络通信模块设计。
2 硬件电路设计
图1 为网络接口的电路原理图,该模块设计为通用接口模块,实现了标准RS-232 串行数据接口到TCP/IP 网络接口的协议转换。任何具有标准RS-232 接口的仪器设备无需做任何改动,就可通过该模块实现网络接入。硬件电路设计要点如下:
图1 网络接口电路原理图
(1) 为降低模块功耗提高供电效率,模块采用开关电源设计,开关电源芯片选取LM2594,供电范围可达直流(5-30) V,其输出电压为3.3 V,效率高达80%,模块内全部芯片均选用3.3 V 供电,为减小开关电源的输出噪声,电源系统增加了电源滤波设计;
(2) W7100A 芯片的UART 接口信号通过电平变换电路MAX3243 构成标准RS-232 接口,该接口有两个功能,当控制线RTS 有效时(高电平)可以与观测仪器的通讯接口相接实现网络通讯应用,当控制线RTS 无效时(低电平) 可以通过此接口实现网络参数的设置与查询;
(3) 网络变压器13F60 实现W7100A 芯片的网络输入输出信号的隔离,构成模块的网络接口。由于网络通讯速度高达100 M,为减小电干扰,W7100A 芯片的网络数据输入和输出的两对信号线要分别平行布放且不要与其他连线交叉;
(4) 芯片24MAC402 通过I2C 接口与W7100A芯片相连接,该芯片实现两个功能,其一该芯片内部具有一组全世界唯一的48bit 的MAC 地址(物理地址) 供W7100A 读取使用,以保证网卡在因特网中的唯一性和合法性,确保不会造成地址冲突,其二该芯片具有256 字节的EEPROM 存储器,用来保存网络通讯参数如网关地址、子网掩码、本机IP 地址、本机端口号、服务器IP 地址、服务器端口号和通讯方式设置等;
(5) 为了方便使用和调试,模块设计有POW、LINK、RTD 和TCP 共四个指示灯,分别用来指示电源是否正常、网络连接是否正常、是否有网络数据接收或发送和TCP 连接是否已经建立;
(6) 模块软件运行在W7100A 内部,具备较好的抗干扰能力,但海洋观测现场(如海洋站、调查船) 具有大功率雷达等电子设备,电磁环境较为恶劣。为保证系统在海洋观测现场的可靠性和稳定性,模块设计有专用的复位电路MAX809R,当观测系统电源出现不稳定的情况下,确保系统的正确复位和恢复运行,同时配合使用芯片内部看门狗的使用,确保软件的稳定运行。
3 软件设计
系统软件由自检模块、串口通讯模块、参数设置查询模块、网络连接通讯模块组成。系统的软件流程如图2。模块具有两种运行模式,即设置模式和工作模式,运行模式取决于串口的RTS 信号。当RTS 信号无效时,运行在设置模式,此时上位机可通过串口设置和查询模块的网络工作参数;当RTS 信号有效时,运行在工作模式,实现网络连接和通讯功能。
自检模块由I2C 接口读写等程序组成,可以完成24MAC402 芯片MAC 地址读取以及该芯片256字节的EEPROM 存储器的读写操作。当I2C 接口不能正常工作时,该模块提示系统故障报警。串口通讯模块由串口初始化程序、串口接收程序和串口发送程序组成。参数设置查询模块在设置模式下分析串口命令,完成新参数的存储和当前参数的查询。网络模块连接和通讯模块负责网络连接的建立、维护和指示,同时负责网络数据的接收和发送。
图2 软件流程图
基于W7100A 芯片的网络接口模块可以同时支持8 个socket 通道,在软件的控制下,每一个socket 通道都可任意设置使用TCP 通讯协议和UDP 通讯协议,极大地提高了应用的灵活性。基于海洋观测数据的重要性,软件使用高可靠传输的TCP 协议(Andrew,2004)。在TCP 模式下,本模块既可以以客户端的形式主动与远端的服务器建立网络连接,又可以以服务器的形式等待与远端的客户端建立网络连接,待连接建立成功后就可以与远端的设备通过网络实现数据的双向透明传输。
由于W7100A 芯片内部集成了TCP/IP 硬件协议栈,因此软件设计人员无需对复杂庞大的协议栈有深入的了解,直接在单片机上用socket 编程就可实现网络通讯,极大简化了用户软件设计工作。用户仅需发出初始化、连接网络、接收数据、发送数据、断开连接、检查状态等命令即可实现网络通讯功能。同时芯片内部集成的TCP/IP 核内包含了16 KB 的发送缓冲区和16 KB 的接收缓冲区,用户可以根据自己的数据量的大小为各个socket 灵活分配缓冲区的大小,提高数据吞吐量,改善通讯效率。
3.1 客户端模式
当模块工作在客户端模式时,软件设计流程图如图3 所示,模块初始化完毕后按照预先设置的服务器参数建立并维护与服务器的网络连接,当连接失败或网络连接断开时,软件控制模块自动重新建立连接,同时在网络连接正常的条件下在仪器设备和网络间透明传输数据。
数据发送程序负责检查相应socket 发送缓冲区是否有足够的存储空间并将需要发送的数据直接放入发送缓冲区内;数据接收程序负责检查相应socket 接收缓冲区是否有已经收到数据并迅速取出数据。
图3 客户端模式软件流程图
3.2 服务器模式
当模块工作在TCP 服务器模式时,模块初始化完成后进入监听状态,等待远端的客户端的连接请求。当收到客户端的连接请求后建立TCP 连接并传输数据,网络连接的维护和数据传输与客户端模式相同。本模块支持同时可最多建立八个服务连接。
4 系统测试和应用
海洋观测仪器的工作环境较为恶劣,高温、低温、高湿、供电能力差,有些地方无人值守,因此海洋观测仪器的设计上除了满足测量功能以外,还要有较高的可靠性、低功耗、环境适应性。
4.1 实验室测试
4.1.1 通讯性能测试
模块的RS-232 接口与PC 机的标准串口连接并且运行SSCOM3.2 串口调试助手软件;串口设置为速率57 600 bps,8 位数据位,1 位停止位,无校验位;模块的网络接口连接到PC 机的网口,运行TCP&UDP1.02 测试工具,PC 机工作在服务器模式,被测模块工作在客户端模式。测试的方法是串口向网口每100 ms 发送300Byte 的数据,该速率满足大部分海洋仪器的应用需求,同时网口向串口也以同样的速率发送数据。实验结果数据如表1 所示,数据传输稳定无差错。
表1 实验测试数据
4.1.2 模块功耗测试
在网络模块正常通讯的条件下,分别给模块加入不同的工作电压,功耗测量结果如表2 所示,结果显示模块的整体功耗小于等于0.7 瓦。
表2 网络模块功耗测试
4.1.3 环境适应测试
海洋仪器的环境试验按《HY 016.1-016.15—1992 海洋仪器基本环境试验方法》执行。试验项目包括低温试验、低温贮存、高温试验、高温贮存、震动试验、冲击试验和交变湿热试验。基于W7100A 芯片的网络接口模块与XZY3 型自动水文气象站一起通过了上述试验项目。其中低温试验和高温试验过程如下。
将网络通讯模块置于环境试验箱中,在温度降至-35 ℃后保持2 h,然后进行加电测试,网络模块数据通讯正常且无数据丢失;同样将网络通讯模块置于环境试验箱中,在温度升至+50 ℃后保持2 h,然后进行加电测试,网络模块数据通讯正常进行无数据丢失,满足海洋仪器对工作环境的实际需求。
4.2 海洋观测现场验证
图4 是网络通讯模块在福建海洋预报台潮汐监测系统中的应用。
在此项应用中,共有13 个水位站分布在福建省内各个观测点,分别通过网络模块接入海洋观测专网中。这些观测站点均为无人值守站点,采用太阳能蓄电池组供电,现场环境和供电条件较差,对设备的稳定性、功耗和环境适应性要求较高。系统运行时每个水位站每分钟实时传输观测数据到省数据中心,每次传输的数据大小276 字节。通过统计系统运行的时间和所接收的字节数可以推断出传输成功率。
图4 福建海洋预报台潮汐监测系统
早期设备中的网络通讯模块为某型进口产品,分别对进口产品和本网络模块的运行情况进行统计分析对比,其结果如表3 所示。
表3 本网络模块与某进口产品的对比
通过与进口产品比较,基于W7100A 芯片的网络接口模块的优势明显。首先,其功耗仅为进口产品的三分之一,适合电池供电的产品使用;其次,由于增加了软件心跳包功能,模块在任何情况下都能判断与服务器的连接状况,具有很高的可靠性,数据传输成功率明显高于进口产品,适合无人值守应用。此外,网络通讯模块满足海洋仪器的工作环境,运行期间无故障出现,适合在恶劣环境下使用。
5 结束语
以W7100A 芯片为核心设计的网络接口通用模块,具有如下特点:可以通过标准串口控制RTS信号来切换模块的运行模式,因此可以通过软件来实现设备运行模式的切换;具有极低的功耗,非常适合应用于供电能力有限的工作环境中,尤其是应用在海洋无人站中需要太阳能供电的条件下;设备中所有的器件都达到工业级水平,适应海洋中的恶劣环境,设备工作温度范围广,最低可在-35 ℃环境下工作。该设备经历了海洋观测无人站恶劣环境的实际考验,并通过与同类其他产品进行对比,较其他产品更适合应用于海洋仪器中。模块化的设计,方便设备集成使用或直接移植到海洋仪器内部,使海洋仪器快速实现网络接口功能,具有良好的应用前景。
Andrew,2004.计算机网络.北京:清华大学出版社.
蔡树群,张文静,王盛安,2007.海洋环境观测技术研究进展.热带海洋学报,26(3):76-81.
李嘉,杨佃福,2001.引入以太网技术是现场总线技术发展的一个必然趋势.自动化仪表,22(5):1-4.
李四海,张峰,2012.物联网技术综述及海洋信息化发展对策.海洋通报,31(3):354-359.
刘亚萍,甄国涌,刘东海,2010.基于MSP430 和DM9000 的以太网接口设计.自动化与仪表,25(7):17-20.
沈苏彬,范曲立,宗平,2009.物联网的体系结构与相关技术研究.南京邮电大学学报,29(6):1-11.
徐荣珍,李加文,郭伟,等,2006.基于μClinux 的串口/以太网数据转换设备开发.计算机工程,32(17):265-267.