采用TMS320F2812 DSP芯片为控制单元,在无需任何门控器件控制的情况下,利用DSP 2812丰富的软件资源实现了等精度测量。根据每个门闸时间内高频标准脉冲的个数与已知被测信号的个数,求得被测信号频率,再通过多次平均得到最终结果。

* 本作品获得2008年德州仪器(TI) C2000 DSP大奖赛命题组一等奖,并得到合肥工业大学2008年大学生创新性实验计划项目的资助

作品的意义与概况

随着微电子技术和计算机技术的飞速发展, 各种电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化, 特别是DSP技术诞生以后,电子测量技术更是迈进了一个全新的时代。近年来,DSP逐渐成为各种电子器件的基础器件,逐渐成为21世纪最具发展潜力的朝阳行业,甚至被誉为信息化数字化时代革命旗手。在电子测量技术中,频率是最基本的参数之一,它与许多电参量和非电量的测量都有着十分密切的关系。例如,许多传感器就是将一些非电量转换成频率来进行测量的,因此频率的测量就显得更为重要。数字频率计是用数字来显示被测信号频率的仪器,被测信号可以是正弦波、方波或其它周期性变化的信号。

数字频率计广泛采用了高速集成电路和大规模集成电路,使得仪器的体积更小、耗电更少、精度和可靠性更高。而传统的频率计测量误差较大,范围也较窄,因此逐渐被新型的数字频率计所代替。基于DSP的等精度频率计以其测量准确、精度高、方便、价格便宜等优势将得到广泛的应用。

我们设计的简易数字频率计在未采用任何门控器件控制的情况下,在很宽的范围内实现了等精度频率测量,0.5Hz~10MHz的范围内测量方波的最大相对误差小于2e-6,测量正弦波的最大相对误差小于3.5e-5;结果通过RS232通讯显示在计算机上,可以很方便地监测数据。

方案设计

总体介绍

传统的等精度测频法使用门控器件产生门控信号,从而实现实际门闸信号与被测信号同步,消除对被测信号计数产生的一个脉冲的误差,其原理图如图1所示。

图1 传统的等精度测量原理

由硬件控制计数的门闸时间,当预置们信号(即定闸门信号)为高电平时,基准信号计数器CNT1和被测信号计数器CNT2并不启动,而是等被测信号的上升沿来到时才同时开始计数;当预置们信号为低电平时,两个计数器并不马上关闭,同样要等到被测信号上升沿来到后再关闭;于是,实际闸门时间就是被测信号周期的整数倍,从而实现了闸门与被测信号的同步。但是,实际的门闸时间并不固定,与被测信号的频率有关。此外,无论是采用计数器还是单片机,在实现等精度测量时总是离不开门控器件。

本设计基于DSP丰富的软件资源,经过判断和处理,完成了对被测信号频率的等精度测量。硬件上无需任何门控器件,简化了电路。系统框图如图2所示,信号处理部分以TMS320F2812 DSP芯片作为控制和测量的核心;信号调理部分主要是完成对信号的放大、整形和限幅;标准频率信号由30MHz有源晶振产生,作为高频标准填充脉冲;通过DSP的SCI模块与上位机实现通信,结果显示在上位机上。

图2 系统框图

频率/周期测量

在对被测信号频率和周期的测量中,等精度测量是基于DSP比较匹配时T1PWM引脚输出电平的跳变作为门闸信号的开启和关闭,由于比较匹配发生在被测信号的上升沿,从而实现了门闸时间与被测信号的同步。原理图如图3所示。

图3 本等精度频率测量原理

通用定时器T1时钟输入选择外部定时器时钟,此处用调理后的被测信号作为定时器T1的时钟输入,定时器T2时钟输入选择内部CPU时钟,用来产生高频标准填充脉冲。F2812片上EVA中通用定时器T1在发生比较匹配事件时,其比较输出引脚T1CMP输出信号会自动改变电平状态,产生PWM波。捕获单元CAP1设置为上升沿捕获,T1PWM输出的PWM波上升沿被CAP1捕获到,读取此时定时器T2的计数值,同理在下一次比较匹配时再次读取定时器T2的计数值。通过两次T2CNT值的相减,即可获得该门闸时间内标准填充脉冲的个数,然后求出被测信号频率。

基于DSP比较匹配时T1PWM引脚输出电平的跳变作为门闸信号的开启和关闭,由于比较匹配发生在被测信号的上升沿,从而实现了门闸时间与被测信号的同步。两个相邻的比较匹配产生的PWM波的上升沿分别作为门闸信号的开启和关闭信号,其中被测信号的个数为整数,并且是由我们自己任意设定的。定时器T2时钟输入选择内部CPU时钟,用来产生标准填充脉冲。设定捕获单元CAP1为上升沿捕获,当其捕获到上升沿时读取堆栈CAPFIFO内的值,在下一次捕获到时再读堆栈内的值,计算出标准填充脉冲的个数Ny,保证Ny的个数不小于一定的值,即可保证门闸时间大于一定的值。假设现在希望一个门闸时间内高频填充脉冲的总数不小于n,当Ny>n时,就增大定时器T1的定时周期,即增大定时器T1周期寄存器TIPR的值。存在公式T1PR+1=n/Ny,由于n/Ny不一定为整数,假a

周期测量与频率测量的基本原理完全相同,测出信号频率,根据公T=1/f即可得出被测信号的周期。

误差分析

定时器T1计数的启停时间都是由该信号的上升沿触发的,在一次测量时间内对被测信号的计数无误差;在此时间内标准频率脉冲的计数个数Ny,最多相差一个脉冲,故理论误差为:

|d|≤1/Ny

显然,测量精度仅仅与Ny有关,只要Ny值足够大,就能保证精度。

硬件设计

如图4所示,将被测信号经过高速运放OPA2690进行放大,在经过高速比较器TL3016进行整形[3],由于比较器在对低频正弦波信号进行整形时,输出波形的边沿有比较严重的抖动,影响测量。解决办法是对比较器加入正反馈,加速信号边沿,同时形成滞环,可有效消除抖动。整形后的信号经过高速施密特触发SN74LVC1G14进行限幅和进一步整形。测量部分主要使用DSP2812芯片上定时器T1的时钟输入引脚TCLKINA、定时器T1的比较输出引脚T1PWM和捕获单元CAP1的输入引脚CAP1,即可完成频率测量。通讯部分选择MAX3221作为RS-232电平转换器件,通过9芯标准RS-232口与上位机进行串行通信。主要使用了DSP的串行通信发送引脚SCIRXD和串行通信接收引脚SCITXD。

图4  硬件电路连接图

软件设计

软件设计部分主要包括以下四部分:

·初始化:对变量参数、系统时钟、PIE、EV、Flash、GPIO等进行配置。

·中断模块:SCI中断和定时器T2、T3上溢中断。

·数据处理模块:分段+取算术平均值。

·输出操作模块:数据经RS-232传给上位机。

图5为测频率、周期软件流程图,图6为定时器2的溢出中断流程图。

图5  测频率、周期流程图

图6  定时器T2溢出中断流程图

在该部分初始化时,要进行以下配置:通用定时器T1时钟输入为外部定时器时钟,通用定时器T2时钟输入为内部时钟输入,用来对标准脉冲进行计数,该标准脉冲由外部30MHz的有源晶振提供;捕获单元1设置为上升沿捕获,用来捕获T1PWM引脚输出PWM波的上升沿,在每次比较匹配时读取定时器T2的计数值T2CNT,该值保存在CAP1FIFO内。初始化时要将捕获单元1的状态寄存器中的FIFO堆栈状态设置成空堆栈;将定时器T1的定时周期设置为4个被测信号的周期长度,通过测得的定时器T1的一个定时周期内的标准脉冲的个数,计算出被测信号频率,然后对被测信号进行分段,分别为低频段(小于46.875Hz),中频段(大于46.875Hz,小于2343.75KHz),以及高频段(大于2343.75 KHz),其中分段的依据是定时器的计数饱和值为65536和计数个数应大于等于1。若信号频率为中高频段则重新配置定时器T1,定时器T2的寄存器,来改变定时周期以及每个门闸时间内的高频填充脉冲的个数。在定时器T1的下一个定时周期内计算出频率和周期。另外,定时器T2的溢出次数要在第一次发生比较匹配时清零,而是否是第一次发生比较匹配则通过设置一个标志来判断。当溢出次数清零后才开始记溢出次数,直到第二次发生比较匹配。

下一步改进意见

该方法的测量误差主要来自硬件部分,整形电路的优劣直接关系到测量精度的高低。所以我们下一步的工作就是改进整形电路的整形效果和抗干扰性能,尽最大可能减小信号整形带来的误差。

由于DSP定时器在计数时存在计数饱和的情况,因此在实现该等精度测量时存在上限,即当被测信号频率高于高频填充脉冲的频率时,该方法就不能实现等精度了。可以在该方案的基础上进行以下处理:选择定时器T1定时周期内被测信号的个数固定,可设置T1PR为65529,同时将定时器T2的时钟修改为75MHz,这样就能保证每个门闸时间内高频填充脉冲的个数,从而在对高频信号实现频率和周期测量时保证了精度。

但选择定时器T1时钟输入为外部时钟时对被测信号的输入范围存在限制,如果要进一步提高测量的信号的范围,使得范围达到上百兆或上G赫兹,可以考虑相位测量的方法,将被测信号设为360度,根据被测信号与标准信号之间的X度相位差,计算被测信号频率。

dsp2812软件周期耗时测试,基于DSP2812设计的简易数字频率计相关推荐

  1. 软件部件仿真测试平台的设计与实现(计算机工程与设计2017-11)

    引 言 嵌入式软件部件测试可在目标机平台执行:如果不具备目标机环境,可基于宿主机平台[1-3]以全数字仿真[4]的形式模拟部件运行环境.基于宿主机开发部件仿真测试平台时,通常采用基于时钟驱动的循环调度 ...

  2. 期货量化软件:学习如何基于 DeMarker 设计交易系统

    DeMarker 定义 如果我们打算更详尽地辨别和学习 DeMarker 指标,我们需要学习它是什么.它测量什么.我们如何计算它.以及如何按我们的偏好读取它. DeMarker 指标是一种振荡器技术工 ...

  3. 单片机c语言数字频率计的课程设计,基于单片机的简易数字频率计设计报告(最终版)最新版...

    <基于单片机的简易数字频率计设计报告.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的简易数字频率计设计报告(最终版)>相关文档资源请在帮帮文库(www.woc88 ...

  4. 基于模型的系统工程设计软件ModelCoder在航空发动机控制设计中的应用

    基于模型的系统工程(MBSE)使用数字模型的方式表达描述工程系统的完整生命周期中的需求和设计等活动,以无歧义.模块化等优点快速覆盖了如航空航天.船舶.卫星等相关安全关键领域.在系统工程的初期,系统产生 ...

  5. 基于ZYNQ 7000的1553B总线控制器测试系统的设计与实现

    为了方便对1553B设备进行测试,本文介绍了一种基于ZYNQ 7000 平台的1553B总线控制器测试系统的设计与实现方法.该系统首先在 PC机上通过人机交互界面配置数据,支持灵活对数据故障注入,然后 ...

  6. QT软件开发-基于FFMPEG设计视频播放器-软解图像(一)

    QT软件开发-基于FFMPEG设计视频播放器-CPU软解视频(一) https://xiaolong.blog.csdn.net/article/details/126832537 QT软件开发-基于 ...

  7. 自动测试软件 需求,一种基于自动化需求分析软件的快速测试方法

    朱婷婷 摘要:概述软件测试目前的研究现状,根据测试工作常出现的问题,提出了基于自动化需求分析软件的快速测试方法.通过使用自动化需求分析软件,有效降低了需求分析阶段所需的人力和时间.通过历史类似项目软件 ...

  8. 基于软件度量的测试体系建设

    去年年底在质量年会上的发言稿,感谢赛迪现场的录入 信息产业部软件与集成电路促进中心(CSIP)已成功地主办了两届中国软件质量年会.本届年会将以"软件质量创新 助力两化融合"为主题, ...

  9. 20165219王彦博《基于Cortex-M4的虚拟机制作与测试》课程设计个人报告

    20165219王彦博<基于Cortex-M4的虚拟机制作与测试>课程设计个人报告 一.个人贡献 参与课设题目讨论及完成全过程: 资料收集: 负责环境搭建,代码运行下载: 撰写小组结题报告 ...

  10. 软件测试基础课程学习笔记2--贯穿软件生命周期的测试活动

    (1) 软件生存周期:开发文档下载 软件生命周期一般包括以下阶段:软件计划与可行性研究(问题定义.可行性研究).需求分析.软件设计(概要设计与详细设计).编码.软件测试.运行与维护 (2) 软件测试的 ...

最新文章

  1. Android 高清加载巨图方案 拒绝压缩图片
  2. 裁剪图像周围空白区域_零基础PS纠正倾斜的图像效果
  3. 服务器无显示器,服务器无显示器 远程桌面
  4. OpenGL使用Perlin噪声的腐蚀效果
  5. PHP中间件--ICE
  6. 练习5 键盘输入一个年份 判断年份 是否为闰年
  7. ③pycharm的基本使用
  8. LeetCode 1745. 回文串分割 IV(区间DP)
  9. 实况服务器制作,用Highcharts预处理实时数据及实况图表制作
  10. Can you find it(HDU-5478)
  11. java期末项目实验答辩毕业设计工程项目源码
  12. 117_PowerQuery使用ODBC访问带密码的Access
  13. java动态创建bean的意义_Spring Boot如何动态创建Bean示例代码
  14. 天呢,小学生都在B站讲算法?
  15. Unity Demo ——3D时钟
  16. keil(MDK) 5官方下载教程
  17. wordpress 搭建的博客: 增加网站备案信息
  18. html查看今天星期几,jquery怎么获取星期几
  19. 计算机考研可以考到部队吗,部队文职好考么?备考压力远比考研小!
  20. 电脑如何打开虚拟化设置?

热门文章

  1. 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 HDU 6206 1001 Apple(三角形外接圆圆心和半径)
  2. 区块链和央行数字货币DCEP
  3. lldp协议代码阅读_LLDP(lldp协议平时开启还是关闭)
  4. Trafodion建表之使用多温度特性
  5. 【python】蔡勒公式计算日期
  6. 内外网隔离 双网隔离DoraOS云终端双桌面云办公应用
  7. CentOS系统介绍
  8. PDF文件限制密码如何解除
  9. Java动态数组ArrayList
  10. Spring注解扫描原理浅析