基于ADSP-BF531的數(shù)字音頻選擇系統(tǒng)
1 引言
本文引用地址:http://butianyuan.cn/article/104154.htm隨著數(shù)字電路廣泛應(yīng)用,廣播中的數(shù)字信號(hào)逐步取代傳統(tǒng)的模擬信號(hào)。本系統(tǒng)設(shè)計(jì)采用ADSP-BF531和EMP7128實(shí)現(xiàn)了廣播常用的AES3數(shù)字信號(hào)實(shí)時(shí)檢測(cè)和動(dòng)態(tài)分配功能。
2系統(tǒng)功能簡(jiǎn)介
音頻數(shù)字選擇系統(tǒng)是由母板、控制板和分配板組成。AES3信號(hào)分為10組,每組3路信號(hào)是由機(jī)箱直接輸入母板,母板再將每組信號(hào)分別送入10塊分配板。分配板對(duì)輸入信號(hào)進(jìn)行解析,再根據(jù)用戶的要求選擇符合要求的信號(hào)輸出,并顯示當(dāng)前各路信號(hào)的質(zhì)量。控制板與上位機(jī)相連,控制上位機(jī)各組信號(hào)輸出。
音頻數(shù)字選擇系統(tǒng)原理:接收3路AES3廣播信號(hào),A路為主路,無特殊情況時(shí)為輸出信號(hào)。若A路出現(xiàn)無信號(hào)或信號(hào)電平過低等情況,系統(tǒng)將自動(dòng)切換至B路。若B路有問題,切換至C路。若3路輸入信號(hào)均有問題,則輸出應(yīng)急信號(hào)。應(yīng)急信號(hào)由上位機(jī)提供。同時(shí),上位機(jī)將實(shí)時(shí)監(jiān)控各路信號(hào),并隨時(shí)切換。
本系統(tǒng)是由音頻信號(hào)分配模塊、控制模塊、上位機(jī)組成,如圖1所示。
本系統(tǒng)同時(shí)輸入10組30路信號(hào),分別由10塊分配板卡完成信號(hào)分選。1塊控制板卡控制10塊分配板卡,并檢測(cè)其狀態(tài),實(shí)現(xiàn)各分配板卡與上位機(jī)通信。
3 AES3信號(hào)分析
AES/EBU數(shù)字音頻接口標(biāo)準(zhǔn)采用一個(gè)雙相標(biāo)識(shí)(Biphase mark)的調(diào)頻通道編碼調(diào)制串行數(shù)據(jù),使之無直流(DC-Free)和自同步(Self-clocking)。調(diào)頻編碼中,每一個(gè)數(shù)據(jù)碼轉(zhuǎn)換為兩位通道碼,一位通道碼1引起傳輸信號(hào)的一次變化。未經(jīng)加工的串行數(shù)據(jù)不能直接通過電纜傳輸,必須調(diào)制(編碼)使之成為一種含有與碼值無關(guān)的時(shí)鐘信號(hào)波形。在接收器中,數(shù)據(jù)分離器電路能將傳輸信號(hào)鎖定在內(nèi)置時(shí)鐘并分離上音頻數(shù)字信號(hào)。AES3的幀格式如圖2所示。
4系統(tǒng)硬件設(shè)計(jì)
4.1分配板卡
分配板主要包括CS8420、MAX3095、ADSP-BF531以及CPLD等器件,分配板卡信號(hào)電路連接如圖3所示。
輸入信號(hào)進(jìn)入板卡后,首先進(jìn)入數(shù)字音頻采樣率轉(zhuǎn)換器CS8420。CS8420不但町以在不影響信號(hào)流的情況下提取AES3信號(hào),而且能夠改變信號(hào)采樣速率。CS8420需要由ADSP-BF531從SPI接口通過CPLD進(jìn)行初始化,其片內(nèi)有128個(gè)控制寄存器和數(shù)據(jù)寄存器,前14個(gè)為控制寄存器。CS8420必須在系統(tǒng)上電后初始化才能正常工作。CS8420內(nèi)部寄存器時(shí)序有很大不同,如圖4所示,讀取CS8420寄存器時(shí),1個(gè)SPI周期需接收16位數(shù)據(jù)即可讀取CS8420內(nèi)部寄存器數(shù)據(jù)。完全與ADSP-BF531的SPI接口相匹配。在寫入CS8420寄存器時(shí),1個(gè)SPI周期需接收24位數(shù)據(jù)才能寫入數(shù)據(jù)。而ADSP-BF531的SPI接口1個(gè)周期最多發(fā)送16位數(shù)據(jù),因此對(duì)于CS8420的寫操作,ADSP-BF531必須發(fā)送兩次數(shù)據(jù)。CPLD修正其片選信號(hào),才能完成寫操作。CS8420初始化后,開始對(duì)輸入信號(hào)解碼。可通過兩種方式輸出解碼信號(hào),即SPI接口和同步串口輸出方式。這里采用后者輸出解碼信號(hào),再輸入CPLD,并進(jìn)入ADSP-BF531。由于存在3路輸入音頻信號(hào),所以需要3片CS8420。這些CS8420分別將解碼信號(hào)送人CPLD,再由CPLD分時(shí)送入ADSP-BF531的SPORT端口。
系統(tǒng)的數(shù)據(jù)處理采用Blackfin531。Blackfin531處理器內(nèi)核包含2個(gè)16位乘法器,2個(gè)40位的累加器,2個(gè)40位的ALU,4個(gè)視頻ALU和1個(gè)40位移位器。DSP內(nèi)核時(shí)鐘(CCLK)和系統(tǒng)外設(shè)時(shí)鐘(SCLK)可由輸入時(shí)鐘(CLKIN)信號(hào)獲得。用戶編程的倍頻因子,可使片上PLL倍頻CLKIN信號(hào)。內(nèi)核時(shí)鐘最高可達(dá)300 MHz,系統(tǒng)外設(shè)時(shí)鐘最高可達(dá)133 MHz,為了達(dá)到實(shí)時(shí)性,系統(tǒng)把內(nèi)核時(shí)鐘倍頻至300 MHz。
系統(tǒng)中ADSP-BF531所使用資源包括2個(gè)定時(shí)器、UART、SPI端口、SPORT端口。系統(tǒng)初始化后,ADSP-BF531首先設(shè)置PLL,倍頻輸入時(shí)鐘.產(chǎn)生內(nèi)核時(shí)鐘和系統(tǒng)外設(shè)時(shí)鐘。然后初始化內(nèi)部總線、SPI端口、UART、SPORT端口、設(shè)置中斷。接著通過SPI端口初始化CS8420。然后控制CPLD選通主路,進(jìn)入信號(hào)檢測(cè)、分選狀態(tài)。ADSP-BF531擁有16個(gè)功能強(qiáng)大的PF引腳,既可作為I/O引腳,也可作為中斷。由于系統(tǒng)涉及到控制信號(hào),所以采用PF作為控制引腳。對(duì)CPLD中數(shù)據(jù)分時(shí)提取,控制信號(hào)分選。
ADSP-BF531需要完成以下功能:
(1)通過同步串口采集由CPLD輸出的音頻信號(hào),并對(duì)其電平比較。由SPORT端口分時(shí)接收CPLD送來的3路信號(hào)的質(zhì)量數(shù)據(jù),并在定時(shí)器設(shè)置的時(shí)間內(nèi)存儲(chǔ)最大值,即音頻信號(hào)的最大電平。
(2)由電平比較后的結(jié)果和各開關(guān)的狀態(tài)決定選擇相應(yīng)的通道作為輸出,同時(shí)記錄狀態(tài),并將其輸入CPLD。從CPLD讀取外部控制開關(guān)狀態(tài)。觸發(fā)定時(shí)器1,檢測(cè)存儲(chǔ)的最大電平是否達(dá)到外部開關(guān)標(biāo)準(zhǔn),如果沒有達(dá)到,當(dāng)前通道點(diǎn)亮報(bào)警燈,并通過UART向控制板發(fā)送報(bào)警信號(hào)。同時(shí)觸發(fā)定時(shí)器2,設(shè)置報(bào)警時(shí)間。如果在觸發(fā)定時(shí)器2之前,信號(hào)達(dá)到要求,則關(guān)閉報(bào)警燈,恢復(fù)報(bào)警前狀態(tài);如果信號(hào)電平低于所需電平,根據(jù)控制開關(guān),將輸出切換到另一路信號(hào),同時(shí)點(diǎn)亮該路信號(hào)指示燈。
(3)通過UART與控制板通信,及時(shí)應(yīng)答控制板查詢,上報(bào)當(dāng)前狀態(tài)。ADSP-BF531通過UART與控制板通信,便于用戶查詢和控制。為防止沖突,信號(hào)分配板只能應(yīng)答控制板發(fā)送的信號(hào),而不能向控制板發(fā)送數(shù)據(jù)。
系統(tǒng)采用AT49BV163作為ADSP-BF531的加載器件。該Flash具有1 M×16的內(nèi)存空間,系統(tǒng)上電時(shí)為ADSP-BF531提供加載程序。
系統(tǒng)選取Alter公司的MAX7000S系列的EPM7128,實(shí)現(xiàn)音頻數(shù)據(jù)分時(shí)提取、信號(hào)、分選、讀取控制開關(guān)信息、控制指示燈。系統(tǒng)控制開關(guān)和指示燈的讀取、控制由ADSP-BF531的數(shù)據(jù)總線控制。由于MAX3095可同時(shí)將4路差分信號(hào)轉(zhuǎn)換成普通信號(hào),因此,系統(tǒng)將3路輸入的音頻差分信號(hào)轉(zhuǎn)化成普通信號(hào),再送入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)急信號(hào)。將應(yīng)急信號(hào)輸出至各分配板卡。當(dāng)分配板卡的3路信號(hào)均達(dá)不到要求時(shí),輸出應(yīng)急信號(hào)??刂瓢蹇ㄐ盘?hào)電路連接如圖5所示。
控制板卡除了監(jiān)視應(yīng)急音頻狀態(tài),實(shí)現(xiàn)與上位機(jī)和各分配板卡的通信。音頻信號(hào)處理部分與分配板卡類似。由于ADSP-BF531中只有一個(gè)UART,且與上位機(jī)和分配板卡的通信都是即時(shí)的,無法復(fù)用。因此采用ADSP-BF531的UART與上位機(jī)通信。而用數(shù)據(jù)總線在CPLD中進(jìn)行并口與串口轉(zhuǎn)換,實(shí)現(xiàn)與各分配板卡的通信。
CPLD實(shí)現(xiàn)控制板卡與分配板卡的通信。并口轉(zhuǎn)換串口時(shí),每次通信ADSP-BF531向CPLD發(fā)送16位并行數(shù)據(jù),低8位為串口數(shù)據(jù),通過觸發(fā)器發(fā)送數(shù)據(jù);高8位的低4位決定發(fā)送到具體的分配板,由此判斷選通信號(hào),并按一定波特率將串口數(shù)據(jù)發(fā)送至相應(yīng)通道。串口轉(zhuǎn)換并口時(shí),首先模擬相應(yīng)波特率時(shí)鐘,以此時(shí)鐘對(duì)引腳采樣,當(dāng)檢測(cè)到串口起始位時(shí),存儲(chǔ)采樣數(shù)據(jù),將數(shù)據(jù)及通道狀態(tài)送人與ADSP-BF531并口相連的引腳。并對(duì)ADSP-BF531的PF相連的引腳置位,觸發(fā)ADSP-BF531中斷,讀取并口數(shù)據(jù)。
4.3DSP程序
ADSP-BF531程序初始化后,主程序隨時(shí)接收由SPORT端口送人的解碼音頻信號(hào),并存儲(chǔ)最大電平值,同時(shí)打開UART中斷和、TIMER0中斷。在TIMER0中斷中(本系統(tǒng)初始化設(shè)置為10 ms),處理存儲(chǔ)數(shù)據(jù)并提取狀態(tài),如不滿足要求則打開TIMER1中斷(本系統(tǒng)初始化設(shè)置為6 s),跳回主程序繼續(xù)檢測(cè),如在相應(yīng)TIMER1中斷時(shí)還不滿足要求,則進(jìn)行切換。UART中斷完成控制板與上位機(jī)的數(shù)據(jù)交換。
各子程序模塊功能介紹:主程序模塊main()初始化系統(tǒng)與各種接口,檢測(cè)記錄電平,監(jiān)控狀態(tài),等待中斷發(fā)生。Timer0中斷子程序模塊EX_INTERRUPT_HANDLER(Timer0_ISR)用于處理存儲(chǔ)數(shù)據(jù)并提取狀態(tài)功能。Timer1中斷子程序模塊EX_INTERRUPT_HANDLER(Timer1_ISR)完成在設(shè)定的延時(shí)中,檢測(cè)電平判斷是否切換功能。異步串口中斷子程序模塊EX_INTERRUPT_HANDLER(Uart_ISR)實(shí)現(xiàn)接收上位機(jī)及控制板卡信號(hào)功能。
5 結(jié)束語
本系統(tǒng)采用先進(jìn)的音頻多速率轉(zhuǎn)換器CS8420以及高性能嵌入式處理器ADS-BF531,實(shí)現(xiàn)多路數(shù)字音頻信號(hào)的自動(dòng)檢測(cè)和選取。本系統(tǒng)已在試用,結(jié)果表明,該系統(tǒng)分析準(zhǔn)確,轉(zhuǎn)換速度快,工作穩(wěn)定,適用于廣播發(fā)射臺(tái)。
評(píng)論