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
fori=0i<2i++ //将P和I参数写入
*pwrite++=PIi
PSCTL&=~0x01 //禁止写Flash
pread=0x0000 //读入当前值
fori1=0i1<2i1++
PIi1=*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。实际运行证明:通信效果很好。由此可见:本控制方案集成度高、硬件简单、工作可靠,具有很好的推广价值。