CAN总线在变电站高压开关柜在线检测系统中的应用
为了进一步提高系统的抗干扰能力,在控制器SJA1000和收发器PCA82C250之间增加了由高速隔离器件6N137构成的隔离电路。
3.1.4单片机的选取
本装置选用AT89C51作为处理器,AT89C51是ATMEL公司8位单片机,与MCS51完全兼容,内部集成有4Kbps的闪速E2PROM,工作频率最高可达20MHZ.
3.1.5电平转换芯片的选取
在CAN接口电路中,AT89C51芯片使用的是TTL电平,而从计算机串口输出的是RS-232电平,因此要想计算机串口与单片机连接,必须进行电平转换。MAXIM公司生产的MAX202芯片是在缺少±12V电源的情况下进行RS-232/TTL双向电平转换芯片,它的供电电源是单+5V,电平转换的速度的最大值不小于120kbps. 为了使计算机的电源与CAN接口电路的电源互相不受干扰,我们还在MAX202与AT89C51之间采用光电耦合器,以达到电源隔离的目的。
3.1.6数据采集单元电路
采集单元电路一般由微处理器外加显示键盘电路、模拟量输入电路、开关量输入输出电路、CAN总线通讯接口电路、实时时钟电路等组成。具体电路在此不详细介绍了。
4.软件设计
本系统采用C语言开发软件。CAN总线各节点与AT89C51要有效,实时地完成数据通信,软件的设计是关键,也是难点。它主要包括计算机串口通信程序、AT89C51通信程序、CAN节点初始化程序、CAN数据发送、接收程序以及CAN总线出错处理程序等等。CAN控制器SJA1000的内部寄存器作为AT89C51芯片的片外寄存器,AT89C51和SJA1000之间进行状态、控制和数据的交换都是通过SJA1000在复位模式或工作模式下对这些寄存器的读写来完成的。在初始化CAN内部寄存器时,注意使得各节点的位速率必须一致,而且接、发双方必须同步。数据的接收主要有两种方式:中断和查询接收方式。为提高通信的实时性,文中采用中断接收方式,而且这样也可保证接收缓存器不会出现数据溢出现象。下面给出SJA1OOO工作在Basic CAN模式下的初始化流程图、数据接收的源程序。
/*CAN接收中断子程序*/
Void canreceive(void) interrupt 0 {
Unsighed char xdata*datap;
Unsighed char xdata i, temp[15];
if ((can_sr0x01)==0x01) {/*判断SJA1000接收缓冲器是否有效*/
p=canrxbuff;/*canrxbuff为接收缓冲器首地址*/
for(i=0;i0;i++) {
temp[i] =*(p+j);/*将接收缓冲器的数据赋给temp数组*/
}
can_cmr=0x04;/*释放接收缓冲区*/
i=can_ir;/*对CAN中断复位*/
}
}
本文采用CAN总线技术组成的变电站高压开关柜在线检测系统已在中小型变电站中得到应用,经过实际运行,具有很好的可靠性和抗干扰性,能更好地掌握高压开关柜的运行状态,稳定显示出各参数的波形,从而能及时对设备进行检修,避免了事故的发生,得到变电站维护人员的一致认可。
5.结束语
CAN总线以高可靠性及其卓越的性能越来越受到人们的重视,并被公认为最有前途的总线之一。本文在变电站高压开关柜在线检测系统中应用了这种总线技术,设计了主要硬件电路和软件,并得到实际应用。其硬、软件电路的设计方法同样适合于其他基于CAN总线的分布式控制系统的节点设计。
评论