基于DSP雙路音頻信號實(shí)時(shí)處理系統設計
在DMA應用中,可以賦予每個(gè)通道的bit流高低的優(yōu)先級。每個(gè)DMA通道的同步事件為MCBSP串口收發(fā)事件,同時(shí)每個(gè)通道某個(gè)事件完成后可向CPU發(fā)送一個(gè)中斷。用戶(hù)可以編寫(xiě)代碼修改寄存器配置,當DMA在進(jìn)行數據傳輸時(shí),只要用戶(hù)使能該通道,就可將配置寄存器復制到工作寄存器中。另外DMA支持自動(dòng)初始化模式,可以在塊傳輸過(guò)程中反復復制,連接示意圖如圖2所示。本文引用地址:http://dyxdggzs.com/article/150302.htm
2 軟件系統設計
方案中兩路麥克風(fēng)輸入數據,兩路耳機輸出數據。在此給出一路信號的接收處理發(fā)送過(guò)程,另一路信號設計思路相同。
在DARAM中開(kāi)辟緩沖和處理單元,數據傳輸均采用DMA獨立于CPU的方式。CPU只有在接收DMA觸發(fā)中斷后對數據進(jìn)行處理,并將處理后數據拷貝到DMA發(fā)送緩沖。為保證整個(gè)傳輸過(guò)程中無(wú)數據丟失,DMA接收端采用半幀中斷的方式接收數據。在數據載入過(guò)程中,可以選擇兩個(gè)區域進(jìn)行操作,將數據區分為receive1與receive2用于保存載入的數據,同時(shí)開(kāi)辟程序運行區process1和process2用于運行程序。當receive區域觸發(fā)半幀中斷,CPU讀取receive1中的數據并將其復制到process1中,調用處理函數proc1,在CPU進(jìn)行相關(guān)信號處理時(shí),DMA繼續將數據載入receive2,其滿(mǎn)時(shí)觸發(fā)整幀中斷,DMA自動(dòng)初始化將receive1覆蓋。CPU此時(shí)即可將receive2中的數據復制到process2中,調用處理函數proc 2,這樣receive區域交替更新,即可實(shí)現程序的不間斷運行。
每次中斷服務(wù)程序的運行時(shí)間必須小于半幀中斷的間隔時(shí)間。此方案可以保證系統的延時(shí)足夠小。在使用該方案時(shí),用戶(hù)必須根據自己的需要設計合適的采樣頻率和緩沖數據區的大小。為提高系統穩定性,實(shí)驗可以根據要求設計中斷的優(yōu)先級。系統軟件設計如圖3所示。
3 結束語(yǔ)
系統采用DSPVC5509作為核心處理器,充分利用了DSP片上資源,采用獨立于CPU的DMA實(shí)現了數據的實(shí)時(shí)采集處理以及發(fā)送,降低了總線(xiàn)占用率。設計的可更新緩沖區不僅符合DMA傳輸要求而且避免了數據丟失,實(shí)時(shí)更新減少了數據空間的浪費。另外該系統具有低功耗、穩定性高的特點(diǎn),可以根據用戶(hù)需求進(jìn)一步擴展。
評論