在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的PC時(shí)代,。嵌入式技術(shù)越來越同人們的生活緊密相關(guān)。其中掌上嵌入式電子產(chǎn)品更是給人們的生活帶來了很大方便和很多快樂,。盡管生活方式不斷發(fā)生變化,,但無線電仍然很流行。因此,,本文針對(duì)TEA5767HN數(shù)字收音機(jī)芯片的控制機(jī)理,,闡述了通過該芯片和C51單片機(jī)來將FM數(shù)字收音機(jī)嵌入智能電子產(chǎn)品的設(shè)計(jì)方法。
1 系統(tǒng)整體設(shè)計(jì)思路
本立體聲FM數(shù)字收音機(jī)的設(shè)計(jì)目標(biāo)是通過單片機(jī)AT89S52來控制FM接收芯片TEA5767HN,,從而實(shí)現(xiàn)可自動(dòng)搜索并存儲(chǔ)10多個(gè)電臺(tái)節(jié)目(也可手動(dòng)搜索并存儲(chǔ)電臺(tái)節(jié)目),。所收聽電臺(tái)的頻率和臺(tái)號(hào)及時(shí)鐘可在顯示模塊中的LCD上顯示,音量則可通過音量加,、減按鍵自主控制,,并能存儲(chǔ)關(guān)機(jī)時(shí)設(shè)定的數(shù)據(jù)以及鬧鐘功能。具體系統(tǒng)設(shè)計(jì)框圖如圖1所示,。
FM收音機(jī)系統(tǒng)的設(shè)計(jì)" height="195" src="http://files.chinaaet.com/images/20110713/31f64e6a-964d-4508-bf95-53401d3be1bd.jpg" width="369" />
本系統(tǒng)主要由單片機(jī)AT89S52控制模塊,、TEA5767HN收音模塊、音量控制模塊,、ROM存儲(chǔ)模塊,、顯示模塊、按鍵模塊和電源模塊七部分組成,。本系統(tǒng)硬件設(shè)計(jì)的關(guān)鍵則在于FM接收,、音頻處理等模擬部分;軟件設(shè)計(jì)的關(guān)鍵在于控制模塊與收音模塊之間的通信,。
從圖1中可以看出,,控制模塊僅僅通過I2C總線與收音模塊連接并控制收音機(jī)工作。本設(shè)計(jì)使用單片機(jī)P3口的兩個(gè)I/O腳來模擬I2C總線的SDA和SCL時(shí)序并與TEA5767HN通信,;TEA5767HN輸出的左右聲道音頻信號(hào)可通過音量控制模塊進(jìn)行前級(jí)放大及音量控制,,然后輸入到TDA7057進(jìn)行后級(jí)功率放大,最后輸出到揚(yáng)聲器。單片機(jī)可通過I2C總線進(jìn)行音量調(diào)節(jié),;ROM存儲(chǔ)模塊主要用于存儲(chǔ)電臺(tái)數(shù)據(jù),、音量數(shù)據(jù)和時(shí)鐘數(shù)據(jù),為存儲(chǔ)和讀取數(shù)據(jù)帶來方便,。系統(tǒng)可通過按鍵進(jìn)行操作,,通過MCU檢測(cè)按鍵信號(hào)并經(jīng)單片機(jī)實(shí)現(xiàn)手動(dòng)搜臺(tái)、自動(dòng)搜臺(tái),、音量控制,、時(shí)鐘調(diào)整等功能,各項(xiàng)操作提示和操作結(jié)果均可通過LCD顯示出來,。穩(wěn)壓電源模塊產(chǎn)生的5V和3.3V電壓可分別為各個(gè)模塊器件供電,。
2 硬件系統(tǒng)電路設(shè)計(jì)
由于本系統(tǒng)硬件設(shè)計(jì)的關(guān)鍵在于FM接收、音頻處理等模擬電路部分,,其余電路均為常規(guī)電路,,因而其硬件系統(tǒng)的設(shè)計(jì)著重分析收音模塊、音量控制模塊這兩部分電路,。
2.1 收音模塊電路分析
FM接收電路是系統(tǒng)硬件電路中的核心部分之一,,本硬件系統(tǒng)采用單芯片TEA5767HN作為FM接收電路的核心元器件,。Philips公司提供的TE-A5767HN芯片為低電壓,、低功耗和低價(jià)位的全集成單芯片立體聲無線電產(chǎn)品,它只需要極少的外圍元件,,并且基本上不需要外部對(duì)高頻信號(hào)的手動(dòng)調(diào)準(zhǔn),。另外,其頻帶范圍較寬,,可以完全免費(fèi)調(diào)到歐洲,、美國(guó)和日本的調(diào)頻波段。
圖2所示為TEA5767HN的FM應(yīng)用電路連接圖,。圖中,,VCC接穩(wěn)壓電源模塊中的3.3V電源,并通過磁珠FB及電容器進(jìn)行干擾抑制,。22μF的電容選用鉭電容,,兩個(gè)0.1μF的電容可以選用介電常數(shù)高、高頻性能好的陶瓷電容,,以保證整個(gè)收音模塊的電源系統(tǒng)更加穩(wěn)定,。R_OUT、L_OUT為FM的音頻信號(hào)輸出,。DATA和CLK為I2C通信的數(shù)據(jù)線和時(shí)鐘線,,系統(tǒng)的MCU通過I2C接口來對(duì)FM Module進(jìn)行控制。芯片上的W/READ引腳在本系統(tǒng)中沒有使用,故空接,。CLK,、DATA用于與系統(tǒng)的MCU實(shí)現(xiàn)串行通信。BUS-ENABLE為總線使能信號(hào),,當(dāng)BUS-ENABLE為低時(shí),,芯片上的FM-Mod-ule引腳進(jìn)入省電模式,所以采取空接方式,。RF為FM收音模塊的天線接口,,即射頻信號(hào)輸入腳。
2.2 音量控制模塊
音量控制電路使用的單芯片PT2257是由CMOS技術(shù)制造而成的2聲道音量控制IC,,可采用I2C控制,,具有0~79dB的衰減范圍,而且噪音低,、立體聲分離度高,、使用外圍元件少,是較為流行的AV視頻產(chǎn)品音量控制元件,。
音量控制電路采用I2C控制方式,,其音量大小由MCU控制,因而省去了電位器,,避免了電位器產(chǎn)生的雜音干擾音頻信號(hào),。但其不足之處是該IC過載能力較差,不能帶動(dòng)功率稍大的喇叭,,所以,,本設(shè)計(jì)把音量控制電路放置在前置信號(hào)輸入端,然后再接入TDA7057進(jìn)行后級(jí)放大,。
3 系統(tǒng)軟件設(shè)計(jì)
基于AT89S52單片機(jī)控制平臺(tái)的TEA5767HN數(shù)字收音機(jī)的軟件設(shè)計(jì)主要包括六個(gè)部分:I2C總線通信協(xié)議,、TEA5767HN收音模塊控制、PT22 57音量控制,、時(shí)鐘鬧鐘模塊的中斷服務(wù),、AT24C02存儲(chǔ)模塊控制、鍵盤掃描及狀態(tài)顯示,。本文的軟件系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)著重分析TEA5767HN收音模塊控制,、PT2257音量模塊這兩部分的工作原理以及編程思路。
本系統(tǒng)程序使用C語(yǔ)言編寫,,主程序由啟動(dòng),、初始化、鍵盤掃描,、按鍵處理,、液晶顯示等5大模塊組成,。其中系統(tǒng)初始化包括AT89S52的初始化、TEA5767HN的初始化和LCD的初始化,;按鍵處理通過調(diào)用函數(shù)的方法實(shí)現(xiàn)按鍵復(fù)用功能,,可實(shí)現(xiàn)手動(dòng)搜臺(tái)、自動(dòng)搜臺(tái),、音量控制,、時(shí)間調(diào)整、鬧鐘調(diào)整等操作,;顯示模塊可顯示系統(tǒng)的各個(gè)工作狀態(tài),。
3.1 TEA5767HN模塊的軟件設(shè)計(jì)
3.1.1 TEA5767HN讀寫寄存器
TEA5767HN有5個(gè)寫寄存器和5個(gè)讀寄存器,每個(gè)寄存器可存儲(chǔ)8位數(shù)據(jù),。
寫寄存器可以存儲(chǔ)控制信息,,包括軟件靜音、模式選擇,、PLL可編程計(jì)數(shù)器的設(shè)置,、向上向下搜索模式選擇、靜左/右音頻,、可編程端口的設(shè)置,、待機(jī)節(jié)能模式、歐洲/日本頻段選擇,、晶振頻率選擇,、ADC門限設(shè)置、去加重設(shè)置等,。
讀寄存器可檢測(cè)接收電路狀態(tài),,反饋控制信息,,包括搜索到有效電臺(tái)標(biāo)志位,、搜索到有效電臺(tái)后PLL可編程計(jì)數(shù)器的狀態(tài)、4b ADC的輸出,、以及7b IF中頻輸出等,。
3.1.2 TEA5767HN的數(shù)據(jù)傳輸
TEA5767HN的數(shù)據(jù)順序是:地址、字節(jié)1,、字節(jié)2,、字節(jié)3、字節(jié)4,、字節(jié)5,,數(shù)據(jù)傳送必須按照這個(gè)順序。每個(gè)字節(jié)將控制不同的功能,。
每個(gè)字節(jié)的第七位為最高位,,并作為字節(jié)的第一位傳送。在時(shí)鐘的下降沿,數(shù)據(jù)變?yōu)橛行盘?hào),。在每一字節(jié)后面加停止信號(hào)可以縮短傳送時(shí)間,。在整個(gè)傳輸完成之前,發(fā)送一個(gè)停止條件,,其保留的字節(jié)將包含以前的信息,。如果一個(gè)字節(jié)沒有傳送完,新的字節(jié)將被使用,,但新的調(diào)諧周期不會(huì)開始,。
3.1.3 TEA5767HN的讀寫流程
根據(jù)TEA5767HN的讀寫協(xié)議,調(diào)用公用I2C驅(qū)動(dòng)即可編寫出TEA5767HN的讀寫函數(shù):radio_write(),,radio_read(),。它們可為手動(dòng)搜臺(tái)、自動(dòng)搜臺(tái)等FM功能調(diào)用,,以實(shí)現(xiàn)程序的模塊化,,優(yōu)化程序結(jié)構(gòu)。TEA5767HN的讀寫流程如圖3所示,。其中I2C_Start(FM)和I2C_Stop(FM)分別表示啟動(dòng)和停止I2C總線,,Check_(FM)為應(yīng)答信號(hào)。
3.1.4 收音模塊的初始化
TEA5767HN在上電復(fù)位時(shí),,靜音位設(shè)置為“1”,,其他所有位設(shè)置為“0”。為了初始化集成塊,,所有位都必須重新設(shè)定,。所以,上電后必須重新給TEA5767HN寫入數(shù)據(jù),,以初始化收音模塊,。
TEA5767HN的初始化流程圖如圖4所示。圖中的radio_write_data[]分別為要寫入TEA5767HN的5個(gè)字節(jié)數(shù)據(jù),。本系統(tǒng)寫入數(shù)據(jù)讓TEA5767HN接收的頻率為88100kHz,,選擇歐洲制式和32.768MHz晶振,同時(shí)采用立體聲輸出,。函數(shù)get_pll()是根據(jù)當(dāng)前頻率計(jì)算出PLL值的函數(shù),。調(diào)用get_pll()函數(shù)計(jì)算出PLL值后,應(yīng)再把PLL高6位送給字節(jié)1的低6位,,接著把PLL的低8位送給字節(jié)2,。頻率顯示則可直接調(diào)用fm_disp()函數(shù)來完成。
3.1.5 手動(dòng)搜臺(tái)
手動(dòng)搜臺(tái)主要由按鍵掃描和調(diào)用radio_write()等函數(shù)來完成,。操作兩個(gè)按鍵(down,,up)可完成向下向上調(diào)臺(tái),。當(dāng)按下up鍵時(shí),當(dāng)前的頻率將增加100kHz,,然后調(diào)用函數(shù)get_pll()將十進(jìn)制的頻率值轉(zhuǎn)化為14位的PLL值,,然后再將PLL值進(jìn)一步轉(zhuǎn)化為兩個(gè)二進(jìn)制分別寫入TEA5767HN的寫寄存器的第一和第二個(gè)字節(jié)。頻率顯示可直接調(diào)用fm_disp()函數(shù)來完成,。
3.1.6 自動(dòng)搜臺(tái)與讀臺(tái)
自動(dòng)搜臺(tái)主要使系統(tǒng)從最低頻率87.5MHz開始全頻率搜索,,每次步進(jìn)100kHz,如此不斷地寫入和讀出,,同時(shí)調(diào)用頻率顯示函數(shù)不斷地刷新頻率,。當(dāng)搜索到最高頻率108MHz時(shí),自動(dòng)退出搜臺(tái)模式,。在自動(dòng)搜臺(tái)過程中,,可通過讀寄存器中的ADC與中頻IF來辨別是否搜到有效電臺(tái)。若ADC>3,,同時(shí)中頻IF在0x30~0x3E范圍內(nèi),,則說明搜到有效電臺(tái),此時(shí)讀出TEA5767讀寄存器中的字節(jié)1和字節(jié)2,,然后將這兩個(gè)字節(jié)的數(shù)據(jù)轉(zhuǎn)化為PLL,,最后通過寫ROM把搜到的電臺(tái)信息即PLL值存儲(chǔ)到AT24C02的片地址中,以方便讀臺(tái)使用,。
讀臺(tái)是一個(gè)讀ROM和寫TEA5767的操作,。將ROM中的電臺(tái)信息讀取出來,然后將信息再一次寫入TEA5767即可,。在自動(dòng)搜臺(tái)中,,由于存儲(chǔ)的信息是14位的PPL值,所以還必須調(diào)用函數(shù)將PLL轉(zhuǎn)化為十進(jìn)制的頻率frequency,,然后再送進(jìn)LCD顯示,。
3.2 PT2257的音量控制設(shè)計(jì)
本系統(tǒng)使用PT2257來控制收音機(jī)輸出的音量,以實(shí)現(xiàn)數(shù)字化音量控制,。PT2257的地址為88H,。單片機(jī)可與PT2257通過I2C進(jìn)行通信,。PT2257的寫操作先由單片機(jī)發(fā)出啟動(dòng)信號(hào)寫入PT2257的片地址0x88,,然后,由PT2257送回應(yīng)答信號(hào),,單片機(jī)收到應(yīng)答信號(hào)后,,即向PT2257發(fā)送音量衰減量數(shù)據(jù),單片機(jī)再次收到應(yīng)答信號(hào)后,,即發(fā)出停止信號(hào),,如此即可完成一次控制過程,。
PT2257衰減量數(shù)據(jù)Vol由十位和個(gè)位兩部分組成。數(shù)據(jù)的傳輸順序是先發(fā)送十位數(shù)據(jù),,再發(fā)送個(gè)位數(shù)據(jù),。寫入的十位數(shù)據(jù)為(Vol/10)|TenDB,個(gè)位數(shù)據(jù)為(Vol%10)|OneDB,。其中TenDB=0xe0,,OneDB=0xd0。衰減量的大小為十位和個(gè)位值的合并,,圖5給出了PT2257的寫流程和音量控制流程,。
4 電路設(shè)計(jì)說明
本設(shè)計(jì)在硬件方面以經(jīng)典電路為主,所以在常規(guī)電路設(shè)計(jì)方面不難,。但是,,由于本設(shè)計(jì)涉及到高頻與低頻信號(hào)的處理,所以要特別注重抗干擾電路的設(shè)計(jì),。在設(shè)計(jì)樣品的調(diào)試過程中,,為提高抗干擾能力,作者得出以下經(jīng)驗(yàn):
(1)I2C總線的布線技巧
在TEA5767HN收音模塊設(shè)計(jì)時(shí),,由于I2C總線與32.768kHz的布線靠得太近,,信噪比和靈敏度都可能很差。因此,,筆者在做PCB板時(shí),,把I2C總線通過跳線的方式走到下層。
(2)磁珠的應(yīng)用
磁珠一般專門用于抑制信號(hào)線,、電源線上的高頻噪聲和尖峰干擾,,同時(shí)還具有吸收靜電脈沖的能力。本設(shè)計(jì)中的磁珠用來吸收超高頻信號(hào)(如一些RF電路,、PLL,、振蕩電路、含超高頻存儲(chǔ)器電路等),。為了盡量減少電源對(duì)收音模塊的干擾,,本設(shè)計(jì)使用了特征頻率為100MHz的磁珠串接入3.3V電路中。
(3)電路中“電流聲”的處理
電路中經(jīng)常會(huì)有“電流聲”,。這是因?yàn)殡娐樊a(chǎn)生了一定的振蕩,,電流只要有變化,就會(huì)有噪音,,這樣,,根據(jù)電流聲的頻率就可以有針對(duì)性的進(jìn)行處理。具體抑制措施有兩個(gè):一是用電感或電阻把干擾隔離在敏感區(qū)域外,;另一方面,,也可以用電容把噪音泄放到地,。
因此,筆者根據(jù)設(shè)計(jì)實(shí)踐和相關(guān)資料,,歸納出提高電路抗干擾能力的三字訣,,那就是“避”、“堵”,、“疏”,。其中的避,就是指合理布局,,躲開敏感區(qū),,如設(shè)跳線或屏蔽敏感區(qū)等方式;堵,,就是用電感/電阻把干擾隔離在敏感區(qū)域之外,;疏,就是用電容把噪音釋放到地,。另外,,還要遵循兩大原則,分別是:“高頻信號(hào)點(diǎn)觸接地,;低頻信號(hào)處處接地,。”
5 結(jié)語(yǔ)
以TEA5767HN和單片機(jī)為硬件核心的立體聲FM數(shù)字收音機(jī)與傳統(tǒng)收音機(jī)相比,其PCB板布局小,,硬件調(diào)試較為簡(jiǎn)單,,在音效處理和性能方面都更加可靠。通過軟硬件的結(jié)合,,本系統(tǒng)可實(shí)現(xiàn)手動(dòng)搜臺(tái),、自動(dòng)搜臺(tái)、數(shù)控音量和鬧鐘等功能,。在軟件設(shè)計(jì)上也可通過公用I2C使單片機(jī)與多個(gè)IC進(jìn)行通信,,并可通過軟件實(shí)現(xiàn)按鍵復(fù)用功能,因而大大降低了產(chǎn)品體積,。
作者:藍(lán)土慶 黃春貴 重慶大學(xué) 來源:現(xiàn)代電子技術(shù)