APP下载

单片机直接测频的调频广播监测解调方

2016-09-15焦杰孙宇飞

单片机与嵌入式系统应用 2016年8期
关键词:调频中断脉冲

焦杰 ,孙宇飞

(1.吉林省广播电视研究所,长春130061;2.吉林省广播电视监测台)



焦杰1,孙宇飞2

(1.吉林省广播电视研究所,长春130061;2.吉林省广播电视监测台)

本文介绍了一种采用快速测量载波频率进行调频广播解调的方法,主要应用于调频广播信号监测设备中,同时还提供了用STM32F407来实现这种功能的关键电路和其中的设计要点。为了进一步提高解调性能并降低噪声,特别设计出一种非常简单有效的滤波电路。运用这种解调方法可以省去传统的鉴频器、A/D模数转换器以及连接在两者之间的音频放大电路。相关电路在调频广播监测设备中进行了实际测试,取得了良好的效果。

调频广播;鉴频器;频率测量;TDA18273;STM32F407

引 言

在广播电视监管工作中,对广播信号的监测重点是需要监测播出节目的声音内容。对调频广播节目内容进行监测,就是把接收到的广播信号混频,得到中频之后,再用鉴频器解调,然后把放大电路之后的音频信号经A/D模数转换器得到广播节目内容的数字化信号,利用网络把远程监测点上这种数字化的声音数据传输到监测中心。

在广播监测设备中,对调频信号解调的传统方法主要有:

① 调频-调幅变换型鉴频器解调:用一个LC谐振回路组成一个带通滤波器,当带通滤波器的中心频率与调频信号的中心频率重合的时候,输出幅度最大;若两个频率稍远离,输出振幅就减小。这样就把调频信号变成了调幅信号,再经过振幅检波就实现解调。这种方法成本比较低,灵敏度一般。

② 鉴相器解调:用一个振荡器(例如锁相环)产生一个与接收到的调频信号的中心频率相同的本地振荡频率,以此频率作为基准,来检查接收到的信号的相位与此本振相位之差,将这个相位差变成电信号,实现解调。这种方法的灵敏度高,抗干扰能力强,适合窄带信号,但是比较复杂,线性度与压控振荡器性能有关。

③ 乘积型相位鉴频器解调:将调频波经过移相电路再与原信号相乘。如果设计移相电路相位的变化与调频波瞬时频率的变化接近线性关系,那么相乘之后通过低通滤波器即可得到解调信号。这种方法性能好、便于集成,在收音机中应用较多。

④ 定宽脉冲平均法解调:这种方法把调频信号的每一个周期都通过一个单稳态电路,变成固定宽度和固定幅度的正脉冲,然后经过低通滤波器。高频信号占空比高,所以平均电压高;低频信号占空比小,平均电压低。这种方法解调线性好、频带宽,比较适合设计集成电路解调器。

本文分析了一种可以直接获得数字化调频广播节目声音数据的鉴频解调方法,并用单片机设计了整机进行实测。基本原理是用较快的速度测量出中频载波的瞬时频率,实现数字化解调。这种方法不仅具有线性度好、线性范围宽、鉴频灵敏度高的优点,而且电路很简单。

1 快速测量频率的解调方法

根据频率调制的定义,载波的瞬时频率按照调制信号的变化规律而变化。因为调频广播载波频率发生的偏移与调制信号电压成正比关系,所以只要能快速测量出载波的瞬时频率,就能恢复调制信号,达到解调目的。

传统方式对广播节目内容进行监测,需要把声音电压信号进行A/D转换,通常用8位16 ksps的采样率,相邻两个采样点的时间间隔为62.5 μs。也就是说,如果能够每隔62.5 μs测量一次调频广播中频信号频率的瞬时值,就实现了用16 ksps的采样率数字化调频广播的声音节目内容。因为调频广播载波频率发生的偏移与调制信号电压成正比,所以采用快速测频方法得到的数值与那种用传统鉴频器解调,然后放大再进行A/D转换方法所取得的数据在结果上是等效的。其中的关键是,如何在较短的时间段准确测量,得到中频信号的瞬时频率值。

1.1测量频率的方法

对信号频率进行测量主要有3种方法:

① 对于频率较高的信号,固定在一个开门时间段内,用计数器记录每个信号脉冲边沿,脉冲数量除以开门时长就得到了频率数值。

② 对于频率较低的信号,测量信号连续两个或多个脉冲所经历的周期,计算得到两个相邻脉冲之间的周期,然后取倒数就得到频率数值。

③ 等精度测频法:把待测信号与一个频率已知的参照信号同时进行计数,因为两个信号脉冲边沿重合时的计数值与它们的拍频有关系,所以可根据已知信号频率计算出待测信号的频率。在某些情况下也可以看作是上一种测量多个脉冲平均周期方法的精密形式。

在我国调频广播标准中,规定调频广播的最大调制频偏是75 kHz。选用接收芯片TDA18273设计调频广播的信号接收电路,得到1.25 MHz低中频信号,再用STM32F407快速测量这个中频信号的瞬时频率实现鉴频解调。因为瞬时频率与声音电压是线性关系,所以只需把测得的频率值与载频1.25 MHz相减,即可获得数字化的声音电压数据。图1是采用这种解调方法的调频广播监测设备原理框图。

图1 调频广播监测设备原理框图

先分析采取在固定开门时段里进行计数方法的可行性,也就是用一个计数器累加中频信号脉冲的数量,每隔62.5 μs保存一次计数值之后清零,再重新计数。当频偏为0时,1250 kHz/16 kHz=78.125。因为计数法会引入一个整数的误差,所以会得到计数值78或79。

当频偏为+75 kHz时,(1250 kHz+75 kHz)/16 kHz=82.812 5,所以会得到计数值82或83。

当频偏为-75 kHz时,(1250 kHz-75 kHz)/16 kHz=73.437 5,所以会得到计数值73或74。

可以看出,这种方法得到的数据动态范围太小,在最大调解度下,一个脉冲的计数误差大约会影响10%的精度,导致解调之后的声音存在较大的失真和噪音。在实际电路实验中,明显可以听到解调得到的节目带有很大的噪音,效果很不好。

为实现较高的测频精度,设计用STM32F407的一个计数器和两个定时器联合工作。设置TIM5作为计数器采用外触发方式,累计每个中频脉冲,从0x0000 0000计数到0xFFFF FFFF,然后自动归零,无需中断;TIM14作为定时器用42 MHz的固定频率计数,从0x0000计数到0xFFFF之后自动归零,并且工作在捕获模式上,每个中频脉冲都把定时器14的计数值保存到捕获寄存器中,也无需中断服务;TIM13作为定时器,每隔62.5 μs触发一次中断,中断服务程序每次都取得TIM5计数器和TIM14捕获寄存器中的数值,并结合上次中断得到两个计数器的历史数值,计算出瞬时频率。图2是快速测频原理框图。

图2 快速测频原理框图

根据图2中描述的原理,可以得到瞬时频率计算公式:

f=(CNT1-CNT0)×42 000 000/(TIM1-TIM0)

上式中,CNT1和TIM1分别是本次中断得到的TIM5计数值和TIM14捕获值,而CNT0和TIM0分别是上次中断所取得的数值。测频原理就是在这62.5 μs中,通过测量(CNT1-CNT0)个中频脉冲的平均周期,计算倒数得到中频频率f。为了提高软件工作效率,采用了整数乘除计算,为了防止除法计算损失精度,计算时需要先乘后除。当频偏为+75 kHz时,(CNT1-CNT0)会达到最大值83,与42 MHz相乘之后的结果小于4 GHz,所以用32位无符号数进行计算不会发生乘法溢出的情况。

定时器14的计数频率为42 MHz,而定时器13中断处理程序响应存在μs量级的误差,即每μs有42个计数值的误差。也就是说,中断服务程序直接从TIM14_CNT寄存器读取数据来计算频率必然存在较大误差。因此,必须让待测中频信号脉冲在累加计数器5的同时,利用TIM14的捕获功能,把脉冲时刻的TIM14_CNT寄存器数值保存到TIM14_CCR1捕获寄存器中。然后在TIM13产生中断时,才能从TIM14_CCR1中得到与计数器5信息同步的数值,从而准确计算频率。

1.2STM32F407中断处理

图3 中断服务程序流程

在STM32F407内部,硬件电路对于TIM5的计数与TIM14捕获两项工作有可能并不在同一时钟边沿完成。另外还有中频信号脉冲可能会在中断处理期间到达,并且中断服务程序也不可能同时读取到TIM5_CNT和TIM14_CCR1两个寄存器的数据。这样很可能发生一种意外情况:中断服务程序刚读完TIM5_CNT,即将要读取TIM14_CCR1时,新到一个计数脉冲,导致接下来想要读取的那个TIM14_CCR1内容发生了改变,利用两个并不配对的数据计算会得到错误的结果。所以需要在TIM13的中断处理程序中交替循环读取这两个寄存器的内容,如果连续两次都能取得相同的数值,那么这个数值才是可用的,否则两个寄存器的内容就不配对,需要循环回去重读TIM5_CNT和TIM14_CCR1,直到确认它们的内容没有发生意外改变为止。图3是TIM13中断服务程序的流程图。

2 鉴频性能分析

在实际的应用电路中,不可避免会产生鉴频误差,还存在线性范围和线性度的问题。对鉴频器而言,主要分析鉴频灵敏度、鉴频线性范围和线性度三个重要指标。因为传统鉴频器使用元件较多,不方便精确分析误差,尤其是那些带有LC二阶电路的鉴频器,更是不容易精确计算。而采用了STM32F407直接鉴频的方法很容易计算鉴频误差,从而分析主要的鉴频性能指标。

2.1鉴频误差与鉴频灵敏度

从前面测频过程可以看到,这里产生误差的可能原因发生在TIM14捕获瞬间的那一个整数误差,而且这个误差只存在于TIM13中断之前发生的那次捕获。由42 MHz时钟驱动的TIM14在62.5 μs内应该计数2 625次,捕获数值可能会出现2 624和2 626。所以可以计算出频率测量的最大误差:

(2 626-2 624)/2 625≈0.076 19%

由此可知,实际电路可以达到相当于10位以上的A/D转换精度,满足监测设备所需要8位16 ksps采样的要求。

根据鉴频误差可以计算出鉴频灵敏度:

1.25 MHz×0.076 19%=952.4 Hz

2.2鉴频线性范围

传统鉴频器的鉴频曲线是“S”形,线性度不理想。因为单片机直接测量频率是一种数字化的鉴频方法,所以在整个工作范围区间有良好的线性。如果软件设计使用32位无符号数,那么最高工作频率为:

4 GHz/42 MHz×16 kHz≈1.636 MHz

在前面分析瞬时频率计算公式的时候,可以看到制约测量频率上限的因素是TIM5计数值乘以42 MHz之后,在32位无符号情况下可能发生上溢。考虑到TIM14导致的精度误差大约是千分之一,可将数值42 000 000最低位的两个零舍弃,实现了在32位计算条件下把上溢容限提高100倍,实测的数值再乘回100仍然得到以Hz为单位的频率值。

从测频原理来分析测量的下限频率,因为系统要求在62.5 μs之内必须至少有两个中频脉冲边沿到达,所以最低测量频率要高于32 kHz。

2.3鉴频线性度

测量误差主要来自于两个方面,一个是STM32F407结构导致在TIM14捕获时的计数会多计或者少计一个脉冲,另一个是42 MHz时钟的精度。在STM32F407内部用锁相环把石英晶体振荡器倍频到42 MHz作为计数时钟,而通常晶体振荡器的精度可以达到万分之一以上,远小于其他电路误差,可以忽略不计。因此,在整个工作范围内,这个鉴频的误差是均匀的,不存在误差特别大的特殊频率。可以计算出在(32 kHz,1.636 MHz)这个工作频率区间内的线性度:

952.4 Hz/(1.636 MHz-32 kHz) ≈ 5.938×10-4

3 实际电路实现

选用STM32F407控制TDA18273数字调谐器芯片组成的调频广播接收电路,把它们用I2C总线接口连接在一起。设置TDA18273工作在调频收音机模式下,把天线收到的调频广播信号变频得到1.25 MHz低中频信号。STM32F407直接测量中频信号频率,并把数字化的声音数据直接利用网络传输到计算机。图4是用TDA18273实现的调频广播接收电路。

因为STM32F407的输入引脚带有史密特整形电路,所以可以把TDA18273输出低中频1.25 MHz信号,用电容隔直后叠加到大约1.6 V的直流分压电阻R19和R20上,直接输入到STM32F407的PA0和PF9引脚。STM32F407和网络接口电路略——编者注。

设置PA0为TIM5的计数器外部输入引脚,每个脉冲的上升沿累加TIM5。设置PF9为TIM14的捕获输入外部引脚,每个脉冲的上升沿把TIM14_CNT中的内容保存到TIM14_CCR1中。在STM32F407的RAM中设置一个缓存队列,保存每次TIM13中断服务程序中测量的频率值,并转换成为8位的声音数据,再用网卡接口芯片DP83848设计网络接口,采用TCP协议把这些声音数据送给计算机,计算机利用声卡播放实时声音的同时,还可以保存历史录音文件。

4 频率牵引滤波

实际测试以上接收解调电路,当信号较强,高于50 dBμV时,解调的声音信号效果很好,基本听不到噪声,可是当信号的强度再降低一些时,噪声明显增大。通过观察1.25 MHz中频波形并分析测频数据得知,随着信号强度降低,输出中频波形振幅减小,并且在振幅上开始出现一些明显的干扰信号,这种干扰使部分中频波形振幅小于STM32F407输入引脚翻转电平,这将导致TIM5计数器遗漏一些脉冲,使计数值结果偏小出错而产生了爆音。对此特别设计了一种简单的整形电路,并且利用振荡器的频率牵引达到滤波目的。图5是这个滤波电路和它的等效电路。

振荡器由HEF4011集成电路和一个RC低通电路组成。HEF4011本来是一个二输入与非门,把两个输入端短接在一起,看起来好像仅仅是一个非门,然而在它内部却有三级反相器,所以可以与RC低通电路组成环形振荡器。因为在起振时,电容两端的电压振幅很小,所以RC时间常数需要取大一些。用合适的取值,使它的振荡频率大约是1.25 MHz,之后输入STM32F407,给STM32F407提供了一个稳定的中频输入方波。再用一个电阻R17把TDA18273输出的中频信号送到RC电路,这样就实现了把待测的中频信号叠加到振荡器。

本来RC振荡器的频率稳定度就比较低,同时电容上的电压振幅又很小,所以它很容易受到调频中频信号的牵引。这个简单的电路保证了STM32F407的TIM5和TIM14总能可靠地获得脉冲边沿,并且还在中频调频信号的牵引作用下,失谐的RC振荡脉冲能不断地自动追踪趋近于中频信号的相位。经过实际测试,在信号强度为30 dBμV时听不到明显的噪声,显著地提高了整机的接收灵敏度。从另一个角度看,R17与C33组成了一个积分电路,对于偶然的噪声具有抑制作用。当接收信号很小并且逐渐变弱时,实测解调得到的音量会随之慢慢减小,但噪声并没有明显增加。当信号继续降低到与噪声水平接近时,输出的噪声才开始明显起来。

图5 滤波及等效电路

5 网络与软件

在STM32F407上直接用LwIP设计网络TCP服务器,并在内存中设计一个循环声音缓冲区。一旦有TCP客户机联接到了服务器,就通过网络把缓冲区中的声音数据发给客户机。循环声音缓冲区逻辑结构如图6所示。

图6 逻辑结构图

循环缓冲区是一块连续的内存,在起始地址和结束地址之间保存声音数据,每次TIM13中断都保存一个字节数据到WR指针地址上,并且指针后移一字节。当指针移动到结尾就需要重置到起始位置,与WR指针相类似,网络从RD指针处可以读取声音数据并移动指针。总共有3种可能:

① WR=RD,缓冲区中不存在有效数据;

② WR>RD,缓冲区中有数据,数据长度=WR-RD;

③ WR

在单片机的主程序中,按照上述逻辑分析声音数据的缓存情况,再发到网络上。

计算机上直接用Socket设计网络TCP客户端,用DirectSound设计声音实时播放程序。从网络接收到的数据,在直接送到声卡监听的同时,还要保存数据到硬盘并且加上一个WAV文件头成为录音文件,可以供其他声音分析软件调用。

结 语

本文提供了一种采用STM320F407直接测量载波瞬时频率实现数字化鉴频解调的方法,并且用STM320F407和很少的外围元件设计了调频广播监测设备进行实际测试。运用这种方法能够减化电路设计,减少外围元件,降低噪声,省去信号放大处理的中间环节,改善了失真。这种鉴频方法具有误差小、线性度好、线性范围宽、鉴频灵敏度高的优点。尽管受到STM320F407结构的限制,整机还是达到了可以实用的精度。如果换用FPGA采取等精度测频的方法进行解调,预计可以获得更高的精度。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1] 曾兴雯,刘乃安,陈健.高频电子线路[M].北京:高等教育出版社,2003.

[2] NXP.NXP TDA18273HN Hybrid (analog and digital) Silicon Tuner for terrestrial and cable TV reception,2011.

[3] NXP.NXP TDA18273 Driver User Guide,2010.

[4] ST.STMicroelectronics STM32F405xx/07xx advanced ARM-based 32-bit MCUs Reference manual,2013.

[5] NI.National Semiconductor DP83848C PHYTER Single Port 10/100 Mb/s Ethernet Physical Layer Transceiver,2008.

[6] ST.LwIP TCP/IP stack demonstration for STM32F407/STM32F417 microcontrollers,2011.

焦杰(工程师),研究方向为广播电视监测技术;孙宇(高级工程师),主要从事吉林省广播电视信号监测工作。

Jiao Jie1,Sun Yufei2

(1.Jilin Radio&Television Research Institute,Changchun 130061,China;2.Jilin Radio&Television Monitoring Station)

In the paper,a technical method which uses the fast measurement carrier frequency to demodulate the FM radio is introduced,which is mainly applied in the monitoring equipment of FM radio program.The function of the key circuit and the design points with STM32F407 microcontroller are introduced.A very simple and effective filter circuit is designed in order to improve the demodulation performance and reduce the noise.The traditional descriminator,the A/D analog digital converter and the audio amplifier are needless.The circuit has been tested in the FM radio monitoring equipment,the design achieves good results.

FM boradcasting;descriminator;frequency measuring;TDA18273;STM32F407

TP37

A

(责任编辑:杨迪娜2016-03-11)

猜你喜欢

调频中断脉冲
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
考虑频率二次跌落抑制的风火联合一次调频控制
上下解反向的脉冲微分包含解的存在性
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
黄芩苷脉冲片的制备
跟踪导练(二)(5)
千里移防,卫勤保障不中断
调频发射机技术改造
调频激励器干扰的排除方法