久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于 DSP-dMAX 的嵌入式 FIFO 數據傳輸系統設計

基于 DSP-dMAX 的嵌入式 FIFO 數據傳輸系統設計

作者: 時間:2011-05-03 來源:網絡 收藏


基地址和空間大小用于規劃出一段內存空間,該內存空間用于設備,并被設備保護起來,使得其他設備和程序不能訪問該空間。為了便于操作方便,空間大小一般為2的整數次冪,但不做要求。具體到C6727B型號的DSP,空間大小最大為1M個元素,元素大小可以是8位、16位或者32位,不能為其他類型的?;刂房梢詾閮却婵臻g的任何一個地址,同樣為了操作方便,一般為空間大小的邊界點。例如,8個元素的,其基地址一般為XXXXX000b,也就是地址的低3位為0,基地址就肯定為8的整數次。同樣,64個元素的FIFO,其低6位為0。基地址和空間大小的特殊要求避免訪問時的地址跨越多頁問題,可以提高FIFO的訪問速度。


空標志和滿標志用于表示FIFO的存儲狀態。讀指針和寫指針用于表示讀寫的當前地址。錯誤標志表示對FIFO的錯誤操作。當FIFO處于滿標志情況下仍然寫FIFO,或者FIFO處于空標志情況下仍然讀FIFO,FIFO都將終止當前操作,并將錯誤標志置位。


FIFO的寫操作只有一種工作方式,即每次寫一個新的,寫指針加1,直到寫滿。而FIFO讀操作有兩種工作方式,分別為標準操作和多階延遲(Multi-tap Delay Transfer)操作。標準操作和寫操作一樣。多階延遲操作一般用于濾波處理,當需要對輸入信號進行濾波處理時候,每次希望從FIFO讀取一段窗口的數據,進行濾波處理,數據窗口仍然只移動一個數據。在標準操作情況下,如果讀取一段窗口的數據,FIFO則將該段窗口的數據全部彈出。多階延遲操作則只彈出一個數據。該操作方法對語音或者AD采樣數據的平滑、FIR等濾波非常適用。需要注意的是,多階延遲操作的數據窗大小需要設置,如果FIFO存儲的數據個數小于數據窗,FIFO則終止當前操作,并給出錯誤標志。

系統硬件結構
C6727B和其他DSP有一個較大的區別,就是C6727B不再提供專門的外部中斷引腳,而是采用GPIO引腳和dMAX配合使用,通過寄存器的設置將GPIO引腳配置成外部中斷引腳。本文為了實現FIFO的實時操作,一旦外設向FIFO寫入數據,即發出中斷信號到DSP的CPU,通知CPU讀取數據。為此,需要使用1個外部中斷引腳,將C6727B的音頻串口的AXR[8]配置成通用的GPIO引腳,并在dMAX中設置成中斷引腳。此時需要將音頻串口的CONFIGMACSP0寄存器設置為0x0001,如圖3所示。此時音頻串口不能再作為普通的音頻口使用,而是配置成IO接口。

圖3 中斷功能設置框圖


從圖3中可以看出,配置好音頻串口后,一旦AXR[8]引腳有上升沿到,則McASP0激活dMAX的事件26,向CPU發送內部中斷13。McASP的與中斷相關的寄存器配置是實現以上方案的重點。使用PFUNC寄存器將其配置成通用IO引腳;PDIR寄存器控制IO引腳的方向;如果是輸出引腳則由POUT引腳輸出高低電平,如果是輸入引腳,則由PDIN寄存器讀出該引腳的狀態;此外,可以使用PDCLR和PSET寄存器清除或者設置輸出引腳的狀態。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


評論


相關推薦

技術專區

關閉