基于CAN的农业灌溉监测系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CAN的农业灌溉监测系统设计
【摘要】我国农业用水浪费现象严重,利用效率低,如何提高农业灌溉水利用率显得尤为重要,为了能更好的利用农业灌溉水资源,设计了基于CAN总线控制的农业灌溉流量实时监测系统,该监测系统有灵敏测量和显示功能,系统使用AT89C51单片机作平台对流量显示,利用RG-1流量计对流量测量,并利用独立CAN通信控制器SJA1000及CAN总线标准设计出的水流量监测系统。
该系统具有结构简单、成本低的特点,实现了对农业灌溉水流量准确监测、控制。
【关键词】CAN总线;单片机;流量计;SJA1000
0.引言
随着经济社会的发展,水资源供需的矛盾日益显著。
我国水资源利用效率很低,农业灌溉水利设施建设落后,水浪费现象严重。
因此,如何提高农业灌溉水资源的利用率就显得极其重要。
通过检测量灌溉流量的实时信息通讯来有效地节约利用水资源。
基于现场总线的通讯与控制技术是目前工业自动控制领域中的主要技术之一,在自动控制领域中应用日益广泛。
在国际上现场总线技术在检测量灌溉流量已经到广泛推广阶段。
但我国在大田农业灌溉控制系统应用上,基于总线方式的控制技术还显得相当薄弱[1]。
因此,借鉴先进的设计思想,开发出具有自主知识产权基于现场总线的灌溉控制系统符合农业现代化的需求。
1.系统组成
本系统CAN总线模块以AT89C51为微处理器,在CAN总线通信接口上,采用了飞利浦公司的SJA1000和TJA1050芯片,SJA1000是独立CAN通信控制器,TJA1050为高性能CAN总线收发器。
电路主要由微控制器AT89C51、独立CAN通信控制器SJA1000、CAN总线收发器TJA1050和流量计四部分所构成。
微处理器AT89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。
系统结构原理图如图1-1所示:
1.1灌溉系统测量及数据处理
水流量传感器主要由阀体、水流转子组件和霍尔传感器组成。
它装在进水端,来检测进水量,水流驱动磁性转子转动且转速随流量变,霍尔传感器输出脉冲信号,反馈给单片机。
单片机通过计算输出脉冲数,结合水流量计的参数计算流过的水流量;单片机I/O与存储器的接口连接,将采集后的数据经处理后存放在存储器中,单片机的I/O接口与液晶及上位机连接,经单片机采集处理后的数据可实时显示并上传至上位机保存。
1.2灌溉系统通信部分的组成
本设计选用SJA1000CAN控制器及TJA1050总线收发器,其中TJA1050可
以支持110个CAN节点。
SJA1000用于汽车和一般工业环境中的控制器局域网络中,它增加了支持具有很多新特性的CAN2.0B协议的工作模式[2]。
片内含信息缓冲、位流处理、位定时逻辑、接收滤波、错误管理逻辑等电路,并配置有丰富的功能寄存器。
可完成数据成帧、总线填充、错误检测、总线仲裁及错误界定处理等规范。
/CS为低时,CPU的外部存储地址可选种SJA1000,CPU通过这些地址可以对其进行读/写操作。
SJA1000的/INT与CPU的INT0相连,CPU通过中断方式对SJA1000进行访问[3]。
为加强CAN总线节点抗干扰能力,要求SJA1000当的RX0,TX0不直接与TJA1050中的RXD,TXD相连,而要通过光藕6N137进行连接。
TJA1050是控制器区域网络(CAN)协议控制器和物理总线之间的接口。
TJA1050可以为CAN控制器提供差动接收性能,为总线提供差动发送性能,能够将输出信号CANH和CANL的最佳匹配,将电磁辐射变得更小。
TJA1050的CAN总线接口部分采取了抗干扰和安全的一些措施。
TJA1000的两个引脚CANL,CANH都是用一个5.1Ω的电阻与CAN总线连通,其中电阻可以起到限流保护作用,使TJA1000不被过流的损害[4]。
在地与CANL,CANH之间并联了两个30PF的电容,具有防辐射和滤除总线上的高频干扰的能力。
2.系统的软件设计
CAN总线的软件设计主要包含三部分:CAN初始化程序、报文的发送程序、报文的接收程序[5]。
CAN总线需要初始化的CAN控制寄存器有:模式寄存器、时分寄存器、接收代码寄存器、输出控制寄存器等。
值得注意的是以上寄存器只能在CAN控制器处于复位状态下才可写访问[5]。
发送数据程序把数据存储区中待发送的数据取出,组成信息帧,并将主机的ID地址填入帧头,将信息帧发送到CAN控制器的发送缓冲区。
在接收到主机的发送请求后,发送程序启动发送命令。
信息从CAN控制器发送到总线是由CAN控制器自动完成的。
信息从CAN 总线到CAN控制器的接收缓冲区也是由CAN控制器自动完成的。
接收程序只需从接收缓冲区读取信息,并将其存储在数据存储区。
2.1 CAN总线节点初始化程序
节点初始化主要指的是在系统上电以后对89C51以及CAN控制器SJA1000所进行初始化,来保证工作主频、输出特性以及波特率等。
89C51的初始化能通过结合他们的监控任务来进行,主要就是完成对中断允许与屏蔽以及定时器的使用与和设置等。
SJA1000内部没有微处理器,要实现它的初始化要依靠89C51对其编程实现。
在复位模式下才能进行控制器的初始化,因此在初始化程序中第一要把工作方式置换为复位模式,然后设置验收滤波方式等。
2.2报文发送程序
发送程序负责节点报文的发送,发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,并将SJA1000的命令寄存器发送请求标志位置位。
SJA1000会自动启动发送过程。
在往SJA1000发送缓存区发
送报文之前,必须先对发送缓冲器是否释放进行判断,只有当发送缓冲器标志为“1”时,发送缓冲器才被释放,可将新报文写入发送缓存。
2.3报文接收程序
SJA1000报文接收是独立完成的,接收到的报文经滤波验收暂存接收缓冲器FIFO中。
报文进到接收缓冲器之后,状态寄存器的RBS被置‘1’,与此同时若中断使能寄存器的RIE被设为‘1’时,中断寄存器的RI位也会被置为‘1’,然后SJA1000向CPU提出中断请求。
3.系统应用必要性总结
中国是一个水资源严重缺乏的国家,提倡节水灌溉势在必行,实施按方收费是农田灌溉用水的必然趋势,最终实现农田灌溉用水的微机自动监测、计量、收费一体化。
CAN总线是自动化控制领域的热点之一,被誉为自动化领域的局域网,现在已经广泛应用于工业控制的各个领域。
在本次设计中将控制器与CAN 总线进行了很好的结合,在应用中充分发CAN总线的优势,在农田灌溉监测中发挥更大的作用。
[科]
【参考文献】
[1]史九根等.CAN 现场总线设计技术[M].北京:国防工业出版社,2004.
[2]伍伟杰.基于CAN总线的节水灌溉自控系统设计与研究[J].节水灌溉,2006(1):13-5.
[3]陈杨,刘曙生,龙志强.基于CAN总线的数据通信系统研究[J].测控技术,2000,19(10):53-55.
[4]邬宽明.CAN总线原理和应用系统设计.北京:北京航空航天大学出版社,1996.
[5]史久根,张培仁,陈真勇.CAN现场总线系统设计技术.北京:国防工业出版社,2004.。