《基于pc机的网络型温度采集系统的研究大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于pc机的网络型温度采集系统的研究大学本科毕业论文.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南科技学院2015届本科毕业论文(设计)基于 PC机的网络型温度采集系统的研究学生姓名: 董春林所在院系: 机电学院所学专业: 应用电子技术教育导师姓名:付广春完成时间:2015 年 4 月 28 日摘 要 本设计主要针对基于 PC机的网络型温度采集系统的研究,该系统可用于对室内温度的监控,单片机采集到数据后可以通过网络实时的传输给上位机。网络是时下最火的名词,物联网有很大可能将是未来的一种发展趋势,嵌入式产品连入 Internet,在今后必然是个愈演愈烈的趋势,本设计采用单片机与 PC 上位机的网络通信。本系统所使用的 MCU是 STC89C52单片机,网络模块采用的是 W5500芯片,它
2、是一种全硬件的 TCP/IP芯片,不会占用 MCU过多的 RAM和 ROM空间,很适用于 8 位单片机。由于要采集温度,所以用了 DS18B20温度传感器。当上位机采集到的温度比较高或者低时,可以通过上位机发送 AT指令来控制制冷设备的运行或停止。另外本系统还可以用手机上位机终端实时的观测温度,并发送指令来控制制冷设备的运行和停止。关键词:STC89C52单片机,上位机 ,物联网,温度Abstract This design mainly aims at the research of network of temperature acquisitionsystem based on PC,
3、the system can be used for monitoring of the indoor temperature,single chip microcomputer collected data through the network real-time transmissionto the host computer. The network is among the most fire, the Internet of things isvery likely will be a future trend of development, embedded products c
4、onnected to theInternet, in the future must be a growing trend, this design is the use of networkcommunication between SCM and PCs PC. This system uses the MCU STC89C52chip, the network module uses W5500 chip, it is a kind of TCP/IP chip hardware, notoccupy too much MCU RAM and ROM space, it is appl
5、icable to the 8 bit single chipmicrocomputer. Due to the acquisition of temperature, so the use of DS18B20temperature sensor. When the host computer to collect temperature is high or low, canstop to control the refrigeration equipment through the host computer to send ATcommands operation or. In add
6、ition the system can also use mobile phone PC terminalreal-time observations of temperature, and send commands to control the start andstop of refrigeration equipment.Keywords:STC89C52, Upper Machine, The Internet Of Things, Temperature目 录1 绪论 . 12 设计方案的确定. 13 课题的研究意义及设计思路. 14 硬件设计. 14.1 硬件框图. 14.2
7、温度传感器模块设计. 24.2.1 DS18B20传感器工作原理. 24.2.2 DS18B20的多点测温的设计. 34.3 STC89C52RC单片机 . 34.3.1 STC89C52RC的介绍. 34.3.2 STC89C52RC单片机最小系统设计. 44.3.2 单片机电源的设计. 54.4继电器电路设计 . 54.5 W5500网络模块. 64.5.1 W5500网络芯片的介绍. 64.5.2 SPI的工作模式. 74.5.3 W5500内部寄存器构成. 74.5.4 W5500网络模块设计 . 84.5.5 W5500电源设计. 95 软件程序设计. 95.1 上位机的程序设计.
8、95.1.1 WinSock控件介绍 . 95.1.2 上位机程序 .105.2 下位机的程序设计.125.2.1 DS18B20程序设计 .125.2.2 W5500程序设计.146 系统通信的调试.167 结束语 .18致谢.19参考文献 .19附录.20I1 绪论在某些场所,例如工厂的无尘室、娱乐场所等,有时候要对室内温度进行监测,然后工作人员根据温度的高低来采取一定的措施。另外现在物联网趋势日益明显,尤其是智能家居行业发展越来越快,设想一下用网络终端来控制家里的一切电器,那是多么惬意的感觉,未来物物相连的互联网必定非常火爆,基于这种理由这也正是研究单片机联网的重要意义。当然本系统研究比
9、较简单,但对于继续深入研究嵌入式联网有非常重要的意义。2 设计方案的确定本系统中主要重点是网络,而目前网络模块种类很多,网络通信协议也较为复杂,如果对网络通信协议了解的十分透彻并不简单,这就给本设计中要实现单片机联网带来了挑战。要想快速实现单片机联网,在此选用了 W5500网络模块。W5500 芯片是在厂家生产时,就已经将网络通信协议封装到了芯片内部,所以一方面用它来实现单片机联网时,并不需要对复杂的网络通信协议有非常多的了解,另一方面本系统用到的 MCU是 8位 STC89C51单片机,它的 RAM和 ROM空间有限,用此模块会很节省存储空间。本系统中测温度主要用到的是 DS18B20 温度
10、传感器,它具有体积小、功耗低、性能高、超强抗干扰能力、配微处理器容易等优点,可直接将感应到的温度值转化成数字信号串行发送给单片机处理,可实现高精度的温度测量。3 课题的研究意义及设计思路未来随着科技的发展,物与物的网络连接必定是个趋势,目前智能家居行业发展的越来越快,手机作为终端来控制家里的一切电器设备已越来越多。本系统的设计研究正好与国家提倡的物联网的话题相贴切,另外本系统也能通过 WIFI使手机连接到局域网来与单片机通信,假如发现接受到的温度有点高,手机可以发送指令,进而控制风扇的运行。用手机作为终端来控制风扇的运行和停止,这也与智能家居相近。本系统的设计比较简单,本系统的设计思路是:(1
11、)单片机通过温度传感器来检测环境温度。(2)PC上位机通过网络与单片机相互通信,将单片机采集到的数据及时显示到上位机上,从而了解到检测对象的参数和状态。(3)当单片机采集到的温度过高或者过低时,PC机发送指令,来控制风扇运行或者停止。基于以上这些要求,所研究的本系统采用了以下结构模块:单片机(STC89C52)及其外设温度传感器单元、上位机单元、网络模块 W5500、继电器。4 硬件设计4.1 硬件框图本研究的设计是单片机通过外设温度传感器 DS18B20 采集到温度数据再经过联网传送给上位机,上位机再判断这些参数是否正常,若发现温度超过或低于所设定的极限值时,蜂鸣器将会报警。设计整个系统的原
12、理框图如图 1所示。1DS18B20温度传感器PC机STC89C52单片机继电器网络模块W5500图 1 硬件框图4.2 温度传感器模块设计4.2.1 DS18B20传感器工作原理DS18B20是支持单总线接口的温度传感器, DS1820 温度传感器是以 9 位数字量的形式反映器件的温度值。DS1820 用单线接口发送或接收信息,所以单片机只需一条连接线和DS18B20 通信。在其内部有一个电容,利用电容的充放电可以充当寄生电源,所以用于读写数据和转换温度的电源可以从数据线本身获得,不需要外部电源。当然也可以用外部5V电源供电。当采用外部电源供电时,不需要加强上拉,此时 GND引脚不能悬空。如
13、果用内部寄生电源,采用强上拉的方式供电,VDD引脚必须接地;利用内部寄生电源供电有两个好处:(1)进行远距离测量温度时,不需要本地电源(2)在没有常规电源下读 ROM要想使 DS18B20进行精确的温度转换,必须保证在温度转换期间有充足的电源供电,这就要在温度转换期间给 DS18B20采用强上拉供电,这就给采用多个 DS18B20检测温度时造成了麻烦。从 DS18B20在单线端口通讯的工作条件下,必须在建立的 ROM操作协议下,操作相应的ROM命令才能进行存储和控制。每只 DS18B20 都有一个唯一的长达64 位的编码。只有遵循建立的 ROM 操作协议,才能对 DS1820 进行控制操作。最
14、开始的8 位是单线系列编码(DS18B20 的编码是 19H)。接着的48 位是 DS18B20唯一的序列号。最后 8位是总线控制器根据前面 56位计算出的 CRC码。用这个CRC码值和存储在 DS18B20中的值相比较,来确定总线接收的 ROM数据是否准确。DS18B20内部存储器是由一个暂存器和存储高低温报警触发值 TH、TL的非易失性电可擦除 ROM组成。DS1820将测量的结果放在内部暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。可用存储器操作命令写入 TH /TL,对这些存储器的读出都要通过暂存器。在单总线上进行通讯时,暂存器确保了具有完整的数据,因此数据要先被
15、写入暂存器,但这里面的数据可被读回。数据在暂存器里经过校验后,用拷贝暂存器的命令就会把数据传到非易性 EERAM中,这个过程是为了保证在更改存储器时数据不会被丢失。2暂存器是一个 8个字节的存储器。头两个字节包含所测得温度值和符号位。第三和第四字节是上限 TH和下限 TL的拷贝,在这是容易丢失的,每次上电复位时这两个值都将被刷新。再下面的两个字节都没有使用,在读数据时都为逻辑1。第七、八两个字节是用来获取温度的精度。第九个字节是通过以上八个字节计算出的 CRC值。DS18B20所传输的数据需要严格遵循协议才能保证数据的完整性,协议包含几种类型:复位脉冲、存在脉冲、写 1、写 0、读 1、读 0
16、。所有的这些信号除了存在脉冲以外,都是由总线控制器发出的。4.2.2 DS18B20的多点测温的设计本系统只使用了一个 DS18B20,就没有必要读取 ROM和匹配 ROM编码了,只需要跳过 ROM(CCH)的命令,就可以进行温度的转换和读取操作。如果要进行多点测温,可以在总线接口上挂接多个DS18B20。在每个 DS18B20内部ROM中都有自己的片序列号,每个 DS18B20的此序列号都不一样,所以可以将多只 DS18B20 都连在一根单线总线上,这样可以将多个DS18B20分别放在不同的地方检测温度。这时就应该先读出其序列号,知道DS18B20的序列号后,然后当单片机发出匹配ROM(55
17、H)和搜索到的 64位序列时,找到相对应的 DS18B20后,才能进行以后的读写等操作。U1U2U3U4VCCR214.7KP07GNDVCC图 2 DS18B20多点测温原理图4.3 STC89C52RC单片机4.3.1 STC89C52RC的介绍STC89C52RC单片机是很早就在市场上应用了,到现在它在各方面技术上显然已经落舞,但由于它学习应用起来比较简单,所以目前任然被很多学者作为学习单片机的入门级芯片。此系统的研究只是采集温度数据,比较简单,另外本系统采用的网络芯片是 W5500,是“硬件 TCP/IP芯片”,它把 TCP/IP协议栈封装到了芯片内部,对于处理器就不会占用过多的 RA
18、M和 ROM,对单片机的要求就降低了,所以用此款单片机完全可以胜任。STC89C52RC一共有40个引脚,可以分为四组:P0口、P1口、P2口和P3口。P0口(39脚至32脚):内部没有上拉电阻,为高祖状态,因此不能正常的输出高/低电平,因此我们在使用P1口时,必须要外接上拉电阻,本系统设计用3的是10K的上拉电阻。P1口(1脚至8脚):除作为普通I/O口的功能外,还可作为第二功能,由于本设计没有用到P1口,所以在此不做介绍。P2口(21脚至28脚):内部带有上拉电阻,可以直接独立控制。P3口(10脚至17脚):内部也带有上拉电阻,可以直接当做普通的I/O口使用,但它还有第二功能,本系统中P3
19、.0、P3.1和P3.3两个引脚用的是第二功能,P3.2至P3.7是作为普通的I/O口用的。表1 P3口各引脚第二功能定义引脚标号P3.0P3.1P3.2P3.3P3.4第二功能RXDTXDINT0INT1T0功能说明串行输入串行输出外部中断 0外部中断 1定时器/计数器 0外部输入P3.5P3.6P 3.7T1WRRD定时器/计数器 1外部输入外部数据存储器写脉冲外部数据4.3.2 STC89C52RC单片机最小系统设计使用单片机,一定要了解它的最小系统,因为最小系统是单片机能够正常运行的最低配置,如果在设计时这些最低配置都不完整,则单片机就不会正常工作,STC89C52RC单片机也一样有自
20、己的最小系统,基本包括:复位、时钟、电源等。最小系统如图所示:VCC1234540393837363534333231P10P11P12P13P14P15P16P17RESETP30/RXDVCCP00P01P02P03P04P05P06P07EA/VPPVCCR12KK1RESET6C2810478910R2210K1112131415161718302928272625242322P31/TXDP32/INT0P33/INT1P34/T0P34/T1P36/WRP37/RdXTAL2ALE/PROGPSENP27P26P25P24P23P22GNDGNDC3330PY319XTAL1GND
21、P21P20C34 12MHz 202189C5230P GND图 3 STC89C52RC单片机最小系统4复位(9脚):当 9脚 RST出现两个机器周期以上的高电平时,单片机将复位;复位能使单片机的初始化,是单片机从 0000H单元开始执行程序。复位操作有上电复位和按键手动复位两种方式。手动复位是人为的给 REST一个高电平,一般采用的方法是在电源 VCC与 REST之间加一个按钮来实现。本系统用的是上电复位,是利用给电容充电来给 REST高电平的。时钟(18、19脚):时钟由外部振荡电路引入。振荡频率范围是 033MHz,晶体的振荡频率越高,单片机运行的速度越快。本系统采用的是 12MHz
22、的晶振。电源(40脚):5V电源是通过 USB线供给 VCC引脚,第 20脚 GND直接接地。由于此款单片机内部含有程序寄存器,所以第31脚EA也接电源(高电平)。由于本系统使用的网络模块芯片是 W5500,它的工作电压是 3.3V,而本系统设计输入的电压是 5V,为了能使其能够正常工作,在此先用 AMS1117-3.3V来将 5V电压变化到 3.3V后,再给 W5500提供工作电压。AMS1117-3.3V的功能就是将电源输入的 5V电压转换成 3.3V电压。程序下载使用的是 P3.0和 P3.1口,由于考虑到现在很多电脑都没有了 9针串口,这对下载程序造成不便,因此在此使用了 CH340转
23、了一个 USB串口,通过 USB线将程序下载到单片机上。因此在本设计中,这个 USB口有3个主要功能:供 5V电源;下载程序;串口通信。4.3.2 单片机电源的设计单片机的电源是 5V,因此还需要一个5V电源电路。如下图所示:1LH62D5LM780513INOUTT1GNDR1500D1D3D4C4LN121N4007D2C1C212V220uFD62.2mF 100nF5V220VGND图 4 单片机电源电路4.4继电器电路设计此系统的设计比较简单,就是用了单片机的最小系统接上外设温度传感器DS18B20,采集温度数据,然后通过网络模块 W5500来传给 PC机。另外当上位机采集到温度过低
24、或者过高时,本系统还可以通过上位机发送指令AT+Feng=1或者发送AT+Feng=0来控制风扇的运行或者停止。因此还用到了继电器电路。本系统中用的继电器型号是JQC-3F(T73),它的工作控制电压有三种5VDC、28VDC、125VAC,最大负载电压有两种交流240V/7A和直流28V/10A。在此还用到了SS80505三极管,它是一种NPN型的三极管,在此它的主要作用是作为继电器的驱动电路。利用继电器电路可以很好的实现弱电控制强电。下面是继电器原理图:继电器220VVCCRP00Q1SS80501KR1GND图 5 STC89C52控制风扇原理图4.5 W5500网络模块4.5.1 W5
25、500网络芯片的介绍现在可用于单片机联网的模块有很多种,它们各有各的优缺点,也各有各的用武之地。本系统的开发初衷就是在实现基本功能的条件下越简单越好,所以本系统选择了 W5500。我们可以把 W5500描述为一种硬件TCP/IP协议栈,当然我们所说的硬件并不是真的有 TCP/IP协议栈,它只是把 TCP/IP协议栈封装到了芯片内部,然后通过对其内部相关寄存器的控制,用其 SPI接口连接到网络上同同外部的 MCU进行通信。由于其内部已经封装了协议栈,所以使用者就可以把大部分精力和时间花费在应用程序的开发上,并不需要把协议栈了解的太深,同时也不会占用过多的 MCU的 RAM和 ROM空间,所以对
26、MCU的要求就比较低,这就使得8位单片机也能够更加快捷、简便的连接到网络上进行通信。W5500全硬件协议栈支持 TCP、UDP、ICMP、ARP、IGMP、IPv4、PPPoE多种协议,并且提供了 SPI(外设串行接口),使得与外部单片机的连接更加容易,它的内部有 32KB字节缓冲来处理网络数据包。只需要对内部的 8个硬件Socket编程,就能实现网络通信。它的一些特点如下:1.集成硬件化网络协议:TCP、UDP、ICMP、ARP、IGMP、IPv4、PPPoE协议2.支持内部 8个 Socket端口同时通信3.提供了网络模式和掉电模式,用户可以选择4.有可变数据长度模式和固定数据长度模式两种
27、工作模式5.提供了 SPI外设接口6.内部有 32K字节的接受和发送数据缓冲7.内部嵌 10BaseT/100BaseTX 以太网物理层(PHY)8.工作电压 3.3V或者 5V69.不支持 IP分片传输表2 W5500引脚功能表排针标识功能说明排针标识功能说明5V电源输入引脚电源地引脚3.3V3.3V电源输入脚5VSPI 主机输入从机输出引脚MISOGNDRSTSPI 主机输出从机输入引脚初始化引脚(低电平有效)中断引脚(低电平有效)悬空MOSI选用 W5500的 SPI接口(低电平有效)SPI时钟引脚SCSINTNCSCLK4.5.2 SPI的工作模式根据时钟极性和相位的不同,SPI有四种
28、工作模式(模式 0,1,2,3)W5500支持模式 0和模式 3。模式 0和模式 3唯一不同的是空闲模式时 SCLK的极性不同。时钟极性有高、低电平两种,当其极性为高电平时,在空闲模式下 SCLK为高电平,传输时变为低电平;当其极性为低电平时,在空闲模式下 SCLK为低电平,传输时变为高电平。W5500与单片机的通信收 SPI的数据帧控制。SPI数据帧包括 16位地址段偏移地址、8位控制段和 N字节的数据段。W5500有1个通用寄存器,8个 Socket寄存器,以及对应每个 Socket的写缓冲,控制段正是指定了偏移区域、读写访问模式和 SPI的工作模式。表3 W5500引脚功能表BSB4BS
29、B3BSB2BSB1BSB0RWBOM1OM0BSB4:0:区域选择位RWB:读/写选择模式,”0”:读 ”1”:写OM1:0:SPI工作模式选择由于本系统采用了可变数据长度工作模式,所以 OM1:0=00。它的数据长度被外设主机 SCSn所控制,可以是一个随机值。在写访问时,RWB为“1”,此时在传输 SPI数据帧之前,必须先把 SCSn信号引脚拉低,然后单片机通过MOSI将 SPI数据帧从高位到低位的所位都传输给 W5500,并与 SCLK的下降沿同步。在完成 SPI数据帧传输后,单片机再将 SCSn引脚拉高。在读访问模式下,RWB为“0”,在传输 SPI数据帧之前,依然是先把 SCSn引
30、脚拉低,然后单片机将地址和控制段的所有位通过 MOSI传输给 W5500,所有位将与 SCLK的下降沿同步。然后在 SCLK的上升沿,单片机通过 MISO把所有的数据位接受到,在接受完数据信号后,再将 SCSn拉高。4.5.3 W5500内部寄存器构成W5500有 1个通用寄存器、8个 Socket寄存器区以及对应于每个 Socket的接受/发送缓冲区。每个区域的选取都是通过 SPI数据帧控制段的 BSB4:0来控制。每个 Socket的接受或发送缓冲区内存都在 16KB内,初始化分配为 2KB,所以接受或发送缓冲的偏移地址必须在 0x0000到 0xFFFF之间。W5500的基本信息(例如
31、IP地址、MAC地址等)都是在通用寄存器中配7置的。通信是通过 8个 Socket独立端口进行的。发送和接受缓冲区分别有 16KB,每个 Socket对应 2KB(2KB*8=16KB),并按照 Socket0到 7顺序分配,在开发时要注意不要使 Sn_TXBUF_SIZE及 Sn_RXBUF_SIZE不要超过 16,否则有可能导致数据传输错误。16KB的发送和接受内存中分配了对应于 Socket n的发送接受缓冲区,用于传输数据做缓冲用,Socket n缓冲区的 16位偏移地址支持 64KB的寻址范围(从 0x0000到 0xFFFF)。4.5.4 W5500网络模块设计W5500模块原理图
32、如图所示:HR911105ATXP1429TD+TCTTD-LEDA+3V3R14TXNGNDC2122uF101211ACT_LEDLINK_LEDRXPC22 6.8nF82R12354LEDA-LEDB+LEDB-RD+RCTRD-3303V3R15RXNGNDC2010nF6.3nFR138278C23NCGND3303V3RIC10KRIB10KRIA10KU14837RSTINTMOSIMISOSCLKSCSP32P33P34P35P36P37VCCAVDDRSTINTMOSIMISOSCLKSCS3635343332AVDDAVDDAVDDAVDDAVDD11151721C121
33、8PFGND71213464731NCNCNCNCNCXOR31MY130C13C14XI18PF2928GNDVDDGNDR818C11VBG0.01uF10uF 3V3C9 103 2220101V2OYOCAPEXRES2165C10TXPTXNRXPRXN47510K12.4KR102338R93910K4041RSVDRSVDRSVDRSVDRSVDRSVD4224262527SPDLEDDUPLEDLINKLEDACTLEDR2A 10K3914161920AGNDAGNDAGNDAGNDAGNDAGNDGND454443GNDPMODE0PMODE1PMODE2W5500图 6
34、W5500模块原理图8在 EXRES1引脚和模拟地之间要接一个 12.4K,精度为 1%的电阻;W5500与单片机连接是通过 SPI,共有 SCSn、SCLK、MOSI、MISO四路信号。W5500有两种工作模式,分别是可变数据长度模式和固定数据长度模式,在可变数据长度模式中 W5500的 SCSn引脚由外部单片机的引脚控制,而在固定数据长度模式中 W5500的 SCSn引脚接地。本系统中用的是可变数据长度模式。在可变数据长度模式下,SCSn引脚控制 SPI帧的开始与结束,当 SCSn由高电平变为低电平时,SPI帧传输开始;当 SCSn由低电平变为高电平时,SPI帧传输结束。无论是接受还是发送均是从高位到低位的顺序传输。4.5.5 W5500电源设计W5500在本系统中工作电压是 3.3V,因此又用了 1117-3.3V芯片,它是将5V电压转换为 3.3V。如图所示:3V3VCC31117-3.3VR751054VIN3.3V3.3VC17104C18104D1GND图 7 W5500电源电路5 软件程序设计本系统的软件是基于下位机与上位机的网络通信的,网络通信协议主要用到的是TCP协议和UDP协议。本系统的数据的发送和接受两种协议都使用到了。软件设计包括上位机和下位机两部分,下面分别对他们进行介绍。5.1 上位机的程序设计本系统中上位机是