基于CPLD的DSP與聲卡的接口技術(shù)
從以上分析可以看出C2XX的DMA操作與PC機中的DMA操作的區(qū)別。在PC機中,CPU收到DMA請求信號后,迫使CPU在現(xiàn)行的總線周期結(jié)束后,使其地址、數(shù)據(jù)和部分控制引腳處于三態(tài),從而讓出總線的控制權(quán),并給出一個DMA響應(yīng)信號;在DMA操作完成后,DMA請求信號無效以后,CPU再恢復(fù)對系統(tǒng)總線的控制。而在C2XX中,DMA申請信號將引起C2XX中斷,在中斷程序中發(fā)出軟件指令使C2XX各信號引腳處于三態(tài),同時也給出了一個DMA響應(yīng)信號;在DMA操作完成后,C2XX檢測到DMA請求信號無效以后,雖然總線返回到正常狀態(tài),C2XX仍處在中斷程序中。從以上分析可知,盡管中斷需要保護斷點和現(xiàn)場,使得C2XX的DMA的處理速度與PC機相比要低得多,但畢竟C2XX也實現(xiàn)了DMA操作,從而可借助DMA控制器8237實現(xiàn)對聲卡的DMA操作訪問[4]。
整個系統(tǒng)結(jié)構(gòu)框圖如圖2所示。從圖中可以看出,CPLD主要完成數(shù)據(jù)總線驅(qū)動、地址總線驅(qū)動、地址鎖存器、譯碼和時鐘分頻等功能,其中譯碼電路是整個電路的核心。數(shù)據(jù)總線驅(qū)動電路和地址總線驅(qū)動將DSP的內(nèi)部數(shù)據(jù)與地址總線與外圍電路的數(shù)據(jù)和地址總線相互隔離;地址鎖存器生成8237在DMA服務(wù)周期通過數(shù)據(jù)線DB0~D7輸出的高8位地址A8~A15。時鐘分頻電路為外電路提供需要的各種頻率的同步時鐘。-譯碼電路為各單元電路以及外圍電路提供讀寫信號、鎖存信號、片選信號和使能信號。
圖2中1為DSP內(nèi)部系統(tǒng)總線,2為外部數(shù)據(jù)總線,3為DSP內(nèi)部地址總線,4為外部地址總線,5為數(shù)據(jù)總線收發(fā)電路使能信號,6為地址總線驅(qū)動電路使能信號,7為DSP輸出控制總線,8為CPLD譯碼后輸人DSP的信號線,9為DSP同步外圍電路的時鐘,10為DMA輸人時鐘,11為RAM,8237和聲卡的讀寫信號,12為鎖存信號,13為RAM的片選信號。
3 EPM7128S內(nèi)部譯碼電路的邏輯實現(xiàn)
圖3給出了EPM7128S內(nèi)部譯碼電路主要的輸入和輸出信號以及它們的邏輯關(guān)系。其中DSP的地址選通信號和讀寫信號經(jīng)譯碼分別得到IO讀寫信號和存儲器讀寫信號;8237的DMA申請信號HRQ經(jīng)反相后送到DSP的HOLD引腳以觸發(fā)DSP中斷,DSP在中斷程序里發(fā)IDLE指令,HOLDA引腳變?yōu)榈碗娮?,響?yīng)DMA申請;同時數(shù)據(jù)總線和地址總線驅(qū)動電路的使能信號關(guān)閉,數(shù)據(jù)總線和地址總線為高阻態(tài),從而8237可以接管總線,進行DMA操作。聲卡的中斷信號為高電子,須反相后再接DSP的中斷引腳。
評論