基于DSP的跟踪频率变化的交流有样技术摘要:在电力系统交流采样系统中,经常要测量电网频率,再根据频率/周期的变化调整采样周期。本文在简单分析TMS320F240片内定时器、捕获器的使用原理后,提出一种全新的跟踪频率变化的交流采样技术。关键词:交流采样频率变化DSPTMS320F240在交流采样系统中,通常是一个周波采样64点或128点的电量值,然后对这些数据进行处理。如果电网频率恒定,则采样间隔t=T/N(T为周期,N为采样点),而电网的频率通常有一定的波动,所以要不断调整采样间隔。在单片机系统中,一般采用过零触发电路和单片机的外部中断来检测电量周波的开始和结束时间,再利用内部定时器计算出周期和采样间隔,在采样间隔定时中断程序中启动一次采亲。这种方案有两个缺点:其一,电路实现复杂;其二,精度不高,因为要考虑中断能否实时响应。过零触发电路产生的中断响应具有不确定性。我们在使用TMS320F240DSP开发交流采样系统时,巧妙地利用该款DSP的定时器、捕获器和不中屏蔽中断(NMI)实现了跟踪频率变化的交流采样。1NMI中断、定时器、捕获器的简单分析(1)NMI中断TMS320F24X系列有一个不可屏蔽中断(NMI)引脚。当该引脚有跳变信号时(可编程为上升沿或下降沿触发),立即进入中断程序,可以用于紧急事件的处理。本文中用于跟踪被测电量的频率。(2)定时器介绍TMS320F240有3个通用定时器,每个通用定时器有6种计数方式:1停止/保持模式,模式0;2单增计数模式,模式1;3连续增计数模式,模式2;4定向增/减计数模式,模式3;5单增/减计数模式,模式4;6连续增/减计数模式,模式5。设fc是CPU的时钟频率,则定时时间t=脉冲个数/(fc/分频系数),脉冲个数与定时周期寄存器的值或比较寄存器的值有关。工作过程是:1根据CPU的频率、定时时间确定计数寄存器的初值TxNT、周期寄存器的初值TxPER、比较寄存器的初值TxCMP。2启动定时器计数。3计数到比较寄存器的值发生比较匹配中断,同时使TxCMP引脚发生跳变。本文中利用T3CPU的跳变去启动一次A/D转换。4计数到周期寄存器的值发生周期匹配中断。定时器一旦开始工作就不受程序影响,准确性高,保证每隔固定间隔进行采样。(3)捕获器介绍捕获单元用于捕获引脚上电平的变化并记录发生的时间,记录事件发生的时间以定时器的计数器作时基。当捕获引脚发生跳变时,捕获单元将该时刻时基的计数寄存器T2CNT的值装入相应的FIFO队列中。FIFO队列可以装入两个值,第三个装入时会将第一个值挤出。如果将捕获器的跳变输入信号和NMI输入信号并联(见图2),则可以在NMI中断程序中读取跳变时的时基值(读FIFOx寄存器)。例如:以T2作时基,引脚电平第一次上跳时,T2计数寄存器T2CNT的值为X1,第二次为X2,T2分频系数为D,CPU频率为fc,则变化时间间隔为t=D/fc×(X2-X1)2设计思想过零触发电路的输出接TMS320F240外部不可屏蔽中断引脚NMI,确保了中断的实时响应;同时,过零触发电路的输出还接到捕获器1的输入端CAP1,T2定时器作捕获器的时基,捕获器可以捕获两个脉冲间隔的时间(用T2计数器的变化量表示),这样可以计算出周波的周期/频率。用一个定时器T3完成定时触发采样,每隔一个采样周期T3定时器的比较匹配输出端T3CMP输出一个下降沿脉冲去启动ADC进行一次A/D转换,所以T3CMP的启动信号的间隔具有确定性。下面对频率/周期和采样间隔的计算作出推导。(1)频率和周期捕获器用T2作时基,CAP1端每出现一个上升沿脉冲表示一个周波开始,同时立刻进入NMI中断程序,在中断程序中读取FIFO1寄存器的值赋给T3的周期寄存器。要注意的是:FIFO1总是初始化为0,所以FIFO1的值是在刚过去的周波内T2计数器的增加值;而T2的分频系数为128,假设DSP的工作频率为20MHz,这样就可以计算出上一个周波的周期T和频率f:T=(1/20)μs×128×(FIFO1)= (128/20)×10-6×(FIFO1)s f=1/T=(20×106)/[128×(FIFO1)]=156250/(FIFO1)Hz(2)跟踪频率变化的采样间隔如果T2工作在定时/计数状态下,给T2的周期寄存器T2PER赋初值为FIFO1寄存器的值,则T2的周期中断时间即是上一个周波的周期;而在NMI中断程序中将FIFO1寄存器的值赋给T3的周期寄存器T3PER.注意:T2的分频系数为128,T3的分频系数为1,所以T3的周期中断时间是一个周期的电量的1/128;而采样周期用T3作时基,T3的周期中断即是采样中断。从而实现了一个周期的128点采样,即实现了跟踪频率变化的交流采样,当然,有一个周波的滞后。每个周期会产生一次NMI(不可屏蔽中断),在NMI中断程序中将T2CNT的增加值(在FIFO寄存器)读出来赋给T3的周期寄存器。因为T2的分频系数为128,这样T3的周期中断时间即为一个周期的1/128,实现了一个周期采样128点的目的。3硬件设计(1)互感器电路及设计注意事项利用互感器电网的二次高压和电流交换成0~5V或-5~+5V的电压送入A/D转换器,具体电路如图1所示。图1中,电压互感器的原边100V,副边输出2mA电流经OP07转换成-3.5~+3.5V的电压量(注意:幅值范围为-5~+5V)。电流互感器的原边输入5A的电流,副边输出2mA的电流经运放转换成-3.5~+3.5V的电压量。D11、D12,D21、D22为运放输入限幅保护电路;C11、R14,C21、R23为互感器相移补偿电路。因采样时只要保证一个周波采样N点,什么时候开始并不重要,所可以省去相移补偿电路。R11,R12、R13,R21、R22的值可以通过以上给出的电流、电压值计算出来:R11=100V/2mA,R12+R13=R21+R22=3.5V/2mA。运放的输出端可以接一电容进行滤波。运放的输出可以再接一级电压跟随器(如图2的U1A)起缓冲、隔离、提高带载能力的作用。(2)过零触发电路具体电路如图2所示。U1A构成的电压跟随器的作用如上所述,它的正端输入来自互感器电路的输出。U2A构成一个过零比较电路,D2稳压二极管使比较器的输出为0~5V,将模拟信号转换成数字信号送入DSP的捕获器输入端CAP1和不可屏蔽中断端NMI。(3)A/D转换器和DSP的接口电路电路原理如图3所示。ADC芯片采样14位的MAX125。TMS320F240的定时比较器输出端T3CMP接MAX125的启动转换器CONVST;MAX125转换结束产生中断,通过INT脚接DSP的XINT1脚向DSP申请中断,DSP在中断程序中读取转换结果。DSP对MAX125的操作是通过端口访问完成的,MAX125的片选端CS4接译码器的一个输出端,译码器的输入和使能端由DSP的地址线和I/O信号LS控制。每隔一个采样周期(T/N)T3CMP端输出一个下降沿脉冲,启动MAX125进行一次A/D转换。采样间隔会根据电网频率的变化自动调整。4软件设计下面给出几个程序函数。具体数据处理的函数因系统功能不同而异,限于篇幅这里不作讨论。(1)定时器、捕获器初始化程序:void init_TimerCapturet(){*T2CNT=0; /*计数寄存器初始化*/ *T3CNT=0; *T3CMP=1000; *T2PER=30000;T3PER=4000; /T2PER、T3PER会在NMI中断程序中根据电量频率的变化作出相应的调整*/ *CAPCON=0XBC55; /*设置捕获器*/ *GPTCON=0X186A; *T2CON=0X17CA; /*方式2,分频系数为128*/ *T3CON=0X10CA; /*方式2,分频系数为1*/ *NMI_CR=0X64; /*设置不可屏蔽中断*/ } (2)ADC转换结束中断响应程序void c_int1(){int i;/*其余为全局或静态变量*/ /*程序中读取ADC的转换结果*/if(AChanel= =1)/*读A组3路的转换结果*/ {outport(0x01,0x03);/*输出MAX125的控制字*/inport(0x01,&ADC_Data[0]);inport(0x01,&ADC_Data[1]);inport(0x01,&ADC_Data[2]);AChanel=0; }else{/*如上读取B组3路的转换结果*/ } /*将14基于DSP的跟踪频率变化的交流有样技术位的结果转换为16位的(初码存放)*/for(i=1;i<6;i++)ADC_Data[i]=ADC_Data[i]<<2/4; } (3)不可屏蔽中断的中断程序void c_int7(){asm("SETC INTM");/*禁止中断*/ *T2CNT=0;/*作捕获器的时在,一个周波开始时其值为0*/ *T3PER=*FIFO1;/*T3的计数周期是一个周波周期的1/128*/asm("CLRC INTM");/*使能中断*/ } 本文充分利用了TM320F240的片内资源,巧妙地实现了动态跟踪频率变化的交流采样,希望对使用该系列DSP进行测控领域开发的技术人员有所启发。TMS320C32DSP的中断编程方法及BOOT功能实现摘要:采用C语言对DSP编程具有很多优点。针对TMS320C32芯片的特点,提出了一种基于C语言的中断编程方法,同时介绍了具体的BOOT功能实现方案,给出了相应的源程序和结论。关键词:C语言BOOT表中断向量TMS320C3X系列芯片是美国TI公司推出的第一代浮点DSP芯片,具有丰富的指令集、很高的运算速度、较大的录址空间和较高的性价比,在各领域得到了广泛的应用。TMS320C32是TMS320系列浮点数字信号处理器的新产品,在TMS320C30和TMS320C31的基础上进行了简化和改进。在结构上的改进主要包括可变宽度的存储器接口、更快速的指令周期时间、可设置优先级的双通道DMA处理器、灵活的引导程序装入方式、可重新定位的中断向量表以及可选的边缘/电平触发中断方式等。对TMS320C32的开发可以用汇编语言,也可以用C语言。使用汇编语言的优点在于运行速度快、可以充分利用芯片的硬件特性,但开发速度较慢,程序的可读性差;而C语言的优势在于编程容易、调试快速、可读性好,可以大大缩短开发周期,但C语言对于其片内的没有映射地址的特殊功能寄存器不能操作,如IF和IE,AR0~AR7等。在C语言环境下的中断编程和BOOT文件(此时TMS320C32工作在微机方式下,程序存于片外EPROM中)的制作方法同汇编语言相比均有所不同。针对TMS320C32的这些特点,笔者结合自己的实际工作经验,提出了一种基于C语言的中断编程方法及BOOT功能实现,并且在实时数据采集和信号处理系统中得到了实际应用。1TMS320C32的中断及中断(包括陷阱)向量表在TMS320C3X系列DSP中,TMS320C30和TMS320C31具有映射地址固定的中断-陷阱向量表,但对于TMS320
推荐下载
-
基于DSP平台的目标跟踪算法研究及应用.pdf
本文重点研究和设计一套基于DSP的目标跟踪系统,在研究经典的目标跟踪算 法的基础上,将目标跟踪算法与嵌入式硬件平台结合起来,并借助于TI公开的 DSP/BIOS工具,实现目标跟踪算法的工程化应用。
9 2021-05-11 -
基于DSP的斜轴式太阳跟踪系统_刘文.pdf
针对目前光电式太阳跟踪系统在低辐照和多云天气下无法实现对太阳连续跟踪且跟踪精度较差的问题,设计了一种新型太阳跟踪系统。系统首次采用斜轴式机架转台,以DSP 芯片为主控制器,采用CMOS 图像传感器取代
3 2021-05-05 -
基于DSP的交流电机伺服控制器设计
对基于DSP交流异步电机伺服控制系统进行硬件设计,介绍了双闭环伺服电机硬件电路的设计,并主要介绍DSP外围电路的设计及器件选型,包括整流逆变电路、能耗制动电路、电流检测电路、光电编码电路、温度检测电路
15 2020-10-27 -
基于DSP的交流电机变频调速系统设计
目前交流调速电气传动已经成为电气调速传动的主流。随着现代交流电机调速控制理论的发展和电力电子装置功能的完善,特别是微型计算机及大规模集成电路的发展,交流电机调速取得了突破性的进展。恒压频比(U/F=常
22 2020-10-27 -
基于SVPWM的交流变频调速系统DSP程序设计
用C语言编写实现SVPWM的交流变频调速系统DSP程序设计
26 2019-06-05 -
基于DSP的SVPWM交流调速系统研究与设计.pdf
由于交流异 步 电动 机变频 调速 系统 拥 有较好 的调速 和启、制动性能和它的高功率因数、高效率等多种优良特 性 ,再加上其完善 的调速性 能 、较好的节 电能力 和通 用的 适用性推广性能 ,使
9 2021-05-10 -
基于DSP的交流异步电机高精度调速系统设计
针对交流异步电机的特性,设计了一套基于DSP的交流异步电机高精度调速系统。系统应用矢量控制技术作为系统的总体控制方案,以TI公司电机控制专用的高速数字信号处理器(DSP)TMS320F2812为系统的
20 2020-07-30 -
基于DSP交流伺服系统与CAN总线的通信设计
1 DSP的CAN控制器 TI公司的低功耗、高速DSP芯片TMS320LF2407A具有高速运算能力和高效控制能力。其内嵌的CAN控制器是一个完全的CAN控制器,完全支持CAN2.0B协议,它主要有以
20 2020-08-08 -
基于视觉传感的焊缝跟踪技术简介
目前服役的焊接机器人90%都是以“示教再现”模式进行工作的,少数以轨迹规划方式工作。焊接过程中,焊枪与焊缝中心都会存在一定误差,而且焊接过程又是一个复杂、非线性、干扰因素较多的过程,焊接工件热变形、咬
16 2020-10-28 -
单片机与DSP中的基于单片机的电力监控系统交流采样技术的实现
摘要:系统采用8031单片机实现电力参数的交流采样,通过LED显示器显示频率、电压、电流的实时值,在过压30%、欠压30%时进行声光报警,并能定时打印电压、电流及频率值。实践证明,采用交流采样方法进行
11 2020-12-12
暂无评论