基于CAN总线的温室测控系统的研究与设计

最新更新时间:2011-08-13来源: 21IC关键字:CAN总线  现场控制  网络RS-485  总线环境 手机看文章 扫描二维码
随时随地手机看文章

  CAN(Controller Area Network)总线又称为控制局域网,是一种多主方式串行通信协议,能有效地支持具有很高安全等级的分布实时控制。由于CAN总线具有造价低、通信速度快、可靠性高、实时性强等突出优点,在汽车行业、机械工业、家用电器及传感器等领域应用广泛。

  温室控制技术是农业现代化的重要内容,在目前的温室系统中主要是靠RS-485总线来组成控制网络,将采集到的数据和信息传送到主控机中。其通信速率、节点连接数目都受到一定的限制。

  本文提出了以CAN总线构成现场控制网络。CAN总线的通信速率最高可达1 Mbps/40 m,挂接的设备可达110个。另外信号的传输采用短帧结构,这样传输时间短,受干扰的概率低。并且一旦网络中某个节点故障时,该节点具有自动关闭输出功能,以主动切断该节点与总线的联系,使网络上其他节点及通信不受影响,具有较强的抗干扰能力,降低了恶劣环境对于温室系统的影响,提高了系统的实时性、可靠性和扩充性。

  1 系统总体设计

  温室测控系统采用分布式多主方式进行通信。系统主要由主控上位机、CAN总线和多个智能测控模块组成(注意:各个智能测控模块之间存在强烈的相互关系)。通过对温室内外,特别是温室内部各种影响作物生长的要素用相应智能传感器进行测量,然后通过CAN总线传送给主控上位机,上位机进行数据打印、分析和处理、参数设置并且控制有关设备等工作,从而实现对温室要素的调控,保证了作物生长所需的环境。系统上任何节点均可在任意时刻主动向其他节点发出信息,支持点对点、一点对多点和全局广播方式接受和发送数据。图1是温室测控系统总体设计图。

  2 硬件平台设计

  温室测控系统的硬件平台主要由多个CAN智能节点构成,如图2所示。本系统节点采用总线型拓扑结构,两芯电缆(CANH和CANL)双绞线连接。主要由微控制器MC68S08QG8,CAN通信控制器MCP2515和CAN收发器TJA1050组成。本文中微控制器MC68S08QQ8与控制器MCP2515是通过SPI口连接,测控节点通过微控制器MC68S08QG8的IIC口来连接的。智能节点的个数是由温室内外所测控的环境要素来决定的,但是任意智能节点均可以像以太网节点那样直接挂接在CAN总线网络上,即在不牺牲可靠性的前提下进一步扩展现场测控节点的数量。

  2.1 芯片介绍

  选择一款合适的MCU是系统稳定的重要保障。综合功耗、性能和价格等各种因素的考虑,本系统采用Freescale公司的MC68S08QG8(以下简称为QG8)作为系统控制信号采集的芯片。MC68S08QG8单片机采用高性能、低功耗HCS08飞思卡尔8位微控制器为内核,是一款集成度高、结构紧凑、功能丰富、适用于各种场合的低价位单片机。MC68S08QG8除了提供Freescale丰富的外围接口与HCS08内核卓越性能的多功能组合外,还包括更长的电池寿命(即使工作电压低至1.8 V,也能发挥最大效能)、业界领先的Flash技术、3个通信接口(SCI、SPI和IIC)以及创新的开发支持等其他系列单片机不可比拟的优势。

  智能节点中CAN控制器完成了CAN协议中数据链路层和物理层的所有功能,保证通信质量。本系统选用了一种独立的CAN协议控制器——Microchip公司的MCP2515。MCP2515完全支持CAN V2.0B技术规范,MCP2515还包含3个发送缓冲器和2个接受缓冲器,减少了单片机的管理负担。与传统上使用的CAN控制器SJA1000相比较,它与MCU的连接是通过行业标准串行外设接口(SPI)来实现的,这样可以减少芯片使用的引脚,简化CAN总线的电路的连接,提高了系统稳定性。

  CAN总线收发器提供CAN控制器与物理总线之间的接口,是影响CAN总线网络安全性、可靠性和电磁兼容性的主要因素。本系统采用Phlips公司的TJA1050作为总线收发器。TJA1050有两种工作模式:高速和待机,其中待机模式可以防止由于CAN控制器失控而造成的网络阻塞。并且在TJA1050中还设计了一个超时定时器,用以对TXD的低电压(此时CAN总线上为显性位)进行监视。该功能可以避免由于系统硬件或者软件故障而造成TXD端长时问为低电位时总线上所有其他节点也将无法通信的情况出现。这也是FJA1050与82C250相比较之后最大的改进地方。

  2.2 智能节点硬件电路

  智能节点最小系统硬件电路如图3所示,主要的连接有以下3个方面:

  1)QG8的SPI接口使用4条信号线:主机输出低有效片选信号线、主机输出线SPSCK、主机输出/从机输入数据线MOSI以及主机输入/从机输出数据线MISO,分别于MCP2515的、SCK、SI、SO引脚连接。QG8的与MCP2515的中断引脚相连,可以通过中断来提高系统实时性。

  2)MCP2515的3个发送缓冲器TXBn请求发送引脚(4、5、6引脚)接到+5 V终端,两个接收缓冲器RXBn中断引脚(10、11引脚)空置。由于该测控系统对于环境的要求比较高,MCP2515的TxCAN和RxCAN并不是直接与SJA1050的TXD和RXD相连,而是通过6N137(高速光耦)后于SJA1050相连,这样很好地实现了总线上各CAN节点的电气隔离,进一步提高了该系统的抗干扰能力。不过需要特别注意的是,光耦部分电路的两个VCC、VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电掾隔离模块或带多5 V隔离输出地开关电源模块实现。虽然这部分增加了接口电路的复杂性,但是却提高了节点的稳定性和安全性,从而也提高了测控系统的性能。

  3)TJA1050的第8个引脚VREF是参考电压,输出可以空置。第5个引脚决定芯片的工作模式(高速和待机两种模式),图中和地之间接47 kΩ的电阻进入高速模式(也是正常工作时的模式)。本系统在CANH和CANL总线输入端与地之间分别接了一个SA28A(瞬态抑制二极管),当两输入端与地之间出现瞬变干扰时,通过SA28A的放电可起到一定的保护作用。在CANH和CANL之间还接了一个120 Ω的终端电阻,可以在阻抗不连续时消除通信线路中产生的信号发射。

  3 软件设计

  本系统的软件程序设计是在Freescale公司的集成开发环境——Freescale Codewarrior 5.1下完成的。该系统的软件由CAN控制器软件和应用层通信协议构成。

  3.1 CAN总线驱动层软件实现

  CAN控制器软件主要包括器件初始化、数据发送和接收。初始化工作主要是对QG8微处理器、SPI接口和MCP2515CAN控制器的初始化。其中微处理器初始化主要包括定时器、变量和外部中断的初始化。需要特别注意的是飞思卡尔单片机的定时器与其他单片机(如51系列单片机)不太一样,QG8微处理器的定时器是不能预置某个数值的,而且是只读的,因此必须要有辅助寄存器才能实现该定时器的功能,本文采用的是QG8微处理器的16位的定时器模块TPM:SPI接口的初始化主要包括对控制寄存器SPIC1和SPIC2、波特率寄存器SPIBR、状态寄存器SPIS、数据寄存器SPID的设置。MCP2515的初始化为复位MCP2515、寄存器配置。只有对MCP2515初始化后,进入了配置模式才能对相关的寄存器进行初始化,初始化工作完成后进入工作模式,进行报文发送。为了能使节点稳定的通信,CAN总线上所有的节点都必须有相同的波特率。对于振荡器时钟频率不同的器件,可以通过对波特率预分频比和每一个时间段中时间份额数量的设置来调整比特率。

  QG8是通过使用标准SPI读/写命令对寄存器进行读/写操作。外部数据和命令式通过SI引脚在SCK时钟信号上升沿传送到器件中。MCP25 15在SCK下降沿通过SO引脚发送数据。本文采用状态查询方式发送报文。首先应该禁止CAN发送中断产生,以保证报文发送不被中断。为了启动报文发送,必须将相应缓冲器的TxBnCTRL TxREQ位置1,文中是通过调用RTS2515()请求发送来实现的。缓冲器中TxBnCTRL TxP<1:0>优先级最高的报文在总线空闲时首先被发送。如果发送成功将产生中断来通知接收,否则TxBnC TRL TxRR和CANINIF.MERRF将被置位,产生发送错误状态,同时INT引脚置位,产生中断请求。具体报文发送流程如图4所示。

  为了提高系统的实时性,报文接收模块采用中断接受方式。该模块包括主程序和接受中断服务程序两部分组成,主程序必须在中断控制报文接受之前使能CAN的接受中断和微控制器QG8的全局中断。当报文发送完之后会产生一个中断通知来接收报文。首先应该看一下中断标志类型,如果是报文成功发送产生的中断,将报文读入滤波器中,否则产生报文出错标志,CANINTF.MERRF位被置1.将接收到报文的标示符字段与滤波寄存器中的值进行比较,如果两者匹配,将该报文载入相应的接受缓冲器,否则产生一个无效报文。如果缓冲器慢将会产生溢出错误,EFLG.RXOOVER位置1.报文接受成功且处理完毕后,MCU将清除中断标志,返回主程序以接受下一条报文。具体的流程图如图5所示。另外整个报文接受过程都可以在接受中断服务程序中完成,不需要与主程序发生交互作用。

  3.2 CAN总线应用层软件实现

  目前国内还没有CAN通讯的应用层协议标准,而国外现有流行的CANopen、DeviceNet和CANkingdom等应用层协议对于本系统的要求来说实现复杂会造成资源浪费。本文定义了一个简单的通信协议来完成系统所需求的功能。

  该协议中采用29位(ID.28-ID.0)标识符的扩展帧格式,这些位的发送顺序是从ID.28到ID.0,最高7位ID.28~ID.22不能全是隐性1。每一个标识符对应一条信息,只有与自己标识符相同的信息才被接收端接收。标识符ID号的大小还决定了发送的优先级和等待时间,标识符越小的报文帧优先被发送。本协议中ID号位28~24的五位表示信息采集节点,包括各种传感器模块,ID号为23~18的四位表示显示节点,包括各种数据的显示和报警节点。ID号为19~14的六位为执行控制节点,包括CO2发生器、循环风扇等控制设备节点。ID15~13为信息类别,包块各种命令信息和状态信息等信息节点。ID12~ID0为预留。

  4 系统测试

  为了测试本设计的性能,在实验室里进行了CAN总线节点之间的温度测试,如图6所示。在18点和19点(横坐标表示时间)之间进行了温度的测试,在18点钟到18点30分之间A和B节点一直显示实验室的室内温度(15~17℃之间),过半个小时后将B节点放入22℃的温水中,然后取出。从图中可以看到红色曲线(A节点温度曲线)一直是恒温状态(15~17℃之间),而白色曲线(B节点温度曲线)在18点30分钟温度升到22℃,随着温度传感器被取出,温度也在下降到15~17℃之间。

  5 结束语

  本文根据目前温室系统存在的问题,提出了用CAN总线构成温室测控系统传输网络,并根据系统需要设计了简单的应用层通信协议和进行了CAN节点之间温度测试。测试结果表明:本设计传输网络结构简单、可靠性高。另外该测控模块也可以运用在锅炉控制、楼宇控制等各种工业现场测控系统中,实用性强、应用范围广。

关键字:CAN总线  现场控制  网络RS-485  总线环境 编辑:探路者 引用地址:基于CAN总线的温室测控系统的研究与设计

上一篇:合理的机房布线对节能降耗起到重要作用
下一篇:基于FAN7710V的新型高性能节能灯镇流器设计

推荐阅读最新更新时间:2023-10-18 15:34

STM32--CAN总线应运
CAN 总线在控制领域使用的非常广泛,如今大多数CPU芯片外围都扩展CAN接口。本文重点介绍以STM32F103E系列芯片为基础介绍CAN 总线的使用方法。 1. 硬件基础 CAN总线工作需要两根数据线,RX和TX,即为输入总线和输出总线。一般CPU与外界通信需要接一个驱动芯片(这点很像UART接口),常用的CAN芯片主要有:SN65VHD230、PCA82C250T等,本系统使用SN65VHD230作为CAN接口芯片。而CPU提供的CAN接口为CAN_L和CAN_H。 2. 软件设计 在进行软件设计时,我们首先来看这样的一个结构体: typedef struct {
[单片机]
基于LabVIEW和J1939协议的CAN总线通讯平台开发
   应用领域: 商用车CAN 总线通讯   挑战:CAN2.0B 规范的工业总线通讯、报文标识符和数据帧定义没有形成统一的标准,参数定义   随意性很大。商用车CAN 总线通讯标准,遵循建立在CAN2.0B 基础上的SAE J1939 协议。报文标识   符ID,按照SAE 标准制定的车速、发动机转速、扭矩、温度、压力、燃油消耗量等参数的物理定   义,报文数据帧格式对应协议数据单元相应数据内容的封装。面临的挑战是将J1939 协议融会贯通   于CAN 总线通讯平台的设计之中。    应用方案: 使用NI LabVIEW 软件开发平台和PXI 模块化仪器系统中的CAN 通讯模块,创建过滤   识别J
[嵌入式]
CAN现场总线在电动汽车控制系统中的应用
前言 CAN现场总线是20世纪80年代初德国BOSCH(博世)公司在为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通信协议。由于CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同和运用,并在1993年正式成为国际标准和行业标准,被誉为“最有前途的现场总线”之一。以CAN为代表的总线技术在汽车上的应用不但减少了车身线束,也提高了汽车的可靠性。在国外现代轿车的设计中,CAN已经成为必须采用的技术,奔驰、宝马、大众、沃尔沃及雷诺等汽车都将CAN作为控制器联网的手段。我国目前CAN总线技术在汽车上的应用存在着很大的空白,在电动汽车上应用CAN总线技术研究尚处于起步阶段。 电动汽车融合了许多的电子控制系
[嵌入式]
基于CAN总线的机械电子式制动系统电控单元的实现
1、引言  随着机电技术的发展,电子技术也渗入到了汽车制动系统中,出现了称为“电子制动系统”的新技术。与传统的汽车制动系统不同,电子制动系统以电子元件替代了大部分液压和机械元件,减少了制动系统机械传动的滞后时间。它根据驾驶员进行制动操作时,踏板行程传感器探知驾驶员的制动意图,进而对各轮制动力进行精确的控制,缩短了制动距离,从而增加了交通安全性 。 2、EMB 线控制动系统目前分为两种类型,一种为电液制动系统EHB (Electro-hydraulic Brake),另一种为电子机械制动系统EMB (Electro-Mechanical Brake) 。本文主要讨论的内容是后者。 相比传统制动控制系统,电子机械式制动
[电源管理]
基于<font color='red'>CAN总线</font>的机械电子式制动系统电控单元的实现
技术文章—找到CAN总线(故障)节点的三种办法
摘要:CAN总线的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持,在带来便利的同时,也为工程师们故障排查增加了难度,所以本文主要给大家介绍了找到CAN总线(故障)节点的三种办法。 一、将所有节点都拔掉,依次往上接。 当CAN总线出现故障后将所有节点都拔掉,之后一个一个节点往上接,接到系统出错时,即找到最后一个插入节点为故障节点。如下这种情况,图1为新能源车控制总线,车辆启动后仪表显示滞后,显示错误。导致司机判断延迟与错误,影响交通安全。将所有节点拔掉之后,采用此方法挨个节点往上接,直到电机控制器接到总线上出现了通信故障,初步判断为电动机运行产生的强干扰,串扰到CAN总线上,导致帧错误增加,重发
[汽车电子]
技术文章—找到<font color='red'>CAN总线</font>(故障)节点的三种办法
CAN总线系统在现代汽车中的应用
  一、概述   现代汽车往往使用大量电子设备来控制其正常行驶。当执行一个较复杂的控制时,需要在设备之间进行大量的数据交换。当控制系统变得复杂时,交换数据的信号线连接将变得更复杂,同时费用将提高。   对于一般控制,设备间连锁可以通过串行网络完成。因此,BOSCH公司开发了CAN总线(C ontroller Area Network),并已取得国际标准化组织认证(ISO11898),其总线结构可参照I SO/OSI参考模型。同时,国际上一些大的半导体厂商也积极开发出支持CAN总线的专用芯片。通过CAN总线,传感器、控制器和执行器由串行数据线连接起来 。它不仅仅是将电缆按树形结构连接起来,其通信协议相当于ISO/OSI
[嵌入式]
CAN总线应用简介
  CAN,全称为“Controller Area Network”,即控制器局域网,采用串行通信,是国际上应用最广泛的现场总线之一。CAN总线最早在1986年由德国Bosch公司最先提出,使用CAN连接发动机控制单元、传感器、防刹车系统等,解决日益复杂的汽车电子装置之间的连线问题,其传输速度可达1Mb/s,能有效地支持具有很高安全等级的分布实时控制。   一、CAN总线技术规范   1、CAN通信模型   CAN技术规范(CAN-bus规范V2.0版本)的目的是为了在任何两个CAN仪器之间建立兼容性。为了兼容CAN2.0,要求CAN的仪器应兼容A部分或B部分。CAN-bus规范V2.0版本由两部分组成:   (1)A部分   在这
[嵌入式]
基于RS-485总线的可扩展局域网络的研究
  1 RS-485总线通信的特点   RS- 485是在RS-422的基础上发展起来的,能实现一点对多点的通信,也能实现多点双向通信,但同一时刻只能有一个发送器,其余的为接收器,即一主多从的通信方式。目前市场上可供选择的RS-485总线芯片很多,其中包括可支持128个节点的MAXl487和支持400个节点的SP485R。利用该类芯片可直接组成简单的通信网络。   RS-485收发器采用平衡发送、差分接收的方式,即在发送端将TTL信号转换成差分信号输出,在接收端,接收器将差分信号转换成TTL信号。因此具有较高的共模抑制能力。同时接收器具有较高的灵敏度,能检测低达200mV的电压,数据传输可达 1 200m。如降低数据传
[工业控制]
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved