综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章D S P正文
 
基于TMS320F2812事件管理器的一种测频方法
发布日期:2006-05-19 作者:郑杰 陶维青 来源:微计算机信息

摘要 TMS320F2812是TI公司新推出的一款主要应用于工业控制的DSP芯片。它集成了EV、AD、串口等的片内外设,具有强大的事件管理能力和嵌入式控制功能。文章利用其片内外设事件管理器的捕获功能,给出了一种简单的测频方法,实现了电力系统中电网频率的测量。有较强的实用性。
关键词 测频  电力系统 TMS320F2812 捕获

引言

    频率测量是电力系统测量中一个十分重要的环节。电力系统中采样对测频要求有一定的实时性。电网频率范围在45Hz与55Hz之间,一般在49.5与50.5之间波动。在精度要求不需要特别高的电网频率测量中,本文给出一种基于DSP芯片TMS320F2812的一种简易测频方法。该方法有效利用F2812的片内外设事件管理器(EV)的捕获功能,在被测信号的有效电平跳变沿捕获计数,电路实现多靠软件设置,运算简单,实时性好,精度达10-3,完全能够满足要求。

1 测频原理及常用方法

   测频是电子测量技术中最基本的测量之一,通常采用的直接测频方法有测频法和测周法两种。

   测频法就是在确定的闸门时间Tw内,记录被测信号的变化周期数(或脉冲个数)Nx,则被测信号的频率为:fx=Nx/Tw。测周期法需要有标准信号的频率fs,在待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率为:fx=fs/Ns。这两种方法都会产生±1误差(计数脉冲和门控信号不同步而产生)和标准频率误差(所使用的晶振不稳定引起),且±1误差较标准频率误差更大。为了保证测试精度,一般采用低频端测周高频端测频。电网频率在50Hz左右,采用测周法能达到较高的精度。捕获测频原理波形图见图1。精度更高的等精度测频方法有多周期同步测频法和多周期完全同步测频法。但这两种方法实现都比较复杂,可参看参考文献[5].

 

2 测频的硬件设计

 

2.1 TMS320F2812芯片简介

   TMS320F2812是TI公司2000系列的新型DSP芯片,具有32位低功耗定点处理器,最高主频150MHz,有强大的操作能力和迅速的中断响应处理能力。片内有18K字高速RAM,128K字的可加密Flash ROM。片上还集成了丰富的片内外设,有SPI、SCI、eCAN和McBSP等多个串口外围设备,16通道的12位模数转换器(ADC),两个事件管理器(EVA,EVB),56个独立的可编程、多用途通用I/O口(GPIO)。该DSP芯片集成了大量工业控制领域应用的外设接口,能大大简化电路设计,同时它也具有足够的处理能力,是应用于控制领域的一款高性能DSP处理器。

 

2.2 事件管理器及其捕获单元

   其片内外设事件管理器含有两个模块EVA和EVB,每个模块都包括2个通用目的(GP)定时器、3个全比较/PWM单元、3个捕捉单元和1个正交编码脉冲电路。事件管理器为用户提供了众多的功能和特点,在运动控制和马达控制中特别有用。图2是捕获单元模块图,标出了一些相应的寄存器设置。

这里利用EV模块的定时器,可以节省一个CPU定时器去处理其他工作。捕获单元捕捉被测信号的有效电平跳变沿,由内部的计数器记录一个周波内标频脉冲个数,并通过相应的运算来得到被测频率的大小。频率测量时应在接入DSP前接一比较电路,将被测信号整形为方波信号后输出到DSP捕获引脚。图3为硬件电路模块图。

   捕获单元可以记录捕获单元引脚的变化,用户可以指定诊断变化的方式(上升沿、下降沿或两个边沿)。当捕捉输入引脚CAPx(x=1、2、3属于EVA;x=4、5、6属于EVB)检测到变化时,它将捕捉所选择的GP定时器的当前计数值,并把该计数值存储在两级深度的16位FIFO堆栈中。这里每个捕捉单元都有一个专用的2级深度FIFO堆栈,顶层堆栈由CAPFIFOx组成,底层由CAPxFBOT组成。测频分两次捕捉,第一次捕捉到引脚发生的指定变化时,捕获单元将捕捉所选用计数器的计数值并把该值写入FIFO堆栈的上层寄存器(如果堆栈为空)。如果在第一次捕捉的值读取之前发生第二次捕捉,一个新的捕捉值会被送入底层寄存器。捕获单元捕捉到数值后,相应的中断标志位置1,如果没有屏蔽中断,就会产生外围设备中断请求。这里第一次捕捉屏蔽中断,第二次设置为和第一次捕捉相同的跳变沿捕捉,并开中断。响应中断,就可以通过中断服务程序读出一对捕捉的数值。这样的一对捕捉值正好是一个被测频率周期的两次计数。堆栈中的数值个数可以通过16位的FIFO状态寄存器CAPFIFOA(或CAPFIFOB)检测到。读出堆栈中两次存入的新旧捕获值,就能计算出一个周波内的标频脉冲数,进而得出被测周波的频率。

3 测频软件设计

3.1 事件管理器的初始化

初始化事件管理器时,在EVA的定时器1控制寄存器(T1CON)中设为连续增计数模式,64分频(由于被测的电网频率范围在45Hz-55Hz,而TMS320F2812主频为150MHz,计数器最大计数为0xFFFF,即65535.为使精度最高,选64分频,150M/64/50=46875),并使能定时器T1。通过设置捕获单元控制寄存器A(CAPCONA)的相应位来选用EVA模块的CAP1和GP定时器T1,并设为上升沿捕获。这里选用连续增计数模式,写0xFFFF到周期寄存器T1PR以使两次捕获的计数值之差尽可能大。GP定时器T1根据输入时钟进行增计数直到计数器的计数值与周期寄存器(T1PR)的值相等时为止,在产生匹配后的下一个输入时钟上升沿定时器复位为0并重新开始计数。捕获前要清中断标志位,开捕获中断。初始化子程序下所示。

void InitEv(void)

{

EvaRegs.T1PR = 0xFFFF;        //周期寄存器设为FFFF

       EvaRegs.T1CNT=0;

       EvaRegs.T1CON.all=0;          //定时器控制寄存器

       EvaRegs.T1CON.bit.TMODE=2;    //连续增计数模式

       EvaRegs.T1CON.bit.TPS=5;      //4分频

       EvaRegs.T1CON.bit.TENABLE=1;  //使能定时器

       EvaRegs.CAPCON.all=0;         //捕捉控制寄存器

       EvaRegs.CAPCON.bit.CAPQEPN=1;  //使能捕捉

       EvaRegs.CAPCON.bit.CAP1EDGE=1;    /检测上升沿

       EvaRegs.CAPCON.bit.CAP12TSEL=1;  //选定时器1

       EvaRegs.CAPFIFO.bit.CAP1FIFO=0; //CAP1FIFO空

       EvaRegs.EVAIFRC.bit.CAP1INT=1;//清捕获中断1标志位

       EvaRegs.EVAIMRC.bit.CAP1INT=1; //捕获1中断使能

}     

3.2 捕获中断子程序

   进入捕获中断子程序时,保护现场后首先清CAP1中断标志位,从2级深度FIFO中依次读出两次捕获的计数值capnum1和capnum2。如果capnum2大于capnum1,则直接相减,之差即为在被测频率的一个周波内记的定时器T1脉冲数t。若capnum2小于capnum1,则说明在计数过程中有计数溢出,即计数到周期寄存器T1PR内写入的0xFFFF后回零重新计数,因此在求脉冲数t时要在capnum2与capnum1之差上加上0xFFFF。被测的信号频率:f = 时基T1的频率/ t,这里时基T1的频率为时钟主频除以分频系数,即fT1=150M/64,因此所测频率f=150M/64t。下面为捕获中断子程序。

unsigned  int capnum1;

unsigned  int capnum2;

float f;

  float pinlvf[5];

  int fnum=0;

 interrupt void CAPINT1_ISR(void)    // EV-A捕获中断子程序

{

unsigned int temp;

       EvaRegs.EVAIFRC.bit.CAP1INT=1;// 清捕获中断1标志位

       capnum1=EvaRegs.CAP1FIFO;

       capnum2=EvaRegs.CAP1FIFO;

       if(capnum2 > capnum1)

              temp = capnum2-capnum1;

       else

              temp = capnum2+(0xFFFF-capnum1);

       pinlvf[fnum++] =temp;

       if(fnum>4) fnum=0;//取5个数值后回零

       f= 2343750.0/(float)temp;//f= 150M/64/temp

       PieCtrl.PIEACK.bit.ACK3 = 1;//开外设中断应答

}

结语

本文给出了基于DSP芯片TMS320F2812的一种测频方法,主要利用了其自带的片内外设事件管理器的捕获功能。方法简单,实时性好,所测频率精度达到10-3,完全能够满足电力系统中经常要用到的测频精度。并已在电网自动化FTU上应用,有较大的实用价值。

                     

[1]TMS320F2810,TMS320F2812 Digital Signal Processors Data Manual.Texas Instrument,2002.

[2] TMS320F28x Event Manager (EV) Peripheral Reference Guide.Texas Instrument,2002.

[3]张卫宁.TMS320C28x系列DSP的CPU与外设(上,下).清华大学出版社.

[4]包明,赵明富,郭建华,等.基于FPGA的高速高精度频率测量的研究.单片机与嵌入式系统应用,2003,(2):31-33.

[5]吴文全,束华. 基于单片机的多周期完全同步测频技术.电子技术应用,2004,(4):20-21


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于TMS320F2812的交流变频调速系统的设计 (12-12)
基于TMS320F2812的高压电机保护装置 (10-18)
基于TMS320F2812的DSP控制器设计及应用 (09-29)
TMS320F2812在电力系统多通道同步交流采样中的应用 (05-23)
定点DSP芯片TMS320F2812实现快速算法应用 (12-26)
TMS320F2812型数字信号处理器 PC串行通信 (03-21)
基于DSP的精密半导体激光驱动电源系统 (03-02)
8051、ARM和DSP指令周期的测试与分析 (09-04)
TMS320F2812型DSP在车辆四轮转向控制系统中的应用 (07-05)
并行模数转换器ADS8364与TMS320F2812的接口设计 (05-26)
基于TMS320F2812的车型检测器设计及其算法的研究 (03-16)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号