基于CAN总线的监控系统智能节点设计
(2)数据采集模块:将传感器采集到的模拟信号转变为数字信号并通过多路模拟开关送入微控制器,CPU得到电机定子温度、电流、液位信息做出相应的判断,并送至不同的子程序进行相应的处理。
(3)电机控制模块:CPU判断电机定子温度、电流、液位中的任一项值超出正常值范围时,都会通过SSR(过零触发型交流固态继电器)触发相应的异常处理电路,使电机得到保护。
(4)LED显示模块:采用基于I2C总线的显示技术,通过LED数码管实时显示电机运行过程中定子的温度和电流值。并可以在设置模式下显示待定置参数的当前值。当电机出现非正常停机时发光二极管可以指示出故障的类型,方便检查处理。
(5)CAN通信模块:CAN总线通信接口电路主要由P87C591的片内CAN驱动器SJA1000、6N137高速光隔、CAN收发器PCA82C250组成。P87C591完成CAN协议的应用层功能,SJA1000完成物理层和数据链路层的功能。PCA82C250提供了对总线差动发送和接受数据的功能,有效的提高了总线的抗干扰能力,实现了保护总线、降低射频干扰等功能。6N137隔离控制电路和收发器电路,能够有效地抑制由总线引入的干扰,进一步提高了系统的可靠性。
(6)现场设置模块:采用基于8255的键盘和基于X25045的E2PROM,实现节点工作参数现场设定能。X25045存储报警电流、停机电流、报警温度、停机温度、节点地址、波特率等信息。这些参数都可以通过按键进行设置。除了节点地址外,其它的参数也可以通过监控计算机设置。
4监控节点的软件设计
4.1软件设计的总体结构
与节点硬件设计相一致,软件设计也遵循模块化的设计原则,使控制软件具有易读、易扩展和易维护的优点。通过C51语言编写相应的软件模块实现上述监控节点的各种功能。软件的各功能模块之间通过入口和出口参数相互联系,组合灵活且方便,减少了调试时间,缩短了开发周期。监控节点的软件设计流程如图3所示。
4.2监控节点通信程序设计
监控节点的通信采用CAN总线2.0A协议,通信模块的软件设计主要由初始化程序、发送程序、接收程序三部分组成。其中初始化程序是实现通信的关键,它主要用来完成CAN控制器工作方式的选择,即对P87C591中CAN控制器控制段中的寄存器进行设置,包括:总线定时寄存器和输出控制寄存器设置;接收验收滤波寄存器和滤波屏蔽寄存器设置;设置发送数据帧类型(标准帧或扩展帧)、标识符、数据长度。初始化过程是在CAN控制器复位模式下完成的,监控节点通信的初始化程序流程如图4所示。
监控节点与CAN总线之间的数据交换是通过发送程序和接收程序实现的。发送程序流程如图5所示,从图5中可以看出系统的每个节点采用定时中断的方式主动向监控计算机发送数据。这是利用了CAN总线可以采用多主机方式通信的特点。由于实时监控功能是由各个控制节点完成,而监控计算机主要用来实现管理功能,所以采用了定时上传数据的方法,而没有实时上传所有传感器采集到的数据,从而减轻了总线负担。这也是分布式控制方法相对于集中控制方法的一个优点。图6为接收程序流程图,接收缓冲区用来存放CAN总线上发来的数据,CPU读取数据后接收缓冲区将被清空,等待接收新的数据。
5结束语
本文设计的基于CAN总线的分布式监控系统智能节点经过现场调试,可以对潜水电机运行过程中出现的过流、过热、短路、渗漏情况做出处理,对电机起到了保护作用;节点与上位计算机之间的数据通信稳定可靠;可以通过现场设置模块修改节点的参数。实验表明了节点的适用性和可靠性,开发过程中所提出的技术方案和实现方法可以在分布式监控系统及工业底层监控网络的现场智能节点设计中推广应用。
本文作者创新点:设计了一种基于P87C591的智能监控节点,在软/硬件设计中均采用了模块化的结构,具有高度的灵活性和广泛的适用性。
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)