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