DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 380|回复: 0
打印 上一主题 下一主题

[待整理] 基于凌阳SPCE061A的频率测量计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 09:44:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于凌阳SPCE061A的频率测量计

1 引言
    频率是反映信号特性的基本参量之一,频率测量在应用电子技术领域有着重要的地位。测量的数字化、智能化是当前测量技术发展的趋势。数字化处理技术使得测量仪器设备功能完美,但数字处理的实时性受到处理速度的限制,实时测量对电路的处理速度要求越来越高,目前的微控处理芯片发展速度,出现诸如DSP,FPJA等不同领域的应用芯片。作为主要应用于数字语音领域的凌阳SP-CEA061A,有着丰富的硬件资源、可低于3V的工作电压、较低的功耗和高达约50MHz的时钟工作频率,相对于通用的51系列、96系列等单片机,无疑有更佳的性能。特别是SPCE061A内置32k字FLASH存储器、多时基选择定时器、两路D/A转换器和一路A/D转换器,使他在便携式测量仪器中应用更有前景。
2 硬件资源配置
    该频率计能测量1Hz-20MHz以上频率的脉冲信号,具有较宽的测量范围,最高输出4位有效显示值,采用4位BCD七段显示码动态扫描输出。其工作框图见图1。图中显示部分采用数码管需增加驱动电路扩大驱动电流,用以保护SPCEA061A。
            

    设置SPCEA061A的工作时钟频率fCPU=fOC=24.576MHz为。利用定时器B(TimerB)定时时间作为频率测量的时基,定时1S,100ms,10ms,1ms,0.1ms五档的脉冲计数时间,定时器B的时钟源和预置寄存器载入数据见标表1,考虑程序工作存在延时存在计数误差,高档位的预置寄存器数据应根据实际情况适当调整校准。定时器A(TimerA)10ms、作为频率测量计数器,被测信号从SPCEA061A的I/O端口B口的IOB2输入。TimerA和TimerB采用FIQ中断工作模式。
    设置I/O端口A口的低7位IOA0-IOA6输出BCD七段显示码,IOA7输出小数点。IOA8-IOA10分别输出Hz,kHz,MHz测量单位指示。IOA12-IOA15为动态扫描输出端口,循环选择4位数码管,此时A口的低8位IOA0-IOA7输出对应数字的BCD七段显示码。显示码输出采用中断
                        


3 测量处理流程
    频率测量的控制和数据处理由SPCE061A通过程序完成,图2为主程序的流程图。
                  

    对单片机进行初始化开始频率测量,首先对测量结果进行判断当前的测量量程是否合适;4位显示数据范围是1000-9999,大于9999判断为超量程,而小于1000为欠量程;根据测量结果的判断依次增加(超量程)和减少(欠量程)测量时间档位,并设置数据相应的小数点位置和单位。对量程合适(1000-9999范围)的结果进行二进制到十进制的转换并译码成七段显示码,加入小数点显示位和单位指示位形成显示码。
    显示数据刷新时间是显示结果更新的时间间隔。为了能较好地观测到稳定的显示数据,一般设为0.5s左右更新显示数据。通过对IRQ4的1024Hz中断响应进行计数5000次可获得约0.5s的显示数据刷新时间。在内部RAM中开辟两个显示码存储缓冲区,一个用于存储当前正在译码的显示码,一个用于存储正在输出的显示码。查询显示数据刷新时间寄存计数器,当刷新时间到时,只要互换2个显示码存储缓冲区的首地址就能达到1个指令就能更换多个数据的目的,避免由于中断而造成显示数据出现不一致的状况。更换完显示数据后接着启动计数器TimerA和TimerB进行下一次的测量,频率计每约0.5s测量一次,避免在高频测量时由于测量时间短而造成TimerA和TimerB频率中断占用系统资源。TimerA和TimerB在FIQ中断处理程序中,自动设置停止计数,等待启动状态。
    SPCE061A有丰富的中断源,本系统使用了3个中断源:FIQ_TMA,FIQ_TMB和_IRQ4。FIQ用于频率测量,_IRQ4用于动态扫描显示。
    图3所示为频率计数测量FIQ中断处理程序流程图。
               

    FIQ有3个中断源,除FIQ_TMA和FIQ_TMB外,还有FIQ_PWM,若产生中断,压栈后采用查询的方式确定中断源。为FIQ_TMA中断,表明计数值大于216-1,肯定超量程,设置1个超量程值50000作为计数结果,并停止计数器计数。为FIQ_TMB中断,为频率测量定时时间到,停止计数器计数。最后读出测量结果,解除中断出栈返回。图4为动态扫描显示IRQ4中断处理程序流程图。
              

    IRQ4有3个4实时时基中断源:4069Hz,2048Hz和1024Hz,选用1024Hz作为动态扫描频率。中断响应后,首先压栈保护,再判断是否为1024Hz时基中断,否则,清除中断出栈返回。若为1024Hz时基中断,先对显示数据刷新计数寄存器累加1,完成0.5s的定时计数。取出当前显示码输出缓冲区首地址,修改循环显示位计数器。输出显示码和显示位码。为了数码显示清晰,IOA口数据修改分三步完成:先清除IOA口数据,使数码管熄灭,再输出显示码,最后输出显示位码。
4 结 语
    该频率计的硬件电路简单,容易制作。对SPCE061A加上必要的典型外围电路就可工作,需要接入的电路有:32768的晶体振荡电路、锁相环滤波电路、复位电路和必要的滤波电路。电路可用3V供电。在对SPCE061A进行初始化时,把不用的端口设置为悬浮输入方式,并注意屏蔽其功能。SPCE061A内含看门狗计数器(Watch Dog),WatchDog的清除时间为0.75s,在主程序的循环内必须清除。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-11 12:30 , 耗时 0.090597 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表