摘要:介绍了嵌入式web传感器的体系结构,提出了网络化接口中tcp/ip协议栈的几种实现方式,着重探讨了基于tcp/ip协议栈芯片w3100a的网络化接口的实现,最后分析了嵌入式web传感器的web功能的实现。
关键词
嵌入式web传感器是在智能传感器的基础上发展起来的具有internet功能的新型传感器。其实质是在传统传感器的基础上实现tcp/ip网络通信协议接口,将传感器作为网络节点直接与计算机网络通信。它的组成主要有:敏感单元、智能处理单元和tcp/ip通信协议接口。
图1为嵌入式web传感器的体系结构。传统的传感器在嵌入式web传感器中只占一部分。核心部分是完成信号处理、数据交换和控制的嵌入式智能单元以及完成数据传输的tcp/ip网络接口。整个传感器的工作机理是:传感器将被测物理量转换为电信号,通过a/d转换为数字信号,经过微处理器的数据处理 (滤波、校准)后将结果传送给网络;与网络的数据交换由基于tcp/ip协议的网络接口模块完成。嵌入式web传感器的内部存储器存储传感器的物理特征,如偏移、灵敏度、校准参数等;微处理器实现数据的处理和补偿以及输出校准;tcp/ip协议实现传感器的直接网络连接。与传统的传感器相比,基于internet的嵌入式web传感器更加可靠、便宜,扩展性更好且可以在内部直接对原始数据加工、处理,并通过internet与外界进行数据交换。因而它具有微型化、网络化和智能化。传感器的网络化接口实现了对internet或以太网的互连以进行信息的发布和资源共享。其实现方式是嵌入式web传感器研究的重点。
网络化接口实现的关键在于tcp/ip通信协议的实现。tcp/ip通信协议的实现方法主要有:采用协议栈移植,针对嵌入式系统,将tcp/ip协议栈移植到系统中,然后调用相关的api函数实现网络通信;不采用移植方式,参照标准的tcp/ip协议精简相应的协议层,编写相关的api函数完成简易的tcp/ip通信;采用协议芯片,如w3100a芯片,该方法直接采用硬件方式实现tcp/ip协议,直接对芯片的寄存器进行设置,实现数据对网络的传送。本文着重探讨采用w3100a芯片实现嵌入式web传感器的网络化接口的问题。
1 网络化接口的实现
1.1 w3100a芯片及处理器对其访问的实现
w3100a是一tcp/ip协议栈芯片,包含的各协议层有:tcp、ip、udp、icmp和以太网协议的数据链路dlc,以及mac协议。其工作方式类似于windows的socket api。芯片的内部结构示意如图2所示。
该芯片可选择地支持intel/motorola 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
控制寄存器
控制各中断的屏蔽使能
gar
0x80~0x83
系统寄存器
用于默认的网关地址的设置
sipr
0x8e~0x91
系统控制
用于ip地址设置寄存器
rw_pr
每寄存器3字节,具体地址见w3100a数据手册
指针寄存器
接收数据的尾指针,依据数据大小自动调整
rr_pr
指针寄存器
接收数据的首指针
tw_pr
指针寄存器
传送数据的尾指针
tr_pr
指针寄存器
传送数据的当前数据指针
ta_pr
指针寄存器
指示传送数据的首指针
ssr
c0:0xa0;c1:0xb8
c2:0xd0;c3:0xeb
通道寄存器
相应通道的套接字状态
sopr
c0:0xa1;c1:0xb9
c2:0xd1;c3:0xe9
通道寄存器
相应通道的协议选择
控制寄存器c0_cr(通道0的命令寄存器),用于通道0套接字(socket)的初始化、连接、关闭和数据收发,其设置如下:
其中,sys_init用于设置网关、子网掩码以及ip地址等,1~6位用于通道0套接字的初始化、连接、断开、监听以及数据收发,相应位在命令执行后自动清除。通过套接字协议选择寄存器c0_s0pr设置相应的协议值确定套接字中选用tcp还是udp。
芯片正常工作必须对其完成相应的初始化。初始化主要是对必要的寄存器进行相应的设置,这些寄存器包括:网关地址寄存器gar、子网掩码寄存器smr、硬件地址寄存器shar以及ip地址寄存器sipr等。上述寄存器被设置后通过执行控制寄存器cr的0位sys_init激活芯片。
1.2 硬件接口及其数据传输
图3 i2c接口示意图
该芯片提供了并口和串口两种方式实现与mcu的通信。图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为0x01;选择tcp协议,执行通道0命令寄存器c0_cr中的socket_init,同时将c0_tw_pr、c0_tr_pr及c0_ta_pr置成同一值;然后执行c0_cr的connect和listen命令位,如此tcp连接建立。
2 嵌入式web传感器的web功能的实现及其在测控系统中的应用
web的工作基于客户机/服务器模型,由web浏览器和web服务器即传感器构成,两者之间采用http协议进行通信。因此在传感器的上层协议应该采用http协议。同时要实现浏览器与嵌入式web传感器交互,除了要解决上述tcp/ip通信协议接口外,在传感器中应提供一个eeprom存储相应的网页文件。交互时,http通过统一资源定位器url(uniform resource locator)确定传感器应该为浏览器提供哪些资源。为了节省空间,通过一种灵活的hush算法实现。eeprom中的每一个文件都有一个不同的hush值与之相对应,存取时很快可以计算出文件的地址。此外,它可以根据网页中嵌入的特殊标志实现动态网页。即显示实时采集的数据并进行控制操作。
下面是存储在温度传感器中的一个简单的动态网页程序,其中的“@”字符用来在网页中插入温度的标志,网页文件存放在传感器的eeprom里。当用户发出页面请求时,处理器上的程序在tcp打包时,把温度值嵌入到网页中的“@”字符处,再将网页文件添加相应的http头,返回给请求的用户。如此用户将在浏览器上看到实际的温度显示值。
<html>
<head>
<title>实时温度监视</title>
</head>
<body>
<center>现在的温度是:<font size=+2 color=#ff99ff> @ </font></center>
<br>
</body>
</html>
如图5所示,嵌入式web传感器和以太网测控网关将同时接到以太网上,实现上层网络终端客户端对其的访问。上层监控级对嵌式web传感器访问采用b/s模式,监控级通过其浏览器实现对嵌入式web传感器的访问。
本文所提出的网络化接口方案是利用硬件芯片实现tcp/ip协议栈,可以解决当前应用中大量存在的8位mcu实现tcp/ip通信协议的问题。该网络化接口应用到嵌入式web传感器上,很好地实现了现场级设备对外部网的接入,实现了信息的共享和发布,同时也扩大了控制的半径。该网络化接口实现方便,具有通用性,应用范围广。
高通CEO表示有机会解决与苹果的纠纷并再次合作
ELQD显示器:真正的低成本打印
IIC参展商介绍:深圳市鹏源电子有限公司
小米6什么时候上市?小米6最新消息:自主八核2.7GHz?小米6神了!
7月中国电信移动用户数净增260万户,将进一步提升披露信息的精要度
嵌入式WEB传感器的网络化接口设计
你在用胶体电池?想了解的进来看看2
电子信息产品污染控制标识要求SJ/T11364—2006
水质网格化监控系统的详细介绍
iPhone8什么时候上市:四摄像头+屏幕指纹技术,iPhone8一部不会让你失望的手机
示波器探头如何测量低幅度信号
RTX 4090不断出现16针供电接口烧毁的原因
日本执行针对韩国的“限售令”导致三星、SK海力士等受到了影响
荣耀10GT8GB评测 旗舰手机的最佳选择之一
2023 VDC自研操作系统会场:繁荣蓝河生态,实现用户和开发者共赢
拉电流、灌电流、吸收电流,你都学会了吗?
安科瑞配电列头柜产品在XXX数据中心案例分享
AD9230在中频数字接收机中的应用
未来食品应该是什么样子?这11项创新技术告诉你
工信部将从四方面加强网络安全管理促进移动转售企业高质量发展