摘 要:现场总线FCS技术在当前自动化领域的应用越来越广泛。本文详细讲述基于工业设备联机控制系统的CAN总线节点的设计,对节点的软、硬件设计进行了详细的说明。根据系统需要设计了不同类型的CAN总线节点。节点间通讯方式多样。系统适合于一个场所多机联网控制、多楼层设备联机控制,或对多个特定的场所进行联网控制等。系统具有扩展性,可将上位机通过特定的CAN接口器件连接,对系统进行监控。
关键字:设备控制系统; CAN总线节点; 微控制器
Abstract:CAN (Controller Area Network) is one of popular field bus and a new kind of network based on micro control unit. The paper introduces the CAN node based on the industrial instruments controlling system and node design of hardware and software. The paper design different CAN nodes which can communicate each other in several modes. The node can be applied in control network which is composed of many special sites or industrial workshops. The system can be monitored through personal computer which connected the CAN bus through special CAN device.
Keywords:Air-Condition Control System; CAN Bus Nodes; Micro Controller
1 引言
CAN总线是目前流行的总线技术之一,是一种基于微控制器件的网络。它用开放的,具有可互操作的网络将现场各种控制器及仪表设备互连,构成现场总线控制系统, 将控制功能彻底下放到现场,降低了安装成本和维护费用。FCS实质是一种开放的、具可互操作性的、彻底分散的分布式控制系统。CAN总线属于工业现场总线的范畴是目前流行的现场总线控制系统之一。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,同时具备了现场总线优点。本文提出一种基于CAN智能节点的设备联机控制系统。
2 系统概述
本文设计的是一种基于工业设备控制系统的以CAN总线智能节点。节点分为控制节点、主机节点和从机节点三种,多个不同节点通过总线连接,形成多机联控系统。系统虽然有三种不同功能的节点,每类节点采用相同的CAN节点结构。
图1 CAN总线节点结构示意图
CAN总线节点可以归纳为三种构成方式: 1) CAN控制器的单片机+CAN收发器;2) 带有CAN控制器的单片机+CAN收发器;3)带有CAN控制器的I/O 端口+CAN收发器。系统结构更为如图1所示。本文选择第一种方式连接方式,由于器件组合灵活,很容易实现高的性价比。
3 节点的硬件结构设计
3.1 节点控制芯片选择
本研究选用的是美国微芯Microchip Technology公司的PIC芯片(PIC16F873,28脚FLASH)和福州贝能公司的 MPLAB开发工具。MPLAB开发系统是一种廉价的开发工具,集编程器与调试器为一体。它利用了PICI6F87X的在线调试能力和MICROCHIP 的串行编程技术(In-Circuit Serial Programming)。它工作于MPLAB-IDE集成开发环境软件包下,直接连接到应用系统中去。PICI6F87X是MICIZOCHII)公司的中档产品,继承了MICROCI-III,的传统特点,实用、低价、指令集少、低功耗。
PIC16F873开发装置的不足之处有:系统只能设置一个断点;运行系统程序后单步执行速度慢;由于占用了芯片资源,I/0管脚RB3,RB7,RB6功能不正常,无法调试.另外程序调试时,应注意编程电压不能太低。
3.2 节点CAN通讯的硬件设计
在CAN中应用的元器件主要包括CAN控制器和CAN收发器。本文选用的是独立CAN控制器。PHILIPS公司的SJA1000管脚太多,占用过多的I/O口,MCP2510是目前市场上体积最小的CAIN控制器,通过SPI通讯方式与微处理器连接,连接端口少,所以系统选择MCP2510作为 CAN控制器。MCP2510只要跟MCU和驱动芯片(8X250 )就可以构成一个简易局域网的节点。MCP2510可以完全实现CAN2.0A和 CAN2.0B协议。图2为MCP2510芯片的内部结构图。
图2 MCP2510内部结构图
它的特点有:CAN总线的收发器大部分都是8脚DIP封装,各公司的产品价格和性能类似,无太大的区别。PHILIP公司新推出的高速容错CAN收发器TJA1050, TJA1040与早先推出的PCA82C250相比,价格大致相同,但其抗干扰性更强,可防止电磁干扰。本文选用了 PCA82C250CAN收发器。
3.3 控制节点设计
控制节点采用PIC16F873进行控制和通讯控制板的结构如图。控制板由以下电路组成:键盘输入电路、IC卡控制电路、液晶显示电路、无线信号接收电路、主控制电路、CAN通讯电路。图3为控制节点结构示意图。
图3 控制节点结构示意图
1、键盘输入电路采用74C922键盘编码芯片。其输出的有效端(DATA AVAILABLE)与I6F873的PORTB口的硬件中断连接。其解码输出与分别接至PORTA, PORTB口。74C922芯片通过外部时钟或者外部电容执行键盘扫描,功耗小,宽范围供电3V-15V。当按键按下,数据有效端输出高电平,否则为低电平。数据输出端口在下一次按键之前保持前次按键解码输出的状态。
2、IC卡控制电路。控制芯片采用I2C通讯方式与IC卡通讯。只有读到卡内的数据才能操作控制板,否则控制板只显示当前的时间,按键无效。通用存贮器1C卡是由通用存贮器芯片封装而成的,由于它的结构和功能简单,生产成本低,使用方便,因此在各领域都得到了广泛的应用。目前用于IC卡的通用存贮器芯片多为E2PROM,其常用的协议主要有两线串行连接协议(I2C)和三线串行链接协议。本文采用比较常用的ATMEL公司生产的AT24系列芯片 EEPROM AT24C01,它具有1k的存贮容量,两线串行I2C通讯方式,适用于2V~5V的低电压/标准电压的操作,具有低功耗和高可靠性等优点。
3、LCD显示是单片机控制产品中的典型应用。目前有多种方法实现LCD液晶显示控制:一种是单片机内部直接集成了LCD驱动电路,这种方法一般在4 位机中较常用,8位机则很少,成本也较高。另一种方法是使用LCD模块,这种模块中带有LCD显示屏和LCD驱动电路,用起来较方便,但成本偏高,不适合于大批量生产采用。本文采用的是单片机+LCD驱动器+LCD显示屏的方式,可选用不同的单片机,另外选用性价比很高的LCD驱动器HT1621。
4、本系统设计的无线信号接收电路采用MICRF002芯片。MICRF002芯片是超外差电路。美国Micrel公司推出的MICRF系列超外差电路灵敏度高和选择性好。单片集成电路可完成接收及解调功能。Micrel 公司MICRF002为MICRF001的改进型,与MICRF001相比,功耗更低,并具有电源关断控制端。MICRF002性能稳定,使用非常简单。
5、主从机节点硬件电路相同(我们称其为电机板),二者仅软件设计不同而己。电机板由主控芯片PIC16F873,水位检测电路、脉冲检测电路、驱动电路组成。
4 节点软件设计
系统软件的设计分为以下几个部分:CAN节点通讯程序、控制板程序(包括键盘输入程序、无线接收程序、IC卡通讯程序、液晶界面控制程序)、电机板程序三个大部分。控制板上的IC芯片包含控制板程序和CAN通讯程序。电机板上的IC芯片存有CAN通讯程序和电机板程序。CAN节点要有效、实时地完成通讯任务,CAN通讯软件设计是关键。它包括初始化程序报文发送子程序,报文接收子程序和出错处理子程序等。
控制板的主程序流程图如图4所示。系统设计要求只有插入IC卡后,才可以通过键盘或遥控器来控制系统。键盘处理子程序和无线接收子程序都是采用中断方式执行,且任何时刻二者只能有一个被执行。键盘处理子程序的中断是外部INT中断,无线接收子程序采用的是PORTB 口的RB6端。
图4 控制板程序流程图
在编程时有一点要注意,PORTB口RB7-RB4端有电平变化时可以产生中断,但只有当I/O引脚设置为输入状态时才能发生中断。芯片通过把 RB7-RB4端口的输入信号与上次读入的锁存值进行比较,如不等,则二者异或后输出,产生变化中断,使标志位RBIF为1。控制板程序运行时,控制板的程序接收各块电机板的状态,然后在控制板液晶上显示电机台数和水箱的水位状态。控制板收到键盘和遥控器的命令,向总线发送信息。电机板接受总线信息,执行控制板的命令动作。同时定期发送水位的状态值给控制板。其中冷冻功能就是同时执行冲洗功能和通风功能。冷冻功能程序是电机板程序的子程序。每次冷冻结束后必须执行清洗,保持过滤网清洁。
CAN控制器MCP2510与控制芯片PIC16F873采用SPI通讯方式。PIC微控制器工作于主模式下,可实现完全SPI功能。数据的收发采用软件缓冲区。发送数据时,软件缓冲区装入所发数据,同时发出SPI中断。CAN总线废除了站地址编码,对通讯数据进行编码。数据的编码通过帧ID号来识别。可以通过编码开关设定数据ID号。总线仲裁指如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了识别符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。
本文作者创新点
本文构建了基于工业设备控制系统的CAN总线节点,按照功能的不同,设计三种不同功能的节点。设计了不同节点的硬件结构。采用PIC的汇编程序,实现了基本CAN通讯的方式和不同节点的功能要求。本文设计的CAN总线节点解决了在传统的工业通讯控制方式485总线中的一些弊端,如无法构成多主结构,主节点任务繁忙,主节点故障可能引起系统瘫痪,数据传输效率降低;实时性差,错误处理能力不强等。
参考文献:
[1] 蒋建文CAS总线通信协议的分析协议和实现[J].计算机工程2002, 3
[2] 杨振江,杜铁军,李群. 流行单片机实用子程序及应用实例[M].电子科技大学出版社.西安.2002, 7
[3] 孙树文,杨建武,张慧慧,郑刚. CAN总线在车辆分布式控制系统中的应用[J]. 微计算机信息, 2007, 3-2: 45-47