基于C8051F041的高精度频率计设计
2011-08-03
O 引言
频率测量是电子测量中最基本的测量之一。随着电子科学技术的发展,对信号频率测量的精度要求越来越高。目前采用的测频方法有直接测频法、直接测周法和等精度测频法。直接测频法在高频段的精度较高,但在低频段的精度较低;直接测周法则恰恰相反。而等精度测量法则可在整个频率测量范围内保持恒定的测量精度,且测量精度也较高。
C8051F单片机是SoC芯片,其内核是CIP-5l微控制器。CIP-51采用流水线指令结构,指令集与标准8051指令集完全兼容。且不再区分系统时钟周期和机器周期,所有指令时序都以时钟周期计算,大部分指令只需l~2个系统时钟即可完成。因而其运算速度明显高于传统805l单片机。为此,本文给出了基于C805lF单片机和一些外围电路的等精度频率计的设计方案。
1 等精度频率测量的基本原理
等精度频率测量又叫多周期同步测量,它是将待测信号和标准信号分别输入到两个计数器,它的实际闸门时间不是固定值,而是待测信号周期的整数倍,故可消除对待测信号计数时产生的量化误差(+1误差),其精度仅与闸门时间和标准频率有关。等精度测频系统主要由待测信号计数器、标准信号计数器、同步闸门控制器、预置时间控制器以及运算单元等组成。测量的基本流程是在发出测量触发信号后,由同步闸门控制器在预置时间控制器产生预选闸门控制信号,再由待测信号触发同步,以形成真正的预置测量时间,然后同时控制两个计数器,并分别对待测信号和标准信号进行计数。等精度测量频率的原理如图1所示。其待测信号频率可由下式计算:
式中:Nx为待测信号计数值,No为参考信号计数值,fx为待测信号频率值,fo为参考信号频率值。
2 频率计硬件电路设计
本设计将待测信号、标准信号的计数及产生预置时间、计算频率值等功能完全用C805lF041单片机来实现,因而简化了测量电路。整个频率测量系统包括放大整形、LCD液晶显示、键盘控制和串口RS232通信电路等。系统选用高精度的标准10MHz石英晶振作为标准信号源,以保证测频精度。图2所示是系统的总体硬件设计框图。
本系统中的C8051F041单片机是一款全集成的混合信号片上系统型MCU,具有32个数字I/O引脚和高精度可编程的24.5 MHz内部振荡器,以及64 KB在片FLASH存储器,同时片内还集成了一个CAN2.0B控制器、5个通用16位定时器、真正12位100 ksps的ADC、两个12位DAC以及硬件
实现的SPI、SMBus/I2C和两个UART串行接口。
2.2 硬件电路
系统硬件主要由放大整形电路、键盘电路、LCD显示电路、RS232串口等部分组成。放大整形电路主要对待测信号(如正弦波、三角波、锯
齿波、方波等)进行幅值放大,施密特整形为TTL电平的矩形波,同时去除噪声干扰。键盘电路采用独立键盘,可控制测频的启停和数据是否
上传等。液晶显示电路采用16×2字符的LCDl602液晶显示,可配置成8位接口方式,以对测量频率进行同步显示。测量数据可通过RS232串口上传至上位机,并在上位机软件中保存。这种方式特别适用于长时间多次测量频率值的场合。
3 软件设计及调试
本系统的软件部分包括C805lF041单片机的主控程序和上位机软件。
3.1 C805lF041主控程序
主控程序可用C语言编写,采用定时器T2作为预置门控制器时间,定时器T1用于串口通信,计数器C3作为待测信号计数器,计数器C4作为基准频率计数器。在主控程序中,可将标准信号计数值N0定义为unsigned long int型变量,其计数范围为0~(232一1),即0~4.29496729-5x109。图3所示是其主程序流程图。
3.2 上位机VB软件
为了提高测量频率值的可分析性,本系统利用VB6.0提供的用于RS232串行通信的MSCOMM.OCX控件来编写上位机串口数据的采集和测频值的保存软件。软件可实时读取单片机测得的频率值,并在PC机显示。同时该软件还可将测量数据与系统时间共同保存,以便于多次测量时对数据的记录和分析计算。
4 结束语
本频率计在0~10 MHz的频率范围内具有相同的测量精度。考虑到测频的精度和稳定性,标准信号源应选用精度为10-8的lO MHz标准石英晶振,以提高测频精度,同时也可缩短测频时间。此外,利用C805lF单片机的性能优势,将等精度测频系统的主要部分用C805lF041实现,也简化了电路结构,缩短了测频时间,提高了系统设计的可靠性,具有较高的实用价值。