浅谈变电站监控系统通信模块的设计

时间:2022-08-20 05:25:49

浅谈变电站监控系统通信模块的设计

摘要:本文笔者结合自己多年从事通信设计的工作经验,主要阐述了C8051F043自带CAN控制器结构与工作原理,及对监控系统通信模块的设计做出了探讨。

关键词:变电站;工作原理;检测系统;通信设计

1 C8051F043自带CAN控制器结构与工作原理

C8051F043是具有25MIPS、64 KBFlash、10bitADC,带有CAN控制器的高速8位单片机。其自带的CAN 控制器支持CAN 技术规范V2.0A/B;并能够发送按接收标准的和扩展的信息帧,同时具有接收滤波和信息管理功能,最高数据传输速率可达1Mbit/s,所构成的CAN总线节点可直接与CAN 总线上的其他微控制单元(MCU)通信。Silicon Labs CAN是一个协议控制器,不提供物理层驱动器(即收发器),其内部含有4个发送缓冲器、4个接收缓冲器。同时还具有灵活的中断管理能力,这些特点使得MCU对CAN总线的操作变得非常简便。

C8051F043所含CAN控制器包含1个CAN核、消息RAM(独立于CIP-51的RAM)、消息处理状态机和控制寄存器组以及波特率预分频器BRP(Baud Rate Prescaler)。其中CAN控制器核心负责与CAN 总线的接口和通信,消息RAM、寄存器组以及消息处理器用来实现CAN 总线通信模式控制以及操作控制,其控制器如图1所示。

1.1 CAN控制器工作模式

C8051F043自带的CAN控制器可以工作在测试模式和正常模式2种状态,可通过简单设置CAN控制寄存器(CAN0CN)的Test位来设置。其中在测试模式下又有4 种模式:静音模式、回路模式、静音回路模式和基本模式。在测试模式下,可以通过TX1和TX0位控制TX 的输出控制。

1.2 收发操作

CAN总线控制器的发送流程是:首先对接口寄存器IFx命令掩码寄存器进行赋值,指定发送方向和字节数;其次,对IFxAR进行赋值,指定标准帧或远程帧;最后对发送请求寄存器TxRqst进行赋值,确认对32个消息对象中的哪一个进行操作。其中,控制器有32个消息对象,因而CAN 控制器可以管理32个消息对象报文发送。如果取消对消息对象的发送,只能通过IFx 消息控制寄存器进行操作,而不能对发送请求寄存器进行操作。CAN总线控制器的接收流程和发送大体致,不过最后接收的数据存放在新数据寄存器中。

1.3 中断管理

CAN控制器有4个中断源,包括发送中断、接收中断、错误中断及总线唤醒中断等。利用对CAN控制寄存器的EIE、SIE、IE等位进行设置,可方便实现对各种中断的有效管理。当有中断发生时,将引发C8051F043 的第19号中断,可在中断服务子程序里面对不同的中断进行响应。

1.4 错误检测

CAN协议具有CRC错误、应答错误、形式错误、位错误和填充错误等检测功能。C8051F043所带CAN控制器包含错误计数寄存器。其中接收出错计数器REC(Receive Error Counter)范围在0~127之间;发送出错计数器TEC值范围0~255之间。因而对于网络中的任何一个节点而言,都有可能因为错误计数器的数值不同而使其处于错误-激活、错误-认可和总线-脱离3种状态。

2 监控系统通信模块设计

2.1 监控系统总体结构

监控系统由控制台工作站、CAN主控制器、智能终端等组成。其中CAN主控制器由C8051F043和CAN总线收发器SN65HVD230组成,智能节点可实现交流电压、电流信号、频率等电能质量参数的采集、控制与处理,对变电站线路电能质量进行监控,然后通过CAN 主控制器将数据传递到控制台工作站。系统结构如图2所示。

图2 CAN总线网络系统结构框图

这种网络拓扑结构采用了总线式结构,且结构简单、成本低,采用无源抽头连接,因此可靠性较高。其信息传输采用CAN通信协议,通信介质采用双绞线。由于CAN总线是基于发送报文的编码,它不对CAN控制节点进行编码,故系统的可扩充性比较好,同时增删CAN总线上的控制节点不会对系统的其余节点造成任何影响。系统采用模块化设计,对于主控制器通信节点的设计可直接应用到智能节点的设计上。该智能终端使用的数据采集模块可采集交流数据。从互感器输出的三相电压、三相电流经过信号电路转成合适的电压信号直接送到C8051F043的模拟输入端,经过内部模拟通道选择开关,进行AD转换,将转换完的数据通过CPU处理后由CAN口送至上位机。每周期采样64个点,采用FFT算法,经试验,符合系统要求。

2.2 CAN 主控制器设计

CAN主控制器不包括模拟信号采样单元和频率采样单元,其作用是对底层分布式CAN智能节点进行数据传送和命令交互,其CAN通信节点设计与智能终端在通信协议上完全兼容。本系统中通信节点采用带有CAN控制器接口的微处理器C8051F043,物理层上的CAN 总线收发器SN65HVD230则作为CAN控制器与物理总线的接口。如果需要进一步提高系统的抗干扰能力,可在SN65HVD230与物理总

线接口之间再加一个光电隔离器。其电路图如图3 所示。

2.3 通信节点软件设计

2.3.1 系统初始化

在C8051F043 所带CAN控制器正常工作之前,需要进行正确的初始化,其访问CAN 控制器的步骤一般是①:

步骤1 设置SFRPAGE 寄存器为CAN0_PAGE;

步骤2 将CAN0CN 寄存器中的INIT 和CCE 位设置为1;

步骤3 设置位定时寄存器和BRP 扩展寄存器中的时序参数;

步骤4 初始化每个消息对象或将其MsgVal 位设置为NOT VALID;

步骤5 将INIT 位清0。

2.3.2 波特率发生器参数设置

在CAN总线网络正常通信的过程中,只允许一种CAN波特率进行通信,由于CAN网络上有不同节点,各节点控制器使用的晶振不一定一致,使得波特率设置成为关乎CAN通信是否成功的首要内容。本文中C8051F043单片机采用内部晶振和外部晶振相互切换的模式。设置方便,可根据不同的波特率对寄存器BITREG进行灵活设置。其参数见表1。

表1 不同晶振和波特率下位定时寄存器设置表

2.3.3 CAN 通信收发操作

本文C8051F043CAN控制器主要采取中断模式进行总线数据的接收和发送。整个系统主序提供2 种中断即定时器中断和外部中断。定时器中断的中断子程序主要处理来自模拟通道AIN0~AIN7的A/D数据采集;发送数据发送请求命令以及数据发送。外部中断的中断处理子程序主要处理CAN总线错误处理子程序和数据接收子程序。CAN控制器收发数据流程如图4所示。

发送程序代码如下:

SFRPAGE=CAN0_PAGE;

CAN0ADR=IF1CMDMSK;

CAN0DAT=0x0087;/*IF1 Command Mask Registers=0x00878*/

CAN0ADR=IF1DATA1;

for(num=0;num

{CAN0DATH=sdata[num];

num++;

CAN0DATL=sdata[num];

CAN0ADR=IF1CMDRQST;

CAN0DATL=MsgNum;∥MsgNum为要写入智能节点号

接收程序代码如下:

SFRPAGE=CAN0_PAGE;

CAN0ADR=IF2CMDMSK;

CAN0DATL=0x0f;

/*WR/RD=0,Mask=0,Arb=0,Control=0,ClrIntPnd=1,NewDat=1,DataA=1,DataB=1* /

CAN0ADR=IF2CMDRQST;

CAN0DATL=MsgNum;∥指向MsgNum 号消息

CAN0ADR=IF2DATA1;

for(i=0;i

rdata[i].val=CAN0DAT;∥接收数据到相应数组

2.4 软件设计时需要注意的问题

对C8051F043中CAN控制器在初始化完成后要处于挂起状态,这就需要在初始化完后将其置为Normal模式,否则将一直停留在挂起状态下,而不能进行正常工作。可通过对CAN控制寄存器的INIT位置0操作来实现。

在通过CAN 控制器进行发送和接收之前,一定先关中断,然后对发送和接收的相关寄存器进行初始化,进而进行发送或接收。

3 结语

本文介绍了以C8051F043单片机组成变电站监控系统通信节点的设计。通过CAN 总线通信构成变电站监控控制网络,具有高性价比、实现简单等突出优点。所设计的智能通信节点可联结多个集散控制系统,其硬、软件电路的设计采用模块化的方法,因而具有可扩展性,方便以后添加和升级。

注:文章内所有公式及图表请以PDF形式查看。

上一篇:茶多酚废水的处理 下一篇:工程施工合同签订阶段若干问题分析