王京,袁三男
(上海電力大學(xué)電子與信息工程學(xué)院,上海 200000)
近幾年來,隨著科學(xué)技術(shù)的進步及無線通信技術(shù)的快速發(fā)展[1],在通信領(lǐng)域,各種新型產(chǎn)品以其低成本、高集成度、通信高覆蓋、性能穩(wěn)定等特點,不斷沖擊著國內(nèi)外市場[2]。無線廣播作為一種重要的通信手段,依靠自身各方面的優(yōu)越性能,被應(yīng)用于多個領(lǐng)域[3]。在信息及網(wǎng)絡(luò)化時代的背景下,無線廣播的使用,極大地方便和改善了人民的生活[4]。在無線廣播通信技術(shù)發(fā)展的同時,其自身也具有接收弱信號能力差[5]、多徑效應(yīng)衰落、信號易受干擾等缺點[6]。因此,無線廣播通信對接收設(shè)備的性能具有很高的要求,需要達(dá)到靈敏度高、選擇性強、高保真等性能指標(biāo)要求[7]。
該文對Silicon Labs 公司的無線廣播接收芯片SI4735 展開研究,通過軟件設(shè)計實現(xiàn)FM、AM、SW 信號的接收[8],在PC 端通過串口助手可以設(shè)置接收機的頻率,讀取頻率值、信號強度、信噪比等性能參數(shù),工作穩(wěn)定可靠,可以達(dá)到接收信號能力強、不易受干擾、信噪比高等性能要求。
如圖1 所示,系統(tǒng)以STM32f405 處理器為主控芯片[9],以SI4735 為無線廣播接收芯片,實現(xiàn)對FM、AM、SW 廣播信號的接收功能。
圖1 系統(tǒng)框架圖
系統(tǒng)工作流程:在PC 端,通過串口調(diào)試助手向主控制器發(fā)送設(shè)置頻率或讀取當(dāng)前頻率狀態(tài)參數(shù)信息的命令,主控制器收到相關(guān)命令后通過IIC 總線向接收機發(fā)送有關(guān)命令字,接收機執(zhí)行完成后將狀態(tài)響應(yīng)相關(guān)參數(shù)發(fā)送給主控制器,主控制器收到參數(shù)后再發(fā)送到PC 端,同時所接收到的廣播通過音頻播放器進行播放。
SI4735 是一款數(shù)字無線接收、模擬調(diào)諧芯片,集成了完整的廣播調(diào)諧器和從天線輸入到數(shù)字音頻輸出的接收機功能。該芯片利用了Silicon Labs 廣播已驗證的數(shù)字低中頻架構(gòu),為消費者提供了一個性價比高的數(shù)字音頻平臺,具有較高的TDMA 抗噪聲能力[10],以及優(yōu)良的無線電性能和高保真的優(yōu)質(zhì)音頻輸出功能。SI4735 芯片具有很高的集成度,在開發(fā)板中所占空間很小,外圍設(shè)備電路設(shè)計也非常簡單,極大地降低了成本[11]。
SI4735 芯片內(nèi)部集成了優(yōu)越的算法,提供了可靠的控制接口,包括數(shù)字調(diào)諧、自動校準(zhǔn)、搜索頻率算法、高級音頻處理算法等。該芯片支持FM、AM、SW 信號的接收,具備數(shù)字調(diào)諧、2 總線/3 總線控制接口、立體聲處理、數(shù)字信號/模擬信號輸出等功能[12]。
SI4735 芯片可以工作在FM、AM、SW 的接收模式下。工作在FM 接收模式時,通過FM 接收天線捕捉有用的頻段信號,通過FMI 引腳接入低聲放大器(LNA)減小噪聲,提高輸出信號的信噪比。內(nèi)部集成AGC 電路用來控制LNA 的增益,優(yōu)化感知有效信號的靈敏度,提高抗干擾能力和信號傳輸質(zhì)量,然后信號傳輸?shù)匠朔ㄆ?,模?shù)轉(zhuǎn)換后進入DSP 數(shù)字信號處理器,處理完成后選擇數(shù)字信號輸出,或選擇數(shù)模轉(zhuǎn)換進行模擬信號輸出。工作在AM 接收模式時,通過AM 回路天線捕捉有用的頻段信號,信號處理流程與FM 接收模式相同,最后以模擬或數(shù)字的方式進行信號輸出[13]。工作在SW 接收模式時,SI4735 使用FM 天線捕捉短波信號,然后這些信號以寬帶配置方式直接引入AMI 引腳,信號處理流程與FM 接收模式相同,最后以模擬或數(shù)字的方式進行信號輸出。工作原理如圖2 所示。
圖2 SI4735原理圖
SI4735 無線廣播接收機集成度高,具有多種不同信號的接收模式,接收模式主要有FM 接收模式、AM 接收模式、SW 接收模式。
1)FM 接收模式:SI4735 的FM 接收功能是基于Silicon Labs 驗證的SI4700/01 調(diào)頻調(diào)諧器,采用數(shù)字低中頻架構(gòu),可以進行信道選擇、FM 解調(diào)和立體聲音頻處理,從而實現(xiàn)比傳統(tǒng)模擬體系結(jié)構(gòu)更好的性能,支持全球FM 廣播頻段(64~108 MHz)[14]。
2)AM 接收模式:SI4735 采用數(shù)字低中頻體系結(jié)構(gòu),可以實現(xiàn)高精度濾波,提供優(yōu)異的選擇性和信噪比,在調(diào)幅波段變化最小。此外,該芯片還提供1 kHz的可調(diào)步長,可以實現(xiàn)軟靜音和通道帶寬濾波的功能,能更好地接收較弱的信號,支持全球AM 廣播頻段(520~1 710 kHz)。
3)SW 接收模式:SI4735 提供了廣泛的短波功能,支持SW 廣播頻段(2.3~26.1 MHz)[15]。
SI4735 提供三種不同類型的總線控制模式:2 線模式、3 線模式、SPI 模式,通過對RST 上升沿上的GPO1 和GPO2/INT 引腳的狀態(tài)進行采樣來選擇總線模式。GPO1 引腳連接1 MΩ上拉電阻,GPO2/INT 引腳連接1 MΩ下拉電阻,對兩個引腳賦不同的值以選擇不同的總線模式,需注意選擇完總線模式后芯片會處于下電模式??偩€模式選擇如表1 所示。
表1 總線模式選擇
該方案中三波段廣播接收機采用的是2 線模式,2 線模式僅使用SCLK 和SDIO 引腳進行數(shù)據(jù)傳輸。如圖3 所示,當(dāng)SDIO 下降而SCLK 高時,主控制器在SDIO 上先發(fā)送一個8 位控制字,當(dāng)SCLK 處于上升邊緣時,該控制字被SI4735 捕獲,控制字由一個7 位的設(shè)備地址和一個讀/寫位(讀=1,寫=0)組成,在下一個SCLK 的下降沿時,SI4735 芯片通過驅(qū)動SDIO 為低電平確定控制字。在一次2 線事務(wù)中,主控制器最多寫入8 個數(shù)據(jù)字節(jié),第一個字節(jié)是一個命令,接下來的7個字節(jié)是參數(shù),最多讀取16個數(shù)據(jù)字節(jié),這些字節(jié)包含來自SI4735 的狀態(tài)字節(jié)和響應(yīng)數(shù)據(jù)。當(dāng)SDIO上升且SCLK為高電平時,2線事務(wù)結(jié)束。
圖3 IIC時序圖
SI4735 芯片只響應(yīng)一個設(shè)備地址,但是這個地址可以通過SEN 引腳來改變,當(dāng)SEN=0 時,7 位設(shè)備地址為0010001b;當(dāng)SEN=1 時,地址為1100011b。
SI4735 內(nèi)部集成了強大的軟件接口,主控制器通過發(fā)送命令字、參數(shù)字節(jié)、設(shè)置屬性對接收芯片進行寄存器配置,從而實現(xiàn)SI4735 對廣播信號的接收功能。命令字用來控制接收芯片的動作,如上電、下電或調(diào)優(yōu)到某個頻率,大小為一個字節(jié),參數(shù)是特定于給定命令的,用于修改命令,屬性是用于修改設(shè)備操作的特殊命令參數(shù)的,通常在上電后立即進行配置。
如表2 所示FM_TUNE_FREQ 命令,主控制器向接收芯片發(fā)送0x20 命令字、0x00、0x27、0xF6、0x00 參數(shù)字節(jié),接收芯片收到命令字以及參數(shù)字節(jié)后進行調(diào)頻,接收芯片將接收頻率調(diào)到102.3 MHz,并使用電容自動調(diào)諧,調(diào)頻完成后向主控芯片發(fā)送0x80 的狀態(tài)響應(yīng)字節(jié),至此接收芯片調(diào)頻命令執(zhí)行完畢。
表2 調(diào)頻參數(shù)配置
三波段廣播接收機的軟件開發(fā)采用比較流行的Keil C51。Keil 提供了包括C 編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起[16]。軟件初次安裝時需要添加STM32F4xx_DFP 及STM32F4xxFlash 數(shù)據(jù)包,在程序調(diào)試上還需要JTAG 下載器以及若干根杜邦線等。
根據(jù)三波段廣播接收機需要實現(xiàn)的功能以及SI4735 芯片手冊的軟件設(shè)計要求,在硬件的基礎(chǔ)上對程序進行設(shè)計,從而完成系統(tǒng)設(shè)計的功能。軟件設(shè)計需要達(dá)到的系統(tǒng)功能主要包括三波段廣播的接收、通過串口實現(xiàn)頻率的更改以及性能參數(shù)信息的獲取。
主程序流程圖如圖4 所示,在系統(tǒng)初始化中,主要完成主控芯片STM32f405 的系統(tǒng)時鐘初始化、GPIO 引腳初始化、串口初始化、IIC 初始化以及SI4735 芯片初始化等工作;三波段廣播接收功能中完成了對FM、AM、SW 廣播的接收;串口功能實現(xiàn)了對三波段廣播接收機頻率的更改以及獲取當(dāng)前頻率的狀態(tài)參數(shù)信息??筛鶕?jù)串口返回的狀態(tài)參數(shù)評估接收機的工作性能,以此來修改信噪比、信號強度、軟靜音等參數(shù)的設(shè)計,從而達(dá)到提高接收機工作性能的目的。
圖4 主程序流程圖
如圖5、圖6 所示,詳細(xì)介紹了SI4735 接收機的軟件設(shè)計,設(shè)計流程包括FM、AM 以及SW 廣播的收聽。廣播的接收方式有兩種,一種是選擇默認(rèn)參數(shù)配置,另一種是按照實際工作環(huán)境進行寄存器參數(shù)配置設(shè)計,以提高接收機的工作性能。
圖5 FM廣播軟件設(shè)計流程
圖6 AM、SW廣播軟件設(shè)計流程
3.2.1 SI4735接收機的上電設(shè)計
SI4735 接收機上電具有嚴(yán)格的時序要求,需要根據(jù)芯片的供電、復(fù)位、提供時鐘信號的順序?qū)懭肷想娒?,否則上電失敗。
如圖7 所示,首先,提供電壓時,需要保證復(fù)位管腳一直為低電平;其次,選擇總線的工作方式,該方案選擇IIC 通信;之后,使復(fù)位管腳為高電平;最后寫入POWER_UP(0x01)命令并輸入時鐘信號。上電成功后,SI4735 芯片會通過IIC 發(fā)送0x80 的狀態(tài)字響應(yīng)。
圖7 上電時序圖
SI4735 的上電工作同時包括了中斷引腳、時鐘信號、接收模式及音頻輸出相關(guān)參數(shù)的配置。即中斷引腳使能化、外部晶振或內(nèi)部時鐘信號的選擇、芯片的接收模式、數(shù)字音頻或模擬音頻的輸出選擇。
3.2.2 SI4735接收機的信噪比參數(shù)設(shè)計
去加重技術(shù)是在信號的接收端將高頻分量進行去加重,恢復(fù)原來的信號功率分布,同時減小了噪聲的高頻分量,有效地提高了輸出信噪比。SI4735 芯片的設(shè)計集成了去加重技術(shù),主控芯片通過發(fā)送FM_DEEMPHASIS(0x1100)/AM_DEEMPHASIS(0x3100)命令,啟用SI4735 芯片的去加重功能。
SI4735 芯片具有信號濾波器的功能,可以將有用信號與噪聲分離,提高了輸出信噪比。主控芯片通過發(fā)送命令FM_CHANNEL_FILTER(0x1102)/AM_CHANNEL_FILTER(0x3102)啟用SI4735 芯片的信號濾波功能。
3.2.3 SI4735接收機的接收信號強度參數(shù)設(shè)計
基于RSSI 設(shè)置立體聲與單聲道的閾值,以及立體聲、單聲道的攻擊率和釋放率。根據(jù)實際工作環(huán)境中RSSI 的大小,較小值提供較小的攻擊或釋放,較大值提供較大的攻擊或釋放,接收機以此來提高接收信號的質(zhì)量。主控芯片通過發(fā)送相關(guān)命令字來配置SI4735 接收機接收信號強度的性能。
3.2.4 SI4735接收機的軟靜音參數(shù)設(shè)計
配置SI4735 芯片的軟靜音參數(shù),包括軟靜音的衰減斜率、最大衰減值以及基于信噪比的閾值。當(dāng)SI4735 接收頻率的信噪比低于所設(shè)置的閾值時,SI4735 芯片就會啟用軟靜音功能以提高接收頻率的信噪比。
3.2.5 SI4735接收機的調(diào)頻參數(shù)設(shè)計
當(dāng)接收機的有關(guān)性能參數(shù)配置好后,開始對接收機的調(diào)頻參數(shù)進行配置,包括頻率值的大小、調(diào)頻方式等,該設(shè)計方案采用自動調(diào)頻。在調(diào)頻過程中,會對調(diào)頻中斷標(biāo)志位進行輪回檢查,當(dāng)檢測到標(biāo)志位為1,則代表調(diào)頻完成,此時SI4735 接收機可以正常收聽廣播。
PC 端與SI4735 接收機的主控芯片通過RS232串口進行通信,在PC 端可以實現(xiàn)設(shè)置三波段某一頻率的廣播接收功能,以及讀取當(dāng)前頻率性能參數(shù)信息的功能,包括信噪比、信號強度、頻率偏移、頻率值等參數(shù)信息。
工作流程:SI4735 接收機供電后,在PC 端通過串口調(diào)試助手發(fā)送設(shè)置頻率的報文,接收機收到報文后,設(shè)置某一頻率的廣播進行收聽,設(shè)置成功后將報文發(fā)送到PC 端。讀取當(dāng)前頻率性能參數(shù)信息的功能流程與上述工作流程相同。
SI4735 芯片上電成功后,會將上電成功的標(biāo)志信息位(0x80)通過IIC 總線發(fā)送給主控芯片。在Keil 仿真界面的watch window 功能里,可以讀取到0x80,從而判斷上電成功。
主控芯片與SI4735 芯片之間通過IIC 進行通信,SI4735 芯片收到主控芯片的數(shù)據(jù)后,會進行ACK=0的狀態(tài)響應(yīng),主控芯片收到了ACK=0 的狀態(tài)響應(yīng),即判斷通信成功。
當(dāng)SI4735 接收機完成調(diào)頻的工作后,會將當(dāng)前頻率的性能參數(shù)信息返回給主控芯片,以此來判斷當(dāng)前接收機的工作性能,同時音頻播放器播出當(dāng)前接收廣播的節(jié)目信息。
在SI4735接收機收聽廣播時,PC可以通過串口發(fā)送報文,更改波段和頻率,在發(fā)送的報文中,buf[3]=0x53 代表設(shè)置頻率功能,buf[4]的0、1、2 分別對應(yīng)AM、FM、SW 波段的接收,buf[5]、buf[6]分別對應(yīng)頻率的高八位和低八位。當(dāng)頻率更改成功后,串口界面會收到來自主控芯片的報文,0xF5 為接收報文的開始,‘S’(0x53)代表頻率更改成功。
對SI4735 接收到的頻率廣播,PC 還可以通過串口發(fā)送報文讀取性能參數(shù),buf[3]=0x76 代表讀取性能參數(shù)功能,主控芯片接收到來自PC 端的報文后,將接收廣播的性能參數(shù)信息發(fā)送到PC 端。
文中對三波段廣播接收機進行了深入的研究并提出了軟件設(shè)計方案,通過對系統(tǒng)功能進行測試,接收機不僅實現(xiàn)了三波段廣播的接收功能,在PC 端還可以通過串口助手更改頻率或讀取性能參數(shù),且接收信號的信噪比高、頻率穩(wěn)定、抗干擾性強,提高了廣播接收機的工作性能,具有很高的實際使用價值。