基于ADSP-BF531的數(shù)字音頻選擇系統(tǒng)
1 引言
隨著數(shù)字電路廣泛應(yīng)用,廣播中的數(shù)字信號逐步取代傳統(tǒng)的模擬信號。本系統(tǒng)設(shè)計采用ADSP-BF531和EMP7128實現(xiàn)了廣播常用的AES3數(shù)字信號實時檢測和動態(tài)分配功能。
2系統(tǒng)功能簡介
音頻數(shù)字選擇系統(tǒng)是由母板、控制板和分配板組成。AES3信號分為10組,每組3路信號是由機箱直接輸入母板,母板再將每組信號分別送入10塊分配板。分配板對輸入信號進行解析,再根據(jù)用戶的要求選擇符合要求的信號輸出,并顯示當(dāng)前各路信號的質(zhì)量??刂瓢迮c上位機相連,控制上位機各組信號輸出。
音頻數(shù)字選擇系統(tǒng)原理:接收3路AES3廣播信號,A路為主路,無特殊情況時為輸出信號。若A路出現(xiàn)無信號或信號電平過低等情況,系統(tǒng)將自動切換至B路。若B路有問題,切換至C路。若3路輸入信號均有問題,則輸出應(yīng)急信號。應(yīng)急信號由上位機提供。同時,上位機將實時監(jiān)控各路信號,并隨時切換。
本系統(tǒng)是由音頻信號分配模塊、控制模塊、上位機組成,如圖1所示。
本系統(tǒng)同時輸入10組30路信號,分別由10塊分配板卡完成信號分選。1塊控制板卡控制10塊分配板卡,并檢測其狀態(tài),實現(xiàn)各分配板卡與上位機通信。
3 AES3信號分析
AES/EBU數(shù)字音頻接口標準采用一個雙相標識(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)的時鐘信號波形。在接收器中,數(shù)據(jù)分離器電路能將傳輸信號鎖定在內(nèi)置時鐘并分離上音頻數(shù)字信號。AES3的幀格式如圖2所示。
4系統(tǒng)硬件設(shè)計
4.1分配板卡
分配板主要包括CS8420、MAX3095、ADSP-BF531以及CPLD等器件,分配板卡信號電路連接如圖3所示。
輸入信號進入板卡后,首先進入數(shù)字音頻采樣率轉(zhuǎn)換器CS8420。CS8420不但町以在不影響信號流的情況下提取AES3信號,而且能夠改變信號采樣速率。CS8420需要由ADSP-BF531從SPI接口通過CPLD進行初始化,其片內(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接口和同步串口輸出方式。這里采用后者輸出解碼信號,再輸入CPLD,并進入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)信號獲得。用戶編程的倍頻因子,可使片上PLL倍頻CLKIN信號。內(nèi)核時鐘最高可達300 MHz,系統(tǒng)外設(shè)時鐘最高可達133 MHz,為了達到實時性,系統(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è)置中斷。接著通過SPI端口初始化CS8420。然后控制CPLD選通主路,進入信號檢測、分選狀態(tài)。ADSP-BF531擁有16個功能強大的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,檢測存儲的最大電平是否達到外部開關(guān)標準,如果沒有達到,當(dāng)前通道點亮報警燈,并通過UART向控制板發(fā)送報警信號。同時觸發(fā)定時器2,設(shè)置報警時間。如果在觸發(fā)定時器2之前,信號達到要求,則關(guān)閉報警燈,恢復(fù)報警前狀態(tài);如果信號電平低于所需電平,根據(jù)控制開關(guān),將輸出切換到另一路信號,同時點亮該路信號指示燈。
(3)通過UART與控制板通信,及時應(yīng)答控制板查詢,上報當(dāng)前狀態(tài)。ADSP-BF531通過UART與控制板通信,便于用戶查詢和控制。為防止沖突,信號分配板只能應(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路信號均達不到要求時,輸出應(yīng)急信號??刂瓢蹇ㄐ盘栯娐愤B接如圖5所示。
控制板卡除了監(jiān)視應(yīng)急音頻狀態(tài),實現(xiàn)與上位機和各分配板卡的通信。音頻信號處理部分與分配板卡類似。由于ADSP-BF531中只有一個UART,且與上位機和分配板卡的通信都是即時的,無法復(fù)用。因此采用ADSP-BF531的UART與上位機通信。而用數(shù)據(jù)總線在CPLD中進行并口與串口轉(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中斷時還不滿足要求,則進行切換。UART中斷完成控制板與上位機的數(shù)據(jù)交換。
各子程序模塊功能介紹:主程序模塊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è)定的延時中,檢測電平判斷是否切換功能。異步串口中斷子程序模塊EX_INTERRUPT_HANDLER(Uart_ISR)實現(xiàn)接收上位機及控制板卡信號功能。
5 結(jié)束語
本系統(tǒng)采用先進的音頻多速率轉(zhuǎn)換器CS8420以及高性能嵌入式處理器ADS-BF531,實現(xiàn)多路數(shù)字音頻信號的自動檢測和選取。本系統(tǒng)已在試用,結(jié)果表明,該系統(tǒng)分析準確,轉(zhuǎn)換速度快,工作穩(wěn)定,適用于廣播發(fā)射臺。