解析ADSP-BF531的數(shù)字音頻選擇系統(tǒng)的應(yīng)用
1 引言
隨著數(shù)字電路廣泛應(yīng)用,廣播中的數(shù)字信號逐步取代傳統(tǒng)的模擬信號。隨著數(shù)字媒體技術(shù)的發(fā)展,存儲技術(shù)在數(shù)字媒體領(lǐng)域也得到了廣泛應(yīng)用。特別是數(shù)字技術(shù)的迅猛變革,使存儲數(shù)字媒體的技術(shù)手段也發(fā)生很大變化。在媒體爆炸性增長的同時,廣電界十分關(guān)心數(shù)字技術(shù)的未來發(fā)展,同時也更加關(guān)心數(shù)字媒體資產(chǎn)的管理、使用和存儲。本系統(tǒng)設(shè)計采用ADSP-BF531和EMP7128實現(xiàn)了廣播常用的AES3數(shù)字信號實時檢測和動態(tài)分配功能。
2 系統(tǒng)功能簡介
音頻數(shù)字選擇系統(tǒng)是由母板、控制板和分配板組成。AES3信號分為10組,每組3路信號是由機(jī)箱直接輸入母板,母板再將每組信號分別送入10塊分配板。分配板對輸入信號進(jìn)行解析,再根據(jù)用戶的要求選擇符合要求的信號輸出,并顯示當(dāng)前各路信號的質(zhì)量。
音頻數(shù)字選擇系統(tǒng)原理:接收3路AES3廣播信號,A路為主路,無特殊情況時為輸出信號。若A路出現(xiàn)無信號或信號電平過低等情況,系統(tǒng)將自動切換至B路。若B路有問題,切換至C路。若3路輸入信號均有問題,則輸出應(yīng)急信號。應(yīng)急信號由上位機(jī)提供。
本系統(tǒng)是由音頻信號分配模塊、控制模塊、上位機(jī)組成,如圖1所示。
本系統(tǒng)同時輸入10組30路信號,分別由10塊分配板卡完成信號分選。1塊控制板卡控制10塊分配板卡,并檢測其狀態(tài),實現(xiàn)各分配板卡與上位機(jī)通信。
3 AES3信號分析
AES3信號作為一種數(shù)字音頻基帶信號,可在一定程度上防范非法的插播。即使沒有配備AES3輸入口的發(fā)射設(shè)備,其模擬輸入口也往往是平衡式的,意在保障盡可能高的信號源質(zhì)量,減輕傳輸中的干擾。AES/EBU數(shù)字音頻接口標(biāo)準(zhǔn)采用一個雙相標(biāo)識(Biphase mark)的調(diào)頻通道編碼調(diào)制串行數(shù)據(jù),使之無直流(DC-Free)和自同步(Self-clocking)。調(diào)頻編碼中,每一個數(shù)據(jù)碼轉(zhuǎn)換為兩位通道碼,一位通道碼1引起傳輸信號的一次變化。未經(jīng)加工的串行數(shù)據(jù)不能直接通過電纜傳輸,必須調(diào)制(編碼)使之成為一種含有與碼值無關(guān)的時鐘信號波形。AES3的幀格式如圖2所示。
4系統(tǒng)硬件設(shè)計
4.1分配板卡
分配板主要包括CS8420、MAX3095、ADSP-BF531以及CPLD等器件,CPLD(Complex Programmable Logic Device)復(fù)雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜("在系統(tǒng)"編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。分配板卡信號電路連接如圖3所示。
輸入信號進(jìn)入板卡后,首先進(jìn)入數(shù)字音頻采樣率轉(zhuǎn)換器CS8420.CS8420不但町以在不影響信號流的情況下提取AES3信號,而且能夠改變信號采樣速率。CS8420需要由ADSP-BF531從SPI接口通過CPLD進(jìn)行初始化,其片內(nèi)有128個控制寄存器和數(shù)據(jù)寄存器,前14個為控制寄存器。CS8420必須在系統(tǒng)上電后初始化才能正常工作。CS8420內(nèi)部寄存器時序有很大不同,如圖4所示,讀取CS8420寄存器時,1個SPI周期需接收16位數(shù)據(jù)即可讀取CS8420內(nèi)部寄存器數(shù)據(jù)。完全與ADSP-BF531的SPI接口相匹配。在寫入CS8420寄存器時,1個SPI周期需接收24位數(shù)據(jù)才能寫入數(shù)據(jù)。而ADSP-BF531的SPI接口1個周期最多發(fā)送16位數(shù)據(jù),因此對于CS8420的寫操作,ADSP-BF531必須發(fā)送兩次數(shù)據(jù)。CPLD修正其片選信號,才能完成寫操作。CS8420初始化后,開始對輸入信號解碼??赏ㄟ^兩種方式輸出解碼信號,即SPI接口和同步串口輸出方式。SPI(Serial Peripheral Interface--串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。SPI有三個寄存器分別為:控制寄存器SPCR,狀態(tài)寄存器SPSR,數(shù)據(jù)寄存器SPDR.外圍設(shè)置FlashRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU等。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS(有的SPI接口芯片帶有中斷信號線INT、有的SPI接口芯片沒有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI)。這里采用后者輸出解碼信號,再輸入CPLD,并進(jìn)入ADSP-BF531.由于存在3路輸入音頻信號,所以需要3片CS8420.這些CS8420分別將解碼信號送人CPLD,再由CPLD分時送入ADSP-BF531的SPORT端口。
系統(tǒng)的數(shù)據(jù)處理采用Blackfin531.Blackfin531處理器內(nèi)核包含2個16位乘法器,2個40位的累加器,2個40位的ALU,4個視頻ALU和1個40位移位器。DSP內(nèi)核時鐘(CCLK)和系統(tǒng)外設(shè)時鐘(SCLK)可由輸入時鐘(CLKIN)信號獲得。內(nèi)核時鐘最高可達(dá)300 MHz,系統(tǒng)外設(shè)時鐘最高可達(dá)133 MHz,為了達(dá)到實時性,系統(tǒng)把內(nèi)核時鐘倍頻至300 MHz.
系統(tǒng)中ADSP-BF531所使用資源包括2個定時器、UART、SPI端口、SPORT端口。系統(tǒng)初始化后,ADSP-BF531首先設(shè)置PLL,倍頻輸入時鐘。產(chǎn)生內(nèi)核時鐘和系統(tǒng)外設(shè)時鐘。然后初始化內(nèi)部總線、SPI端口、UART、SPORT端口、設(shè)置中斷。ADSP-BF531擁有16個功能強(qiáng)大的PF引腳,既可作為I/O引腳,也可作為中斷。由于系統(tǒng)涉及到控制信號,所以采用PF作為控制引腳。對CPLD中數(shù)據(jù)分時提取,控制信號分選。
ADSP-BF531需要完成以下功能:
(1)通過同步串口采集由CPLD輸出的音頻信號,并對其電平比較。由SPORT端口分時接收CPLD送來的3路信號的質(zhì)量數(shù)據(jù),并在定時器設(shè)置的時間內(nèi)存儲最大值,即音頻信號的最大電平。
(2)由電平比較后的結(jié)果和各開關(guān)的狀態(tài)決定選擇相應(yīng)的通道作為輸出,同時記錄狀態(tài),并將其輸入CPLD.從CPLD讀取外部控制開關(guān)狀態(tài)。觸發(fā)定時器1,檢測存儲的最大電平是否達(dá)到外部開關(guān)標(biāo)準(zhǔn),如果沒有達(dá)到,當(dāng)前通道點亮報警燈,并通過UART向控制板發(fā)送報警信號。同時觸發(fā)定時器2,設(shè)置報警時間。如果在觸發(fā)定時器2之前,信號達(dá)到要求,則關(guān)閉報警燈,恢復(fù)報警前狀態(tài);如果信號電平低于所需電平,根據(jù)控制開關(guān),將輸出切換到另一路信號,同時點亮該路信號指示燈。
(3)通過UART與控制板通信,及時應(yīng)答控制板查詢,上報當(dāng)前狀態(tài)。為防止沖突,信號分配板只能應(yīng)答控制板發(fā)送的信號,而不能向控制板發(fā)送數(shù)據(jù)。
系統(tǒng)采用AT49BV163作為ADSP-BF531的加載器件。該Flash具有1 M×16的內(nèi)存空間,系統(tǒng)上電時為ADSP-BF531提供加載程序。
系統(tǒng)選取Alter公司的MAX7000S系列的EPM7128,實現(xiàn)音頻數(shù)據(jù)分時提取、信號、分選、讀取控制開關(guān)信息、控制指示燈。系統(tǒng)控制開關(guān)和指示燈的讀取、控制由ADSP-BF531的數(shù)據(jù)總線控制。由于MAX3095可同時將4路差分信號轉(zhuǎn)換成普通信號,因此,系統(tǒng)將3路輸入的音頻差分信號轉(zhuǎn)化成普通信號,再送入CPLD EPM7128.分配板卡由外部電源提供5 V直流電源,通過電源轉(zhuǎn)換器將5 V轉(zhuǎn)換成3.3 V和1.2 V電壓,分別為ADSP-BF531和Flash AT49BV163供電。
4.2控制板卡
控制板卡有1路音頻輸入,為應(yīng)急信號。將應(yīng)急信號輸出至各分配板卡。當(dāng)分配板卡的3路信號均達(dá)不到要求時,輸出應(yīng)急信號。控制板卡信號電路連接如圖5所示。
控制板卡除了監(jiān)視應(yīng)急音頻狀態(tài),實現(xiàn)與上位機(jī)和各分配板卡的通信。音頻信號處理部分與分配板卡類似。因此采用ADSP-BF531的UART與上位機(jī)通信。UART:Universal Asynchronous Receiver/Transmitter,通用異步接收/發(fā)送裝置,UART是一個并行輸入成為串行輸出的芯片,通常集成在主板上,多數(shù)是16550AFN芯片。因為計算機(jī)內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過UART整理才能進(jìn)行異步傳輸,其過程為:CPU先把準(zhǔn)備寫入串行設(shè)備的數(shù)據(jù)放到UART的寄存器(臨時內(nèi)存塊)中,再通過FIFO(First Input First Output,先入先出隊列)傳送到串行設(shè)備,若是沒有FIFO,信息將變得雜亂無章,不可能傳送到Modem. 而用數(shù)據(jù)總線在CPLD中進(jìn)行并口與串口轉(zhuǎn)換,實現(xiàn)與各分配板卡的通信。
CPLD實現(xiàn)控制板卡與分配板卡的通信。并口轉(zhuǎn)換串口時,每次通信ADSP-BF531向CPLD發(fā)送16位并行數(shù)據(jù),低8位為串口數(shù)據(jù),通過觸發(fā)器發(fā)送數(shù)據(jù);高8位的低4位決定發(fā)送到具體的分配板,由此判斷選通信號,并按一定波特率將串口數(shù)據(jù)發(fā)送至相應(yīng)通道。串口轉(zhuǎn)換并口時,首先模擬相應(yīng)波特率時鐘,以此時鐘對引腳采樣,當(dāng)檢測到串口起始位時,存儲采樣數(shù)據(jù),將數(shù)據(jù)及通道狀態(tài)送人與ADSP-BF531并口相連的引腳。并對ADSP-BF531的PF相連的引腳置位,觸發(fā)ADSP-BF531中斷,讀取并口數(shù)據(jù)。
4.3DSP程序
ADSP-BF531程序初始化后,主程序隨時接收由SPORT端口送人的解碼音頻信號,并存儲最大電平值,同時打開UART中斷和、TIMER0中斷。在TIMER0中斷中(本系統(tǒng)初始化設(shè)置為10 ms),處理存儲數(shù)據(jù)并提取狀態(tài),如不滿足要求則打開TIMER1中斷(本系統(tǒng)初始化設(shè)置為6 s),跳回主程序繼續(xù)檢測,如在相應(yīng)TIMER1中斷時還不滿足要求,則進(jìn)行切換。
各子程序模塊功能介紹:主程序模塊main()初始化系統(tǒng)與各種接口,檢測記錄電平,監(jiān)控狀態(tài),等待中斷發(fā)生。Timer0中斷子程序模塊EX_INTERRUPT_HANDLER(Timer0_ISR)用于處理存儲數(shù)據(jù)并提取狀態(tài)功能。Timer1中斷子程序模塊EX_INTERRUPT_HANDLER(Timer1_ISR)完成在設(shè)定的延時中,檢測電平判斷是否切換功能。
5 結(jié)束語
本系統(tǒng)采用先進(jìn)的音頻多速率轉(zhuǎn)換器CS8420以及高性能嵌入式處理器ADS-BF531,實現(xiàn)多路數(shù)字音頻信號的自動檢測和選取。本系統(tǒng)已在試用,結(jié)果表明,該系統(tǒng)分析準(zhǔn)確,轉(zhuǎn)換速度快,工作穩(wěn)定,適用于廣播發(fā)射臺。