网络化智能温度传感器
仪器网 · 2013-07-12 23:18 · 65454 次点击
传感器是一种检测装置,是科技自动化不可缺少的一种装置,如今已经覆盖了各个领域,根据其功能不同,传感器被分为与人类五官相等作用的五类,可以说是人类五官的延伸,经过多年发展,传感器也不再局限,下面我们讲的就是一种新式传感器,网络化智能传感器。
1网络化智能传感器简介
网络化智能传感器使传感器由单一功能、单一检测向多功能和多点检测发展;从被动检测向主动进行信息处理方向发展;从就地测量向远距离实时在线测控发展。网络化使得传感器可以就近接入网络,传感器与测控设备间再无需点对点连接,大大简化了连接线路,易于系统的维护和扩充。网络化智能传感器一般由信号采集单元、数据处理单元和网络接口单元组成。这3个单元可以是采用不同芯片构成合成式的,也可以是单片式结构。网络化智能传感器的核心便是嵌入式微处理器。嵌入式微处理器具有体积小、功耗低、可靠性高、可抗干扰能力强等特点。本系统就是采用嵌入式微处理器作为核心,使用数字式的温度传感器作为采集单元。系统设计中采用的是信息技术领域最新的B/S(Brower/Server,浏览器/服务器)结构,用浏览器作为统一的客户端,无需安装软件,使用起来更加方便。
2系统硬件设计
2.1总体框架
采用的嵌入式微处理器LPC2210是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI—SCPU的微控制器。功耗极低,具有多个32位定时器、8路10位ADC、PWM输出以及多达9个外部中断,特别适用于工业控制、医疗系统;由于内置了宽范围的串行通信接口,也非常适合于通信网关、协议转换器、嵌入式软Modem以及其他类型的应用。
2.2电源模块
LPC2200系列ARM7微控制器均要使用2组电源,I/O口供电电源为3.3V,内核及片内外设供电电源为1.8V应用系统。如图2所示,首先由CZl电源接口输入9V直流电源,二极管D1防止电源反接,经过C1和C2两个电容进行滤波;然后,通过LM7805将电源稳压至5V,再使用LDO芯片(低压差电源芯片)稳压输出3.3V及1.8V电压。
2.3温度传感器
温度传感器采用单线数字温度传感器DSl8820,该传感器是Maxim公司生产的、属于新一代适配微处理器的智能温度传感器。测温范围较广,为一55~+125℃,固有测温分辨率为O.5℃。其支持“一线总线”接口,即从DSl8820读出信息或向DSl8820写入信息仅需要一根口线(单线接口)。温度变换功率来源于数据总线,总线本身也可以向所挂接的DSl8820供电,而无需额外电源。DSl8820集温度测量、A/D转换于一体,可根据实际要求通过简单的编程实现9~12位的数字值读数方式,具有体积小、接口方便、传输距离远等特点。
DS18820与微处理器LPC2210的连接图如图3所示。注意,应加入一个阻值为5.1kΩ的上拉电阻。
2.4网络接口
网络接口采用的是目前比较常用的lOMbps嵌入式以太网控制芯片RTL8019。它是一种高度集成的以太网控制芯片,内部集成了DMA控制器、ISA总线控制器、16KBSRAM和网络PHY收发器。用户可以通过DMA方式把需要发送的数据写入片内SRAM中,让芯片自动将数据发送出去;而芯片在接收到数据后,用户也可以通过DMA方式将其读出。
RTL8019AS与LPC2210一般通过外部总线进行连接,其连接关系如表1所列。
由表1可知,RTL8019AS使用LPC2210外部存储控制的Bank2部分,而RTL8019AS的I/O地址为0x00300~Ox0031F,所以RTL8019AS在SA8=l、SA5=O时选通,其数据地址为0x83400000~Ox83400001F。
NET_RST为LPC2210输出引脚,RTL8019AS中断信号为中断输入信号,且为外部中断。RTL8019AS的SDO~SDl5串了一个470Ω电阻连接到LPC2210的D0~D15。此外,该系统还加入了LCM接口,可以直接支持SMG240128A点阵图形液晶模块,便于通过液晶实时显示传感器所接收的温度。
3系统软件分析
3.1总体设计
系统开发采用的是ARM公司的ADS1.2作为开发编译环境。移植了μC/OS—II操作系统,主要采用C语言编写。将μC/OS—II移植到ARM处理器上,需要修改3个与ARM体系结构相关的文件:OS_CPU.H、0S_CPU_A.ASM、OS_CPU_C.C。具体移植请参考相关书籍。
程序首先调用OSinit()初始化μC/OS—II,完成对操作系统内部一些变量、数据结构和宏定义的初始化。在开始多任务之前,还需建立一个名为Task0()的任务,这一点是非常重要的,否则用户的应用程序就会崩溃。主任务中首先调用TargeTInit()函数将目标板初始化,模板中包含这个初始化函数,它完成对板上硬件的一些初始化工作。之后启动多任务环境,创建3个任务来实现系统最终的目标。这3个任务包括:传感器对温度的采集和处理;温度比较与液晶显示;建立Web服务器。下面对设计过程中比较关键问题进行详细的阐述。
3.2软件设计中的关键技术问题
3.2.1传感器的温度采集
在对传感器数据采集的软件编程中,采用的是单线总线协议。通过单线总线访问DSl8820的协议包括:初始化DSl8820、ROM操作命令、存储器操作命令和读数据/处理数据。
根据DSl8820的初始化时序、写时序和读时序,分别编写3个子程序:Init_DSl8820为初始化子程序;WriteOneChar为写(命令或数据)子程序;ReadOneChar为读数据子程序。所有的数据读/写均由最低位开始。
3.2.2Web服务器的建立
要在微处理器中建立Web服务器,主要需要实现TCP/IP协议栈的移植。设计中主要采用ZLG/IP软件包,它是广州周立功单片机发展有限公司开发的面向嵌入式系统开发的TCP/IP协议栈,是ZLG系列中间件的重要成员之一。ZLG/IP提供实现Internet网络上IP接点的功能,是一种高性能的嵌入式TCP/IP协议栈软件。它使用μC/OS—II实时操作系统的信号机制来实现一个多任务并行、可重入的协议栈,完全使用ANSIC编写,可以像μC/OS—II那样支持多种CPU。ZLG/IP还具有层次清晰、易于升级和修改等特点。
TCP/IP应用程序是用户自己编写的μC/OS—II任务,是ZLG/IP的使用者,位于整个程序的最高层。TCP/IP应用程序调用ZLG/IP提供的SocketAPI接口函数对网络进行相应的操作。SocketAPI接口位于TCP/IP协议与应用程序之间,是用户操作协议栈程序的工具,在应用程序中通过调用SocketAPI接口函数来对协议栈软件进行操作。TCP、UDP处理模块是协议栈程序中处理传输层协议的模块,负责对传输层的数据进行封装和解拆,保存传输层连接状态。点划线内部就是接收处理,包括IP报、ARP报、ICMP报的处理,及以太网层的数据接收驱动。接收驱动模块在接收到数据后先进行分类,若是IP报就由IP处理模块处理,若是ARP报就进行ARP协议处理。ARP请求报调用以太网发送模块发送ARP应答报。IP处理模块把数据分类,TCP或UDP报则转由上层的传输层模块处理,而ICMP协议处理模块负责对IC—MP协议进行处理。IP发送模块负责封装IP报,并把封装好的IP报传送到下层发送模块。IP发送模块有4个上层模块调用:分别是SocketAPI接口、UDP处理、TCP处理和ICMP处理。它们把相应的参数传送给IP发送模块,由IP发送模块来封装。Ethernet发送驱动模块是属于以太网层的处理模块,负责封装以太网报和数据的发送,调用它的模块有ARP处理模块和IP发送模块。
由于使用的是B/S结构,则编程是采用的是TCP通信的SocketAPI。编写TCP通信的任务时分为服务器方式和客户机方式两种。服务器方式是需要监听连接,只有在与客户机建立连接后才能进行数据处理。客户机方式是主动连接服务器,也是在连接成功后才能进行数据处理。
在编程时温度传感器有其唯一的一个IP地址,即192.168.O.174。子网掩码是255.255.255.0,网关地址与IP地址相同。Web服务器建立在微处理器中,个人PC机为客户端,当个人需要查询温度传感器的值时,通过HTTP协议在浏览器中输入该传感器的IP地址,便可进入该系统的网页温度浏览界面。
114传感器网http://chuanganqi.yqyb114.com