




已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)AT89C52的FM收音機(jī)設(shè)計(jì)1.引言 雖然電視、手機(jī)、互聯(lián)網(wǎng)等媒體和各種便攜式娛樂(lè)設(shè)備已經(jīng)普及到千家萬(wàn)戶,但傳統(tǒng)的收音機(jī)在豐富的娛樂(lè)媒介中任然占有重要地位。隨著信息化的發(fā)展,收音機(jī)逐漸數(shù)字化,集成化,而且成本越來(lái)越低,這使得在各種設(shè)備中嵌入收音機(jī)的現(xiàn)象更加普遍。TEA5767系列單片數(shù)字收音機(jī)就被廣泛地應(yīng)用在數(shù)字音響,便攜式CD、VCD、DVD、MP3、MP4、手機(jī)、PDA等數(shù)字消費(fèi)電子系統(tǒng)中。但是該數(shù)字收音機(jī)芯片與傳統(tǒng)的超外差式收音機(jī)的調(diào)諧原理不太相同,傳統(tǒng)的超外差式收音機(jī)的固定頻率為10.7MZ,而TEA5767系列數(shù)字收音機(jī)的固定中頻為225KHz,由于固定中頻不同,鎖相環(huán)系統(tǒng)的軟件控制就有很大的差別,這就給廣大芯片應(yīng)用設(shè)計(jì)者帶來(lái)一定的難度。本設(shè)計(jì)采用宏晶科技生產(chǎn)的8位微控制器STC89C52來(lái)控制數(shù)字收音機(jī)模塊TEA5767,構(gòu)成一個(gè)FM數(shù)字收音機(jī)系統(tǒng)。該收音機(jī)的設(shè)計(jì)具有電路簡(jiǎn)單易懂、體積小,易調(diào)諧的特點(diǎn),同時(shí)該收音機(jī)系統(tǒng)還具有抗干擾能力強(qiáng),頻帶寬、音質(zhì)好的優(yōu)點(diǎn)。2.方案設(shè)計(jì)與論證 本設(shè)計(jì)是一個(gè)數(shù)字調(diào)頻收音機(jī),調(diào)頻就是頻率調(diào)制,所謂頻率調(diào)制就是原來(lái)等幅恒頻的高頻信號(hào)的頻率,隨著調(diào)制信號(hào)(音頻信號(hào))的幅度變化而變化,調(diào)頻收音機(jī)(FM Radio)就是接收這些頻率調(diào)制的無(wú)線電信號(hào),經(jīng)過(guò)解調(diào)還原成原信號(hào)的電子設(shè)備。FM Radio電路一般主要由接收天線、振蕩器、混頻器、AGC(自動(dòng)增益控制)、中頻放大器、中頻限幅器、中頻濾波器、鑒頻器、低頻靜噪電路、搜索調(diào)諧電路、信號(hào)檢測(cè)電路及頻率鎖定環(huán)路、音頻輸出電路等組成。本設(shè)計(jì)就是用單片機(jī)控制集成了上述所有FM功能的專(zhuān)用芯片,設(shè)計(jì)一個(gè)數(shù)字FM收音機(jī)系統(tǒng)。本設(shè)計(jì)采用模塊化設(shè)計(jì),整個(gè)系統(tǒng)由控制模塊、FM音頻模塊、電源模塊和功放模塊組成,系統(tǒng)的整體方案框圖如下圖(1): 控制模塊無(wú)線FM模塊電源模塊功放模塊圖(1)系統(tǒng)方案設(shè)計(jì)框圖(1)控制模塊??刂颇K是本設(shè)計(jì)的核心,通過(guò)外圍電路和向TEA5767芯片寫(xiě)入相關(guān)程序,控制部分要實(shí)現(xiàn)能夠改變收音機(jī)的接收頻率、工作模式、音量等各項(xiàng)參數(shù)的功能。因此必須需要一個(gè)微控制器才能達(dá)到要求,本設(shè)計(jì)采用STC89C52單片機(jī)作為系統(tǒng)的控制核心。(2)無(wú)線FM模塊。無(wú)線模塊選擇是本設(shè)計(jì)的關(guān)鍵,有兩種方案可以選擇:方案(1)采用無(wú)線芯片TEA5767,自己設(shè)計(jì)外圍電路。方案(2)采用相關(guān)廠家生產(chǎn)的TEA5767模塊來(lái)實(shí)現(xiàn)。很顯然,第一種方案需要自己設(shè)計(jì)電路、畫(huà)PCB和焊接,而TEA5767采用的是FVQFN40(耐熱的薄型四腳扁平封裝)封裝,在短時(shí)間內(nèi)和有限的條件下實(shí)現(xiàn)硬件功能的難度相當(dāng)大。所以本設(shè)計(jì)采用第二種方案使用現(xiàn)成的模塊。(3)電源模塊 單片機(jī)的供電電壓要求是3.8V5.5V,TEA5767的供電電壓要求是2.5V5.0V。由于收音機(jī)模塊的應(yīng)用范圍很廣,比如手機(jī)中就采用3.7V鋰電池供電,DVD、電視等系統(tǒng)中則是對(duì)220V市電進(jìn)行變壓后供電。本設(shè)計(jì)中采用7805穩(wěn)壓芯片對(duì)系統(tǒng)進(jìn)行供電,由于這個(gè)電源可以很容易得到,設(shè)計(jì)中不再單獨(dú)給出。(4)功放模塊 TEA5767音頻輸出具有立體聲方式,也可以采用單聲道輸出,具體方式可以通過(guò)編程設(shè)定,為簡(jiǎn)化設(shè)計(jì),本設(shè)計(jì)采用單聲道輸出,功放芯片使用TDA2030,供電采用+5V供電,設(shè)計(jì)中不給出電源設(shè)計(jì)。 設(shè)計(jì)既要實(shí)現(xiàn)數(shù)字FM收音機(jī)的基本功能,又要盡量做到簡(jiǎn)單廉價(jià),綜合考慮各項(xiàng)因素,以上設(shè)計(jì)方案是可行的。3.單片機(jī)簡(jiǎn)介本設(shè)計(jì)采用宏晶科技生產(chǎn)的STC89C52芯片,芯片采用40腳雙列直插式封裝,32個(gè)I/O口,芯片工作電壓3.8 5.5V,工作溫度0-70C(商業(yè)級(jí)),工作頻率可高達(dá)30MHz,芯片的外形和引腳見(jiàn)下圖(2) 圖(2) STC89C52外形和引腳圖STC89C52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 STC89C52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K字節(jié)在系統(tǒng)可編程 Flash。P0P3口結(jié)構(gòu),第一功能、第二功能請(qǐng)參考數(shù)據(jù)手冊(cè)(STC89C52數(shù)據(jù)手冊(cè)下載地址)。4.FM芯片簡(jiǎn)介4.1 TEA5767芯片簡(jiǎn)介FM模塊的控核心芯片采用飛利浦公司的TEA5767數(shù)字立體聲FM芯片,該芯片把所有的FM功能都集成到一個(gè)不足6*6平方米的用HVQFN40封裝的小方塊中。芯片工作電壓2.5V5.0V,典型值是3V;RF接收頻率范圍是76108MHz,(最強(qiáng)信號(hào)+噪聲)/噪聲的值在60dB左右,失真度在0.4%左右;雙聲道音頻輸出的電壓在6090mV左右,帶寬為22.5KHz。芯片的引腳分布及其引腳定義分別見(jiàn)圖(3)和表(1),圖(4)是芯片的應(yīng)用結(jié)構(gòu)框圖。圖(3)TEA5767芯片引腳分布管腳定義管腳定義1 空腳21空腳2鎖相環(huán)輸出22左聲道輸出3本振23右聲道輸出4本振24軟靜音時(shí)間常數(shù)5本振電源25檢波輸出6數(shù)字地26基準(zhǔn)7數(shù)字電源27中頻中心頻率調(diào)整時(shí)間常數(shù)8數(shù)據(jù)線28中頻限幅器退藕19時(shí)鐘線29中頻限幅退藕210空腳30空腳11三線讀寫(xiě)控制31空腳12總線模式選擇32增益控制13總線使能端33模擬地14軟口134模擬電源15軟口235射頻輸入116晶振36高頻地17晶振37射頻輸入218相位濾波38高放AGC時(shí)間常數(shù)19導(dǎo)頻低通濾波39鎖相環(huán)開(kāi)關(guān)輸出20空腳40空腳表(1) TEA5767管腳定義圖(4)TEA5767應(yīng)用結(jié)構(gòu)框圖參見(jiàn)內(nèi)部結(jié)構(gòu)框圖,TEA5767主要具有以下特征:(1)集成高靈敏度的低噪聲放大器。(2)FM到中頻的混頻器可以工作在87.5-108MHz的歐美頻段或76-91MHz的日本頻段,并且可預(yù)設(shè)接收日本108MHz的電視音頻信號(hào)的能力。(3) 射頻具有自動(dòng)增益控制功能,并且LC調(diào)諧振蕩器只需固定片裝電感。(4)內(nèi)置的FM解調(diào)器可以省去外部鑒頻器,并且FM的中頻選擇性可以在芯片內(nèi)部完成。(5)可以采用32.768KHz或13MHz的振蕩器產(chǎn)生參考時(shí)鐘或可以直接輸入6.5MHz的時(shí)鐘信號(hào)。(6)集成鎖相環(huán)調(diào)諧系統(tǒng)(7)可以通過(guò)I2C或三線串行總線來(lái)獲取中頻計(jì)數(shù)器值或接收的高頻信號(hào)電平,以便進(jìn)行自動(dòng)調(diào)諧功能,本設(shè)計(jì)采用第一種方式,詳細(xì)的I2C通信介紹請(qǐng)見(jiàn)第5節(jié)。(8)SNC(立體聲噪音抑制)、HCC(高頻衰減控制)、靜音處理等可以通過(guò)串行數(shù)字接口進(jìn)行控制。(9)免費(fèi)調(diào)諧立體聲解碼器。(10)自動(dòng)調(diào)節(jié)溫度范圍(在VCCA,VCC(VCO)和VCCD=5V)。4.2 TEA5767 寄存器描述吃透芯片的寄存器是編好程序的關(guān)鍵。單片機(jī)和TEA5767進(jìn)行通信有兩種方式,一種是I2C模式,一種是三線模式,本設(shè)計(jì)采用I2C模式,I2C通信協(xié)議操作參見(jiàn)第5章。TEA5767的寄存器一共有五位,數(shù)據(jù)通信的讀寫(xiě)順序?yàn)椋旱刂窋?shù)據(jù)字節(jié)1數(shù)據(jù)字節(jié)2數(shù)據(jù)字節(jié)3數(shù)據(jù)字節(jié)4數(shù)據(jù)字節(jié)5,下面就對(duì)芯片的寄存器進(jìn)行詳細(xì)說(shuō)明。(1)芯片寄存器地址的格式如下:R/W=0為讀模式;R/W=1為寫(xiě)模式(2)寫(xiě)模式下5個(gè)數(shù)據(jù)字節(jié)的格式及各位的描述。數(shù)據(jù)字節(jié)1a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)MUTESMPLL13PLL12PLL11PLL10PLL9PLL8表(2)數(shù)據(jù)字節(jié)1字節(jié)格式 b)位描述位號(hào)符號(hào)描述7MUTE如果 MUTE=1,則左右聲道被靜音;MUTE=0,左右聲道正常工作。6SM如果 SM=1,則處于搜索模式;SM=0,不處于搜索模式。5 到 0PLL13:8設(shè)定用于搜索和預(yù)設(shè)的可編程頻率合成器。表(3)數(shù)據(jù)字節(jié)1位描述數(shù)據(jù)字節(jié)2a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0 表(4)數(shù)據(jù)字節(jié)2字節(jié)格式b)位描述位號(hào)符號(hào)描述7 到 0PLL7:0設(shè)定用于搜索和預(yù)設(shè)的可編程頻率合成器。表(5)數(shù)據(jù)字節(jié)2位描述數(shù)據(jù)字節(jié)3a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)SUDSSL1SSL0HLSIMSMLMRSWP1表(6)數(shù)據(jù)字節(jié)3字節(jié)格式b)位描述位號(hào)符號(hào)描述7SUDSUD=1,增加頻率搜索;SUD=0,減小頻率搜索。6 和 5SLL1:0搜索停止標(biāo)準(zhǔn):見(jiàn)下表 1。4HLSI高/低充電電流切換:HLSI=1,高充電電流; HLSI=0,低充電電流。3MS立體聲/單聲道:MS=1,單聲道;MS=0,立體聲。2ML左聲道靜音:ML=1,左聲道靜音并置立體聲,ML=0,左聲道正常。1MR右聲道靜音:MR=1,右聲道靜音并置立體聲,MR=0,右聲道正常。0SWP1軟件可編程端口 1:SWP1=1,端口 1 高電平;SWP1=0,端口 1 低電平。表(7)數(shù)據(jù)字節(jié)3位描述注:搜索停止標(biāo)準(zhǔn)設(shè)定SSL1SSL2搜索停止標(biāo)準(zhǔn)00在搜索模式下禁止01低:ADC 輸出大小為 510中:ADC 輸出大小為 711高:ADC 輸出大小為 10 表(8)搜索停止標(biāo)準(zhǔn)數(shù)據(jù)字節(jié)4a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)SWP2STBYBLXTALSMUTEHCCSNCSI表(9)數(shù)據(jù)字節(jié)4字節(jié)格式b)位描述位號(hào)符號(hào)描述7SWP2軟件可編程端口 2:SWP2=1,端口 2 高電平;SWP2=0,端口 2 低電平。6STBY等待:STBY=1,處于待機(jī)模式,STBY=0,退出待機(jī)模式。5BL波段制式:BL=1,日本調(diào)頻制式;BL=0,美國(guó)/歐洲調(diào)頻制式。4XTAL如果 XTAL=1,那么 fxtal=32.768KHz;如果 XTAL=0,那么 fxtal=13MHz。3SMUTE軟件靜音:SMUTE=1,軟靜音打開(kāi);SMUTE=0,軟靜音關(guān)閉。2HCC白電平切割:HCC=1,高電平切割打開(kāi),HCC=0,高電平切割關(guān)閉。1SNC立體聲噪聲去除:如果 SNC=1,立體聲消噪除打開(kāi),如果 SNC=0,立體聲消噪除關(guān)閉。0SI搜索標(biāo)志位:SI=1,SWPORT1 輸出準(zhǔn)備好信號(hào);SI=0,SWPORT1 作為軟件可編程端口 1 用。表(10)數(shù)據(jù)字節(jié)4位描述數(shù)據(jù)字節(jié)5a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLLREFDTC-表(11)數(shù)據(jù)字節(jié)5字節(jié)格式b)位描述位號(hào)符號(hào)描述7PLLREF若 PLLREF=1,6.5MHz 的鎖相環(huán)參考頻率啟用;若 PLLREF=0,6.5MHz 的鎖相環(huán)參考頻率關(guān)閉。6DTC若 DTC=1,去加重時(shí)間常數(shù)為 75us;若 DTC=0,去加重時(shí)間常數(shù)為 50us。5 到 0-未用,狀態(tài)不必考慮。表(12)數(shù)據(jù)字節(jié)5位描述(3)寫(xiě)模式下5個(gè)數(shù)據(jù)字節(jié)的格式及各位的描述。數(shù)據(jù)字節(jié)1a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)RFBLFPLL13PLL12PLL11PLL10PLL9PLL8表(13)數(shù)據(jù)字節(jié)1字節(jié)格式b)位描述位號(hào)符號(hào)描述7RF準(zhǔn)備好標(biāo)志:RF=1,有一個(gè)頻道被搜到或者一個(gè)制式已經(jīng)符合;RF=0,沒(méi)有頻道被搜到。6BLF波段制式:BLF=1,一個(gè)制式已經(jīng)符合;BLF=0,沒(méi)有制式已經(jīng)符合。5 到 0PLL13:8用于搜索和預(yù)設(shè)后的可編程頻率合成器設(shè)定結(jié)果。表(14)數(shù)據(jù)字節(jié)1位描述數(shù)據(jù)字節(jié)2a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0表(15)數(shù)據(jù)字節(jié)2字節(jié)格式b)位描述位號(hào)符號(hào)描述7 到 0PLL7:0設(shè)定用于搜索和預(yù)設(shè)后的可編程頻率合成器設(shè)定結(jié)果。位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)STEREOIF6IF5IF4IF3IF2IF1IF0表(16)數(shù)據(jù)字節(jié)2位描述數(shù)據(jù)字節(jié)3a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)STEREOIF6IF5IF4IF3IF2IF1IF0表(17)數(shù)據(jù)字節(jié)3字節(jié)格式b)位描述位號(hào)符號(hào)描述7STEREO立體聲標(biāo)志位:STEREO=1,立體聲接收;STEREO=0,單聲道接收。6 到 0IF6:0中頻計(jì)數(shù)器結(jié)果。表(18)數(shù)據(jù)字節(jié)3位描述數(shù)據(jù)字節(jié)4a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)LEV3LEV2LEV1LEV0CI3CI2CI10表(19)數(shù)據(jù)字節(jié)4字節(jié)格式b)位描述位號(hào)符號(hào)描述7 到 4LEV3:0ADC 的輸出。3 到 1CI3:1芯片驗(yàn)證號(hào)。0-該位內(nèi)部置 0。表(20)數(shù)據(jù)字節(jié)4位描述數(shù)據(jù)字節(jié)5a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)00000000表(21)數(shù)據(jù)字節(jié)5字節(jié)格式b)位描述位號(hào)符號(hào)描述7 到 0-預(yù)留為擴(kuò)展用,由內(nèi)部置 0。表(22)數(shù)據(jù)字節(jié)5位描述在采用I2C協(xié)議進(jìn)行通信時(shí),輸入電壓小于0.2VCCD就被認(rèn)為是高電平,大于0.45VCCD就被認(rèn)為是高電平,高電平和低電平的持續(xù)時(shí)間必須要大于1us,在編程模擬I2C協(xié)議時(shí)要特別注意到這個(gè)時(shí)間。4.3 FM模塊介紹在方案設(shè)計(jì)時(shí)就已經(jīng)確定FM部分采用按照datasheet推薦的應(yīng)用設(shè)計(jì)電路圖生產(chǎn)的模塊。本設(shè)計(jì)FM模塊采用金秋實(shí)生產(chǎn)的B20C封裝的完整版收音機(jī)模塊,外接引腳只有10個(gè),開(kāi)發(fā)者只需要關(guān)注引腳而不需要關(guān)注模塊的內(nèi)部結(jié)構(gòu),開(kāi)發(fā)方便簡(jiǎn)單。下圖(5)是模塊的引腳封裝和引腳功能簡(jiǎn)介(引出引腳的功能和芯片引腳的定義完全相同)。圖(5)TEA5767模塊引腳圖引腳號(hào)符號(hào)簡(jiǎn)介1ANT天線接口2MPXFM解調(diào)器MPX信號(hào)輸出(置空)3R右聲道輸出4L左聲道輸出5GND地6VCC電源正極7WR讀/寫(xiě)模式(僅三線控制有效)8MODE總線模式選擇(1為三線模式;0為I2C模式)9CLK總線時(shí)鐘線輸入10DATA總線數(shù)據(jù)線輸入/輸出表(23)TEA5767引腳定義表5. I2C總線簡(jiǎn)介I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。它只有兩根雙向信號(hào)線,一根是數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。典型的I2C結(jié)構(gòu)如圖(6)所示圖(6)典型的I2C總線結(jié)構(gòu)I2C總線需通過(guò)上拉電阻接正電源,當(dāng)總線空閑時(shí),兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA及SCL都是線“與”關(guān)系。每個(gè)接到I2C總線上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送可以是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這時(shí)主機(jī)即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則為接收器。在多主機(jī)系統(tǒng)中,可能同時(shí)有幾個(gè)主機(jī)企圖啟動(dòng)總線傳送數(shù)據(jù)。為了避免混亂, I2C總線要通過(guò)總線仲裁,以決定由哪一臺(tái)主機(jī)控制總線。I2C總線的數(shù)據(jù)字節(jié)必需保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。 圖(7)是I2C總線字節(jié)傳送與應(yīng)答時(shí)序 圖(7)I2C總線字節(jié)傳送與應(yīng)答時(shí)序由于某種原因從機(jī)不對(duì)主機(jī)尋址信號(hào)應(yīng)答時(shí)(如從機(jī)正在進(jìn)行實(shí)時(shí)性的處理工作而無(wú)法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個(gè)終止信號(hào)以結(jié)束總線的數(shù)據(jù)傳送。如果從機(jī)對(duì)主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時(shí)間后無(wú)法繼續(xù)接收更多的數(shù)據(jù)時(shí),從機(jī)可以通過(guò)對(duì)無(wú)法接收的第一個(gè)數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從機(jī)的“非應(yīng)答”來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線,以允許主機(jī)產(chǎn)生終止信號(hào)。I2C總線上傳送的數(shù)據(jù)信號(hào)是廣義的,既包括地址信號(hào),又包括真正的數(shù)據(jù)信號(hào)。在起始信號(hào)后必須傳送一個(gè)從機(jī)的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/T),用“0”表示主機(jī)發(fā)送數(shù)據(jù)(T),“1”表示主機(jī)接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號(hào)結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號(hào),馬上再次發(fā)出起始信號(hào)對(duì)另一從機(jī)進(jìn)行尋址。 在總線的一次數(shù)據(jù)傳送過(guò)程中,可以有以下三種組合方式:(1)主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個(gè)傳送過(guò)程中不變:注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無(wú)陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。 A表示應(yīng)答, A非表示非應(yīng)答(高電平)。S表示起始信號(hào),P表示終止信號(hào)(下同)。(2)主機(jī)在第一個(gè)字節(jié)后,立即從從機(jī)讀數(shù)據(jù)(3)在傳送過(guò)程中,當(dāng)需要改變傳送方向時(shí),起始信號(hào)和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫(xiě)方向位正好反相。I2C總線的尋址在協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號(hào)后的第一個(gè)字節(jié)),尋址字節(jié)的位定義如下其中D7D1位組成從機(jī)的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時(shí)表示主機(jī)向從機(jī)寫(xiě)數(shù)據(jù),為“1”時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。主機(jī)發(fā)送地址時(shí),總線上的每個(gè)從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/T位將自己確定為發(fā)送器或接收器。從機(jī)的地址由固定部分和可編程部分組成。在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線該類(lèi)器件的最大數(shù)目。由于本設(shè)計(jì)采用的STC89C52單片機(jī)沒(méi)有I2C總線接口,所以要通過(guò)模擬來(lái)實(shí)現(xiàn),利用軟件實(shí)現(xiàn)I2C總線的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號(hào)模擬。為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)的I2C總線數(shù)據(jù)傳送有嚴(yán)格的時(shí)序要求。I2C總線的起始信號(hào)、終止信號(hào)、發(fā)送“0”及發(fā)送“1”的模擬時(shí)序如下圖(8)所示1。模擬I2C總線數(shù)據(jù)傳輸?shù)某绦蛞?jiàn) 圖(8)I2C總線數(shù)據(jù)傳送模擬時(shí)序6.硬件電路設(shè)計(jì) 按照設(shè)計(jì)方案,系統(tǒng)硬件電路由電源部分、微控制器部分和FM模塊部分組成,下面的介紹將分塊對(duì)電路進(jìn)行設(shè)計(jì),其中電源部分由于6.1電路原理圖(1)微控制器部分 微控制器部分以STC89C52為核心,包括復(fù)位電路,晶振電路和按鍵控制電路,特別注意的是電源輸入要加上去藕電容,電路原理圖見(jiàn)下圖(9) 圖(9)微控制器模塊原理圖(2)TEA5767模塊部分原理圖 如圖(10)所示,R2、R3是I2C數(shù)據(jù)線和時(shí)鐘線的上拉電阻,C5是天線的匹配電容,天線用30cm左右的銅導(dǎo)線代替。E1是外接天線,C6、C7和R4、R5構(gòu)成音頻輸出網(wǎng)絡(luò),8腳接地,選擇為工作模式。模塊10腳接單片機(jī)P2.0,模塊9腳接芯片P2.1圖(10)TEA5767模塊部分原理圖(3)功放模塊原理圖 功放部分采用TDA2030單聲道A類(lèi)音頻放大芯片,電路原理圖如下所示:圖(11)功放電路原理圖(3)電路總原理圖圖(12)電路總原理圖6.2 電路裝配注意事項(xiàng)設(shè)計(jì)就采用普通的萬(wàn)用版進(jìn)行裝配,在裝配時(shí)要注意以下幾點(diǎn):(1)晶振部分要緊靠著芯片引腳,導(dǎo)線要盡量粗,在焊接時(shí)采用用焊錫鋪粗來(lái)處理(2)電源輸入一定要添加去耦電容(3)TEA5767模塊和單片機(jī)引腳的距離盡量靠近,SDA線和CLK線業(yè)盡量鋪粗。(4)天線安裝盡量靠近芯片引腳,一定要加上匹配電容。(5)模擬線和數(shù)據(jù)線盡量要分開(kāi),設(shè)計(jì)采用元器件面走數(shù)字線,焊接面走模擬線的方法處理。7.軟件設(shè)計(jì)軟件采用可移植性強(qiáng)的C語(yǔ)言程序來(lái)設(shè)計(jì),主要由兩大部分組成,一個(gè)是模擬I2C總線程序,一個(gè)是對(duì)芯片寄存器進(jìn)行操作的主程序。對(duì)芯片寄存器進(jìn)行操作的關(guān)鍵是設(shè)置接收頻率,接收頻率設(shè)置參數(shù)可以通過(guò)以下式子得到:FRF:接收頻率(kHz)FIR:中頻(TEA5767為225kHz)FREFS :參考頻率(由TEA5767外接晶振而定),本設(shè)計(jì)外接32.768kHZ的晶振。7.1軟件設(shè)計(jì)思想軟件設(shè)計(jì)的核心是單片機(jī)與TEA5767進(jìn)行通信,寫(xiě)入相關(guān)參數(shù)控制無(wú)線模塊運(yùn)行。本設(shè)計(jì)只實(shí)現(xiàn)基本功能,即實(shí)現(xiàn)TEA5767的頻率選擇,不實(shí)現(xiàn)音量控制、電臺(tái)儲(chǔ)存和頻率顯示。為了便于設(shè)計(jì)觀察,在程序設(shè)計(jì)時(shí)編寫(xiě)了串口通信協(xié)議,頻率可以通過(guò)串口調(diào)試軟件顯示出來(lái),但是在設(shè)計(jì)硬件的時(shí)候沒(méi)有加入串口,所以這個(gè)程序只是供設(shè)計(jì)參考。根據(jù)設(shè)計(jì)要求,系統(tǒng)實(shí)現(xiàn)電臺(tái)搜索和串口讀出,軟件設(shè)計(jì)的流程圖如下:檢測(cè)按鍵是否有按鍵按下讀按鍵開(kāi) 始按s1鍵按s2鍵按s3鍵按s4鍵當(dāng)前頻率值減單位步長(zhǎng)當(dāng)前頻率值減單位步長(zhǎng)當(dāng)前頻率值減單位步長(zhǎng)當(dāng)前頻率值減單位步長(zhǎng)讀ADC的幅度讀ADC的幅度讀ADC的幅度讀ADC的幅度度大于門(mén)限?讀ADC的幅度大于門(mén)限?讀中頻計(jì)數(shù)器的值是否中頻大于225K?串口讀出讀中頻計(jì)數(shù)器的值NYNNNNYYY圖(13)軟件設(shè)計(jì)流程圖7.2程序設(shè)計(jì)根據(jù)軟件流程圖,寫(xiě)出相應(yīng)的程序如下:(1)主程序:#include #include #include #include #include uart.h/添加串口頭文件#include I2C.h/添加I2C頭文件sbit s1=P34; /手動(dòng)減小鍵P3.4口sbit s2=P35; /手動(dòng)增加鍵P3.5口sbit s3=P36; /自動(dòng)減小鍵P3.6口sbit s4=P37; /自動(dòng)增加鍵P3.7口#define max_freq 108000/最大接收頻率108MHz,這里的單位采用的是KHz#define min_freq 87500/最小接收頻率87.5MHzunsigned int max_pll=0x339b; /108MHz時(shí)的pll,芯片內(nèi)部寄存器有14位用于設(shè)置頻率unsigned int min_pll=0x299d; /87.5MHz時(shí)的pll.unsigned char radio_write_data5=0x2a,0xb6,0x40,0x11,0x40; /要寫(xiě)入TEA5767的數(shù)據(jù),數(shù)據(jù)字節(jié)1是0x2a,左右聲道正常工作,不采用搜索模式/第一字節(jié)后六位和第二字節(jié)為pll頻率設(shè)定,初始頻率設(shè)定為89.8MHz;第三字節(jié)0x40設(shè)/定搜索停止標(biāo)準(zhǔn),ADC輸出大小為7時(shí)停止搜索,第四字節(jié)0x11,晶振設(shè)定為/32.786MHz;SWPORT1輸出準(zhǔn)備好信號(hào);第五字節(jié),6.5MHz鎖相環(huán)參考頻率關(guān)閉。unsigned char radio_read_data5; /TEA5767讀出的狀態(tài)unsigned long frequency;unsigned int pll;void delay_ms(unsigned int i) /us延時(shí)函數(shù) unsigned int j,k; for(j=i;j0;j-) for(k=125;k0;k-);/延時(shí)片刻后通過(guò)i2c寫(xiě)入數(shù)據(jù)void radio_write(void) unsigned char i; iic_start(); iic_write8bit(0xc0); /TEA5767寫(xiě)地址 if(!iic_testack() for(i=0;i5;i+) iic_write8bit(radio_write_datai); iic_ack();/每發(fā)送一個(gè)字節(jié)都要進(jìn)行總線應(yīng)答測(cè)試 iic_stop(); /由頻率計(jì)算PLLvoid get_pll(void) unsigned char hlsi; unsigned int twpll=0; hlsi=radio_write_data2&0x10; if (hlsi) pll=(unsigned int)(float)(frequency+225)*4)/(float)32.768); /頻率單位:khz else pll=(unsigned int)(float)(frequency-225)*4)/(float)32.768); /頻率單位:khz/由PLL計(jì)算頻率void get_frequency(void) unsigned char hlsi; unsigned int npll=0; npll=pll; hlsi=radio_write_data2&0x10; if (hlsi) frequency=(unsigned long)(float)(npll)*(float)8.192-225); /頻率單位:KHz else frequency=(unsigned long)(float)(npll)*(float)8.192+225); /頻率單位:KHz/讀TEA5767狀態(tài),并轉(zhuǎn)換成頻率void radio_read(void) unsigned char i; unsigned char temp_l,temp_h; pll=0; iic_start(); iic_write8bit(0xc1); /TEA5767讀地址 if(!iic_testack() for(i=0;imax_freq) frequency=min_freq;/如果超過(guò)最高頻率,那么就回到最低頻率重新搜索 else frequency-=10; if(frequencymax_freq) frequency=min_freq; else radio_write_data2=0x41; frequency-=20; if(frequencymin_freq) frequency=max_freq; get_pll(); radio_write_data0=pll/256+0x40; /加0x40是將SM置為1 為自動(dòng)搜索模式 radio_write_data1=pll%256; radio_write_data3=0x11; /SSL1和SSL0控制搜索停止條件 radio_write_data4=0x40; radio_write(); radio_read(); while(!(radio_read_data0&0x80) /搜臺(tái)成功標(biāo)志 radio_read(); void main() P3=0xff; UART_Init(); radio_write(); while(1) if(s1=0) delay_ms(1);/按鍵去抖動(dòng) if(s1=0) while(s1=0); search(0); send_fre(frequency); if(s2=0) delay_ms(1); if(s2=0) while(s2=0); search(1); send_fre(frequency); if(s3=0) delay_ms(1); if(s3=0) auto_search(0); send_fre(frequency); if(s4=0) delay_ms(1); if(s4=0) auto_search(1); send_fre(frequency); (2)模擬I2C總線協(xié)議程序sbit SDA=P20;/數(shù)據(jù)輸出接口定義為2.4口sbit SCL=P21;/時(shí)鐘輸出接口定義為2.1口void Delayus(unsigned int number) while(number-);void DelayMs(unsigned int number) unsigned char temp; for(;number!=0;number-) for(temp=112;temp!=0;temp-); void iic_start() SDA=1; Delayus(4); SCL=1; Delayus(4); SDA=0; Delayus(4); SCL=0; Delayus(4);void iic_stop() SCL=0; Delayus(4); SDA=0; Delayus(4); SCL=1; Delayus(4); SDA=1; Delayus(4);void iic_ack() SDA=0; Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); SDA=1; Delayus(4);void iic_NoAck() SDA=1; Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); SDA=0;bit iic_testack() bit ErrorBit; SDA=1; Delayus(4); SCL=1; Delayus(4); ErrorBit=SDA; Delayus(4); SCL=0; return ErrorBit;void iic_write8bit(unsigned char input) unsigned char temp; for(temp=8;temp!=0;temp-) SDA=(bit)(input&0x80); Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); input=input1; unsigned char iic_read8bit() unsigned char temp,rbyte=0; for(temp=8;temp!=0;temp-) SCL=1; Delayus(4); rbyte=rbyte1; rbyte=rbyte|(unsigned char)SDA); SCL=0; return rbyte; (3)串口通信頭文件程序(參考)/UART 相關(guān)函數(shù)-/*-函數(shù)名:UART_Init()功能: 串口初始化 通訊有關(guān)參數(shù)初始化 將串口波特率設(shè)定為9600bps-*/void UART_Init() /* 通訊有關(guān)參數(shù)初始化 */ PCON&=0x7f; TH1=0xfd; /* T1 use sio */ TL1=0xfd; /* 選擇通訊速率*/ TMOD=0x21; /* T1=MODE2, T0=MODE1,16bit,use time */
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生暑期“三下鄉(xiāng)”社會(huì)實(shí)踐總結(jié)模版
- 組態(tài)軟件技術(shù)整體教學(xué)設(shè)計(jì)-張松枝
- 糖原累積病Ⅵ型的臨床護(hù)理
- 小米3小米電視發(fā)布會(huì)
- 廣西南寧市第四十九中學(xué)2025屆數(shù)學(xué)七下期末綜合測(cè)試模擬試題含解析
- 統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)1秋天 課件
- 醫(yī)學(xué)生模擬談話技能培訓(xùn)大綱
- 2025年秋學(xué)期初二家長(zhǎng)會(huì)班主任發(fā)言稿模版
- 2025年民辦學(xué)校審工作總結(jié)模版
- 狂犬病醫(yī)學(xué)發(fā)展史
- 樂(lè)山市市級(jí)事業(yè)單位選調(diào)工作人員考試真題2024
- 山東省濟(jì)南市2025屆高三三模生物試卷(含答案)
- 火力發(fā)電廠安全培訓(xùn)課件
- 寧波水產(chǎn)筆試題目及答案
- 中學(xué)金融知識(shí)講座課件
- 第八章-實(shí)數(shù)(單元復(fù)習(xí)課件)七年級(jí)數(shù)學(xué)下冊(cè)同步高效課堂(人教版2024)
- 2025涼山州繼續(xù)教育公需科目滿分答案-數(shù)字時(shí)代的心理健康
- 浙江百順?lè)b有限公司年產(chǎn)100萬(wàn)套服裝及135萬(wàn)套床上用品生產(chǎn)線項(xiàng)目環(huán)境影響報(bào)告
- 玻璃維修安裝合同協(xié)議
- 2024年中石油招聘考試真題
- 《抽水蓄能電站樞紐布置格局比選專(zhuān)題報(bào)告編制規(guī)程 》征求意見(jiàn)稿
評(píng)論
0/150
提交評(píng)論