关键词:C8051F060 微控制器 CAN 现场总线 励磁
1 引言
随着发电机容量的不断增大,对励磁系统的要求越来越高。国内目前使用的各类励磁调节器都非常先进,但功率柜的制造水平却不尽如人意,这势必影响励磁系统整体性能的提高?进而妨碍整体发电系统性能的提高。
目前,国产的励磁功率柜普遍存在检测功能不全、信息传送技术、控制和检测技术落后等问题。为了解决这一问题,本文给出了通过采用高集成度单片机C8051F060实现的智能励磁功率柜与CAN总线的通信方法,该方案具有完备的检测、控制和通信功能。
2 C8051F060单片机的特点
C8051FXX系列单片机是美国CYGNAL公司推出的一种与51系列单片机内核兼容的单片机。仅就笔者对C8051F060的使用实践介绍一下其新特点:
(1)内核采用流水线结构,速度可达25MIPS(25MHz晶振),比普通的51单片机快10倍;其指令与标准系列51单片机兼容,因而掌握开发过程非常容易;该芯片的JTAG调试方式支持在系统、全速、非插入调试和编程,且不占用片内资源。
(2)片上集成有64kB Flash、4352B内部RAM(256+4kB,可外扩至64kB)、59个I/O口、 2通道16位1MSPS的可编程增益ADC、8通道10位200kSPS可编程增益ADC、2路12位DAC、3路模拟比较器、内部电压基准以及片内电源监视、降压检测和看门狗等功能。由于C8051F060的高集成度,因而无需外扩ROM、RAM、AD、DA、watchdog、可编程I/O口和EEPROM(用片内Flash实现),从而大大简化了硬件电路,并为构成以C8051F060为核心的单片机系统创造了条件,同时也提高了系统的可靠性。
(3)片内集成有2个UART、1个SM(兼容I2C)和1个SPI。最为便利的是,C8051F060集成了CAN总线控制器,这使得CAN总线具有开发费用低廉、抗干扰性强、可适用于工业现场应用等特点,并可广泛应用于干扰环境非常严重的各种工业现场测控领域。C8051F060只需加上CAN总线收发电路就可挂接到CAN通信网络上,因而大大简化了通信系统的设计,减少了通信节点受干扰的概率。
(4)可编程的16位计数器阵列?PCA?有6个捕捉/比较模块和5个通用16位计数器/定时器,这一为要求定时器/计数器具有较多的测控节点提供了方便。
(5)C8051F060能满足绝大多数工业测控节点的要求,能够形成以C8051F060为核心的单片机系统,如果配以外围测量单元,还可形成完整的测控节点。
3 智能励磁功率柜的系统结构
智能功率柜系统原理框图如图1所示。功率柜中最关键的部件是三相全控桥,控制此桥的核心参数为触发角度,该参数可由CAN总线通过调节器送出,同时送达本地柜应发的电流值。经检测得到的输出电流与调节器的应发给定电流进行比较并完成PI运算,即可产生新的微调触发角度。该触发角度经PCA形成触发脉冲继而驱动三相全控桥,从而实现柜间均流。与此同时,通过信号检测模块还可将柜内温度、晶闸管通断状态、输出电流值送入微控制器,以对各参数进行计算分析,并将其与设定的阈值进行比较,最后实时显示测量结果,同时报警。
图3 同步信号采集电路
3.1 基于PCA模块实现的数字移相触发
三相晶闸管全控桥的工作原理及六个晶闸管的触发脉冲相序关系如图2所示。
该PCA中包含6个基于同一16位计数器,并可作为时基的捕捉/比较模块,每个模块可构成正沿捕捉、负沿捕捉、正负沿捕捉、软件定时器、高速输出、脉冲宽度调制器等6种方式。本设计中采用的是高速输出模式,当PCA计数器与模块的16位捕捉/比较寄存器相匹配时,相应模块的CEX引脚的逻辑电平将发生变化,并引起相应中断。
触发信号从同步信号过零点开始计时,调节器则经CAN网将触发角的电角度值α、同步信号周期值TSYN和脉冲宽度W发送给各功率柜。同步信号采样电路见图3,当同步信号过零产生中断时,PCA计数器开始计数,并根据α、W、TSYN及PCA计数频率计算出α的对应值Tα1~Tα6和脉冲后沿的对应值TW1~TW6,然后将Tα1~Tα6写入6个模块的16位捕捉/比较寄存器中。当捕捉寄存器的值与PCA计数器的值相符时,CEX引脚将变为高电平,以使相应模块产生中断,同时在中断子程序中,相应的TWN被写入16位捕捉/比较寄存器。当其与PCA计数器值相符时,CEX引脚变为低电平,其中一路触发单脉冲。用门电路便可将6路单脉冲合为6路双窄脉冲。下式为Tα和TW计算方法:
TαN=TSYN?α+90?N-1??/360TCLK
TWN=TSYN?α+W+90?N-1??/360TCLK
式中,N可取1?2?...?6, TCLK为PCA计数器的计数周期。
3.2 通过片内Flash在线修改参数
C8051F060中Flash的0X0000~0X007F地址范围既可用于片内64kB Flash,也可用于附加的128B的扇区,这可通过设置PSCTL寄存器的SFLE位来实现。由于片内Flash必须先擦除再写入,而且应当以512B为一扇区进行,故附加的128B的扇区更适合用作非易失性数据的存储。在功率柜中,通常需要在线修改的参数为PI调节器的P和I,下面以KEIL C语句为例给出在线修改参数的程序:
WrRe Flash???
unsigned int xdata *pwrite?
unsigned int code *pread?
unsigned char i ?
unsigned char i1?
WDTCN=0xde? //禁止看门狗
WDTCN=0xad?
FLSCL|=0x09? //25MHz时钟的擦写频率
PSCTL|=0X02? //允许Flash扇区擦除
PSCTL|=0X05? //允许Flash扇区写
pwrite=0x0000? 0x0000指向128B扇区
*pwrite=0? //擦除Flash
PSCTL&=~0X02? //禁止擦除Flash
for?i=0?i<2?i++? //将P和I参数写入
?*pwrite++=PI?i?? ?
PSCTL&=~0x01? //禁止写Flash
pread=0x0000? //读入当前值
for?i1=0?i1<2?i1++?
? PI?i1?=*pread++???
4 CAN总线在励磁装置中的应用
CAN总线是主要的现场总线之一。由于其低廉的开发费用、良好的抗干扰能力,CAN总线在工业测控领域得到了广泛应用。关于CAN总线的基本概念和接口电路,其相关内容较多,本文只介绍如何用C8051F060实现CAN总线通信的方法。
4.1 C8051F060的CAN控制器结构
图4给出了C8051F060的内部CAN结构图,由于MCU不能直接访问信息RAM,因此,必须通过IF寄存器与信息RAM交换数据。信息RAM共可存储32帧信息。而IF寄存器则分为IF1和IF2两组,以分别定义为接受、发送功能,IF的CommandRequest寄存器可用于定义访问32帧信息的哪一帧,CommandMask则用于定义将一帧信息的哪一部分传到信息RAM中。
当中断寄存器IR为0x0000时,表示没有中断发生;当其为0x0001~0x0020时,表示32帧信息的哪一帧引起中断,而当其为0x8000时,则表示状态改变(发送完成、接收完成、错误状态等)引起中断。
4.2 CAN通信
通信的初始化过程与其它CAN控制器类似,图5给出了其发送、信息RAM与IF通信和接收中断子程序的框图。
4.3 CAN总线在智能功率柜中的应用
CAN通信系统由四个节点组成,其中包括一个调节器和三个功率柜。功率柜由C8051F060完成通信功能,调节器由集成了CAN协议的网卡HT-1302B负责通信。调节器可将单柜应发电流值、触发角、同步信号周期以及脉冲宽度等参数发送给各功率柜。功率柜则将各柜的输出电流值、导通监视结果、柜内各点温度反馈回调节器。
5 结束语
由于C8051F060的高集成度,因而只需少量外围测量电路便可组成集控制与通信功能于一体的单片系统,同时可提高系统的整体可靠性。另外,C8051F060内核与普通51系列兼容,且指令简单易学,因此,可缩短系统开发周期。本系统由带屏蔽层的双绞线构成通信介质,最大通信距离不超过150米,通信速率可达250kbps。实际运行证明:通信效果很好。由此可见:本控制方案集成度高、硬件简单、工作可靠,具有很好的推广价值。