基于CPLD的DSP與聲卡接口技術(shù)
整個(gè)系統(tǒng)結(jié)構(gòu)框圖如圖2所示。從圖中可以看出,CPLD主要完成數(shù)據(jù)總線驅(qū)動(dòng)、地址總線驅(qū)動(dòng)、地址鎖存器、譯碼和時(shí)鐘分頻等功能,其中譯碼電路是整個(gè)電路的核心。數(shù)據(jù)總線驅(qū)動(dòng)電路和地址總線驅(qū)動(dòng)將DSP的內(nèi)部數(shù)據(jù)與地址總線與外圍電路的數(shù)據(jù)和地址總線相互隔離;地址鎖存器生成8237在DMA服務(wù)周期通過數(shù)據(jù)線DB0~D7輸出的高8位地址A8~A15。時(shí)鐘分頻電路為外電路提供需要的各種頻率的同步時(shí)鐘。-譯碼電路為各單元電路以及外圍電路提供讀寫信號(hào)、鎖存信號(hào)、片選信號(hào)和使能信號(hào)。
圖2中1為DSP內(nèi)部系統(tǒng)總線,2為外部數(shù)據(jù)總線,3為DSP內(nèi)部地址總線,4為外部地址總線,5為數(shù)據(jù)總線收發(fā)電路使能信號(hào),6為地址總線驅(qū)動(dòng)電路使能信號(hào),7為DSP輸出控制總線,8為CPLD譯碼后輸人DSP的信號(hào)線,9為DSP同步外圍電路的時(shí)鐘,10為DMA輸人時(shí)鐘,11為RAM,8237和聲卡的讀寫信號(hào),12為鎖存信號(hào),13為RAM的片選信號(hào)。
3EPM7128S內(nèi)部譯碼電路的邏輯實(shí)現(xiàn)
圖3給出了EPM7128S內(nèi)部譯碼電路主要的輸入和輸出信號(hào)以及它們的邏輯關(guān)系。其中DSP的地址選通信號(hào)和讀寫信號(hào)經(jīng)譯碼分別得到IO讀寫信號(hào)和存儲(chǔ)器讀寫信號(hào);8237的DMA申請(qǐng)信號(hào)HRQ經(jīng)反相后送到DSP的HOLD引腳以觸發(fā)DSP中斷,DSP在中斷程序里發(fā)IDLE指令,HOLDA引腳變?yōu)榈碗娮樱憫?yīng)DMA申請(qǐng);同時(shí)數(shù)據(jù)總線和地址總線驅(qū)動(dòng)電路的使能信號(hào)關(guān)閉,數(shù)據(jù)總線和地址總線為高阻態(tài),從而8237可以接管總線,進(jìn)行DMA操作。聲卡的中斷信號(hào)為高電子,須反相后再接DSP的中斷引腳。
4系統(tǒng)工作原理及時(shí)序
系統(tǒng)工作的時(shí)序如圖4所示?,F(xiàn)結(jié)合圖2、圖3和圖4將系統(tǒng)工作原理及操作順序說明如下:
(1)聲卡向8237發(fā)出DMA請(qǐng)求信號(hào)DREQ;
(2)8237通過CPLD向DSP發(fā)出HRQ信號(hào);
(3)DSP的HOLD引腳檢測到下降沿后,進(jìn)入INTl中斷,保護(hù)完斷點(diǎn)和現(xiàn)場后,發(fā)IDLE指令,DSP的HOLDA引腳電平變低,u向應(yīng)外部DMA請(qǐng)求;
(4)8237接管總線后,先向聲卡DMA請(qǐng)求的響應(yīng)信號(hào)DACK,表示允許聲卡進(jìn)行DMA傳送,然后按事先設(shè)置的初始地址和需傳送的字節(jié)數(shù),依次發(fā)送地址和讀寫命令,使得在RAM和聲卡之間直接交換數(shù)據(jù),直至全部數(shù)據(jù)交換完畢;
(5)DMA傳送結(jié)束后,自動(dòng)撤消向CPU的總線請(qǐng)求信號(hào)HRQ,此時(shí)DSP檢測到麗iS引腳的上升沿,DSP返回到IDLE指令的下一條指令,DSP獲得總線的控制權(quán),繼續(xù)在INTl中執(zhí)行程序。
從上面DSP系統(tǒng)的工作原理可以看出,由于DMA是在中斷程序中完成的,故DSP的DMA執(zhí)行頻率受限于DSP每秒可執(zhí)行的中斷次數(shù)。
評(píng)論