Blackfin ADSP-BF533在音頻處理系統中的應用
0 引言
隨著數字電子技術的普及,廣播領域的數字信號也逐步取代了傳統的模擬信號。近年來,隨著DSP技術的普及和高性能DSP芯片的出現,DSP已越來越多地被廣大的工程師所接受,并被越來越廣泛地應用于語音處理、圖像處理、模式識別及工業(yè)控制等各個領域,并已日益顯示出其巨大的優(yōu)越性。DSP可利用專門或通用的數字信號處理技術,以數字計算的方法對信號進行處理,具有處理速度快、靈活、精確、抗干擾能力強、體積小及可靠性高等優(yōu)點,可以滿足對信號快速、精確、實時處理及控制的要求。
1 ADSP-BF533芯片簡介
ADSP-BF533處理器是Blackfin系列中的高性能產品,專門針對多媒體(特別是視頻處理)和通信方面的各種應用。該處理器內核包含2個16位乘法器(MAC),2個40位的累加器,2個40位的ALU,4個視頻ALU和1個40位移位器。BF533內核的工作時鐘高達600MHz,運算單元可處理來自寄存器組的8位、16位或者32位數據。
Blackfin處理器這種體系結構將藝術級的dual-MAC信號處理引擎、簡潔的RISC式微處理器指令集的優(yōu)點以及單指令多數據(SIMD)多媒體能力結合起來,從而形成了一套獨特的指令集結構。
該處理器包含豐富的外設,可通過不同的高速寬帶總線與內核相連,從而使系統不但配置靈活而且具有極好的性能。通用外設如UART、帶有PWM (脈沖寬度調制)和脈沖測量能力的定時器、通用的I/O標志引腳、以及一個實時時鐘和一個“看門狗”定時器。
該處理器有多個獨立的DMA控制器,能夠以最小的處理器內核開銷完成自動的數據傳輸。DMA傳輸可以發(fā)生在ADSP-BF533處理器的內部存儲器和任何有DMA能力的外設之間。此外,DMA傳輸也可以在任何有DMA能力的外設和已連接到外部存儲器接口的外部設備之間完成(包括SDRAM控制器、異步存儲器控制器)。具有DMA傳輸能力的外設包括SPORTS、SPI端口、UART和PPI端口。每個獨立的有DMA能力的外設至少有一個專用DMA通道。
BF533處理器有16個雙向通用可編程I/O引腳(PF15-0)。每一個可編程引腳都能通過編程標志控制寄存器、標志狀態(tài)寄存器和標志中斷寄存器被獨立控制。每個獨立的PFx引腳都可為處理器提供中斷。與用于設置和清除標志的2個標志控制寄存器類似,一個標志屏蔽寄存器可通過設置相應的位來使能中斷,另一個標志屏蔽寄存器則通過清除相應的位來禁止中斷功能。當PFx引腳定義為輸入時,能夠設置為產生硬件中斷;定義為輸出時,能夠設置為軟件中斷觸發(fā)。標志中斷敏感寄存器可用于規(guī)定每個PFx引腳是電平還是邊沿敏感,如果是邊沿敏感,還規(guī)定是僅上升沿敏感,還是信號的上升沿和下降沿都敏感。
該處理器提供有1個全雙工的通用異步接收/發(fā)送(UART)端口,它與PC標準的UART完全兼容。UART端口可為其它外設或主機提供一個簡化的UART接口,可支持全雙工、有DMA能力的異步串行數據傳輸。UART端口支持5~8個數據位、1或2個停止位以及無校驗、奇校驗、偶校驗位。UART端口的波特率、串行數據格式、錯誤代碼的產生和狀態(tài)及中斷均可編程。
該處理器包含有一個32位定時器,可用于執(zhí)行軟件的“看門狗”功能。軟件“看門狗”可以提高系統的可靠性,如果在軟件復位前定時器溢出,軟件“看門狗”則可通過產生一個硬件復位、不可屏蔽中斷(NMI)或通用中斷來強迫處理器進人一個已知狀態(tài)。[!--empirenews.page--]
2 系統硬件設計
該系統設計是以ADSP-BF533為核心的音頻信號處理系統,其主要硬件單元有ADSP-BF533、flash、SDRAM、總線接口、以及電源、時鐘、JTAG調制器。此外還有CPLD芯片輔助處理。該系統的電源模塊選用TPS70302,外圍設備有不同的RC值,以構成不同的電壓,這里需要產生3.3V和1.2V兩種電壓,此外,還有JTAG調試端口。整個處理器系統的硬件框圖如圖1所示。
2.1 SDRAM存儲器
SDRAM存儲器選用HY57V281620,其存儲容量為4×2 Mx16位(16MB),工作電壓為3.3 V,具有16位數據寬度,可以滿足存儲要求。HY57V281620的時鐘由DSP的系統時鐘提供。數據總線D[15:0]連接到DSP的16位數據總線。其接口電路連接如圖2所示。
2.2 外部FLASH
由于BF-533內部的存儲容量有限,因此必須外接FLASH以用于存儲程序,FLASH芯片可選用AT49BV322AT,每次上電復位后,BF-533首先將FLASH中的程序引導到內核中,其電路連接如圖3所示。
2.3 以太網芯片LAN91C111
由于LAN91C111是按通用標準時序設計的高速芯片,又是專為嵌入式系統設計的,因此,其外圍電路相對比較簡單。圖4所示是LAN91C111與BF533的接口電路,圖中,BF533的地址總線ADDR0~ADDR14與LAN91C111和A1~A15相連。A0沒有被LAN91C111使用而懸空;數據總線則與D0~D15相連,用于16位數據傳輸。LAN91C111端的D16~D32懸空;LAN91C111的片選信號AEN由DSP提供。
[!--empirenews.page--]
2.4 CPLD部分
控制模塊與選擇分配板卡的數據通信可在CPLD中實現。在并口轉串口時,BF533每次通信都向CPLD發(fā)送16位并行數據,其中低8位為串口數據,可通過觸發(fā)器將數據發(fā)出。高8位中的低4位決定發(fā)送到第幾號分配板,并由此判斷選通信號,同時按一定波特率將串口數據發(fā)送至相應通道。在串口轉并口時,首先模擬出相應的波特率時鐘,并以此時鐘對管腳進行采樣,當檢測到串口起始位后,即存儲采樣數據,同時將數據及通道狀態(tài)送入與BF533并口相連的引腳。之后,再將與BF533的PF相連的引腳置位,以引起B(yǎng)F533中斷,讀取并口數據。這樣,就可通過DSP的并行數據總線來控制10路異步串口的數據收發(fā)。EPM7160采用24.576NHz的晶振輸入,并根據外部的串口的波特率在內部通過編程對此輸入時鐘進行相應的分頻。其CPLD接口電路連接如圖5所示。
3 系統軟件設計
Blackfin系列DSP在軟件方面可支持C語言和匯編語言,同時支持兩者的混合編程。C語言程序結構好、可讀性強、易移植,但處理速度慢。而匯編語言處理速度快,但是可讀性差,不容易調試。C語言和匯編語言混合編程可結合各自優(yōu)勢,能構造出結構好且執(zhí)行速度快的程序。但在編程過程中應注意以下事項:第一,無論是用C語言還是匯編語言,系統中只有一組相同的寄存器可供使用,因此在使用寄存器之前,子函數必須先保存,并在返回之前恢復。第二,要嚴格按照寄存器的類型使用,不同類型的寄存器不可混用。第三,為了提高代碼的運行速度,要善于使用并行指令。
本系統在對BF533程序初始化后,主程序將隨時接受由SPORT口送人的解析后的音頻信號,并存儲對應的最大電平值,同時打開UART中斷和TIMER0中斷。在TIMER0中斷中(本系統初始化設置為10 ms),可對存儲的數據進行處理并提取狀態(tài)。如不滿足要求,則打開TIMER1中斷(本系統初始化設置為6 s),并跳回主程序繼續(xù)檢測,如在相應TIMER1中斷時還不符合要求,則進行切換。UART中斷可完成與控制板和上位機的數據交換。
各程序模塊中,主程序模塊main()主要完成系統與各種接口的初始化工作,檢測記錄電平、監(jiān)控狀態(tài)、等待中斷發(fā)生等,其中Timer0中斷子程序模塊EX_INTERRUPT_HANDLER(Timer0_ISR)可完成對存儲的數據進行處理并提取狀態(tài)功能。Timer1中斷子程序模塊EX_INTERRUPT_HANDLER(Timerl_ISR)則可在設定的延時中,完成電平檢測以判斷是否切換。異步串口中斷子程序模塊EX_INTERRUPT_HANDLER(Uart_ISR)用于完成接收上位機及板卡信號控制功能。
4 結束語
采用ADI公司的BF533可實現新品信號的處理,并可擴展SDRAM作為大容量存儲器。該系統成本低,效率高,實時性好,性能十分優(yōu)越。