基于网络的远程温度检测系统设计.docx
- 文档编号:18365700
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:70
- 大小:513.89KB
基于网络的远程温度检测系统设计.docx
《基于网络的远程温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于网络的远程温度检测系统设计.docx(70页珍藏版)》请在冰点文库上搜索。
基于网络的远程温度检测系统设计
摘要
远程温度检测系统是一种不需人员到达现场就能完成远程温度监控的系统,它可以有效地解决传统人工检测存在的诸如效率低、成本高、错误率高的问题。
远程温度检测系统中最重要的部分就是数据传输方法的选择,根据现有的几种数据传输方法的优缺点,本文提出了一种基于以太网传输数据的远程温度检测系统方案。
以太网具有不需单独布线,兼容性强,技术支持广泛的优点,采用以太网作为传输方法的远程温度检测系统有良好的发展前景。
而且随着网络应用的普及,本方案只需要经过小量修改,则可应用到其他网络通信设计。
具有较强的示范意义。
本系统分为三大模块,分别为数据采集模块,数据传输模块和上位机软件。
数据采集模块通过8位单片机ATmega32采集温度数据,将其储存到外围串行EEPROM中,防止意外断电造成数据丢失。
数据传输模块分为以太网接口和ATmega32上的TCP/IP协议栈两部分。
以太网接口硬件部分主要由ATmega32,以太网卡芯片Enc28j60组成,由于8位单片机资源有限,ATmega32上的TCP/IP协议栈只包含ARP,ICMP,IP,TCP和UDP协议,并且根据本系统需要实现的功能,这些协议经过了相应简化,例如,在ICMP协议中仅实现了Ping应答功能;在护协议中去掉了路由和数据报分片功能,仅实现数据报的发送和接收;在TCP协议简化了状态机,滑动窗口和定时重传机制,减少了连接数。
上位机软件利用VC++的SOCKET编程实现,具有测试连接,显示即时数据的功能。
经过测试,本系统可以实现实时显示数据,与上位机进行通信,以及在上位机上实时查询数据的基本功能。
关键词:
远程温度检测系统,以太网,TCP/IP协议
Abstract
Theremotetemperaturereadingsystemisanewmodeinwhichtemperaturedatacanbereadwithoutpeopleonthespot.Itcaneffectivelysolvetheproblemssuchaslowefficiency,highcostandhigherrorrate.
Thedatatransmissionisthemostimportantpartinaremotetemperaturereadingsystem,basedonadvantagesanddisadvantagesofcurrentdatatransmissionmethods,aremotetemperaturereadingsysteminwhichdataistransmittedbasedonEthernetispresented.ForEthernettechnologyhasmanyadvantagessuchasgoodcompatibility、extensivetechnicalsupport,andtheresearchinthisfieldissignificative.
Thissystemconsistsofthreemainmodules:
datacollectionmodule.datatransmissionmoduleandsoftwareonthecomputer.Indatacollectionmodule,the8-bitMCUATmega32isusedtocollectdataandstoredinEEPROMtoavoiddatalostcasedbyaccidentalpoweroff.
thedatatransmissionmoduleconsistsoftheEthernetinterfaceandsimpleTCP/IPprotocolstackonATmega32.ThehardwarepartoftheEthernetinterfaceismadeupofATmega32,EthernetcontrollerEnc28j60.Forthelimitedresourceof8-bitMCU,TCP/IPprotocolstackonATmega32onlyhasprotocolsincludingARP,ICMP,IP,TCPandUDP.Inaddition,theseprotocolsaresimpleaccordingtothefunctionsthissystemneedtohave.InICMPprotocol,onlyPingfunctionisreserved.InIPprotocol,theroutingandpacketsegmentfunctioniscancelled,onlypacketsendandreceivefunctionisreserved.InTCPprotocol,thestatemachine,slipwindowmechanismandtimingtoretransmitmechanismaresimple,andthenumberofconnectionisreduced.SoftwareonthecomputerisrealizedintheenvironmentofVC++,ithasfunctionsincludingconnectiontestandinstantdatadisplay.Thetestingresultshowsthatthissystemhasbasicfunctionsoftemperaturereadinganddatatransmission.
Keywords:
remotetemperaturereadingsystem;Ethernet;TCP/IPprotocols
1引言
当今时代,以Internet为代表的计算机网络的迅速发展及相关技术的日益完善,突破了传统通信方式的时空限制和地域障碍,使更大范围内的通信变得十分容易,Internet拥有的硬件和软件资源正控制、高档测量仪器设备资源的远程实时调用,远程设备故障诊断等等。
与此同时,高性能、高可靠性、低成本的网关、路由器、中继器及网络接口芯片等网络互联设备的不断进步,又方便了Internet、不同类型测控网络、企业网络间的互联。
利用现有Internet资源而不需建立专门的拓扑网络,使组建测控网络、企业内部网络以及它们与Internet的互联都十分方便,这就为测控网络的普遍建立和广泛应用铺平了道路。
网络技术的出现,正在极大地改变着人们生活的各个方面。
具体到计量测试、测控技术及仪器仪表领域,微机化仪器的联网,高档测量仪器设备以及测量信息的地区性、全国性乃至全球性资源共享,各等级计量标准跨地域实施直接的数字化溯源比对,远程数据采集与测控,远程设备故障诊断,电、水、燃气、热能等的自动抄表等等,都是网络技术进步并全面介入其中发挥关键作用的必然结果,所以很有必要对它进行研究。
本文主要研究内容:
利用AVR单片机(ATmega32L)和Enc28j60芯片来实现一个微型的网络通信节点,并通过DS18B20温度检测芯片组成一个远程温度检测系统。
与Internet的无缝连接,用户通过上位机可以实时监控现场温度,并且可以获取选定节点的历史数据。
2网络开发环境介绍
本设计主要用到两个芯片,一个是作为控制芯片的ATmega32,另外一个是作为通信的Enc28j60。
ATmega32是高档8位芯片,具有运算速度快,可靠性高的优先,配套AD接口和标准串口,方便组合成一个检测单元,而且具有低功耗模式,适合分散检测现场使用。
Enc28j60是串行SPI接口网络通信芯片,内部支持802.3标准,10M网络速度。
具有成本低,通信方便等优点。
由这两个芯片组成的网络节点,实用性非常强。
2.1控制芯片ATmega32
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
ATmega32有如下特点:
32K字节的系统内可编程Flash(具有同时读写的能力,即RWW),1024字节EEPROM,2K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,面向字节的两线串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。
本芯片是以Atmel高密度非易失性存储器技术生产的。
片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationlashMemory)。
在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega32成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
2.2网络芯片Enc28j60
ENC28J60是带有行业标准串行外设接口(SerialPeripheralInterface,SPI)的独立以太网控制器。
它可作为任何配备有SPI的控制器的以太网接口。
ENC28J60符合IEEE802.3的全部规范,采用了一系列数据包过滤机制以对传入数据包进行限制。
它还提供了一个内部DMA模块,以实现快速数据吞吐和硬件支持的IP校验和计算。
与主控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。
两个专用的引脚用于连接LED,进行网络活动状态指示。
图1-1所示为ENC28J60的简化框图。
图1-2所示为使
用该器件的典型应用电路。
要将单片机连接到速率为10Mbps的以太网,只需ENC28J60、两个脉冲变压器和一些无源元件即可。
ENC28J60由七个主要功能模块组成:
1.SPI接口——充当主控制器和ENC28J60之间通信通道。
2.控制寄存器——用于控制和监视ENC28J60。
3.双端口RAM缓冲器——用于接收和发送数据包。
4.判优器——当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制。
5.总线接口——对通过SPI接收的数据和命令进行解析。
6.MAC(MediumAccessControl)模块——实现符合IEEE802.3标准的MAC逻辑。
7.PHY(物理层)模块——对双绞线上的模拟数据进行编码和译码。
该器件还包括其他支持模块,诸如振荡器、片内稳压器、电平变换器(提供可以接受5V电压的I/O引脚)和系统控制逻辑。
从上文可以看出,由Enc28j60和ATmega32可以很方便地组成一个网络模块,并且实现了物理层和数据链路层,上位机主要实现TCP/IP协议就可以与网络进行通信。
具体连接见附录系统原理图。
在使用ENC28J60发送和接收数据包前,必须对器件进行初始化设置。
根据应用的不同,一些配置选项可能需要更改。
通常初始化任务会在复位后立即完成,并且不再需要更改。
主要的初始化有:
接收缓冲器
在接收数据包前,必须编程ERXST和ERXND指针来对接收缓冲器进行初始化。
ERXST和ERXND之间的存储空间(包括这两个地址)专供接收硬件使用。
建议用偶地址编程ERXST指针。
使用大量数据并经常交换数据包的应用可能希望把大部分存储空间分配为接收缓冲器。
需要保存已发数据或有一些数据包需要发送的应用应分配较少的接收存储空间。
当编程ERXST指针时,会用相同的值自动更新ERXWRPT寄存器。
接收硬件将从ERXWRPT中的地址开始写入已收到的数据。
为跟踪接收的数据,ERXRDPT寄存器也需要用相同的值编程。
要编程ERXRDPT,主控制器必须首先写入ERXRDPTL,然后写入ERXRDPTH。
发送缓冲器
所有未被用作接收缓冲器的存储空间都作为发送缓冲器。
要发送的数据应写入未使用的空间。
但在发送完一个数据包后,硬件会在存储器中数据包最后一个字节后写入一个7字节的状态向量。
因此主控制器应在接收缓冲器的开始和每个包之间预留至少7个字节。
不需要对发送缓冲器进行特定的初始化。
接收过滤器
应通过写ERXFCON寄存器使能或禁止相应的接收过滤器。
等待OST
如果在上电复位后立即执行初始化,应查询ESTAT.CLKRDY位,确保在开始修改MAC和PHY寄存器前已经过足够的时间。
2.3开发软件
本设计使用ICCAVR作为开发软件,自ATMEL公司的AT90系列单片机诞生以来有很多第三方厂商为AT90系列开发了用于程序开发的C语言工具,ICCAVR就是ATMEL公司推荐的第三方C编译器之一。
ICCAVR是一种符合ANSI标准的C语言来开发MCU程序的一个工具,功能合适、使用方便、技术支持好,它主要有以下几个特点:
1.ICCAVR是一个综合了编辑器和工程管理器的集成工作环境(IDE);
2.源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成,错误显
示在状态窗口中,并且当你点击编译错误时,光标自动跳转到错误的那一行;
3.工程管理器还能直接生成可以直接使用的INTELHEX格式文件,该格式的文件可被大多数编程器所支持,用于下载到芯片中;
4.ICCAVR是一个32位的程序支持长文件名。
3TCP/IP协议的简介与分析
3.1TCP/IP协议及实现原理
3.1.1TCP/IP协议简介
一个互连网是由许多种异种网络互连而成的,因此这个互连系统中的各个计算机必须遵循同一组通信规程时才能在异种网络之间相互通信。
Internet之所以能产生、存在并蓬勃发展的最主要原因是它是基于一组开放体系的通用协议。
在70年代中期,美国国防部为了确保其网络上的异种机之间进行联接通讯以支持国防科研项目的研究,制定了一套开放的通讯标准,以提供不同网络上节点计算机之间的通讯,这就是闻名全球的TCP/IP协议。
TCP/IP协议不是一个单一的协议,而是一系列通讯协议所组成,通常被认为是一个四层协议系统,每一层分别负责不同的通信功能,所以又叫TCP/IP协议族。
有了TCP/IP协议,我们就可以把互连网看成一个单独的虚拟网络,所有计算机都与它相连而不考虑实际的物理连接。
TCP/IP协议有一些重要的特点,以确保在特定的时刻能满足一种重要的需求,即世界范围的数据通信。
其特点包括:
1、开放式的协议标准。
可免费使用,且与具体的计算机硬件或操作系统无关。
由于它受到如此广泛的支持,因而即使不通过Internet通信,利用TCP/IP来统一不同的硬件和软件也是很理想的。
2、与物理网络硬件无关。
这就允许TCP/IP可以将很多不同类型的网络集成在一起,它可以适用于以太网、令牌环网、拨号线、X.25网络以及任何其它类型的物理传输介质。
3、通用的寻址方案。
该方案允许TCP/IP设备唯一地寻址整个网络中的任何其它设备,该网络甚至可以像全球Internet那样大。
4、各种标准化的高级协议。
可广泛而持续地提供多种用户服务。
[12]
3.1.2TCP/IP协议组分层
在Internet内部,计算机之间互相发送信息包进行通信,TCP/IP协议对这种信息包的传输方式作了具体的规定。
TCP/IP分层模型(TCP/IPLayeningModel)被称作因特网分层模型(InternetLayeringModel)、因特网参考模型(InternetReferenceModel)。
下图表示了TCP/IP分层模型的四层及其相关协议。
在TCP/IP协议集中包含了若干完成不同功能的协议。
其中包括:
DNS(DomainNameservice)域名服务器
FTP(FileTranfserProtocol)文件传送协议
NVP(NetworkVoicoProtocol)网络语音协议
TELNET(TelecommunNetwork)远程终端录入通信协议
SMTP(SimpleMailTransferProtocol)简单邮件传送协议
TCP(TransmissionControlMessageProtocol)可靠流传输协议
UDP(UserDatagramProtocol)用户资料报协议
ICMP(InternetcontrolMessageProtocol)互联网控制报文协议
IP(InternetProtocol)资料报服务协议
ARP(AdressResolutionProtoco)IP位元源址向物理位元源址的转换协议
RARP(ReverseAddressResolutionProtocol)物理位元源址向IP位址的转换协议
TCP/IP网络协议族通常在四个不同的协议层上进行开发,每一层分别负责不同的通信功能,并且每一层都是多个协议的组合。
每一层负责实现不同的功能:
第一层——网络接口层
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。
实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。
相反,它定义像地址解析协议(AddressResolutionProtocol,ARP)这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
第二层——网间层
网间层对应OSI七层参考模型的网络层。
本层包含IP协议、RIP协议(RoutingInformationProtocol,路由信息协议),负责数据的包装、寻址和路由。
同时还包含网间控制报文协议(InternetControlMessageProtocol,ICMP)用来提供网络诊断信息。
第三层——传输层
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。
其中TCP协议(TransmissionControlProtocol)提供可靠的数据流运输服务,UDP协议(UseDatagramProtocol)提供不可靠的用户数据报服务。
第四层——应用层
应用层对应于OSI七层参考模型的应用层和表达层。
因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等。
[4]
其中TCP,IP,UDP,ARP,ICMP,这五个是最基础的协议,实现最基础的网络通信所必备。
这也是接下来的重点。
3.1.3TCP/PI协议的封装
协议的封装是指当应用程序使用TCP协议或UDP协议传送数据时,数据被送入
TCP/IP协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。
其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。
图中,TCP传给IP的数据单元称作TCP报文段或简称为TCP段。
IP传给网络接口层的数据单元称作IP数据报。
通过以太网传输的比特流称作帧。
应用层的数据要想在以太网进行传输,就必须按照以太网的帧格式进行封装,而且这是一个逐级封装的过程,这是因为:
1、UDP、TCP、ICMP等协议都可以向网络层的IP协议传送数据,因此IP数据报中必须对IP的上层协议进行标识。
2、网络层的IP协议,以及地址解析协议ARP即都可以向链路层传送数据,因此也必须在以太网的帧首部中加入指明数据来源的类型域。
3.1.4TCP/IP协议的分用
上图实际上也是TCP/IP协议接收数据处理示意图,体现了以太网数据分用的思想。
这种数据分用的过程可以概括如下:
1、ARP协议和RARP协议提供逻辑地址和物理地址之间的动态转换。
IP数据报必须封装成帧才能在以太网中进行传输,这就表示发送站必须有接收站的物理地址。
2、链路层的以太网驱动程序负责接收以太网数据帧,剥离以太网数据帧的首部信息,形成IP数据报或ARP、RARP分组。
根据以太网数据帧的下层协议类型并分别交付给下一层。
如果是IP数据报,则被送交网络层。
3、网络层在接收以太网驱动程序送到的IP数据后,按照IP数据帧中的协议种类对数据进行处理,去掉于首部数据,形成TCP或UDP或ICMP报文。
如果得到TCP或UDP报文,则把数据报交付给运输层,否则对ICMP报文进行处理。
4、运输层在得到UDP报文后,按照UDP协议中的端口号分别送给不同的应用程序。
若运输层得到TCP报文,则要根据TCP的状态进行处理。
3.2以太网协议分析
3.2.1以太网首部结构
以太网协议有两种:
IEEE802.2/EE802.3和以太网的封装格式。
现代的操作系统均能同时支持这两种类型的协议格式,因此对我们来说只需要实现其中的一种就可以了。
对于单片机来说,由于资源及处理能力有限,不可能支持太多的协议格式。
这里介绍以太网的封装格式。
发送以太网数据的物理传输帧的封装格式如下:
1、前导:
字节由芯片本身产生,用于同步收发两方的时钟,以及指定传输速率,我们不必理会。
2、目的地址:
以太网数据帧传输的目的地址,为48位(6字节)二进制地址。
如果数据全为1,则该目的地址是以太网上的所有网卡。
3、源地址:
以太网数据帧传输的源地址48位,表明该帧的数据的出发点,即发送端的网卡地址,为6个字节。
4、帧格式:
类型字段,表明该帧数据的类型。
不同协议的类型字段不同,例如:
IP包的数据类型为0800H,ARP包的数据类型为0806H。
5、数据段:
以太网规定整个数据包的最大长度不能超过1514字节,因此该段数据不能超过1500字节。
6、校验及填充位。
以太网
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 网络 远程 温度 检测 系统 设计