引言
数字频率信号具有抗干扰能力强、便于远距离传输、后续电路输入灵活、接口简单、占用系统资源少等优点。所以在一些非快速过程的前向通道中,愈来愈多采用V/F转换来代替通常的A/D转换,在各类传感器中数字化传感器所占的比重也越来越大[1]。由于数字化传感器的大量使用,在密度计、温度计、转速表等各类智能仪表中经常要对频率信号进行测量。而现有的频率测量系统是由单片机构成的,主要采用单芯片进行测量,在测量过程中,对数据进行乘除运算要占用一定的CPU时间,存在运算期间信号无法采集、测量系统效率低等缺点。针对这些问题,本文开发了一种由双8051芯片组成的频率测量系统,它可以有效的解决频率测量系统在测量时产生的上述问题。
2 硬件系统构成及工作原理
双8051芯片的频率测量系统的硬件主要由两片8051芯片、施密特整形器、RAM/IO扩展器8155及LED显示器等构成,其硬件系统电路组成框图如图1所示。
工作原理是将被测信号Ix经过施密特整形器后变成标准的方波信号,然后将整形后的信号送到8051a中,该芯片负责收集信号的相关数据,再将8051a测量得到的数据输入到8051b中进行计算,最后将得到的频率值由8051b输出到显示器显示。
3 软件系统设计
软件系统主要是通过双8051芯片的协作完成任务的,软件系统流程图如图2所示。该系统采用模块化程序结构,由8051 a和8051 b软件模块构成。a片用于采集信号,其程序模块主要有:主程序模块、测量程序1模块、测量程序2模块;b片用于计算和输出结果,其程序模块主要有:主程序模块、计算模块、中断服务模块。其中几个主要程序模块的功能如下。
3.1 8051a的程序
8051a主要负责信号的采集,它采用测频率(测量方式1)、测周期(测量方式2)两种方法,并利用8051b的计算结果判断应当采用哪种测量方案。
3.1.1 主程序功能
8051a的功能主要是用来测量信号,并根据从8051b中读取的数据,判断该采用哪种测量方式,然后将测量数据发送给8051b,主程序流程图如图3所示。首先,将并行接口芯片8155进行初始化,然后从8155接口读取8051b的数据,以此来判断是采用测量方式1还是测量方式2,然后再调用相关的子程序进行测量,最后把测量方式和所得数据发送给8051b。(本系统采用振荡频率为12MHz,所以最大测量范围是15.259Hz-0.5MHz[2])
3.1.2 测量方式1程序功能
测量方式1采用测频率法,主要用于高频段测量,它是利用单片机的定时计数器测量一定时间内脉冲信号的个数得到频率值[3],测量方式1程序流程图如图4所示。首先,给T0、T1设置工作模式并赋初始值,以T0作为定时器、T1作为计数器,然后给T0设定一段时间,T1由脉冲的上升沿触发计数,并启动定时器T0,同时启动计数器T1进行计数,当计时结束时关闭计数器,最后将计数器T1的计数结果进行读取并保存。
3.1.3 测量方式2程序功能
测量方式2采用测周期法,主要用于低频段测量,它是通过测量一个信号的周期并进行计算可得到频率值[4],测量方式2程序流程图如图5所示。首先,给T0设置工作模式为方式2,即16位定时器,对内部机器周期计数,当信号由0变1时开始计时,当信号再由0变1时结束计时,则此时计时器所记时间就为信号的周期。
3.2 8051b的程序
8051b主要负责计算由8051a输出的数据,并将计算结果输出到8051a及显示器。
3.2.1 主程序功能
8051b的主程序功能是将8051a的数据进行计算并输出,8051b主程序流程图如图6所示。首先,将各个芯片和数据进行初始化,然后给8051a发送数据0,开中断,将8051a中传入的数据进行计算,最后将计算结果输出到8051a和显示器。
3.2.2 中断程序功能
中断程序的功能主要是用来接收8051a的数据,中断程序流程图如图7所示。首先,将有用的数据压入堆栈,然后将8051a发过来的数据进行接收,最后将压入堆栈的数据进行释放。
4 分析
在单8051芯片的频率测量系统中,芯片采样和计算是按顺序依次进行的。通常,多字节的乘除法运算需要运行几十条指令,并耗费大量的机器时间。在进行计算的过程中,单8051芯片无法进行采样,导致许多信息在这一过程中丢失,但是采用了双8051芯片后,将采样和计算两部分分开进行,能有效地利用双8051芯片,减少信号的测量周期,提高频率测量系统的效率。
5 结束语
采用双8051芯片有效地克服了单8051芯片的不足,加快了频率测量系统的反应速度,提高了频率测量系统的效率,应用在实时控制系统中能显著提高系统的实时性。双8051芯片具有测量效率高、反应速度快等优点,可广泛应用于许多实时控制及其它需要快速测量的系统中。