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