图3为多周期测周的原理图,其核心是P89LPC935。
P89LPC935是PHILIPS公司LPC900系列单片封装的微控制器,采用了高性能的处理器结构(与51系列兼容),速度6倍于标准80C51器件,除51系列单片机资源外还具有8 kB FLASH程序存储器,512片内用户数据E2PROM存储区,2个4路输入的8位A/D转换器和2个DAC,I2C,SPI总线、片内看门狗和复位电路、捕获/比较单元(CCU)等资源。

原始信号(传感器输出的与气压有关的矩形波信号)接到分频电路CD4020的时钟输入端,经256分频后接到P89LPC935的/INT1端,作为门控信号控制P89LPC935内部的定时计数器1。定时计数器1工作在定时方式,在门控信号为高电平时计数。时钟为PCLK,为外接晶振11.059 2 MHz的2分频(6倍于标准80C51器件),即5.529 6 MHz。
如图4所示,原始信号周期C在200 μs左右,256分频后的门控信号周期在51 200μs左右(256C),一个周期中高电平部分约为25 600 μs(高电平部分128 C),在高电平时对5.529 6 MHz计数,其计数值约为141 500,超过16位计数器的长度,将产生溢出并产生中断。开辟1个内部RAM,在中断服务子程序中进行加l操作,即可满足计数字长要求。计数过程如下:
S1:首先判断/INT1是否为高电平,该过程时间最长256C;
S2:判断/INT1是否为低电平,若是,计数器清零,允许计数,允许计数器溢出中断,该过程时间128C;
S3:/INT1为高电平时计数器计数,计数器溢出时产生中断,中断服务子程序中高位加1,该过程时间128C;
S4:后续处理,包括频率计算、温度采集及其他运算。该过程时间小于128C。

整个计数及处理过程时间小于640 C,在128 ms以内,远小于10 s。原始信号的周期C及测量误差如下计算。原始信号的周期为C,计数值为N,计算公式为:
其中,M=128;τ=(1/5.529 6)μs;128C=(N/5.5296)μs,C=N×0.001 4μs。
其测量误差为:
误差中前项是量化误差,为0.001 4μs;后部分是因为标准信号误差(即晶振的误差)引起的。在整个测量范围内,C最大值为211.787 9μs,选取准确度优于5 ppm的晶振,该项误差最大值为:211.787 9μs×5 ppm=0.001 1μs;两者的和小于0.002 636 2μs,满足要求。
上述的分析计算是两者绝对值相加,有一定的冗余。如果进一步提高M值,将进一步减小量化误差。
用该方法测量周期的前提条件是选取准确度优于5 ppm的晶振,测量周期的误差最小可控制在0.001 1μs。
将温度信号直接连接到P89LPC935的模拟输入端AD10(P0.1)引脚,进行A/D转换。A/D转换时间为μs量级,远远小于要求的采样周期10 s,在温度采集时,有足够的时间对A/D转换数据进行数据处理,其具体方法为:每次采集进行18次A/D转换,去掉一个最大值和最小值,取其余16个数据算术平均值作为最终结果。
温度信号采集的准确度为20 mV,优于43 mV的要求。
6 结 语
该测量方法成功地应用于与河南省气象局合作开发的自动气象站中。用多周期测周的方法快速准确测量信号的频率(周期)基于2个条件:信号是连续的;P89LPC935的晶振必须使用外接的高精度、高稳定晶体振荡器(准确度优于5 ppm)。





















用户评论
共 0 条评论