打印

基于TMS320F2812的数字频率计的设计二

[复制链接]
2202|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aass1|  楼主 | 2011-10-9 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2.2 系统的软件设计  主监控程序是整个软件系统的总调度程序,它控制着程序的有序运行。系统在上电或复位后,主程序先调用各模块的初始化子程序,主要包括GPIO初始化、PIE初始化、EV初始化和SCI初始化。系统初始化完成之后,主程序启动CPU_Timer0,使能 T1、T2的上溢中断,启动CAPl,设置T1的比较值为1,等待T1CINT置位,开始测量频率。为减小测量过程中产生的随机误差,所测结果均取平均值。利用CPU_Timer0产生一定的时间段(O.6s)。该时段结束后(CPU_TimerO中断标志位置位),即对该段时间段内记录的测量结果求均值。此时,如果查询到上位机发出接收请求,则传送相应数据至PC显示。然,后,重新初始化定时器和捕获单元,进入下一轮测量。主监控程序流程如图3所示。
  测频的部分源代码如下:
  3 误差分析及测试结果
  3.1 量化误差
  设被测信号的频率为Fx,其真实值为Fxe,标准频率为Fs,在一次测量中,预置闸门时间为T′,Tpr为实际闸门时间,被测信号计数值为Nx,标准频率信号计数值为Ns。

  Fx计数的起停时间是由该信号的上升沿触发的,在T′时间内对Fx的计数Nx无误差,对Fs的计数Ns假设相差N个脉冲,即|△et|≤n。
  由于Fx/Nx=Fs/Ns,Fxe/Nx=Fs/(Ns+△et),根据相对误差公式有:
  因此可以得到以下结论:
  ①相对测量误差与被测信号的频率无关。
  ②增大T′或者提高Fs,可以增大Ns,减少测量误差,提高测量精度。本设计方案中,预置闸门时间限定了最低的测量精度。
  ③误差分析中的n,主要由硬件切断T1PWM所需要的时间决定,为一个小整型常数。若预置闸门时间Tpr=O.012 8 s,则
  即使n取不为l的小整型常数,仍可以使得精度维持在十万分之一以内,并且可以随着预置闸门时间的适当延长,得到进一步的提高。
  3.2 测量的原理误差和标准频率误差
  本测量原理类似多周期同步测量原理,主要的原理误差来自测量即将结束时,由D触发器产生低电平跳变来切断T1PWM,从而使其产生由CAPl和CAP3同时捕获上升沿的跳变。这段时间主要是由D触发器的反应时间决定。在测量过程中,针对这部分误差,可以通过适当增加预置闸门的时间来克服,同时考虑到DSP 内部高速的时钟频率,这并不会明显地增加测量耗时,但却达到了弱化此误差的影响、增加测量精度的目的。
  标准频率误差为△Fs/Fs。因为晶体的稳定度很高,标准频率误差可以进行校准,并且已将DSP内部的高速时钟频率进行了适当的分频,所以相对于量化误差,校准后的标准频率误差可以忽略不计。
  3.3 测试结果
  用函数信号发生器(型号为Tektronix AFG3010;精度为O.000 1%)产生方波信号,用设计的频率计测出频率,求出误差。本测频系统的测量精度可达到O.01%。根据误差分析可知,系统的最大误差发生在预置闸门时间正好填充了整数个被测信号时,即频率为78.125 Hz或者其整数倍时,所以选择这些点进行测试。实际的测试数据如表1所列。
  4 结论
  本文着重分析了数字频率计的设计方案、硬件组成,以及采用Modbus协议实现上位机与下位机通信的软件设计。特点有:
  ①在频率测量原理方面,由于采用了多周期测量原理,消除了对被测信号计数时产生的±1个计数误差,其精度仅与闸门时间和标准频率有关,克服了传统的测频法或测周法的不足,实现了宽量程、高精度的频率测量。同时由于预置闸门时间的存在,保证了当被测频率在各频段之间来回切换时,系统反应灵敏,跟随性能好。
  ②在系统的总体设计方面,充分利用了F2812 DSP的内部资源,即使用事件管理器中的定时器、捕获单元完成频率的测量;使用PWM的输出实现自检电路的设计;使用串口通信模块完成上位机和下位机的通信。在测量结果的显示方面利用RS232,通信协议采用Modbus协议,实现下位机和上位机的通信,将测量结果在上位机中显示出来。
  本文只探讨了如何对单路信号进行频率测量,而对于多路信号,可先使其经过一个与门,通过软件判断哪一路信号,然后再运用本设计方法进行测量。针对这种情况所产生的误差问题还需作进一步的探讨,本文只给出初步的探索。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

799

帖子

1

粉丝