当前位置:智城范文网>范文大全 > 征文 > 基于MCGS和CAN总线的粮库温湿度监测系统

基于MCGS和CAN总线的粮库温湿度监测系统

时间:2022-03-16 08:25:35 来源:网友投稿

zoޛ)j馐4 
O 
c###/H 
S?niM6}6Mz77u_}}H?hv�(WjpK9wuvwiB�Ѐ7i0!ⶊڝ(zy2צ0!Z方案

为实现某大型粮库多点温湿度检测目的,设计了一种基于CAN总线网络的分布式监测系统。布放于各测量现场的CAN节点结构完全相同,主要由现场单片机、集成温湿度传感器、独立CAN控制器、CAN总线驱动器组成,现场单片机主要负责温湿度数据的采集并将数据传送至CAN总线。CAN/RS232通信转换模块主要包括管理单片机、独立CAN控制器、CAN收发器、MAX232核心芯片,管理单片机主要负责CAN节点与上位PC机(以下简称上位机)间的通信联络控制。

上位机主要负责温湿度数据的保存、显示、管理以及采集的调度,其可视化监控界面基于MCGS平台开发,上位机与管理单片机之间通过RS232串行口互换数据,笔者通过MCGS平台下的串口驱动构件开发,可以实现组态软件MCGS与管理单片机间的软件通信功能。系统总体框图如图1所示。

2 系统硬件设计

系统中硬件电路设计主要包括单片机与温湿度传感器的接口电路设计、CAN总线接口电路设计、RS232接口电路设计。现场单片机和管理单片机都选用宏晶公司的增强型8位单片机STC89C52,RS232接口电路简单通用,而传感器接口电路和CAN总线接口电路设计如下。

2.1 温湿度采集电路

系统中选用的AM2311是一款含有已校准数字信号输出的温湿度复合传感器,其敏感元件包括1个电容式感湿元件和1个高精度测温元件,并与1个高性能8位微处理器相连接。成品化传感器都通过严格的湿度校验室校准,校准系数储存于微处理器的存储单元中,以供传感器内部在处理检测信号时调用,测量精度高,抗干扰能力强。通信接口采用标准I2C接口模式,可直接挂接于I2C总线上,无需额外布线。

AM2311具有4个引脚,与单片机接口连接方便。系统中AM2311与现场单片机的接口电路如图2所示,SCL为串行时钟引脚,与STC89C52单片机的P3.5管脚相连,用于相互间数据通信同步,SDA引脚内部为三态双向结构,与STC89C52的P3.4相连,用于读、写传感器数据。

2.2 CAN总线接口电路

CAN总线接口是所有设备或其他网络连接到CAN总线的桥梁,负责CAN协议的解释与执行,并为CAN节点中的微处理器提供CAN总线的状态信息。

本研究的CAN总线接口电路主要由SJA1000芯片和PCA82C250芯片构成。SJA1000由NXP半导体公司推出,它是一种独立CAN控制器,可以工作于BasicCAN和PeliCAN这2种协议,BasicCAN支持CAN2.0A协议,PeliCAN支持具有很多新特性的CAN 2.0B协议,位速率可达1 Mbit/s,拥有完善的错误管理机制,能够实现CAN协议中最复杂的数据链路层功能,微处理器通过对SJA1000编程设置其工作方式,控制其工作状态,启动CAN报文的发送并对反馈的报文予以接收。PCA82C250是CAN控制器与CAN总线之间的接口芯片,它一方面为CAN控制器提供差分信号的接收功能,同时为CAN总线提供差分信号的发送功能,PCA82C250属于高速CAN总线驱动器[4]。

CAN总线接口电路的原理图设计见图3。STC89C52单片机负责数据处理和SJA1000的初始化,并通过SJA1000的1组控制寄存器和1个RAM报文缓冲器实现数据收发功能。SJA1000的AD0~AD7连接到STC89C52的P0.0口,片选/CS端连接到STC89C52的P2.0,对应的CPU片外存储器基址为0xFE00,在此情况下STC89C52可以对SJA1000进行访问的地址范围为0xFE00~0xFE31。SJA1000的/RD、/WR、ALE分别连接至STC89C52的相应引脚,/INT接STC89C52的/INT1,STC89C52可在中断服务程序中访问SJA1000。SJA1000的复位端/RST为低电平有效,其接STC89C52的P2.7口。

PCA82C250的CANH和CANL引脚分别通过1个5 Ω的限流电阻与CAN总线相连,以降低过流对PCA82C250的影响,CANH、CANL与地之间各自连接了1个30 pF的小电容,以起到滤除CAN总线上高频噪声的作用。PCA82C250的RS端通过47 kΩ电阻接地,使其工作于斜率控制方式。

3 系统软件设计

软件设计主要包括温湿度数据采集、CAN总线通信、MCGS串口驱动以及上位机组态等。CAN总线通信程序和MCGS串口驱动程序是本系统软件设计中的核心与关键,设计思路如下。

3.1 CAN总线报文收/发程序

CAN总线通信程序设计包括CAN节点初始化、CAN总线报文发送程序设计和CAN总线报文接收程序设计。CAN通信前首先需要对SJA1000进行初始化参数设置,与初始化有关的寄存器有:总线定时寄存器BTR、中断使能寄存器IER、时钟分频寄存器CDR、输出控制寄存器OCR。CAN初始化只能在复位模式下进行。初始化完成后,CAN控制器就可以设置进入工作模式,执行正常的通信任务,需要用到SJA1000的命令寄存器、状态寄存器、中断寄存器、接收缓冲区、发送缓冲区等。CAN总线的通信任务程序包括报文发送子程序及报文中断接收子程序[5]。

为使程序结构紧凑,CAN总线通信软件设计中定义了1个结构体struCAN_Comm,其成员变量有:报文ID、报文性质(远程帧或数据帧)、报文长度、报文类型(扩展帧或标准帧)。根据输入参数配置该结构体,是发送子程序的主要任务。在向SJA1000发送报文之前,首先需要判断其是否正在接收数据、上次发送是否成功以及发送缓冲器是否锁定等,以保证数据发送的可靠性[5]。填充报文结构体是中断接收子程序的主要任务,为防止干扰引起错误中断,需要在进入中断服务程序后先判断接收缓冲区是否有数据。报文发送和报文接收的程序流程分别如图4和图5所示。

3.2 MCGS串口驱动构件开发

目前,MCGS串口驱动构件开发有2种途径,一种是MCGS软件厂商提供了1套开放的、可扩充的接口规范和配套的高级开发工具包,允许用户根据自己的需要来开发设备驱动构件,另一种提供配套的MCGS脚本驱动开发工具实现用户个性化开发。脚本驱动开发屏蔽了大量技术细节且步骤标准,因此本研究的MCGS串口驱动构件开发采用了第2种途径,具体开发内容涉及设备属性定义、设备通道添加、设备命令编写和设备脚本代码编辑。

设备属性定义了串口驱动构件添加到MCGS通用串口父设备后显示的属性,包括设备名称、注释、数据采样周期等参数,此处选用默认参数。设备通道是现场设备与MCGS实时数据库中的数据对象间信息沟通的桥梁。设备命令为现场设备与MCGS系统之间的方法接口,它利用MCGS脚本开发环境下提供的强大库函数,通过编程设置可以方便地实现数据解析、数据处理、与MCGS系统的数据交换等功能,设备命令类似于系统的功能子函数[6-7]。设备脚本包括采集脚本、单通道写脚本、初始化脚本、退出脚本等。

为保证数据通信正常,本研究串口驱动构件的开发采用ACSⅡ码通讯协议(字符型协议),其格式为:“@” +“xx” + “command”。“@”是帧头,长1个字符;“xx”是设备地址,固定长2个字符;“command”表示设备命令,由MCGS系统关键字确定。下面以1#CAN节点的温湿度检测为例,给出其采集脚本代码。

4 系统调试与运行

管理单片机通过串口和上位机交换数据,其外接晶振频率为11.059 2 MHz,在单片机的初始化程序中编写语句TH1=0xFD、SMOD=0,可获得9 600 bps的通信波特率,该波特率误差率恰好为0,串口通信的可靠性大大提高[8]。基于MCGS脚本驱动开发工具设计好的程序以mdr格式保存,将此文件拷贝到D:\MCGS\Program\Drivers的目录下,通过在MCGS组态环境下的设备窗口中添加该串口驱动构件,能够实现MCGS与管理单片机之间的通信。

在MCGS组态环境中新建“粮库温湿度监测系统.MCG”工程,按照粮库温湿度监测系统功能要求,遵循通用版组态软件MCGS的组态方法,完成系统上位机可视化监控界面的开发工作。所有组态工作完成后,按“F5”键进入MCGS运行环境,系统上位机运行主界面如图6所示。

5 结论

设计的粮库温湿度监测系统采用分布式结构,通过布置于现场的智能CAN节点,可以实现粮库不同监测点温湿度数据的采集与变送。考虑到目前商用PC机一般不具备CAN通信接口,设计了1个CAN/RS232通信转换模块,用以实现CAN总线数据和RS232串口数据间的互换[9]。上位机统一监测界面基于MCGS平台开发,人机交互友好。MCGS与底层单片机之间的通信驱动程序需要用户自己开发,为此,笔者基于MCGS脚本驱动开发工具开发了MCGS串口驱动构件,现场调试表明,MCGS与单片机之间数据通信稳定可靠,实时性高。

参考文献:

[1]王永志,刘媛媛. 大型粮库的温湿度监测报警控制系统[J]. 农机化研究,2008(8):167-169.

[2]袁 江,曹金伟,邱自学,等. 基于WSN的粮库温湿度无线监测系统[J]. 测控技术,2012,31(4):77-81.

[3]饶运涛,邹继勇,王进宏,等. 现场总线CAN原理与应用技术[M]. 北京:北京航空航天大学出版社,2007.

[4]卢 超. 基于CAN总线分布式矿井温湿度监测系统研发[J]. 煤炭科学技术,2011,39(9):94-99.

[5]邓德源,王成栋,苗 强. 基于CAN总线的温湿度在线监测系统设计[J]. 仪表技术与传感器,2012(12):40-42.

[6]黎志刚,王俊元,刘 波. 基于MCGS的SMC电动执行器控制方法研究[J]. 制造业自动化,2014,36(7):16-18.

[7]朱 林,李兰云. 嵌入式系统在稀土萃取流量控制中的应用[J]. 自动化仪表,2013,34(3):34-37.

[8]包建华. 基于MCGS的步进电机控制系统设计[J]. 计算机测量与控制,2012,20(3):702-704.

[9]王 强,张建喜. RS232通信网络与CAN总线通信网络互联设计[J]. 电子技术应用,2010,36(9):158-160.

推荐访问: 粮库 温湿度 总线 监测系统 MCGS

版权所有:智城范文网 2010-2025 未经授权禁止复制或建立镜像[智城范文网]所有资源完全免费共享

Powered by 智城范文网 © All Rights Reserved.。粤ICP备20058421号