《粮仓多点温度监控系统设计.pdf》由会员分享,可在线阅读,更多相关《粮仓多点温度监控系统设计.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 济南铁道职业技术学院 毕业论文 题 目:粮仓多点温度监控系统设计粮仓多点温度监控系统设计 系 别:电气工程系电气工程系 专 业:电气自动化电气自动化 班 级:学生姓名:指导教师:完成日期:摘摘 要要 目前许多场合都要对温度进行控制。如仓库,不同的储藏室储存物品的温度都不同;再比如医院,为了使病人的治疗效果最好,需要对每一个病房的温度进行控制。该文研究的多点温度监控系统能够对多个位置的温度进行设置、检测,根据温度设置值与检测值来控制调温设备运转,调节温度。目录 1 引言.1 设计要求.4 1.1 监控要求.4 1.2 受控对象的数学模型.4 2 系统的硬件配置.4 2.1 单片机和系统总线.4
2、 AT89S51 单片机单片机 历史版本历史版本 AT89S51 单片机-主要特性 AT89S51 具有如下特点:40 个引脚,4kBytesFlash 片内程序存储器,128bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据
3、,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。8031CPU 与 MCS-51 兼容 4K 字节可编程 FLASH 存储器(寿命:1000 写/擦循环)全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器/计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 AT89S51 单片机-管脚说明 VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TT
4、L 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/
5、O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1
6、”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断 0)P3.3/INT1(外部中断 1)P3.4T0(记时器 0 外部输入)P3.5T1(记时器 1 外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。I/O 口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端
7、口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器 CPU 将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心 1 然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置 1 端口锁存器原来的状态有可能为 0Q 端为 0Q为 1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的 1 信号读入后不一定是 1 若先执行置 1 操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备
8、动作所以这类 I/O 口被称为准双向口 89C51 的 P0/P1/P2/P3 口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了 P1 口外 P0P2P3 口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,
9、将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间
10、内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。AT89S51 单片机-相关词条 AT89C51 单片机 AT89S52 单片机 AT89C2051 单片机 AT89S51 单片机-参考资料 http:/ 2.2 硬件介绍.5 3 粮仓温度监控系统的组成框图.10 4 粮仓温度监控系统结构图及总述.12 5 粮仓温度监控系统软件设计.13 5.1 单片机粮仓温度监控系统软件结构图 13 5.2 单片机监控流程图.14 5.3 粮仓温度变换程序模块.14 5.4 粮仓
11、温度非线性转换程序模块.15 6 通信协议的设计.17 6.1 软件设计.17 6.1.1 通信协议概述.17 6.2 通信协议说明.18 6.2.1 信号帧分类.18 6.2.2 信号帧格式.18 6.2.3 通信协议处理流程.19 6.3 PC 上位机的软件设计.22 6.3.1 PC 软件设计方法的选择.22 6.3.2 PC 软件通信方式的选择.22 6.3.3 具体实现方法.24 6.4 单片机软件设计.27 6.4.1 波特率.27 6.5 通信协议设计结论.28 6.5.1 通信可靠性分析.28 6.5.2 通信速度分析.28 7 Protel99 设计原理图.30 8 硬件电路
12、板的制作.33 9 设计总结.35 谢 辞.36 参考文献.37 附 录 1 38 1 1 引言引言 设计题目:粮仓温度智能监控系统 我选择 8031 单片机 AD590 温度传感器,HS1100/HS1101 湿度传感器,技术参数 温度检测范围:-30-+50 测量精度:0.5 湿度检测范围:10%-100%RH 检测精度:1%RH 显示方式:温度:四位显示 湿度:四位显示 报警方式:三极管驱动的蜂鸣音报警 多点温度监控系统的设计多点温度监控系统的设计 l 系统的总体结构及功能 本系统的总体结构框图如图 1 所示,为了满足多通道数据采集和处理,系统采用了一台上位机和多个下位机的集总式结构。上
13、位机采用 AT89S51 单片机,下位机采用 AT89C2051单片机。上位机与下位机之间采用 RS 485 总线通信。其中上位机系统配置液晶显示屏、按键。按键用于调整各个点的预置温度和系统时间,查询各个点的预置温度值、实际温度值以及调温设备运行情况,输入下位机的控制信息。液晶显示屏用于显示系统时间,以及各点的预置温度值、实际温度值和调温设备运行情况,如 1 min 内没有任何操作,则液晶显示屏上开始循环显示各个点的实际温度值、预置温度值以及调温设备运转情况,每一个点的数据在液晶屏上显示的时间是 8 s。下位机负责温度采集和控制调温设备运转,温度传感器采用DSl8820。上位机首先将预置温度值
14、发送到下位机,下位机将实际温度与预置温度进行比较后输出调温设备控制信号,并将实际温度与调温设备运转状态发送到上位机。2 硬件电路设计 21 下位机电路设计 下位机电路主要由三部分构成:温度采集电路、RS 485 总线接口电路、调温设备的控制电路,其电路原理图如图 2 所示。211 温度采集电路 温度传感器采用 DSl8820,其是一种单总线智能型温度传感器,只有三线接口,分别为地线、数据线、电源线。DSl8820 输出信号为数字信号,处理器与 DSl8820 通过数据线来完成双向通信,因此采用 DSl8820 使得电路十分简单。温度变换功率可以来源于外电源,也可以来源于数据总线,总线本身也可以
15、向所挂接的 DSl8820 供电。DSl8820 的电压范围为+3O+55 V,测温范围为一 55+125,固有的测温分辨率为 O5,最高精度可达 0067 5,最大的转换时间为 200 ms。一条总线上面可以挂接多个 Dsl8820 实现多点测温。本系统中每台下位机只接一个 DSl8820。采用单片机的 P37 口与 DS18820 进行通信,采集温度信号,由于其是双向通信,内部结构是开漏,所以在总线上要加一个 10。k 上拉电阻。212 RS 485 总线接口电路 本系统上位机与下位机之间采用 RS 485 总线通信,其通信距离可达 1 200 m。总线驱动芯片采用 MAX485,RO 接
16、单片机的 RXD,DI 接 TXD,MAX485 芯片的发送和接收功能转换由芯片的 RE,DE 端控制。DE=1 时,MAX485 处于发送状态;RE=O,DE=0 时,芯片处于接收状态。将 RE,DE 接在单片机的一根口线 P34 上。在上电复位时,为了避免分机咬总线的情况,总线上的各分机应处于接收状态。而在上电复位时,单片机各端口处于高电平状态,硬件电路稳定也需要一定的时间,则可能向总线发送信息,为了避免这种情况,将 P34 口接一个 74HCl4 反相器,使 MAX485 上电时处于接收状态。另外在数据传输之前,先要通过一个低电平起始位实现握手,给 R0 外接 10 k上拉电阻,防止干扰
17、信号误触发产生负跳变,使单片机进入接收状态。总线上面挂接多个分机,其中任何一只芯片故障就可能将总线“拉死”,因此在 MAX485 的 A,B 口线与总线之间各串接一只 20 的电阻实现总线隔离。如果是最后一台分机,则在差分端口 A,B 之间接 120 的平衡匹配电阻,减少由于不匹配而引起的反射,并且能够吸收噪声,抑止干扰,保证通信质量。注意不能在中间分机节点上并接平衡匹配电阻。213 输出控制电路 上位机向下位机发送命令和预置温度,下位机接收到之后,解析命令,并将预置温度与实际温度比较,根据命令和比较结果,利用 P35 口控制调温设备。当 P35 输出低电平时,U1 导通发光,使晶体管导通,从
18、而 T1 导通,驱动继电器 K 工作,使调温设备导通工作。当 P35 为高电平时,U1 不导通,晶体管不导通,T1 也截止,继电器不通电,调温设备不工作。22 上位机电路 上位机电路包括 RS 485 总线接口电路、键盘电路和液晶显示电路。其中总线接口电路与下位机总线接口电路基本一致。其电路原理图如图 3 所示。下面介绍键盘电路和显示电路。221 键盘电路 上位机电路中提供 6 个按键用于温度设置、温度查询、系统时间设置、工作待机设置。它们是“ONOFF”键、“+”键、“”键、“SET”键、“ENQ”键、“TIME”键,分别与 AT89S51的 P20,P21,P22,P23,P24,P25
19、相连。“SIET”键用于选择下位机,之后可按“ONOFF”键使对应的下位机工作待机,也可按“+”,“一”键给该分机设置预置温度。“ENQ”键用于查询下位机的预置温度、实际温度值和调温设备运转状态。设置系统时间需先按“TIME”键选择时或分,然后利用“+”,“一”键设置系统时间。222 显示电路 上位机系统采用 16 2 字符型液晶模组(LCM),其为按键操作提供可视化依据,内部集成了 LCD 控制器、LCD 驱动器、LCD 显示装置。LCM 与单片机的接口电路比较简单,单片机的 P1 口接 LCM 的数据总线,P35,P36,P37 用于控制 LCM。LCM 的第一行显示系统时间,第二行显示分
20、机的设置温度、实际温度和工作状态。如果在 1 m 内没有任何操作,则液晶显示屏上开始循环显示各个点的实际温度值、预置温度值以及工作状态,每一个点的数据在液晶屏上显示的时间是 8 s。3 RS 485 通信协议 为实现上位机与多台下位机通信可靠稳定,上位机与下位机通信波特率都为 9 600 bs,通信方式均为串行工作方式 3,每帧通信数据包括 1 个起始位,1 个停止位,8 个数据位,1个奇校验位。通信模式采用主从方式,上位机为主机,下位机为从机,主机地址为 1,从机地址是 2,3,4,;主机与从机之间采用一问一答方式,从机之间不能相互通信。每个上行下行的数据包的字节个数都是一样的,从机收到数据
21、包后向主机回复一个数据包。每个数据包长度为 4 B,下行数据包格式:地址信息(1 B)、命令信息(1 B)、温度设置值(1 B)、检验码(1 B);上行数据包格式:主机地址信息(1 B)、命令应答信息(1 B)、实测温度值(1 B)、检验码(1 B)。命令信息和命令应答信息就是指从机的工作状态。主机采用轮询方式访问各从机,在发出指令后,主机进入查询状态,等待从机应答。从机不断查询总线,如主机访问地址与从机地址相符,并且校验通过,则执行指令,并保存设置温度值,然后将相关信息以上行数据包格式发回主机。如不是本机地址或校验码错误,则丢弃指令及数据。传输过程中的误码校验采用校验和的方式,即先将要发送的
22、数据包的所有字节相加,然后截短到一个字节长度。4 系统软件设计 41 下位机程序设计 下位机程序主要包括 DSl8820 传感器温度采集子程序、串行通信子程序、输出控制子程序。主程序循环调用温度采集子程序和输出控制子程序,利用串行中断来接收上位机发送的信息并回复主机(上位机),接收数据包的长度是 4 B,发送数据包的长度也是 4 B。其串行中断接收发送程序流程图如图 4 所示。42 上位机程序设计 上位机程序主要包括键盘扫描子程序、串行通信子程序、液晶显示子程序。利用 T0 产生 50 ms 定时中断来进行时间换算、实时更新液晶显示屏上的信息;在主程序中利用循环来查询按键、向下位机发送数据;利
23、用串行中断来接收下位机的回复数据。上位机接收数据过程与下位机接收数据过程一样,其主程序流程图如图 5 所示。系统采用一问一答的通信方式,上位机是主机,在向从机(下位机)发送完数据之后要调用延时程序等待从机的回复。5 结 语 该系统能够实现多点温度检测控制,操作方便,配置简单,有效地节省了人力物力,实现自动化,具有通用性,可用于多种场合,具有很好的实用价值。51 单片机温度控制与测量 2009-06-01 12:46 本装置的功能是对温度进行实时监控与控制。由温度传感器 DS18B20 对温度进行采样和转换送入单片机,并与设定的报警温度上下限值进行比较,通过 LCD 显示出来。如果实际温度超过设
24、定的上下限值,一方面由 LCD 显示信息,并发出报警声;另一方面自动控制继电器(RELAY)接通或断开,从而控制加热源的开与断,达到对温度进行实时控制 电路图 阅读全文 类别:程序设计|评论(4)|浏览(706)单片机简单时钟设计 2009-06-01 12:17 电路 本毕业设计设计了一个宽量程多点智能化的粮仓温湿度监测应用系统。随着科学技术的日新月异,人类社会取得了长足的进步!在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。本系统采用技术成熟的SHT11 芯片作为测量湿度和温度的传感器。SHT11 是内部集成 C 总线接口的单片全校准
25、数字式新型相对湿度和温度传感器。SHT11 具有数字式输出、免调试、免标定、免外围电路及全互换的特点。SHT11全量程标定,并且可以二线数字输出。SHT11的湿度测量范围为0100%Rh,温度测量范围为-40+123.8,湿度测量精度为3.0%Rh,温度测量精度为0.4,响应时间4s;内部自带信号调理电路和 A/D 转换电路。控制系统芯片采用技术成熟,功能强大、价位低廉大众化的 AT89C51 单片机。LED 显示电路,声光报警电路都由 AT89C51单片机控制。同时设计了能给系统提供稳定工作电压的电源电路。为了提高系统的抗干扰性能,对湿度、温度的检测采用了硬件抗干扰和软件抗干扰的综合方法。硬
26、件采抗干扰措施采用集成看门狗芯片 DS1232,它使系性能得到了改善。最后设计了系统各个功能部分的软件程序。在设计中,对误差产生的原因也进行了一些理论上的分析,并证明了这种设计方案是可行的。由本设计课题做成的温湿度检测系统结构简单、价格便宜、量程宽,具有较高的可靠性、安全性及实用性。关键词:单片机 SHT11 温湿度传感器 C 总线接口 第一章 绪论 1.1 课题背景与应用意义 1.1.1 温湿度与粮食品质的关系 1.1.2 检测温湿度的意义 1.2 国内外发展趋势 1.3 系统主要性能指标 1.4 主要工作任务 1.5 本章小结 第二章 系统方案选择和工作原理 2.1 系统概述 2.2 系统
27、设计方案选择 2.3 系统工作原理 2.4 本章小结 第三章 系统硬件设计 3.1 AT89C51 构成的最小系统 3.1.1 晶振回路 3.1.2 复位电路 3.2 温湿度传感器的选择 3.2.1 温湿测量相关概念 3.2.2 温湿度传感器的选择 3.2.3 SHT11 的传输特性 3.2.4 C 总线简介 3.3 温湿度测量回路的设计 3.4 显示电路的设计 3.4.1 LED 两种接法 3.4.2 LED 两种显示方法 3.5 报警电路设计 3.6 电源电路设计 第四章 系统软件设计 4.1 主程序的设计 4.2 C 模块程序设计 4.3 LED 显示程序设计 4.4 报警电路程序设计
28、4.5 本章小结 第五章 系统的抗干扰措施 5.1 硬件抗干扰措施 5.2 软件抗干扰措施 5.3 本章小结 第六章 总结 附录 A 系统原理图 附录 B 系统程序补充 多点温度监控具有重要的现实意义。例如,在粮仓需要对粮食进行多点温度监控,以避免粮食的腐烂和变 质;在造纸、纺织等行业中,需要测量旋转滚筒表面的多点温度。但在传统的多点温度监控系统中大都采用模 拟温度传感器(例如 AD590)一般经前端放大、A/D 变换和数据修正等过程。经实践应用分析发现:传统电路 设计上存在电源干扰、滤波不可靠,线路过于复杂、无屏蔽措施等不可靠因素。而采用单总线数字温度传感 器 DS18B20 可将温度直接转
29、化为串行数字信号供微机处理,而且在单总线上可以挂多片DS18B20,微机只需 一根端口线就能与多片 DS18B20 进行通行。因此,由单片机和 DS18B20 构成的分布式多点温度监控系统改变传统的温度采样模式,具有可靠性高、线路简单、测量精度高、功能便于扩展等优点。系统总体结构原理 粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么针对粮食储藏的特殊性,我们选择了粮仓内的温度和湿度作为主要监测参数,把粮虫发生情况作为辅助参数。整个监测系统由上位管理主机(HOST)、USB/CAN 转换器和多个智能节点组成。节点的数量由大
30、型仓库里的粮库数量决定,一般在采用标准帧进行 CAN 通信时,节点不超过 110 个;采用扩展帧 CAN 进行 CAN 通信时,节点数量原则上无限制。整个监测网络采用总线式拓扑结构,其结构原理图如图 1 所示。上位管理机采用 PC 机,主要完成整个监测网络系统的参数设置、粮库的状态查询、数据处理、粮情分析、超限实时报警和报表打印等功能。下位智能节点由单片机、数据采集电路和 CAN 通控制驱动电路构成。下位机不仅要实时监测本粮库内各个测试点的温度、湿度和粮虫发生情况,并保存和显示结果,还要负责接收上位管理机的命令,根据上位机的要求上传数据。USB/CAN 转换器负责将上位机通过 USB 口输出的
31、命令转换成 CAN 总线数据格式后,再下传到CAN 总线;或者将下位机通过 CAN总线上传的数据转换成 USB数据格式后,再送到 PC 机。2 下位机硬件电路结构 下位机以单片机 AT89S52 为核心,通过扩展显示电路、数据采集电路和 CAN 通信模块构成一个完整硬件体系,如图 2 所示。21 数据采集电路 数据采集电路由温度采集电路、湿度采集电路和粮虫检测电路构成。温度检测采用Dallas 公司生产的单总线数字温度传感器 DS18B20,它不仅能直接输出串行数字信号,而且具有微型化、低功耗、高性能、易于微处理器连接和抗干扰能力强等优点。DS18B20 数字温度传感器对于实测的温度提供了 9
32、-12 位的数据和报警温度寄存器,它的测温范围为-55+125,其中在-10+85的范围内的测量精度为 0.5。由于每个 DS18B20 有唯一的一个连续 64 位的产品号,所以允许在一根电缆上连接多个传感器,以构成大型温度测控网络。图 2 电路中,设计了两条测温单总线,每条单总线用一只场效应管提供电源,每条总线上可并联十几只数字温度传感器 DS18B20。湿度检测采用湿度传感器 HIH3610 和 DS2438 组合模块。HIH-3610 是美国Honeywell 公司生产的相对湿度传感器,该传感器具有精度高、响应快速、高稳定性、低温漂、抗化学腐蚀性能强及互换性好等优点。HIH-3610 采
33、用热固聚酯电容式传感头,在芯片内部集成了信号处理功能电路,可以完成将相对湿度值变换成电容值,再将电容传转换成线性的电压输出。因此它输出的模拟湿度信号,不能直接送单片机处理,必须经过 A/D 转换。DS2438 也是 Dallas 公司的单总线器件,具有 A/D 功能。HIH3610 和 DS2438 可以组合在一起,构成单总线数字湿度传感器模块。粮虫检测器,当检测到粮食虫害发生时,粮虫检测器输出负脉冲,送微处理器记数和处理。系统采用一个 8 输入与非门,可带 8 台粮虫检测器。22 显示电路 显示电路和微控制器的连接采用 I2C 总线,由于 AT89S52 单片机内部没有集成 I2C总线模块,
34、故采用软件模拟的方法实现 I2C 通讯。显示驱动器采用具有 I2C 总线的器件SAA1064,可动态驱动 4 位 8 段 LED 显示器。它内部具有显存和自动刷新功能,可免去微控制器的频繁刷新任务,腾出大量时间做其他事情。23 CAN 通信模块 CAN 是现场总线中唯一被批准为国际标准的现场总线。其信号传输介质为双绞线。通信速率最高可达 1Mbps/40m,直接传输距离最远可达 10Km/5Kbps。CAN 协议采用 CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。当节点严重错误时,具有自动关闭的功能,以切断该节点于总线的联系,使总线上的其它节点及其通信不受影响,具有较强的抗干扰
35、能力。图 2 中的 CAN 控制驱动模块由 CAN 控制器 SJA1000、光耦 6N137 模块和 CAN驱动器 82C50 构成。SJA1000 负责与微控制器进行状态、控制和命令等信息交换,并承担网络通信任务;82C50 为 CAN 控制器和总线接口,提供对总线的差动发送和对 CAN 控制器的差动接收功能。光耦 6N137 起隔离作用。3 系统软件设计 系统软件由上位机主程序和下位监控程序构成,上位机主程序用 VB 语言开发,采用模块化设计,具体的功能模块如图 3 所示。利用 VB 编写的应用软件人机界面友好,便于维护和管理。下位机的软件由下位机主程序、温度采集程序、湿度采集程序、粮虫检
36、测中断程序和 CAN 收发中断服务程序等构成。由于篇幅所限这里仅给出了下位机主程序和 CAN 通信中断服务程序的流程图,分别如图 4 和图 5 所示。在下位机主程序里,系统要首先进行单片机的初始化、CAN 的初始化、开外部中断、开启计数器和使能 CAN 接收中断的过程,是系统处于就绪状态,然后调用数据采集程序和数据处理程序,实时采集粮库现场的参数并予以处理,处理后的数据要保存起来供上位机随时查询,同时送显示器显示。粮虫检测中断程序主要完成粮库发生粮虫后的处理,一方面要判断粮虫计数器是否计满,计满清零并保存数据;一方面设置粮库发生虫害标志,并供上位机查询和显示。CAN 收发中断服务程序负责上下位
37、机的命令和数据传送。当上位机发送命令时,CAN接收一个报文,CAN 的中断使能标志置 1,产生接收中断,CPU 立即响应,进入中断服务程序,然后系统再根据上位机的具体命令,向上位机传送该节点工作状态或采集的数据。4 结论 由于系统采用了全数字化的温度、湿度传感器,直接输出的是表示温度和湿度的数字信号,不存在由模拟量到数字量转换的中间环节,所以该系统具有稳定可靠、测量精度高、一致性好、无需任何调整、信号线长短不会影响其性能等优点,还有单总线也带来安装方便、线路清晰、节省线材等长处。上下位机通信采用 CAN 总线通信方式,提高了系统内部的速率和实时性,降低了误码传送的概率。粮虫检测器的设计使该系统除了能实时监测温度和湿度外,也能监测粮食虫害的发生情况。