物理学术论文
关键词:嵌入式网络传感器网络接口
嵌入式WEB传感器是在智能传感器的基础上发展起来的一种具有互联网功能的新型传感器。其本质是在传统传感器的基础上实现TCP/IP网络通信协议接口,利用传感器作为网络节点直接与计算机网络进行通信。它主要由敏感单元、智能处理单元和TCP/IP通信协议接口组成。
图1显示了嵌入式WEB传感器的架构。传统传感器只占嵌入式WEB传感器的一部分。核心部分是用于信号处理、数据交换和控制的嵌入式智能单元和用于数据传输的TCP/IP网络接口。整个传感器的工作机理是:传感器将被测物理量转换成电信号,通过A/D转换成数字信号,由微处理器进行数据处理(滤波、校准)后将结果传输到网络;基于TCP/IP协议的网络接口模块完成与网络的数据交换。嵌入式WEB传感器的内存存储传感器的物理特性,如偏移量、灵敏度、校准参数等。微处理器实现数据处理和补偿以及输出校准;TCP/IP协议实现了传感器的直接网络连接。与传统传感器相比,基于互联网的嵌入式WEB传感器可靠性更高、成本更低、可扩展性更强,可以在内部直接处理和加工原始数据,并通过互联网与外界交换数据。因此,它具有小型化、网络化和智能化。传感器的网络接口实现了与互联网或以太网的互联,实现信息发布和资源共享。它的实现是嵌入式WEB传感器研究的重点。
网络接口实现的关键在于TCP/IP通信协议的实现。TCP/IP通信协议的实现方法主要有:采用协议栈移植,将TCP/IP协议栈移植到嵌入式系统上,然后调用相关API函数实现网络通信;而不是移植,参考标准的TCP/IP协议,简化相应的协议层,编写相关的API函数,完成简单的TCP/IP通信;该方法利用协议芯片,如W3100A芯片,直接通过硬件实现TCP/IP协议,直接设置芯片的寄存器,实现数据向网络传输。本文重点研究了利用W3100A芯片实现嵌入式WEB传感器网络接口的问题。
1网络接口的实现
1.1W3100a芯片及其处理器访问的实现
W3100A是一款TCP/IP协议栈芯片,包括各种协议层:TCP、IP、UDP、ICMP和以太网协议的数据链路DLC,MAC协议。它的工作方式类似于Windows的Socket API。芯片的内部结构如图2所示。
该芯片可选地支持英特尔/摩托罗拉MCU接口,并且还为上层应用层提供I2C接口,为下层物理层提供MII接口。该芯片支持全双工模式,内部有一个双端口SRAM数据缓冲器。它采用64引脚LQFP封装。
芯片提供寄存器供MCU访问。具体寄存器分类如下:控制寄存器(命令、状态和中断);系统注册(网关地址、子网掩码、IP地址等。);用于数据接收和发送的指针寄存器;通道操作的通道寄存器。
几个重要的寄存器如表1所示。
表1寄存器功能和地址图
寄存器名称地址类型功能
C0 _ Cr ~ C3 _ Cr 0x00 ~ 0x03控制寄存器完成相应通道插座的初始化、连接、关闭和数据收发。
C0 _ ISR ~ C3 _ ISR 0x04 ~ 0x07控制寄存器套接字命令的结果
IR 0X08控制寄存器中每个通道的套接字和数据接收中断。
IMR 00X09控制寄存器控制每个中断的屏蔽使能。
Gar0x80 ~ 0x83系统寄存器用于设置默认网关地址。
SIPR 0x8e ~ 0x91系统控制寄存器,用于IP地址设置。
RW_PR每个寄存器有3个字节。具体地址见W3100A。数据手册中的指针寄存器接收数据的尾指针,尾指针根据数据大小自动调整。
RR_PR指针寄存器接收数据的第一个指针。
TW_PR指针寄存器传输数据的尾指针。
TR_PR指针寄存器传输数据的当前数据指针。
TA_PR指针寄存器指示发送数据的第一个指针。
SSR C0:0xa 0;C1:0XB8
C2:0xd 0;C3中相应通道的套接字状态:0XEB通道寄存器
SOPR C0:0xa 1;C1:0XB9
C2:0xd 1;C3中相应通道的协议选择:0XE9通道寄存器
控制寄存器C0 _ Cr(通道0的命令寄存器)用于通道0套接字的初始化、连接、关闭和数据收发,其设置如下:
其中Sys_init用于设置网关、子网掩码和IP地址,1 ~ 6位用于通道0 socket的初始化、连接、断开、监控和数据收发,命令执行后相应位自动清零。通过套接字协议选择寄存器C0 _ s0pr设置相应的协议值,以确定套接字中选择的是TCP还是UDP。
芯片正常工作时必须初始化。初始化主要是设置必要的寄存器,包括:网关地址寄存器GAR、子网掩码寄存器SMR、硬件地址寄存器SHAR和IP地址寄存器SIPR。设置上述寄存器后,通过执行控制寄存器CR的0位Sys_init来激活芯片。
1.2硬件接口及其数据传输
图3 I2C接口示意图
芯片提供并口和串口,实现与单片机的通信。图3显示了基于I2C的串行端口连接模式。其中,传感器中的处理器采用MCU,以太网物理层器件选用RTL8201芯片。W3100A提供MII接口连接RTL8201,其中引脚RX _ CLK、RXDV、RXD[0:3]和COL用于接收数据,TX _ CLK、TXE和TXD[0:3]用于发送数据。MCU提供模拟I2C接口,与W3100A通信。I2C是串行通信总线方式,通信由数据线SDA和时钟线SCL配合完成。
建立TCP连接的具体过程如图4所示。首先完成芯片的TCP/IP初始化,将通道0等对应通道的协议选择寄存器C0 _ SOPR设置为0x 001;选择TCP协议,执行通道0命令寄存器C0 _ Cr中的Socket_Init,将C0 _ TW _ PR、C0 _ TR _ PR、C0 _ TA _ PR设置为相同的值;然后执行C0 _ Cr的连接和监听命令位,TCP连接就建立了。
嵌入式WEB传感器WEB功能的实现及其在测控系统中的应用
WEB的工作是基于客户机/服务器模型的,它由WEB浏览器和WEB服务器(即传感器)组成,它们通过使用HTTP协议相互通信。因此,传感器的上层协议应该采用HTTP协议。同时,为了实现浏览器与嵌入式web传感器的交互,除了解决上述TCP/IP通信协议接口外,还应该在传感器中提供一个EEPROM来存储相应的WEB文件。交互时,HTTP通过统一资源定位符URL确定传感器应该为浏览器提供什么资源。为了节省空间,采用灵活的Hush算法实现。EEPROM中的每个文件都有不同的Hush值与之对应,访问时可以快速计算出文件的地址。此外,它还可以根据网页中嵌入的特殊符号实现动态网页。也就是说,实时收集的数据被显示和控制。
下面是存储在温度传感器中的一个简单的动态网页程序,其中“@”字符用于在网页中插入温度标志,网页文件存储在传感器的EEPROM中。当用户发送页面请求时,处理器上的程序在TCP封装时将温度值嵌入到网页中的“@”字符中,然后在网页文件中添加相应的HTTP头,返回给发出请求的用户。这样,用户将在浏览器上看到实际的温度显示值。
< HTML >
< HEAD >
< title >实时温度监控
<正文>
< center >当前温度为:< font size =+2 color = # ff99ff > @
< BR >