传统的设备
监控系统多采用RS232、RS485等串行通讯方式,实时性、扩展性和可靠性较差。CAN总线是现场总线中的一种,它能有效地支持分布式控制和实时控制,是一种开放式、数字化、多点通信的串行通讯网络。本文设计了一种基于CAN总线的分布式高低温试验箱监控系统。该系统结构简单,成本低,且实时性、扩展性和可靠性好,具有较强的实用价值。 1 系统的总体结构 该系统包括一个主控制器(工业控制计算机,含PC-CAN接口卡)和多个节点控制器(CAN接口控制板),并采用总线式网络拓扑结构,无源抽头连接,因而系统的可靠性较高。其信息传输采用CAN通信协议,通讯介质采用双绞线。 系统的组成结构如图1所示。 图中工控机(含PC-CAN接口卡)安装在控制室,高低温试验箱放在工作间,两地之间用双绞线进行连接,距离约50m,双绞线的两端需短接120Ω的终端匹配电阻。 工控机选用台湾研华的IPC610,具有良好的软硬件兼容性,在该工控机的ISA插槽中插入型号为PCL-841的CAN-PC接口卡,通过该卡即可把工控机连接到CAN总线上。工控机的控制软件可设置高低温试验箱的工作模式:高温试验、低温试验、温度冲击试验、自定义。每种模式均可设置预定温度和保持时间,温度冲击试验还能设置循环次数,自定义模式由上述三种基本模式按一定流程组成,每个节点均可独立设置其工作参数。
图1 高低温试验箱监控系统的组成 CAN接口控制板是系统的核心,它负责与CAN总线进行通讯,另外还完成温度信号的采集、加热与制冷装置的控制等功能,内有CAN总线收发器及控制器、单片机、温度传感器接口等部件。加电后,CAN接口控制板通过温度传感器,定时采集高低温试验箱的温度数据并上传给工控机,供其显示与储存。工控机根据用户设置的工作模式发出特定指令至CAN总线,CAN接口控制板收到该指令后,根据预定的算法控制加热与制冷装置的启动、停止,完成相应的操作。 下面将重点介绍CAN接口控制板的软硬件设计。 2 CAN接口控制板的硬件设计 CAN接口控制板由MCP2551总线收发器、MCP2510总线控制器和PIC12C672单片机等部件组成。其电路原理如图2所示
MCP2551总线收发器与系统物理总线相连,具有差分发射和接收能力,可将许多节点与同一网络相连接。它作为MCP2510总线控制器MCP2510和系统物理总线之间的接口。 MCP2510总线控制器担负着报文的发送、接收、过滤等工作,是CAN总线接口控制板的核心器件。它支持CAN总线V2.0A/B技术规范,能够发送和接收标准和扩展报文,同时具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,减少了MCU的管理负担。MCP2510通过SPI接口与MCU进行数据通讯,其数据传输速率可高达5Mb/s。 为了简化电路设计,降低成本,我们选用PIC12C672单片机作为MCP2510的控制MCU。PIC12C672单片机是美国Microchip公司生产的RISC单片机,只有35条指令,指令周期可短至1us,除跳转指令外其余均为单周期指令,运行效率高。其内部集成了2K(14bit宽度)的编程空间和128字节的RAM,另外还集成有4通道的8位A/D转换器、4MHz的RC振荡器、上电复位电路、看门狗电路等。它仅有8个引脚,体积小,外围电路简单,具有较高的性价比。 MCP2510通过SPI接口与MCU通讯,但PIC12C672本身没有SPI接口,因此用四条普通I/O线GP5、GP4、GP1、GP2分别接至MCP2510的CS、SO、SI、SCK引脚,用软件算法实现SPI接口协议。SPI接口读命令时序如下图3所示。在读操作开始时,CS引脚将被置为低电平,随后读指令和8位地址码(A7至A0)将被依次送入MCP2510,并在SCK的上升沿缩存每个数据位。在接收到读指令和地址码之后,MCP2510指定地址寄存器中的数据将在SCK的下降沿输出到SO引脚。拉高CS引脚电平结束读操作。
MCP2510外接8MHz晶体作振荡源,将CAN总线速度配置为125kbps。MCP2510有三个引脚(TX0RTS、TX1RTS、TX2RTS)可以配置成通用的输入脚,两个引脚(RX0BF、RX1BF)能被配置成数字输出脚,由PIC12C672单片机通过MCP2510的SPI接口对这些引脚进行控制。在此应用中,TX0RTS、TX1RTS、TX2RTS配置成输入脚,分别连接上三位拨码开关,用于设置CAN接口板的ID地址。RX0BF、RX1BF配置成数字输出脚,分别通过驱动电路、继电器控制高低温箱的加热装置、制冷装置。 3 CAN接口控制板的软件设计 CAN接口控制板的主要功能有:定时采集温度数据并通过CAN总线发送至工控机;收到工控机的升温、降温指令后,根据预定的算法控制加热与制冷装置的启动、停止。因此,除硬件设计外,我们还需编写PIC12C672单片机的程序,以实现上述CAN接口控制板的功能。采用汇编语言编程,使用福州贝能的PICRICE仿真器进行开发、调试,并用PICSTART PLUS编程器烧写程序。 单片机的主程序流程图如图4所示:
图4 单片机的主程序流程图 PIC12C672的初始化主要完成I/O脚的配置,定时器中断的设置,以及A/D转换模块的设置。MCP2510的初始化的主要是将总线时钟频率设为125kbps,配置中断信号,将TX0RTS、TX1RTS、TX2RTS配置成通用的输入脚,将RX0BF、RX1BF配置成数字输出脚。 MCP2510的发送操作通过三个发送缓冲器来实现,这三个发送缓冲器各占据14个字节的SRAM。*字节是控制寄存器TXBNCTRL,该寄存器里的内容设定了信息发送的条件,且给出了信息的发送状态,第二至第六字节用来存放标准的和扩展的标识符以及仲裁信息,zui后八个字节用来存放待发送的数据信息。 MCP2510的接收操作通过三个接收缓冲器来实现,在三个接收缓冲器中,MAB(报文集成缓冲器)总能够接收来自总线的下一条报文,其余两个接收缓冲器RXB0和RXB1则从协议引擎接收完整的报文。MAB对接收到的报文进行组合,并将满足验收滤波器条件的报文传送到至RXBN缓冲器,并且该接收缓冲器对应的CANINTF.RXNIF位将置1,器件会在INT引脚产生一个中断, 显示接收到有效报文。