单片机协处理器在电力系统中的应用_单片机论文
关键词:单片机协处理器 硬件略图 软件
前言
在电力测量及保护系统中,通常是由单片机构成数个乃至数十个前端处理器。它们通过串行通信与微机构成的中央处理器相连接,形成一个完整的系统,以实现对电力系统的遥测、遥信、遥调、遥控等功能。
前端处理器的核心就是单片机,从目前的情况来看,以intel公司的16位单片机80c196系列(kb、kc等)应用最广。单片机要处理的问题很多。如i/o量、a/d模数转换、键盘、通信、显示等,处理一圈所花费的时间常称之为前端处理器的运行周期。在整个系统中,前端处理器的数量较多,中央处理器对其进行巡检时会花去较多的时间。若能将前端处理器的运行周期缩短,毫无疑问能提高整个系统的运行及处理速度,使系统的性能得以改善。
被处理的各量中,以模拟量的处理较为复杂且耗时较长。模拟量的处理内容较多,如模拟量周期(即工频)的测定、模拟通道的选择(多个模拟量同一时刻选通一个)、a/d转换及存储等,有时还须采样/保持控制等。如能将模拟量交给一个协处理器去处理,势必会减轻主处理器的负担,缩短主处理器的运行周期,同时还能为增强某些功能需求创造条件。模拟量的计算通常是用傅氏算法,其精度又与模拟信号一周期内采样点的多少有关。采样点多,精度就高,但耗费的时间也多。若前端处理器采用单一的cpu,由于受到时间和模拟通道数量的限制,采样点大约在12~24点。若采用协处理器,采样点可多至30~36点,模拟通道多至16个,也同样可正常工作。由于主处理器与协处理器的软件各自独立,使得在编制软件思想清晰,容易理顺。
一、硬件
图1给出了前端处理器中采用协处理器的硬件略图(只画出有关部分)。它的主处理器仍采用了当前流行的16位单片机80c196kb(ic6),协处理器采用了w78e51单片机(ic3)。w78e51的指令及性能同89c51,只是它的工作频率可以达到40mhz。由于有两个cpu同时运行,而且它们之间还有数据交换,如何去协调它们的工作是至关重要的,这需要通过硬件和软件的设计来加强保证。
图1中,ic1是8选1的模拟通道芯片max338,若通道数量超过8,可选用max306,其通道数量可达16个。ic2为12位带采样保持功能的a/d模数变换芯片ad1674。ic4为地址锁存片74ls373,ic5为ram存储芯片6264,它们附属于ic3,作为ic3的片外数据存储器。
硬件的工作过程是:工频电压或电流经处理后(经传感器或者电压/电流互感器、放大器、滤波器等处理)变为相应的模拟信号,分别从ci1的8个输入端(in1~in8)输入,具体选通哪路则取决于a0~a2的二进制数。而a0~a2又是由ic3的p10~p12决定。被选中通道的模拟量由ic1的out输出,经跟随器后进入ic2进行a/d变换,由r/c、a0控制变换的过程,sta给出变换结束的信号,它们分别由ic3的p15~p17实施控制和测试。变换完成的数字量为12位,分两次输出,第一次为高8位(db11~db4),第二次为低8位(db3~db0,后加4个0)。这些数据经整理后依次存入数据存储器ic5中。ic3的p14是ic2的片选信号,p33是ic4、ic5的片选信号,通常为高电平,选不中。当进行a/d变换时,须先将p14置低电平,选中该片,变换完成后,再置加高电平。当向ic5存、取数据时,须通过p33进行控制,过程同上。这样,可以防止a/d变换、ic5存取数据、ic3通过p0口向ic6传送数据这三者之间的相互交叉干扰。
周期值的测量是由一模拟通道提供工频信号,经斯密特触发器至ic3的p13进行。p13相邻两次电平下降的时间隔即可周期值。
ic3的p30、p31与ic6的p10、p11构成握手信号,将存放ic5中的各量依次取出,由ic3的p0口传至ic6的p0口,并存入指定的区间,再进行傅氏运算、处理和控制。ic5中存储的数据个数是1周期内各采样点的、各通道测得的数据个数的总和。设采样点为rn,通道数为rm,再加上前述的周期值(各量均为2字节),总的字节数c=2rnrm+2。当rn=32,rm=8,则c=2×32×8+2=514字节。当少于200字节时,也即采样点、通道数较少时,如rn=16,rm=6,ic3可用w78e52代替。w78e52可以利用片内的256个ram来存储数据而省去片外的数据存储器,在硬件上更为简洁。
二、软件
图2是协处理器主程序软件框图。首先对有关的量进行说明:t0和t1是w78e51片内的两个定时器。t、ta和tb均为2字节寄存器,t用来存储测量出的周期值;ta存储两相邻采样点的时间间隔,因本例中采样点为32,将t右移5位即得ta值;tb是ta对应的溢出值,用来产生t0中断。注意:以上诸量都须机器周期来表示,本例中采用24mhz晶振,一个机器周期的时间为0.5μs。rm是模拟通道数,范围是1~8。rn是采样点数,范围是1~32。
工作过程简述如下:当p13电位下跌时,周期测试开始,到第二次p13下跌时,周期测试结束(区间为aa~ad)。两次下跌的时间间隔即为工频的周期,具有准确的跟踪特性。在周期测试开始后4μs,t0溢出产生中断,执行中断子程序,总共32次。中断子程序都是在ad~ac间执行的,也即在第一周期内所有需要测量的量都已测出。从ad往后便是第二周期,主要用来计算ta、tb的值,并将ic5内的数据传送出去。由此可见,协处理器的运行为2个周期,约40ms。应说明的是:在上电的第一个周期内,因周期值还未测出,故须对tb值先行设置。图3是中断子程序软件框图。
8个通道的a/d转换数据是先存入片内的ram。这样来得快,以减少通道之间的相差(邻近通道之间的相差约为0.4°),之后,再一次性地由片内ram转存于片外ram。执行一次t0中断子程序的时间约为256μs。当采样点为32时,时间间隔为625μs,绰绰有余。若将采样点增至36,通道增至16个,则采样点间隔约为555μs,执行中断子程序的时间约为445μs,仍有足够的余量。
软件可以用汇编语言asm51编写,也可以用对应的高级语言pl/m51或c51编写,但前者代码率高一些。
结束语
以上是协处理器的一般用法,在此基础上是否能进一步缩短运行周期和提高测量精度,是一个值得研究的课题。提高主处理器ic6和协处理器ic3的工作频率(如ic6采用16mhz,ic3采用36mhz)可以提高cpu的运行速度,以达到缩短运行周期的目的。但有两点需要注意:一是cpu的外围芯片的速度必须跟得上;二是频率提高后,辐射增强,交叉干扰变得明显。因面,在印刷电路板的设计上须谨慎处理。
提高测量精度可以从3个方面着手。一是提高a/d转换精度,采用14位a/d变换芯片。不过,位数越多,变换所需的时间也越长。这在单一cpu中因时间限制,效果不好,而在协处理器中却容易实现。这里还有一个附带的问题,目前大都采用开关式稳压电源,耗电量省,但工作频率高,噪波大,通常有5~10mv,这无疑限制了精度的提高。因而,必须有一套优良的电源滤波系统,将噪波滤到1mv以下。有时这部分的电源干扰采用串联式稳压电源,其噪波可以做到0.5mv以下。
二是采用同时式采样保持电路。在前述电路中,8个模拟通道的采样并不是同时进行而是按序进行的,后面的通道对前面的通道而言有一个时间上的滞后,这会给测量带来某些误差。常用的方法是将各模拟量的位置进行调整,将关系密切的量逐个紧排,以减少滞后带来的影响。当然,提高协处理器的速度和采用高速a/d变换器也有助于滞后的减小(可做到0.2°以内)。然而,最终解决这个问题的办法是采用同时式采样保持电路,也即在图1的ic1前加入8片采样保持芯片,并由ic3实施控制。
三是各模拟量输入通道(包括传感器或电压/电流互感器、放大器、滤波电路等)均会形成一定的附加相移。若各通道的附加相移相等,则对测量的精度不会有影响。输入工频三相电a,b,c,各相相差应为120°,由于附加相移不相等,显然会给测量带来影响,尤以测功率时明显。因而,应对各模拟通道的附加相移进行测量调整,使其尽可能相等。