叨叨游戏网
您的当前位置:首页基于CAN总线的温室测控系统的研究与设计

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

来源:叨叨游戏网
第l9卷 第6期 Vo1.19 NO.6 电子设计工程 Electronic Design Engineering 201 1年3月 Mat.20l1 基于CAN总线的温室测 控系统的研究与设计 李正民,郭金金,吕莹莹,宋玉 (郑州大学信息工程学院河南郑州450001) 摘要:测控系统性能的优劣是温室作物优质、高产、高效栽培的关键。针对当前温室测控系统中需要解决的各种问 题——降低成本、降低功耗、提高抗干扰能力、提高实时性和通信速率,提出了CAN总线在基于微控制嚣 MC68S08QG8的测控系统中的应用,详细介绍了单个智能节点的硬件设计和软件实现.设计了简单的CAN总线应用 层协议 运行结果表明该系统结构简单、可靠性高、实时性强。 关键词:CAN总线;MC68S08QG8;测控系统;应用层协议 中图分类号:TP302 文献标识码:A 文章编号:1674—6236(2011)06—0036一o4 Research and design of the greenhouse measuring and control system based on CAN.bus LI Zheag—min ,Guo Jin-jin ,LV Ying—ying’,SONG Yu (Information Engineering School,Zhengzhou Unh ̄ersity,Zhengzhou 450001,China) Abstract:Measurement and control system performance is key to greenhouse crop high quality,high yield and efifcient cultivation.In view of the current greenhouse measurement and control System needs to solve the problems,reducing cost, reducing power consumption,improving anti-jamming capability,improving real-time and communication.The paper proposed application of CAN bus based on microcontorller MC68S08QG8 measurement as communication profile,and introduced a single intelligent node of the hardware design and software realization in detail.A simple CAN application layer protocol was designed.The running result shows that the system has performances of simple structure,hiigh reliability and strong real-time. Key words:CAN bus;MC68S08QG8;measurement and control system;application layer protocol CAN(Controller Area Network)总线又称为控制局域网. 是一种多主方式串行通信协议.能有效地支持具有很高安全 1系统总体设计 等级的分布实时控制。由于CAN总线具有造价低、通信速度 温室测控系统采用分布式多主方式进行通信。系统主要 快、可靠性高、实时性强等突出优点,在汽车行业、机械工业、 由主控上位机、CAN总线和多个智能测控模块组成(注意:各 家用电器及传感器等领域应用广泛。 个智能测控模块之间存在强烈的相互关系)。通过对温室内 温室控制技术是农业现代化的重要内容,在目前的温室 外,特别是温室内部各种影响作物生长的要素用相应智能传 系统中主要是靠RS一485总线来组成控制网络,将采集到的数 感器进行测量,然后通过CAN总线传送给主控上位机,上位 据和信息传送到主控机中。其通信速率、节点连接数目都受 机进行数据打印、分析和处理、参数设置并且控制有关设备, 到一定的。 等1=作,从而实现对温室要素的.保证了作物生长所需 本文提出了以CAN总线构成现场控制网络。CAN总线的 的环境。系统上任何节点均可在任意时刻主动向其他节点发 通信速率最高可达1 Mbps/40 m,挂接的设备可达llO个。另外 出信息,支持点对点、一点对多点和全局广播方式接受和发 信号的传输采用短帧结构,这样传输时间短,受干扰的概率 送数据。图1是温室测控系统总体设计图。 低。并且一旦网络中某个节点故障时,该节点具有自动关闭 匡至团 输出功能,以主动切断该节点与总线的联系,使网络上其他 CAN总线 : 节点及通信不受影响,具有较强的抗干扰能力,降低了恶劣 环境对于温室系统的影响,提高了系统的实时性、可靠性和 幽幽幽 幽 扩充性【】1。 图1 温室测控系统总体设计图 Fig.1 Overall design diagram of rgeenhouse measurement and control system 收稿日期:2010—12—07 稿件编号:201011093 基金项目:09年度社会科学基金项目(09BTQ027) 作者简介:李正民(1952一),男,河南新乡人,副教授。研究方向:嵌入式系统应用。 ..36- 李正民.等基于CAN总线的温室测控系统的研究与设计 SPI和IIC)以及创新的开发支持等其他系列单片机不可比拟 的优势。 智能节点中CAN控制器完成了CAN协议中数据链路层和 2硬件平台设计 温室测控系统的硬件平台主要由多个CAN智能节点构 成,如图2所示。本系统节点采用总线型拓扑结构,两芯电缆 物理层的所有功能,保证通信质量。本系统选用了一种 的CAN协议控制器——Microchip公司的MCP2515 MCP2515 完全支持CAN V2.OB技术规范.MCP2515还包含3个发送缓冲 (CANH和CANL)双绞线连接。主要由微控制器MC68S08QG8, CAN通信控制器MCP2515和CAN收发器TJA1050组成。本文中 微控制器MC68S08QG8与控制器MCP25l5是通过SPI口连接. 测控节点通过微控制器MC68SO8QG8的IIC口来连接的。智能 节点的个数是由温室内外所测控的环境要素来决定的,但是 任意智能节点均可以像以太网节点那样直接挂接在CAN总 线网络上.即在不牺牲可靠性的前提下进一步扩展现场测控 节点的数量。 器和2个接受缓冲器,减少了单片机的管理负担『3】。与传统上 使用的CAN控制器SJA1000相比较.它与MCU的连接是通过 行业标准串行外设接口(SPI)来实现的,这样可以减少芯片使 用的引脚,简化CAN总线的电路的连接,提高了系统稳定性。 CAN总线收发器提供CAN控制器与物理总线之间的接 口,是影响CAN总线网络安全性、可靠性和电磁兼容性的主 要因素。本系统采用Phlips公司的rrJA1050m作为总线收发器。 CANIl CANL cAN收发 ̄MCP2515l I CAN ̄MCP251 TJA1050有两种工作模式:高速和待机。其中待机模式可以防 止由于CAN控制器失控而造成的网络阻塞。并且在rrJA1050 中还设计了一个超时定时器,用以对TXD的低电压(此时CAN 总线上为显性位)进行监视。该功能可以避免由于系统硬件 CAN控制 ̄-TJA1050I l CAN控制 ̄TJAI Sp T SPi[ 回I-IIC [ IIC [ 莶口[ 垂口 或者软件故障而造成TXD端长时间为低电位时总线上所有 其他节点也将无法通信的情况出现。这也是TJA1050与 82C250相比较之后最大的改进地方。 2.2智能节点硬件电路 网2 CAN智能节点结构 Fig.2 Structure of can intelligent node 2.1芯片介绍 智能节点最小系统硬件电路如图3所示,主要的连接有 以下3个方面: 选择一款合适的MCU是系统稳定的重要保障。综合功 耗、性能和价格等各种因素的考虑,本系统采用Freescale公司 1)QG8的SPI接口使用4条信号线:主机输出低有效片选 信号线SS、主机输出线SPSCK、主机输出/从机输人数据线 MOSI以及主机输入/从机输出数据线MISO.分别于MCP2515 的MC68SO8QG8(以下简称为QG8)作为系统控制信号采集的 芯片。MC68S08QG8121单片机采用高性能、低功耗HCS08飞思 卡尔8位微控制器为内核,是一款集成度高、结构紧凑、功能 的CS、SCK、SI、S0引脚连接。QG8的IRQ与MCP2515的中断引 脚INT相连.可以通过中断来提高系统实时性。 2)MCP2515的3个发送缓冲器TXBn请求发送引脚(4、5、6 引脚)接到+5 V终端,两个接收缓冲器RXBn中断引脚(10、l1 引脚)空置。由于该测控系统对于环境的要求比较高, 丰富、适用于各种场合的低价位单片机。MC68S08QG8除了提 供Freescale丰富的外围接口与HCS08内核卓越性能的多功能 组合外,还包括更长的电池寿命(即使工作电压低至1.8 V,也 能发挥最大效能)、业界领先的Flash技术、3个通信接口(SCI、 线 图3智能节点最小硬件系统 Fig.3 Intelligent node minimum hardware system -37- 《电子设计工程》2011年第6期 MCP25l5的TxCAN和RxCAN并不是直接与SJAl050的TxD和 RXD相连,而是通过6N137(高速光耦)后于SJA1050相连,这 样很好地实现了总线上各CAN节点的电气隔离.进一步提高 了该系统的抗干扰能力。不过需要特别注意的是,光耦部分 电路的两个VCC、VDD必须完全隔离,否则采用光耦也就失去 了意义 电源的完全隔离可采用小功率电源隔离模块或带多 5 V隔离输}lI地开关电源模块实现。虽然这部分增加了接口 电路的复杂性,但是却提高了节点的稳定性和安全性,从而 0>优先级最高的报文存总线空闲时首先被发送。如果发送成 功将产生巾断来通知接收,否r)l,lJTxBnCq’RL.TxRR和CANINIF. MERRF将被置位,产生发送错误状态.同时INT引脚置位.产 生中断请求。具体报文发送流程如图4所示。 也提高了测控系统的性能 3)TJA1050的第8个引脚VR盯是参考电压,输出可以空 置。第5个引脚决定芯片的工作模式(高速和待机两种模式), 图中和地之间接47 kQ的电阻进入高速模式(也是正常工作 时的模式)。本系统在CANH和CANL总线输入端与地之间分 别接了一个SA28A(瞬态抑制二极管),当两输入端与地之问 出现瞬变干扰时,通过SA28A的放电可起到一定的保护作用。 在CANH和CANL之间还接了一个12O Q的终端电阻.可以在 阻抗不连续时消除通信线路中产生的信号发射H。 3软件设计 本系统的软件程序设计是在Freescale公司的集成开发环 境——Freescale Codewarrior 5.1下完成的。该系统的软件由 CAN控制器软件和应用层通信协议构成。 3.1 CAN总线驱动层软件实现 CAN控制器软件主要包括器件初始化、数据发送和接收。 初始化工作主要是对QG8微处理器、SPI接13和MCP2515 CAN控制器的初始化。其中微处理器初始化主要包括定时 器、变量和外部中断的初始化。需要特别注意的是飞思卡尔 单片机的定时器与其他单片机(如51系列单片机)不太一样, QG8微处理器的定时器是不能预置某个数值的,而且是只渎 的,因此必须要有辅助寄存器才能实现该定时器的功能,本 文采用的是QG8微处理器的l6位的定时器模块 I1PM:SPI接口 的初始化主要包括对控制寄存器SPICl和SPIC2、波特率寄存 器SPIBR、状态寄存器SPIS、数据寄存器SPID的设置。 MCP2515的初始化为复位MCP2515、寄存器配置。只有对 MCP2515初始化后,进入了配置模式才能对相关的寄存器进 行初始化,初始化工作完成后进人工作模式,进行报文发送13]。 为了能使节点稳定的通信.CAN总线上所有的节点都必须有 相同的波特率。对于振荡器时钟频率不同的器件,可以通过 对波特率预分频比和每一个时问段巾时间份额数量的设置 来调整比特率 QG8是通过使用标准SPI读,写命令对寄存器进行读/写操 作。外部数据和命令式通过SI引脚在SCK时钟信号上升沿传 送到器件中。MCP2515在SCK下降沿通过SO引脚发送数据。本 文采用状态查询方式发送报文。首先应该禁止CAN发送中断 产生,以保证报文发送不被中断。为了启动报文发送,必须将 相应缓冲器的TxBnCTRL.TxREQ位置1.文中是通过调用 RTS2515()请求发送来实现的 。缓冲器巾TxBnCTRL.TxP<I: -38 . J习4报文发送流程罔 Fig.4 Flow chart of messaging 为了提高系统的实时性.报文接收模块采用中断接受方 式。该模块包括主程序和接受中断服务程序两部分组成,主 程序必须在巾断控制报文接受之前使能CAN的接受中断和 微控制器QG8的全局中断。当报文发送完之后会产生一个中 断通知来接收报文。首先应该看一下中断标志类型,如果是 报文成功发送产生的中断,将报文读入滤波器中,否则产生 报文出错标志,CANINTF.MERRF位被置1.将接收到报文的标 示符字段与滤波寄存器中的值进行比较,如果两者匹配,将 该报文载人相应的接受缓冲器,否则产生一个无效报文161。如 果缓冲器慢将会产生溢出错误,EFI G.RXOOVER位置1.报文 接受成功且处理完毕后,MCU将清除中断标志,返回主程序 以接受下一条报文。具体的流程图如图5所示。另外整个报文 接受过程都可以在接受中断服务程序中完成.不需要与主程 序发生交互作用。 网5报文接收中断服务程序 Fig.5 The packet receiver interrupt service routines 3.2 CAN总线应用层软件实现 目前国内还没有CAN通讯的应用层协议标准,而国外现 李正民。等 基于CAN总线的温室测控系统的研究与设计 有流行的CANopen、DeviceNet ̄CANkingdom等应用层协议对 于本系统的要求来说实现复杂会造成资源浪费。本文定义了 5结束语 一个简单的通信协议来完成系统所需求的功能。 本文根据目前温室系统存在的问题.提出了用CAN总线 该协议中采用29位(ID_28~ID.0)标识符的扩展帧格式. 构成温室测控系统传输网络,并根据系统需要设计了简单的 这些位的发送顺序是从ID.28到ID.O,最高7位ID.28一ID.22不 应用层通信协议和进行了CAN节点之间温度测试。测试结果 能全是隐性1。每一个标识符对应一条信息,只有与自己标识 表明:本设计传输网络结构简单、可靠性高。另外该测控模块 符相同的信息才被接收端接收。标识符ID号的大小还决定了 也可以运用在锅炉控制、楼宇控制等各种工业现场测控系统 发送的优先级和等待时间,标识符越小的报文帧优先被发 中,实用性强、应用范围广。 送。本协议中ID号位28~24的五位表示信息采集节点,包括各 参考文献: 种传感器模块.JI)号为23 18的四位表示显示节点,包括各种 [1】陆静霞,尹文庆.基于CAN总线的温室自动控制系统fJ1中 数据的显示和报警节点。ID号为l9~14的六位为执行控制节 国农机化,2004(5):46—47. 点,包括CO 发生器、循环风扇等控制设备节点。ID15~13为信 LU Jing—xia,YING Wen—qing.Automatic control system for 息类别,包块各种命令信息和状态信息等信息节点。ID12~ greehouse based on CAN bus[J】.Chinese A cultural ID0为预留 。 Mechanization,2004(5):46—47. 4系统测试 【2】Freescale semiconductor.MC68S08QG8/MC68S08QG4 Data Sheet[M].Rev.1.01 2005. 为了测试本设计的性能.在实验室里进行了CAN总线节 [3】邹继军,王进宏,等.现场总线CAN原理与应用技术【M】.2版. 点之间的温度测试,如图6所示。在18点和19点(横坐标表示 北京:北京航空航天大学出版社.2oo7. 时间)之间进行了温度的测试,在l8点钟到l8点3O分之间A和 【4】Orekhov D I et a1.A distirbuted data acquisition and B节点一直显示实验室的室内温度(15~17℃之间).过半个小 analysis system based on a CAN bus ̄].Instrum Exp Tech+, 时后将B节点放人22℃的温水中,然后取m。从图中可以看到 2007,50(4):487-493. 红色曲线(A节点温度曲线)一直是恒温状态(15~17℃之间), 【5】叶春生,黄小毛,莫健华,等.基于CAN总线的锅炉测控系 而白色曲线(B节点温度曲线)在l8点3O分钟温度升到22℃, 统研究『J1.微计算机应用,2009,30(6):14—19. 随着温度传感器被取出,温度也在下降到15~17℃之间。 YE Chun—sheng,HUANG Xiao—mao,MO Jian—hua,et a1. t and control system based on CAN bus 【J1.Microcomputer Applications,2009,30(6):14-19. 【6】赵君,蒋东方,杨庆祥.基于CAN总线的分布式测控系- ̄[J1. 计算机测量与控制,2006,14(9):1146—1148. ZHAO Jun, JIANG Dong—fang, YANG Qing—xiang. Distributed t and control system based on CAN bus『J1.Compu ̄r Measurement and Contml 2006,14(9): 1146-1148. 【7】Pfeifer O,Ayre A,Keydel C.Embedded networking with CAN and CANopen[M].RTC Books,San Clemente,2003. 网6温度测试 Fig.6 Temperature test -39- 

因篇幅问题不能全部显示,请点此查看更多更全内容