基于W3100A的IP荷重传感器设计
2006-10-20 来源:单片机及嵌入式系统应用
1 IP荷重传感器结构
嵌入式IP荷重传感器是在智能传感器的基础上发展起来的具有Internet功能的新型传感器。其实质是在传统传感器的基础上实现TCP/IP网络通信协议接口,将传感器作为网络节点直接与计算机网络通信。它的组成主要有:敏感单元、智能处理单元和TCP/IP通信协议接口。
图l为嵌入式IP荷重传感器的结构框图。整个传感器的工作原理如下:传统的传感器将被测荷重信号转换为电信号,先通过A/D转换器转换为数字信号,再经过微处理器的数据处理(滤波、校准)将结果传送给网络;与网络的数据交换由基于TCP/IP协议的网络接口模块完成。嵌入式IP荷重传感器的内部存储器存储传感器的物理特征,如偏移、灵敏度、校准参数等;微处理器实现数据的处理及输出校准;TCP/IP协议实现传感器的网络连接。与传统的传感器相比,基于W3100A的嵌入式IP传感器具有可靠、便宜、扩展性好的优点,而且可以在内部直接对原始数据加工、处理,并通过Intranet/Internet与外界进行数据交换,因而它具有微型化、网络化和智能化的特点。由于传感器可与Intranet/Internet互连,因而实现了资源共享。
2 TCP/lP协议栈的几种实现方案
IP传感器实现的关键在于网络化接口的设计,而网络化接口实现的关键在于TCP/IP通信协议的实现。目前,实现的方法有下面两种:
①基于软件来实现TCP/IP协议栈。通过将TCP/IP协议栈移植到系统中,然后调用相关的API函数实现网络通信。或者不采用移植的方法,参照标准的TCP/IP协议精简相应的协议层,编写相关的API函数完成简易的TCP/IP通信。但是这种方法需要有操作系统、高性能MCU及大容量存储器的支持。
②直接采用TCP/IP协议栈芯片。这种方案的主要优点在于,应用系统的设计不必考虑任何网络协议,只需要解释并执行网络芯片传送过来的指令和数据就可以实现与Internet网络连接,实现数据对网络的传送,且不需要操作系统的支持。本文基于W3IOOA芯片的嵌入式IP荷重传感器就是采用这种方法实现的。
3 传感器系统硬件设计
3.1 W3100A芯片简介
W3100A是韩国Wiznet公司生产的一种TCP/1P协议栈芯片,其中包含的协议层有TCP(传输控制协议)、IP(网际协议)、UDP(用户数据报协议)、ICMP(因持网控制报文协议)和协议的DLC(数据链路控制),以及MAC协议。该芯片提供2个接口给上层应用层——MCU接口和I2C接口,1个MII(Media Independent Interface)接口给底层物理层。芯片支持全双工4 M~5 Mb/s的数据通信;内部带有双口RAM的数据缓冲器,64引脚LQFP封装,内部结构如图2所示。
芯片内部提供512 B的控制寄存器存储空间和16 KB的数据存储缓冲器。其中8 KB传输数据缓冲器供Mcu传输数据用,MCU只能写而不能读;8 KB接收数据缓冲器供MCU接收数据用,MCU只能读而不能写。芯片提供寄存器供MCU访问,具体的寄存器分类如下;控制寄存器(命令、状态及中断);系统寄存器(网关地址、子网掩码、IP地址等);用于数据收、发的指针寄存器;通道操作的通道寄存器。各寄存器功能和地址参阅文献。
3.2 硬件接口及其数据传输
W3100A提供了并口和串口两种方式实现与MCU的通信。图3为基于12C的串口连接方式。其中MCU为传感器中的处理器,以太网物理层设备选用RTIL8201芯片。W3100A提供MII接口与RTL820l相连,其中引脚RX_CLK、RXDV、RXD[3;O]以及COL用于数据的接收,而TX_CLK、TXE、TXD[3:O]用于数据的发送。MCU中提供模拟的I2C接口与W3lOOA通信。I2C是串行通信总线方式,由数据线SDA和时钟线SCL配合完成通信。
TCP连接分主动连接(TCP客户机模式)和被动连接(TCP服务器模式)。本文主要用到TCP被动连接方式,具体过程如图4所示。首先,要完成芯片的TCP/IP初始化,初始化主要是对必要的寄存器进行相应的设置。这些寄存器包括GAR、SMR、SHAR以及SIPR等。
上述寄存器被设置后通过执行控制寄存器CO_CR的0位Sys_init激活芯片。其次,设置相应通道,如0通道,的协议选择寄存器C0_SOPR为0X01,选择TCP协议。执行通道O控制寄存器CO_CR中的Socket_Init,同时将C0_Tw_PR、C0_TR_PR及CO_TA_PR置成同一值。然后执行C0_CR的Connect和Listen命令位,TCP连接建立。
TCP数据传送和接收要在连接建立后才能进行,通过设置RMSR和TMSR来规定数据缓冲器空间大小。TCP数据传送过程是通过使用C0_TW_PR、CO_TA_PR来进行的,它们的初始值相同。然后MCU根据要传送数据的多少增加C0_TW_PR的值。最后,C0_TW_PR、C0_TA_PR两者之差为空闲数据缓冲器空间大小,执行传送命令,同时增加C0_TA_PR的值,数据传送完毕后它们的值又相同。
4 传感器系统软件设计
IP荷重传感器的工作流程是:首先采集荷重信号,其次将信号进行A/D转换后将结果存储在EEPROM中,并可将信号和处理结果嵌入到存储在EEPROM中的事先定制好的网页中供客户机通过Internet访问,同时在本机LCD上显示荷重信号的数据。W31130A的工作方式类似于Windows的Socket API,因此程序是在Cygnal公司的集成开发环境下,把仪器作为服务器,基于Socket API用C语言编写的。对C8051F021而言,由于是用W3100A来完成TCP协议,其程序简单了许多。通信主程序流程如图5所示。
网络配置文件预先存储在EEPR()M中,对于仪器的本地IP地址设置为一个静态IP地址,如果没有一个静态IP地址也可以采用动态主机配置协议(DHCP)来动态获取一个IP地址。
5 应用实例
红矾钠是一种重要的无机化工原料。在红矾钠的生产中,配料是一个十分重要的工序。由于配料现场的环境恶劣,带毒粉尘多,噪声大,严重影响工人的身体健康[…。传统的计算机配料系统由于其传感器远传能力有限,对配料系统的远距离监控往往力不从心,因此,开发具有web功能的IP传感器十分必要。基于IP传感器的红矾钠配料系统组成框图如图6所示。
系统中Web的工作基于C/S模型,传感器由Web浏览器和Web服务器构成,两者之间采用HTTP协议进行通信,因此在传感器的上层协议应该采用HTTP协议。同时要实现浏览器与嵌入式Web传感器交互,除了要解决上述TCP/IP通信协议接口外,在传感器中应提供一个EEPROM存储相应的网页文件。交互时,HTTP通过统一资源定位器URL(Uniforrm Resource Locator)确定传感器应该为浏览器提供哪些资源。为了节省空间,通过一种灵活的Hllsh算法实现。EEPROM的每一个文件都有一个不同的Hush值与之相对应,存取时可以很快计算出文件的地址。此外,它可以根据网页中嵌入的特殊标志实现动态网页,即显示实时采集的数据并进行控制操作。