高低温试验箱主要用于考核产品的高低温性能,是企业进行产品环境试验必不可少的设备,它主要是由箱体、制冷装置、加热装置组成,并有温度显示和简单的控制系统。由于高低温试验持续时间长,工作时有噪音、振动,环境较为恶劣,因此实现对高低温试验箱的计算机监控有一定的现实意义。
传统的设备监控系统多采用RS232、RS485等串行通讯方式,实时性、扩展性和可靠性较差。CAN总线是现场总线中的一种,它能有效地支持分布式控制和实时控制,是一种开放式、数字化、多点通信的串行通讯网络。本文设计了一种基于CAN总线的分布式高低温试验箱监控系统。该系统结构简单,成本低,且实时性、扩展性和可靠性好,具有较强的实用价值。
1 系统的总体结构
该系统包括一个主控制器(工业控制计算机,含PC-CAN接口卡)和多个节点控制器(CAN接口控制板),并采用总线式网络拓扑结构,无源抽头连接,因而系统的可靠性较高。其信息传输采用CAN通信协议,通讯介质采用双绞线。
系统的组成结构如图1所示。
图中工控机(含PC-CAN接口卡)安装在控制室,高低温试验箱放在工作间,两地之间用双绞线进行连接,距离约50
工控机选用台湾研华的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的发送操作通过三
MCP2510的接收操作通过三个接收缓冲器来实现,在三个接收缓冲器中,MAB(报文集成缓冲器)总能够接收来自总线的下一条报文,其余两个接收缓冲器RXB0和RXB1则从协议引擎接收完整的报文。MAB对接收到的报文进行组合,并将满足验收滤波器条件的报文传送到至RXBN缓冲器,并且该接收缓冲器对应的CANINTF.RXNIF位将置1,器件会在INT引脚产生一个中断, 显示接收到有效报文。
参考文献
[1]MCP2510-带有SPI TM 接口的独立CAN 控制器. Microchip Technology Inc,2004.
[2]A Simple CAN Node Using the MCP2510 and PIC12C67X. Microchip Technology Inc,2002.
[3]钨宽明. CAN总线原理和应用系统设计. 北京航空航天大学出版社,1996
[4]余永权. FALSH单片机原理及应用. 电子工业出版社,1997