基于ARM和DS18B20设计网络化的智能温度传感器
时间:12-08
来源:互联网
点击:
3.2 软件设计中的关键技术问题
3.2.1 传感器的温度采集
在对传感器数据采集的软件编程中,采用的是单线总线协议。通过单线总线访问DSl8820的协议包括:初始化DSl8820、ROM操作命令、存储器操作命令和读数据/处理数据。
根据DSl8820的初始化时序、写时序和读时序,分别编写3个子程序:Init_DSl8820为初始化子程序;WriteOneChar为写(命令或数据)子程序;ReadOneChar为读数据子程序。所有的数据读/写均由最低位开始。
该系统的读字节子程序的流程如图4所示。

温度传感器采集的关键任务程序代码如下:


3.2.2 Web服务器的建立
要在微处理器中建立Web服务器,主要需要实现TCP/IP协议栈的移植。设计中主要采用ZLG/IP软件包,它是广州周立功单片机发展有限公司开发的面向嵌入式系统开发的TCP/IP协议栈,是ZLG系列中间件的重要成员之一。ZLG/IP提供实现Internet网络上IP接点的功能,是一种高性能的嵌入式TCP/IP协议栈软件。它使用μC/OS—II实时操作系统的信号机制来实现一个多任务并行、可重入的协议栈,完全使用ANSI C编写,可以像μC/OS—II那样支持多种CPU。ZLG/IP还具有层次清晰、易于升级和修改等特点。该ZLG/IP软件包具体可见参考文献。
ZLG/IP采用模块化层次结构设计,其结构如图5所示。

图5中,TCP/IP应用程序是用户自己编写的μC/OS—II任务,是ZLG/IP的使用者,位于整个程序的最高层。TCP/IP应用程序调用ZLG/IP提供的Socket API接口函数对网络进行相应的操作。Socket API接口位于TCP/IP协议与应用程序之间,是用户操作协议栈程序的工具,在应用程序中通过调用Socket API接口函数来对协议栈软件进行操作。TCP、UDP处理模块是协议栈程序中处理传输层协议的模块,负责对传输层的数据进行封装和解拆,保存传输层连接状态。点划线内部就是接收处理,包括IP报、ARP报、ICMP报的处理,及以太网层的数据接收驱动。接收驱动模块在接收到数据后先进行分类,若是IP报就由IP处理模块处理,若是ARP报就进行ARP协议处理。ARP请求报调用以太网发送模块发送ARP应答报。IP处理模块把数据分类,TCP或UDP报则转由上层的传输层模块处理,而ICMP协议处理模块负责对IC—MP协议进行处理。IP发送模块负责封装IP报,并把封装好的IP报传送到下层发送模块。IP发送模块有4个上层模块调用:分别是Socket API接口、UDP处理、TCP处理和ICMP处理。它们把相应的参数传送给IP发送模块,由IP发送模块来封装。Ethernet发送驱动模块是属于以太网层的处理模块,负责封装以太网报和数据的发送,调用它的模块有ARP处理模块和IP发送模块。
由于使用的是B/S结构,则编程是采用的是TCP通信的Socket API。编写TCP通信的任务时分为服务器方式和客户机方式两种。服务器方式是需要监听连接,只有在与客户机建立连接后才能进行数据处理。客户机方式是主动连接服务器,也是在连接成功后才能进行数据处理。图6是TCP通信时服务器端和客户机端通信的函数应用图。

在编程时温度传感器有其唯一的一个IP地址,即192.168.O.174。子网掩码是255.255.255.0,网关地址与IP地址相同。Web服务器建立在微处理器中,个人PC机为客户端,当个人需要查询温度传感器的值时,通过HTTP协议在浏览器中输入该传感器的IP地址(即ht—tp://192.168.O.174),便可进入该系统的网页温度浏览界面。
Web服务器任务程序代码如下:


结 语
本系统已经过测试运行良好,能方便地通过浏览器实时查询温度传感器所采集的温度值。网络化智能传感器是如今传感器技术发展的一个新的方向,本系统采用嵌入式技术实现了一个基本的基于网络的智能化传感器,其中设计的重点主要是对TCP/IP通信协议的实现,即将TCP/IP协议栈移植到系统中,然后调用相关的API函数实现网络通信。而Web功能的实现主要采用了B/S模式,通过上层的HTTP协议实现了浏览器与嵌入式网络传感器的交互。实现传感器的网络化控制可以很好地应用在对家电设备的控制或工业现场的控制中,具有良好的应用前景。
3.2.1 传感器的温度采集
在对传感器数据采集的软件编程中,采用的是单线总线协议。通过单线总线访问DSl8820的协议包括:初始化DSl8820、ROM操作命令、存储器操作命令和读数据/处理数据。
根据DSl8820的初始化时序、写时序和读时序,分别编写3个子程序:Init_DSl8820为初始化子程序;WriteOneChar为写(命令或数据)子程序;ReadOneChar为读数据子程序。所有的数据读/写均由最低位开始。
该系统的读字节子程序的流程如图4所示。

温度传感器采集的关键任务程序代码如下:


3.2.2 Web服务器的建立
要在微处理器中建立Web服务器,主要需要实现TCP/IP协议栈的移植。设计中主要采用ZLG/IP软件包,它是广州周立功单片机发展有限公司开发的面向嵌入式系统开发的TCP/IP协议栈,是ZLG系列中间件的重要成员之一。ZLG/IP提供实现Internet网络上IP接点的功能,是一种高性能的嵌入式TCP/IP协议栈软件。它使用μC/OS—II实时操作系统的信号机制来实现一个多任务并行、可重入的协议栈,完全使用ANSI C编写,可以像μC/OS—II那样支持多种CPU。ZLG/IP还具有层次清晰、易于升级和修改等特点。该ZLG/IP软件包具体可见参考文献。
ZLG/IP采用模块化层次结构设计,其结构如图5所示。

图5中,TCP/IP应用程序是用户自己编写的μC/OS—II任务,是ZLG/IP的使用者,位于整个程序的最高层。TCP/IP应用程序调用ZLG/IP提供的Socket API接口函数对网络进行相应的操作。Socket API接口位于TCP/IP协议与应用程序之间,是用户操作协议栈程序的工具,在应用程序中通过调用Socket API接口函数来对协议栈软件进行操作。TCP、UDP处理模块是协议栈程序中处理传输层协议的模块,负责对传输层的数据进行封装和解拆,保存传输层连接状态。点划线内部就是接收处理,包括IP报、ARP报、ICMP报的处理,及以太网层的数据接收驱动。接收驱动模块在接收到数据后先进行分类,若是IP报就由IP处理模块处理,若是ARP报就进行ARP协议处理。ARP请求报调用以太网发送模块发送ARP应答报。IP处理模块把数据分类,TCP或UDP报则转由上层的传输层模块处理,而ICMP协议处理模块负责对IC—MP协议进行处理。IP发送模块负责封装IP报,并把封装好的IP报传送到下层发送模块。IP发送模块有4个上层模块调用:分别是Socket API接口、UDP处理、TCP处理和ICMP处理。它们把相应的参数传送给IP发送模块,由IP发送模块来封装。Ethernet发送驱动模块是属于以太网层的处理模块,负责封装以太网报和数据的发送,调用它的模块有ARP处理模块和IP发送模块。
由于使用的是B/S结构,则编程是采用的是TCP通信的Socket API。编写TCP通信的任务时分为服务器方式和客户机方式两种。服务器方式是需要监听连接,只有在与客户机建立连接后才能进行数据处理。客户机方式是主动连接服务器,也是在连接成功后才能进行数据处理。图6是TCP通信时服务器端和客户机端通信的函数应用图。

在编程时温度传感器有其唯一的一个IP地址,即192.168.O.174。子网掩码是255.255.255.0,网关地址与IP地址相同。Web服务器建立在微处理器中,个人PC机为客户端,当个人需要查询温度传感器的值时,通过HTTP协议在浏览器中输入该传感器的IP地址(即ht—tp://192.168.O.174),便可进入该系统的网页温度浏览界面。
Web服务器任务程序代码如下:


结 语
本系统已经过测试运行良好,能方便地通过浏览器实时查询温度传感器所采集的温度值。网络化智能传感器是如今传感器技术发展的一个新的方向,本系统采用嵌入式技术实现了一个基本的基于网络的智能化传感器,其中设计的重点主要是对TCP/IP通信协议的实现,即将TCP/IP协议栈移植到系统中,然后调用相关的API函数实现网络通信。而Web功能的实现主要采用了B/S模式,通过上层的HTTP协议实现了浏览器与嵌入式网络传感器的交互。实现传感器的网络化控制可以很好地应用在对家电设备的控制或工业现场的控制中,具有良好的应用前景。
传感器 自动化 嵌入式 温度传感器 仿真 ARM ADC PWM 电源模块 二极管 电容 LDO 电压 Maxim 总线 电阻 收发器 C语言 单片机 相关文章:
- 多核及虚拟化技术在工业和安全领域的应用(05-23)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于音频信号的轴承故障诊断方法(03-17)
- 采用信号调理IC驱动应变片电桥传感器(05-26)
- 基于nRF2401智能无线火灾监控系统设计(04-01)
- 家居安防无线监控报警系统(04-02)
