Blackfin ADSP-BF533在音頻處理系統(tǒng)中的應(yīng)用
2.4 CPLD部分
控制模塊與選擇分配板卡的數(shù)據(jù)通信可在CPLD中實(shí)現(xiàn)。在并口轉(zhuǎn)串口時(shí),BF533每次通信都向CPLD發(fā)送16位并行數(shù)據(jù),其中低8位為串口數(shù)據(jù),可通過(guò)觸發(fā)器將數(shù)據(jù)發(fā)出。高8位中的低4位決定發(fā)送到第幾號(hào)分配板,并由此判斷選通信號(hào),同時(shí)按一定波特率將串口數(shù)據(jù)發(fā)送至相應(yīng)通道。在串口轉(zhuǎn)并口時(shí),首先模擬出相應(yīng)的波特率時(shí)鐘,并以此時(shí)鐘對(duì)管腳進(jìn)行采樣,當(dāng)檢測(cè)到串口起始位后,即存儲(chǔ)采樣數(shù)據(jù),同時(shí)將數(shù)據(jù)及通道狀態(tài)送入與BF533并口相連的引腳。之后,再將與BF533的PF相連的引腳置位,以引起B(yǎng)F533中斷,讀取并口數(shù)據(jù)。這樣,就可通過(guò)DSP的并行數(shù)據(jù)總線來(lái)控制10路異步串口的數(shù)據(jù)收發(fā)。EPM7160采用24.576NHz的晶振輸入,并根據(jù)外部的串口的波特率在內(nèi)部通過(guò)編程對(duì)此輸入時(shí)鐘進(jìn)行相應(yīng)的分頻。其CPLD接口電路連接如圖5所示。
3 系統(tǒng)軟件設(shè)計(jì)
Blackfin系列DSP在軟件方面可支持C語(yǔ)言和匯編語(yǔ)言,同時(shí)支持兩者的混合編程。C語(yǔ)言程序結(jié)構(gòu)好、可讀性強(qiáng)、易移植,但處理速度慢。而匯編語(yǔ)言處理速度快,但是可讀性差,不容易調(diào)試。C語(yǔ)言和匯編語(yǔ)言混合編程可結(jié)合各自優(yōu)勢(shì),能構(gòu)造出結(jié)構(gòu)好且執(zhí)行速度快的程序。但在編程過(guò)程中應(yīng)注意以下事項(xiàng):第一,無(wú)論是用C語(yǔ)言還是匯編語(yǔ)言,系統(tǒng)中只有一組相同的寄存器可供使用,因此在使用寄存器之前,子函數(shù)必須先保存,并在返回之前恢復(fù)。第二,要嚴(yán)格按照寄存器的類(lèi)型使用,不同類(lèi)型的寄存器不可混用。第三,為了提高代碼的運(yùn)行速度,要善于使用并行指令。
本系統(tǒng)在對(duì)BF533程序初始化后,主程序?qū)㈦S時(shí)接受由SPORT口送人的解析后的音頻信號(hào),并存儲(chǔ)對(duì)應(yīng)的最大電平值,同時(shí)打開(kāi)UART中斷和TIMER0中斷。在TIMER0中斷中(本系統(tǒng)初始化設(shè)置為10 ms),可對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行處理并提取狀態(tài)。如不滿足要求,則打開(kā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)可完成對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行處理并提取狀態(tài)功能。Timer1中斷子程序模塊EX_INTERRUPT_HANDLER(Timerl_ISR)則可在設(shè)定的延時(shí)中,完成電平檢測(cè)以判斷是否切換。異步串口中斷子程序模塊EX_INTERRUPT_HANDLER(Uart_ISR)用于完成接收上位機(jī)及板卡信號(hào)控制功能。
4 結(jié)束語(yǔ)
采用ADI公司的BF533可實(shí)現(xiàn)新品信號(hào)的處理,并可擴(kuò)展SDRAM作為大容量存儲(chǔ)器。該系統(tǒng)成本低,效率高,實(shí)時(shí)性好,性能十分優(yōu)越。
評(píng)論