关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于LPC2210和DS18B20设计网络化的智能温度传感器

基于LPC2210和DS18B20设计网络化的智能温度传感器

作者:时间:2010-07-30来源:网络收藏
由表1可知,RTL8019AS使用外部存储控制的Bank2部分,而RTL8019AS的I/O地址为0x00300~Ox0031F,所以RTL8019AS在SA8=l、SA5=O时选通,其数据地址为0x83400000~Ox83400001F。
NET_RST为输出引脚,RTL8019AS中断信号为中断输入信号,且为外部中断。RTL8019AS的SDO~SDl5串了一个470 Ω电阻连接到的D0~D15。此外,该系统还加入了LCM接口,可以直接支持SMG240128A点阵图形液晶模块,便于通过液晶实时显示所接收的

本文引用地址:http://www.eepw.com.cn/article/162967.htm


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为读数据子程序。所有的数据读/写均由最低位开始。
该系统的读字节子程序的流程如图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发送模块。



评论


相关推荐

技术专区

关闭