ad50和dsp的硬件連接有多種方法,但使用最多的是dsp的緩沖串口和ad50連接方法。這種連接方法可使一個緩沖串口與多個ad50芯片連接(一個緩沖串口最多與3個ad50芯片連接)?! sp為主設(shè)備、ad50為從設(shè)備的連接方法如圖1所示。圖中ad50的時鐘信號由c5409的定時器0的輸出提供,時鐘頻率可以通過修改定時器0的設(shè)置而改變。ad50的fc引腳連接到c5409的xf(通用i/o引腳),用于控制第二次串行通信。ad50的din(數(shù)據(jù)輸人引腳)和d0ut(數(shù)據(jù)輸出引腳)分別接c5409緩沖串口0的dx0和dr0引腳。ad50的sclk(移位時鐘輸出)連接c5409的clkr0(緩沖串口0的接收時鐘引腳),幀同步信號fs連接c5409緩沖串口0的frx0?! D1 ad50和一個dsp的連接 dsp帶兩個ad50,其中一個ad50為主設(shè)備,一個ad50為從設(shè)備的連接方法如圖2所示?! D2 兩個ad50和dsp的連接 dsp一般不能同時連接兩個都是從設(shè)備的ad50芯片,但如果使用了pld(邏輯器件)就可以實現(xiàn)連接兩個從設(shè)備的ad50,具體的連接方法如圖3所示?! D3 兩個從ad50和dsp的連接 語音數(shù)據(jù)傳輸?shù)絛sp的mcbsp。mcbsp和cpu的通信有3種方式。 ?。?)每收到或發(fā)送一個單元,置標(biāo)志位,cpu輪詢此標(biāo)志位?! 。?)每收到或發(fā)送一個單元,給cpu發(fā)送中斷?! 。?)通過dma收到或發(fā)送完一組單元,再給cpu中斷。 采用dma的方式,即串口每發(fā)送或接受到一個單元,都會自動觸發(fā)dma將其搬送到一個內(nèi)部的緩沖區(qū)(buffer),等buffer滿了再通過中斷方式告訴cpu處理。這時dma最好采用自動緩沖(abu,auto buffering)模式,在這種模式下,dma會在兩個buffer(其實是一個大buffer的前一半和后一半)之間自動切換,每個buffer滿了(接收)或空了(發(fā)送)都會給cpu發(fā)出中斷,在cpu處理這個buffer的時候,dma會自動去操作另一個buffer。采用這種方式可以有效防止buffer中的數(shù)據(jù)在串口速率較高時被新數(shù)據(jù)沖掉的問題?! ≡赿ma的中斷服務(wù)程序中為了可靠可以把這個buffer的數(shù)據(jù)再拷貝到另一個待處理的空間,即兩級buffer,然后置標(biāo)志位,cpu在主程序中查詢標(biāo)志位然后作出相應(yīng)的處理。dma操作的buffer可以通過寄存器配置,buffer的大小和起始位置應(yīng)設(shè)置正確。在指定buffer的起始位置時應(yīng)該注意,起始位置應(yīng)該為大于buffer大小的下一個2的整數(shù)冪的倍數(shù)。例如,在8kb、16bit采樣的情況下,以20ms數(shù)據(jù)為buffer大小,那么一次處理的數(shù)據(jù)是8000×32×0,02=5120bit-320word。所以,dma的buffer應(yīng)為640word(兩個320word buffer)大小,而buffer的起始地址應(yīng)該為1024=210>640的整數(shù)倍,如0x7000,0x7400…… 歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)()