焦杰 ,孫宇飛
(1.吉林省廣播電視研究所,長(zhǎng)春130061;2.吉林省廣播電視監(jiān)測(cè)臺(tái))
?
焦杰1,孫宇飛2
(1.吉林省廣播電視研究所,長(zhǎng)春130061;2.吉林省廣播電視監(jiān)測(cè)臺(tái))
本文介紹了一種采用快速測(cè)量載波頻率進(jìn)行調(diào)頻廣播解調(diào)的方法,主要應(yīng)用于調(diào)頻廣播信號(hào)監(jiān)測(cè)設(shè)備中,同時(shí)還提供了用STM32F407來(lái)實(shí)現(xiàn)這種功能的關(guān)鍵電路和其中的設(shè)計(jì)要點(diǎn)。為了進(jìn)一步提高解調(diào)性能并降低噪聲,特別設(shè)計(jì)出一種非常簡(jiǎn)單有效的濾波電路。運(yùn)用這種解調(diào)方法可以省去傳統(tǒng)的鑒頻器、A/D模數(shù)轉(zhuǎn)換器以及連接在兩者之間的音頻放大電路。相關(guān)電路在調(diào)頻廣播監(jiān)測(cè)設(shè)備中進(jìn)行了實(shí)際測(cè)試,取得了良好的效果。
調(diào)頻廣播;鑒頻器;頻率測(cè)量;TDA18273;STM32F407
在廣播電視監(jiān)管工作中,對(duì)廣播信號(hào)的監(jiān)測(cè)重點(diǎn)是需要監(jiān)測(cè)播出節(jié)目的聲音內(nèi)容。對(duì)調(diào)頻廣播節(jié)目?jī)?nèi)容進(jìn)行監(jiān)測(cè),就是把接收到的廣播信號(hào)混頻,得到中頻之后,再用鑒頻器解調(diào),然后把放大電路之后的音頻信號(hào)經(jīng)A/D模數(shù)轉(zhuǎn)換器得到廣播節(jié)目?jī)?nèi)容的數(shù)字化信號(hào),利用網(wǎng)絡(luò)把遠(yuǎn)程監(jiān)測(cè)點(diǎn)上這種數(shù)字化的聲音數(shù)據(jù)傳輸?shù)奖O(jiān)測(cè)中心。
在廣播監(jiān)測(cè)設(shè)備中,對(duì)調(diào)頻信號(hào)解調(diào)的傳統(tǒng)方法主要有:
① 調(diào)頻-調(diào)幅變換型鑒頻器解調(diào):用一個(gè)LC諧振回路組成一個(gè)帶通濾波器,當(dāng)帶通濾波器的中心頻率與調(diào)頻信號(hào)的中心頻率重合的時(shí)候,輸出幅度最大;若兩個(gè)頻率稍遠(yuǎn)離,輸出振幅就減小。這樣就把調(diào)頻信號(hào)變成了調(diào)幅信號(hào),再經(jīng)過(guò)振幅檢波就實(shí)現(xiàn)解調(diào)。這種方法成本比較低,靈敏度一般。
② 鑒相器解調(diào):用一個(gè)振蕩器(例如鎖相環(huán))產(chǎn)生一個(gè)與接收到的調(diào)頻信號(hào)的中心頻率相同的本地振蕩頻率,以此頻率作為基準(zhǔn),來(lái)檢查接收到的信號(hào)的相位與此本振相位之差,將這個(gè)相位差變成電信號(hào),實(shí)現(xiàn)解調(diào)。這種方法的靈敏度高,抗干擾能力強(qiáng),適合窄帶信號(hào),但是比較復(fù)雜,線性度與壓控振蕩器性能有關(guān)。
③ 乘積型相位鑒頻器解調(diào):將調(diào)頻波經(jīng)過(guò)移相電路再與原信號(hào)相乘。如果設(shè)計(jì)移相電路相位的變化與調(diào)頻波瞬時(shí)頻率的變化接近線性關(guān)系,那么相乘之后通過(guò)低通濾波器即可得到解調(diào)信號(hào)。這種方法性能好、便于集成,在收音機(jī)中應(yīng)用較多。
④ 定寬脈沖平均法解調(diào):這種方法把調(diào)頻信號(hào)的每一個(gè)周期都通過(guò)一個(gè)單穩(wěn)態(tài)電路,變成固定寬度和固定幅度的正脈沖,然后經(jīng)過(guò)低通濾波器。高頻信號(hào)占空比高,所以平均電壓高;低頻信號(hào)占空比小,平均電壓低。這種方法解調(diào)線性好、頻帶寬,比較適合設(shè)計(jì)集成電路解調(diào)器。
本文分析了一種可以直接獲得數(shù)字化調(diào)頻廣播節(jié)目聲音數(shù)據(jù)的鑒頻解調(diào)方法,并用單片機(jī)設(shè)計(jì)了整機(jī)進(jìn)行實(shí)測(cè)?;驹硎怯幂^快的速度測(cè)量出中頻載波的瞬時(shí)頻率,實(shí)現(xiàn)數(shù)字化解調(diào)。這種方法不僅具有線性度好、線性范圍寬、鑒頻靈敏度高的優(yōu)點(diǎn),而且電路很簡(jiǎn)單。
根據(jù)頻率調(diào)制的定義,載波的瞬時(shí)頻率按照調(diào)制信號(hào)的變化規(guī)律而變化。因?yàn)檎{(diào)頻廣播載波頻率發(fā)生的偏移與調(diào)制信號(hào)電壓成正比關(guān)系,所以只要能快速測(cè)量出載波的瞬時(shí)頻率,就能恢復(fù)調(diào)制信號(hào),達(dá)到解調(diào)目的。
傳統(tǒng)方式對(duì)廣播節(jié)目?jī)?nèi)容進(jìn)行監(jiān)測(cè),需要把聲音電壓信號(hào)進(jìn)行A/D轉(zhuǎn)換,通常用8位16 ksps的采樣率,相鄰兩個(gè)采樣點(diǎn)的時(shí)間間隔為62.5 μs。也就是說(shuō),如果能夠每隔62.5 μs測(cè)量一次調(diào)頻廣播中頻信號(hào)頻率的瞬時(shí)值,就實(shí)現(xiàn)了用16 ksps的采樣率數(shù)字化調(diào)頻廣播的聲音節(jié)目?jī)?nèi)容。因?yàn)檎{(diào)頻廣播載波頻率發(fā)生的偏移與調(diào)制信號(hào)電壓成正比,所以采用快速測(cè)頻方法得到的數(shù)值與那種用傳統(tǒng)鑒頻器解調(diào),然后放大再進(jìn)行A/D轉(zhuǎn)換方法所取得的數(shù)據(jù)在結(jié)果上是等效的。其中的關(guān)鍵是,如何在較短的時(shí)間段準(zhǔn)確測(cè)量,得到中頻信號(hào)的瞬時(shí)頻率值。
1.1測(cè)量頻率的方法
對(duì)信號(hào)頻率進(jìn)行測(cè)量主要有3種方法:
① 對(duì)于頻率較高的信號(hào),固定在一個(gè)開(kāi)門時(shí)間段內(nèi),用計(jì)數(shù)器記錄每個(gè)信號(hào)脈沖邊沿,脈沖數(shù)量除以開(kāi)門時(shí)長(zhǎng)就得到了頻率數(shù)值。
② 對(duì)于頻率較低的信號(hào),測(cè)量信號(hào)連續(xù)兩個(gè)或多個(gè)脈沖所經(jīng)歷的周期,計(jì)算得到兩個(gè)相鄰脈沖之間的周期,然后取倒數(shù)就得到頻率數(shù)值。
③ 等精度測(cè)頻法:把待測(cè)信號(hào)與一個(gè)頻率已知的參照信號(hào)同時(shí)進(jìn)行計(jì)數(shù),因?yàn)閮蓚€(gè)信號(hào)脈沖邊沿重合時(shí)的計(jì)數(shù)值與它們的拍頻有關(guān)系,所以可根據(jù)已知信號(hào)頻率計(jì)算出待測(cè)信號(hào)的頻率。在某些情況下也可以看作是上一種測(cè)量多個(gè)脈沖平均周期方法的精密形式。
在我國(guó)調(diào)頻廣播標(biāo)準(zhǔn)中,規(guī)定調(diào)頻廣播的最大調(diào)制頻偏是75 kHz。選用接收芯片TDA18273設(shè)計(jì)調(diào)頻廣播的信號(hào)接收電路,得到1.25 MHz低中頻信號(hào),再用STM32F407快速測(cè)量這個(gè)中頻信號(hào)的瞬時(shí)頻率實(shí)現(xiàn)鑒頻解調(diào)。因?yàn)樗矔r(shí)頻率與聲音電壓是線性關(guān)系,所以只需把測(cè)得的頻率值與載頻1.25 MHz相減,即可獲得數(shù)字化的聲音電壓數(shù)據(jù)。圖1是采用這種解調(diào)方法的調(diào)頻廣播監(jiān)測(cè)設(shè)備原理框圖。
圖1 調(diào)頻廣播監(jiān)測(cè)設(shè)備原理框圖
先分析采取在固定開(kāi)門時(shí)段里進(jìn)行計(jì)數(shù)方法的可行性,也就是用一個(gè)計(jì)數(shù)器累加中頻信號(hào)脈沖的數(shù)量,每隔62.5 μs保存一次計(jì)數(shù)值之后清零,再重新計(jì)數(shù)。當(dāng)頻偏為0時(shí),1250 kHz/16 kHz=78.125。因?yàn)橛?jì)數(shù)法會(huì)引入一個(gè)整數(shù)的誤差,所以會(huì)得到計(jì)數(shù)值78或79。
當(dāng)頻偏為+75 kHz時(shí),(1250 kHz+75 kHz)/16 kHz=82.812 5,所以會(huì)得到計(jì)數(shù)值82或83。
當(dāng)頻偏為-75 kHz時(shí),(1250 kHz-75 kHz)/16 kHz=73.437 5,所以會(huì)得到計(jì)數(shù)值73或74。
可以看出,這種方法得到的數(shù)據(jù)動(dòng)態(tài)范圍太小,在最大調(diào)解度下,一個(gè)脈沖的計(jì)數(shù)誤差大約會(huì)影響10%的精度,導(dǎo)致解調(diào)之后的聲音存在較大的失真和噪音。在實(shí)際電路實(shí)驗(yàn)中,明顯可以聽(tīng)到解調(diào)得到的節(jié)目帶有很大的噪音,效果很不好。
為實(shí)現(xiàn)較高的測(cè)頻精度,設(shè)計(jì)用STM32F407的一個(gè)計(jì)數(shù)器和兩個(gè)定時(shí)器聯(lián)合工作。設(shè)置TIM5作為計(jì)數(shù)器采用外觸發(fā)方式,累計(jì)每個(gè)中頻脈沖,從0x0000 0000計(jì)數(shù)到0xFFFF FFFF,然后自動(dòng)歸零,無(wú)需中斷;TIM14作為定時(shí)器用42 MHz的固定頻率計(jì)數(shù),從0x0000計(jì)數(shù)到0xFFFF之后自動(dòng)歸零,并且工作在捕獲模式上,每個(gè)中頻脈沖都把定時(shí)器14的計(jì)數(shù)值保存到捕獲寄存器中,也無(wú)需中斷服務(wù);TIM13作為定時(shí)器,每隔62.5 μs觸發(fā)一次中斷,中斷服務(wù)程序每次都取得TIM5計(jì)數(shù)器和TIM14捕獲寄存器中的數(shù)值,并結(jié)合上次中斷得到兩個(gè)計(jì)數(shù)器的歷史數(shù)值,計(jì)算出瞬時(shí)頻率。圖2是快速測(cè)頻原理框圖。
圖2 快速測(cè)頻原理框圖
根據(jù)圖2中描述的原理,可以得到瞬時(shí)頻率計(jì)算公式:
f=(CNT1-CNT0)×42 000 000/(TIM1-TIM0)
上式中,CNT1和TIM1分別是本次中斷得到的TIM5計(jì)數(shù)值和TIM14捕獲值,而CNT0和TIM0分別是上次中斷所取得的數(shù)值。測(cè)頻原理就是在這62.5 μs中,通過(guò)測(cè)量(CNT1-CNT0)個(gè)中頻脈沖的平均周期,計(jì)算倒數(shù)得到中頻頻率f。為了提高軟件工作效率,采用了整數(shù)乘除計(jì)算,為了防止除法計(jì)算損失精度,計(jì)算時(shí)需要先乘后除。當(dāng)頻偏為+75 kHz時(shí),(CNT1-CNT0)會(huì)達(dá)到最大值83,與42 MHz相乘之后的結(jié)果小于4 GHz,所以用32位無(wú)符號(hào)數(shù)進(jìn)行計(jì)算不會(huì)發(fā)生乘法溢出的情況。
定時(shí)器14的計(jì)數(shù)頻率為42 MHz,而定時(shí)器13中斷處理程序響應(yīng)存在μs量級(jí)的誤差,即每μs有42個(gè)計(jì)數(shù)值的誤差。也就是說(shuō),中斷服務(wù)程序直接從TIM14_CNT寄存器讀取數(shù)據(jù)來(lái)計(jì)算頻率必然存在較大誤差。因此,必須讓待測(cè)中頻信號(hào)脈沖在累加計(jì)數(shù)器5的同時(shí),利用TIM14的捕獲功能,把脈沖時(shí)刻的TIM14_CNT寄存器數(shù)值保存到TIM14_CCR1捕獲寄存器中。然后在TIM13產(chǎn)生中斷時(shí),才能從TIM14_CCR1中得到與計(jì)數(shù)器5信息同步的數(shù)值,從而準(zhǔn)確計(jì)算頻率。
1.2STM32F407中斷處理
圖3 中斷服務(wù)程序流程
在STM32F407內(nèi)部,硬件電路對(duì)于TIM5的計(jì)數(shù)與TIM14捕獲兩項(xiàng)工作有可能并不在同一時(shí)鐘邊沿完成。另外還有中頻信號(hào)脈沖可能會(huì)在中斷處理期間到達(dá),并且中斷服務(wù)程序也不可能同時(shí)讀取到TIM5_CNT和TIM14_CCR1兩個(gè)寄存器的數(shù)據(jù)。這樣很可能發(fā)生一種意外情況:中斷服務(wù)程序剛讀完TIM5_CNT,即將要讀取TIM14_CCR1時(shí),新到一個(gè)計(jì)數(shù)脈沖,導(dǎo)致接下來(lái)想要讀取的那個(gè)TIM14_CCR1內(nèi)容發(fā)生了改變,利用兩個(gè)并不配對(duì)的數(shù)據(jù)計(jì)算會(huì)得到錯(cuò)誤的結(jié)果。所以需要在TIM13的中斷處理程序中交替循環(huán)讀取這兩個(gè)寄存器的內(nèi)容,如果連續(xù)兩次都能取得相同的數(shù)值,那么這個(gè)數(shù)值才是可用的,否則兩個(gè)寄存器的內(nèi)容就不配對(duì),需要循環(huán)回去重讀TIM5_CNT和TIM14_CCR1,直到確認(rèn)它們的內(nèi)容沒(méi)有發(fā)生意外改變?yōu)橹?。圖3是TIM13中斷服務(wù)程序的流程圖。
在實(shí)際的應(yīng)用電路中,不可避免會(huì)產(chǎn)生鑒頻誤差,還存在線性范圍和線性度的問(wèn)題。對(duì)鑒頻器而言,主要分析鑒頻靈敏度、鑒頻線性范圍和線性度三個(gè)重要指標(biāo)。因?yàn)閭鹘y(tǒng)鑒頻器使用元件較多,不方便精確分析誤差,尤其是那些帶有LC二階電路的鑒頻器,更是不容易精確計(jì)算。而采用了STM32F407直接鑒頻的方法很容易計(jì)算鑒頻誤差,從而分析主要的鑒頻性能指標(biāo)。
2.1鑒頻誤差與鑒頻靈敏度
從前面測(cè)頻過(guò)程可以看到,這里產(chǎn)生誤差的可能原因發(fā)生在TIM14捕獲瞬間的那一個(gè)整數(shù)誤差,而且這個(gè)誤差只存在于TIM13中斷之前發(fā)生的那次捕獲。由42 MHz時(shí)鐘驅(qū)動(dòng)的TIM14在62.5 μs內(nèi)應(yīng)該計(jì)數(shù)2 625次,捕獲數(shù)值可能會(huì)出現(xiàn)2 624和2 626。所以可以計(jì)算出頻率測(cè)量的最大誤差:
(2 626-2 624)/2 625≈0.076 19%
由此可知,實(shí)際電路可以達(dá)到相當(dāng)于10位以上的A/D轉(zhuǎn)換精度,滿足監(jiān)測(cè)設(shè)備所需要8位16 ksps采樣的要求。
根據(jù)鑒頻誤差可以計(jì)算出鑒頻靈敏度:
1.25 MHz×0.076 19%=952.4 Hz
2.2鑒頻線性范圍
傳統(tǒng)鑒頻器的鑒頻曲線是“S”形,線性度不理想。因?yàn)閱纹瑱C(jī)直接測(cè)量頻率是一種數(shù)字化的鑒頻方法,所以在整個(gè)工作范圍區(qū)間有良好的線性。如果軟件設(shè)計(jì)使用32位無(wú)符號(hào)數(shù),那么最高工作頻率為:
4 GHz/42 MHz×16 kHz≈1.636 MHz
在前面分析瞬時(shí)頻率計(jì)算公式的時(shí)候,可以看到制約測(cè)量頻率上限的因素是TIM5計(jì)數(shù)值乘以42 MHz之后,在32位無(wú)符號(hào)情況下可能發(fā)生上溢。考慮到TIM14導(dǎo)致的精度誤差大約是千分之一,可將數(shù)值42 000 000最低位的兩個(gè)零舍棄,實(shí)現(xiàn)了在32位計(jì)算條件下把上溢容限提高100倍,實(shí)測(cè)的數(shù)值再乘回100仍然得到以Hz為單位的頻率值。
從測(cè)頻原理來(lái)分析測(cè)量的下限頻率,因?yàn)橄到y(tǒng)要求在62.5 μs之內(nèi)必須至少有兩個(gè)中頻脈沖邊沿到達(dá),所以最低測(cè)量頻率要高于32 kHz。
2.3鑒頻線性度
測(cè)量誤差主要來(lái)自于兩個(gè)方面,一個(gè)是STM32F407結(jié)構(gòu)導(dǎo)致在TIM14捕獲時(shí)的計(jì)數(shù)會(huì)多計(jì)或者少計(jì)一個(gè)脈沖,另一個(gè)是42 MHz時(shí)鐘的精度。在STM32F407內(nèi)部用鎖相環(huán)把石英晶體振蕩器倍頻到42 MHz作為計(jì)數(shù)時(shí)鐘,而通常晶體振蕩器的精度可以達(dá)到萬(wàn)分之一以上,遠(yuǎn)小于其他電路誤差,可以忽略不計(jì)。因此,在整個(gè)工作范圍內(nèi),這個(gè)鑒頻的誤差是均勻的,不存在誤差特別大的特殊頻率??梢杂?jì)算出在(32 kHz,1.636 MHz)這個(gè)工作頻率區(qū)間內(nèi)的線性度:
952.4 Hz/(1.636 MHz-32 kHz) ≈ 5.938×10-4
選用STM32F407控制TDA18273數(shù)字調(diào)諧器芯片組成的調(diào)頻廣播接收電路,把它們用I2C總線接口連接在一起。設(shè)置TDA18273工作在調(diào)頻收音機(jī)模式下,把天線收到的調(diào)頻廣播信號(hào)變頻得到1.25 MHz低中頻信號(hào)。STM32F407直接測(cè)量中頻信號(hào)頻率,并把數(shù)字化的聲音數(shù)據(jù)直接利用網(wǎng)絡(luò)傳輸?shù)接?jì)算機(jī)。圖4是用TDA18273實(shí)現(xiàn)的調(diào)頻廣播接收電路。
因?yàn)镾TM32F407的輸入引腳帶有史密特整形電路,所以可以把TDA18273輸出低中頻1.25 MHz信號(hào),用電容隔直后疊加到大約1.6 V的直流分壓電阻R19和R20上,直接輸入到STM32F407的PA0和PF9引腳。STM32F407和網(wǎng)絡(luò)接口電路略——編者注。
設(shè)置PA0為TIM5的計(jì)數(shù)器外部輸入引腳,每個(gè)脈沖的上升沿累加TIM5。設(shè)置PF9為TIM14的捕獲輸入外部引腳,每個(gè)脈沖的上升沿把TIM14_CNT中的內(nèi)容保存到TIM14_CCR1中。在STM32F407的RAM中設(shè)置一個(gè)緩存隊(duì)列,保存每次TIM13中斷服務(wù)程序中測(cè)量的頻率值,并轉(zhuǎn)換成為8位的聲音數(shù)據(jù),再用網(wǎng)卡接口芯片DP83848設(shè)計(jì)網(wǎng)絡(luò)接口,采用TCP協(xié)議把這些聲音數(shù)據(jù)送給計(jì)算機(jī),計(jì)算機(jī)利用聲卡播放實(shí)時(shí)聲音的同時(shí),還可以保存歷史錄音文件。
實(shí)際測(cè)試以上接收解調(diào)電路,當(dāng)信號(hào)較強(qiáng),高于50 dBμV時(shí),解調(diào)的聲音信號(hào)效果很好,基本聽(tīng)不到噪聲,可是當(dāng)信號(hào)的強(qiáng)度再降低一些時(shí),噪聲明顯增大。通過(guò)觀察1.25 MHz中頻波形并分析測(cè)頻數(shù)據(jù)得知,隨著信號(hào)強(qiáng)度降低,輸出中頻波形振幅減小,并且在振幅上開(kāi)始出現(xiàn)一些明顯的干擾信號(hào),這種干擾使部分中頻波形振幅小于STM32F407輸入引腳翻轉(zhuǎn)電平,這將導(dǎo)致TIM5計(jì)數(shù)器遺漏一些脈沖,使計(jì)數(shù)值結(jié)果偏小出錯(cuò)而產(chǎn)生了爆音。對(duì)此特別設(shè)計(jì)了一種簡(jiǎn)單的整形電路,并且利用振蕩器的頻率牽引達(dá)到濾波目的。圖5是這個(gè)濾波電路和它的等效電路。
振蕩器由HEF4011集成電路和一個(gè)RC低通電路組成。HEF4011本來(lái)是一個(gè)二輸入與非門,把兩個(gè)輸入端短接在一起,看起來(lái)好像僅僅是一個(gè)非門,然而在它內(nèi)部卻有三級(jí)反相器,所以可以與RC低通電路組成環(huán)形振蕩器。因?yàn)樵谄鹫駮r(shí),電容兩端的電壓振幅很小,所以RC時(shí)間常數(shù)需要取大一些。用合適的取值,使它的振蕩頻率大約是1.25 MHz,之后輸入STM32F407,給STM32F407提供了一個(gè)穩(wěn)定的中頻輸入方波。再用一個(gè)電阻R17把TDA18273輸出的中頻信號(hào)送到RC電路,這樣就實(shí)現(xiàn)了把待測(cè)的中頻信號(hào)疊加到振蕩器。
本來(lái)RC振蕩器的頻率穩(wěn)定度就比較低,同時(shí)電容上的電壓振幅又很小,所以它很容易受到調(diào)頻中頻信號(hào)的牽引。這個(gè)簡(jiǎn)單的電路保證了STM32F407的TIM5和TIM14總能可靠地獲得脈沖邊沿,并且還在中頻調(diào)頻信號(hào)的牽引作用下,失諧的RC振蕩脈沖能不斷地自動(dòng)追蹤趨近于中頻信號(hào)的相位。經(jīng)過(guò)實(shí)際測(cè)試,在信號(hào)強(qiáng)度為30 dBμV時(shí)聽(tīng)不到明顯的噪聲,顯著地提高了整機(jī)的接收靈敏度。從另一個(gè)角度看,R17與C33組成了一個(gè)積分電路,對(duì)于偶然的噪聲具有抑制作用。當(dāng)接收信號(hào)很小并且逐漸變?nèi)鯐r(shí),實(shí)測(cè)解調(diào)得到的音量會(huì)隨之慢慢減小,但噪聲并沒(méi)有明顯增加。當(dāng)信號(hào)繼續(xù)降低到與噪聲水平接近時(shí),輸出的噪聲才開(kāi)始明顯起來(lái)。
圖5 濾波及等效電路
在STM32F407上直接用LwIP設(shè)計(jì)網(wǎng)絡(luò)TCP服務(wù)器,并在內(nèi)存中設(shè)計(jì)一個(gè)循環(huán)聲音緩沖區(qū)。一旦有TCP客戶機(jī)聯(lián)接到了服務(wù)器,就通過(guò)網(wǎng)絡(luò)把緩沖區(qū)中的聲音數(shù)據(jù)發(fā)給客戶機(jī)。循環(huán)聲音緩沖區(qū)邏輯結(jié)構(gòu)如圖6所示。
圖6 邏輯結(jié)構(gòu)圖
循環(huán)緩沖區(qū)是一塊連續(xù)的內(nèi)存,在起始地址和結(jié)束地址之間保存聲音數(shù)據(jù),每次TIM13中斷都保存一個(gè)字節(jié)數(shù)據(jù)到WR指針地址上,并且指針后移一字節(jié)。當(dāng)指針移動(dòng)到結(jié)尾就需要重置到起始位置,與WR指針相類似,網(wǎng)絡(luò)從RD指針處可以讀取聲音數(shù)據(jù)并移動(dòng)指針??偣灿?種可能:
① WR=RD,緩沖區(qū)中不存在有效數(shù)據(jù);
② WR>RD,緩沖區(qū)中有數(shù)據(jù),數(shù)據(jù)長(zhǎng)度=WR-RD;
③ WR 在單片機(jī)的主程序中,按照上述邏輯分析聲音數(shù)據(jù)的緩存情況,再發(fā)到網(wǎng)絡(luò)上。 計(jì)算機(jī)上直接用Socket設(shè)計(jì)網(wǎng)絡(luò)TCP客戶端,用DirectSound設(shè)計(jì)聲音實(shí)時(shí)播放程序。從網(wǎng)絡(luò)接收到的數(shù)據(jù),在直接送到聲卡監(jiān)聽(tīng)的同時(shí),還要保存數(shù)據(jù)到硬盤(pán)并且加上一個(gè)WAV文件頭成為錄音文件,可以供其他聲音分析軟件調(diào)用。 本文提供了一種采用STM320F407直接測(cè)量載波瞬時(shí)頻率實(shí)現(xiàn)數(shù)字化鑒頻解調(diào)的方法,并且用STM320F407和很少的外圍元件設(shè)計(jì)了調(diào)頻廣播監(jiān)測(cè)設(shè)備進(jìn)行實(shí)際測(cè)試。運(yùn)用這種方法能夠減化電路設(shè)計(jì),減少外圍元件,降低噪聲,省去信號(hào)放大處理的中間環(huán)節(jié),改善了失真。這種鑒頻方法具有誤差小、線性度好、線性范圍寬、鑒頻靈敏度高的優(yōu)點(diǎn)。盡管受到STM320F407結(jié)構(gòu)的限制,整機(jī)還是達(dá)到了可以實(shí)用的精度。如果換用FPGA采取等精度測(cè)頻的方法進(jìn)行解調(diào),預(yù)計(jì)可以獲得更高的精度。 編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站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. 焦杰(工程師),研究方向?yàn)閺V播電視監(jiān)測(cè)技術(shù);孫宇(高級(jí)工程師),主要從事吉林省廣播電視信號(hào)監(jiān)測(cè)工作。 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 (責(zé)任編輯:楊迪娜2016-03-11)結(jié) 語(yǔ)