基于CAN的农业灌溉监测系统设计

2024年01月30日 | 硬件产品

点击:1

  • 产品概述

  近年来,随着经济社会的发展,各地水需求量逐渐增加,水资源供需的矛盾日益显著。我国水资源利用效率很低,农业灌溉水利设施建设落后,水浪费现象严重。因此,怎么样提高农业灌溉水资源的利用率就显得非常非常重要。经过测量灌溉流量的实时信息来有效地节约利用水资源,这就用到了自动控制系统。确保系统稳定性,降低系统成本的重要环节是在自控系统中使用何种通讯方式。基于现场总线的通讯与控制技术是目前工业自动控制领域中的主要技术之一,它具有信息数字化和控制分散化等技术优点,在自动控制领域中应用日益广泛。现场总线技术的国际领先水平已达到二芯载波电缆控制10Km距离的推广阶段,但我国在大田农业灌溉控制管理系统应用上,基于总线方式的控制技术还显得相当薄弱[1]。因此,借鉴先进的设计思想,开发出具有自主知识产权的基于现场总线的灌溉控制管理系统,符合农业现代化对自动化技术的需求。

  组成现场网络,并通过以AT89C51处理器为核心的一个数据转换系统。本系统CAN总线为微处理器,在CAN总线通信接口上,采用了飞利浦公司的SJA1000和TJA1050芯片,SJA1000是独立CAN通信控制器,TJA1050为高性能CAN总线收发器。电路主要由微控制器AT89C51、独立CAN通信控制器SJA1000、CAN总线和流量计四部分所构成。微处理器AT89C51负责SJA1000的初始化,经过控制SJA1000实现数据的接收和发送等通信任务。系统结构原理图如图1-1所示:

  水流量传感器主要由阀体、水流转子组件和霍尔传感器组成。它装在进水端,用于检测进水流量,当水通过水流转子组件时,磁性转子转动并且转速随着流量变化而变化,霍尔传感器输出相应脉冲信号,反馈给控制器,由控制器判断水流量的大小,进行调控。接线端口有正极、信号输出线、负极。单片机通过计算输出脉冲数,结合水流量计的参数计算流过的水流量;单片机I/O与存储器的接口连接,单片机将采集后的数据经处理后可以存放在存储器中,单片机的I/O接口与液晶以及上位机连接,经过单片机采集处理后的数据能够直接进行实时显示并上传至上位机保存。流量计的接线水流量传感器接线灌溉系统通信部分的组成

  CAN总线器件比较流行的有两大种:一种是有在片CAN的微控制器。另一种是独立的CAN控制器,本设计选用PHILIPS公司的SJA1000CAN控制器以及TJA1050总线A/B规约。SJA1000用于汽车和普通工业环境中的控制器局域网络中,它是PHILIPS半导体PCA82C200CAN控制器(BasicCAN)的替代产品。而且,它增加了支持具有很多新特性的CAN2.0B协议的工作模式[2]。片内含信息缓冲、位流处理、位定时逻辑、接收滤波、错误管理逻辑等电路,并配置有丰富的功能寄存器。可完成数据成帧、总线填充、错误检测、总线仲裁及错误界定处理等规范。SJA1000的数据线为低时,CPU的外部存储地址可选种SJA1000,CPU通过这一些地址可以对SJA1000进行读/写操作。SJA1000的ALE,/WR,/RD引脚分别与CPU的相应引脚相连。/INT与CPU的INT0相连,CPU通过中断方式对SJA1000进行访问.试验中应加强CAN总线节点的抗干扰的能力,这就要求SJA1000当的RX0,TX0不直接与TJA1050中的RXD,TXD相连,而要通过光藕6N137和TJA1000相接,这样总线上的各个节点之间的电气隔离就能更好的实现。不过,需要注意的是,这样光藕部分所应用的两个电源必须完全电气隔离,不然的话采用光偶就失去了意义。电源隔离能够使用带多个5V隔离输出开关电源来实现[3]。单片机与SJ1000的连接原理图如图1-3所示:

  TJA1050是控制器区域网络(CAN)协议控制器和物理总线可以为CAN控制器提供差动接收性能,为总线提供差动发送性能。能够将输出信号CANH和CANL的最佳匹配,能够将电磁辐射变得更小。TJA1050的CAN总线接口部分采取了抗干扰和安全的一些措施。TJA1000的两个引脚CANL,CANH都是用一个5.1的电阻与CAN总线连通,其中电阻能够更好的起到限流保护作用,使TJA1000不被过流的损害[4]。在地与CANL,CANH之间并联了两个30PF的电容,具有防辐射和滤除总线上的高频干扰的能力。再就是在CANH,CANL与地间可以接入两个防雷击管,当地与两个各输入端之间出现瞬变干扰的时候,防雷击管的放电能够更好的起到一定的保护作用[5]。TJA1050设计原理图如图1-4所示:

  CAN总线的软件设计主要包含三部分:CAN初始化程序、报文的发送程序、报文的接收程序[6]。CAN初始化主要是设置CAN的通信参数。需要初始化的CAN控制寄存器有:模式寄存器、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。有必要注意一下的是以上寄存器只能在CAN控制器处于复位状态下才可写访问[7]。发送数据程序把数据存储区中待发送的数据取出,组成信息帧,并将主机的ID地址填入帧头,将信息帧发送到CAN控制器的发送缓冲区。在接收到主机的发送请求后,发送程序启动发送命令。信息从CAN控制器发送到总线是由CAN控制器自动完成的。信息从CAN总线到CAN控制器的接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取信息,并将其存储在数据存储区。