《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于CPLD的DSP與聲卡接口技術(shù)
基于CPLD的DSP與聲卡接口技術(shù)
摘要: 使用復(fù)雜可編程邏輯器件(CPLD)可提高系統(tǒng)集成度,、降低噪聲,、增強(qiáng)系統(tǒng)可靠性并降低成本,,同時(shí)它不僅具有電擦除特性,,而且出現(xiàn)了邊緣掃描及在線編程等高級(jí)特性,,因而可用于狀態(tài)機(jī),、同步,、譯碼,、解碼,、計(jì)數(shù)、總線接口等很多方面,,在信號(hào)處理領(lǐng)域的應(yīng)用也非?;钴S,。
關(guān)鍵詞: CPLD DSP 聲卡 接口 MAX7000 EPM7128S
Abstract:
Key words :

     1引言

  使用復(fù)雜可編程邏輯器件(CPLD)可提高系統(tǒng)集成度、降低噪聲,、增強(qiáng)系統(tǒng)可靠性并降低成本,,同時(shí)它不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線編程等高級(jí)特性,,因而可用于狀態(tài)機(jī),、同步、譯碼,、解碼,、計(jì)數(shù)、總線接口等很多方面,,在信號(hào)處理領(lǐng)域的應(yīng)用也非?;钴S。MAX7000系列是ALTERA公司采用先進(jìn)的0.8μmCMOSEEPROM技術(shù)制造的高性能,、高密度的CPLD[1],。MAX7000的結(jié)構(gòu)可完全模仿TFL,并可將SSI,,MSI,,LSI和傳統(tǒng)PLD的邏輯函數(shù)高密度地集成。EPM7128S是MAX7000系列的高密度器件,,它有128個(gè)邏輯宏單元和最大100個(gè)輸入,,具有在系統(tǒng)編程(ISP)特性,非常適合輸入,、輸出端要求較多的邏輯復(fù)雜的控制密集型系統(tǒng),。將EPM7128S用到DSP與ISA總線聲卡的接口電路中,不僅使整個(gè)系統(tǒng)體積顯著減小,,且硬件故障率明顯降低,,調(diào)試工作也變得很容易。DSP與ISA總線聲卡的接口原理聲卡的工作原理圖1示出了聲卡的基本工作原理:主機(jī)通過(guò)總線將數(shù)字化的聲音信號(hào)以PCM方式送到數(shù)模轉(zhuǎn)換器(D/A),,將數(shù)字信號(hào)變成模擬的音頻信號(hào);同時(shí)又可以通過(guò)模數(shù)轉(zhuǎn)換器(A/D)將傳聲器或CD的輸入信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),,送到計(jì)算機(jī)進(jìn)行各種處理。實(shí)際具體聲卡的硬件結(jié)構(gòu)請(qǐng)參閱有關(guān)資料和手冊(cè),。

  

 

  2.2WSS兼容聲卡和ISA總線硬件接口

  WSS是Microsoft公司為統(tǒng)一聲卡的標(biāo)準(zhǔn),、提供方便的應(yīng)用而提出的Windows環(huán)境下多媒體擴(kuò)展定義的音頻子系統(tǒng)標(biāo)準(zhǔn),它包括硬件平臺(tái)和軟件接口,。該類聲卡的硬件結(jié)構(gòu)主要包括聲音處理芯片/組,、功率放大器、總線連接端口,、輸入輸出端口,、MIDI及游戲桿接口,、CD音頻連接器等m。根據(jù)實(shí)際需要,,只需了解聲卡與ISA總線的接口信號(hào)及時(shí)序要求,。要實(shí)現(xiàn)DSP對(duì)聲卡的直接操作,DSP系統(tǒng)必須提供上述ISA總線信號(hào),。

  DSP一般可提供數(shù)據(jù)信號(hào)線,、地址信號(hào)線、IO讀寫信號(hào)線和READY信號(hào)線,,同時(shí)還有多個(gè)中斷輸入引腳,,但并不直接具備DMA功能引腳,這給DSP與聲卡之間的接口帶來(lái)了不便,,這也正是筆者所要解決的問題,。

  2.3TMS320C2XX使用HOLD操作的DMA

  TMS320C2XX[~實(shí)現(xiàn)DMA功能的關(guān)鍵是,該類芯片提供了兩個(gè)信號(hào)引腳:HOLD/INTl和HOLDA,,這兩個(gè)信號(hào)控制的HOLD操作過(guò)程為:

  (1)HOLD,,外部設(shè)備可以把該引腳驅(qū)動(dòng)到低電平從而請(qǐng)求對(duì)外部總線的控制。如果HOLD/INTl中斷線被允許,,那么這將觸發(fā)中斷,。

  (2)HOLDA,在響應(yīng)HOLD中斷時(shí),,軟件邏輯可以使處理器發(fā)出HOLDA應(yīng)答信號(hào),,表示它將放棄對(duì)其外部總線的控制。根據(jù)百Z圃5五,,外部地址信號(hào)(A15~A0),、數(shù)據(jù)信號(hào)(D15~D0)以及存儲(chǔ)器控制信號(hào)(P5,DS,,BR,,STRB,,R/W,,RD,WE)被置為高阻狀態(tài)。

  從(1),、(2)可以看出C2XX的HOLD操作允許對(duì)外部程序,、數(shù)據(jù)以及I/O空間進(jìn)行直接存儲(chǔ)器訪問,但該功能是在INTl中斷程序中實(shí)現(xiàn)的,,因而中斷線INTl對(duì)下降沿和上升沿兩者都應(yīng)敏感,。當(dāng)C2XX檢測(cè)到下降沿時(shí),它完成正在執(zhí)行的當(dāng)前指令,,然后迫使程序控制轉(zhuǎn)到中斷服務(wù)子程序,,此子程序執(zhí)行IDLE(空閑)指令,。根據(jù)IDLE,HOLDA變?yōu)橛行Ф獠靠偩€被置為高阻狀態(tài),。只有在檢測(cè)到HOLD/INTl引腳上的上升沿之后,,CPU才退出IDLE狀態(tài),HOLDA變?yōu)闊o(wú)效,,并使外部總線返回到正常狀態(tài),。

  從以上分析可以看出C2XX的DMA操作與PC機(jī)中的DMA操作的區(qū)別。在PC機(jī)中,,CPU收到DMA請(qǐng)求信號(hào)后,,迫使CPU在現(xiàn)行的總線周期結(jié)束后,使其地址,、數(shù)據(jù)和部分控制引腳處于三態(tài),,從而讓出總線的控制權(quán),并給出一個(gè)DMA響應(yīng)信號(hào);在DMA操作完成后,,DMA請(qǐng)求信號(hào)無(wú)效以后,,CPU再恢復(fù)對(duì)系統(tǒng)總線的控制。而在C2XX中,,DMA申請(qǐng)信號(hào)將引起C2XX中斷,,在中斷程序中發(fā)出軟件指令使C2XX各信號(hào)引腳處于三態(tài),同時(shí)也給出了一個(gè)DMA響應(yīng)信號(hào);在DMA操作完成后,,C2XX檢測(cè)到DMA請(qǐng)求信號(hào)無(wú)效以后,,雖然總線返回到正常狀態(tài),C2XX仍處在中斷程序中,。從以上分析可知,,盡管中斷需要保護(hù)斷點(diǎn)和現(xiàn)場(chǎng),使得C2XX的DMA的處理速度與PC機(jī)相比要低得多,,但畢竟C2XX也實(shí)現(xiàn)了DMA操作,,從而可借助DMA控制器8237實(shí)現(xiàn)對(duì)聲卡的DMA操作訪問[4]。

   

關(guān)鍵字:DSP CPLD 聲卡 接口技術(shù)

 

 

    2.4DSP與聲卡的接口電路

 

  整個(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ù)周期通過(guò)數(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所示。現(xiàn)結(jié)合圖2,、圖3和圖4將系統(tǒng)工作原理及操作順序說(shuō)明如下:

  

 

  (1)聲卡向8237發(fā)出DMA請(qǐng)求信號(hào)DREQ;

  (2)8237通過(guò)CPLD向DSP發(fā)出HRQ信號(hào);

  (3)DSP的HOLD引腳檢測(cè)到下降沿后,,進(jìn)入INTl中斷,保護(hù)完斷點(diǎn)和現(xiàn)場(chǎng)后,,發(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檢測(cè)到麗iS引腳的上升沿,DSP返回到IDLE指令的下一條指令,,DSP獲得總線的控制權(quán),,繼續(xù)在INTl中執(zhí)行程序。

  從上面DSP系統(tǒng)的工作原理可以看出,,由于DMA是在中斷程序中完成的,,故DSP的DMA執(zhí)行頻率受限于DSP每秒可執(zhí)行的中斷次數(shù)。

 

關(guān)鍵字:DSP CPLD 聲卡 接口技術(shù)

 

 

    5結(jié)束語(yǔ)

 

  筆者曾用分立元件設(shè)計(jì)的DSP與聲卡的接口電路中,,用了2片74LS245,,3片74LS244,1片74LS74,,1片74LS573和3片GAL20V8,,器件多,PCB布局,、布線繁雜,。盡管用的是表貼器件,但仍占相當(dāng)大PCB面積,,由引腳松動(dòng),、虛焊等原因引發(fā)的故障率較高。采用CPLD器件后,,接口電路全部集成在一片中,,系統(tǒng)的可靠性、靈活性大大提高,。復(fù)雜可編程邏輯器件因其使用方便,、具有很高的性價(jià)比,必將擁有廣闊的應(yīng)用前景,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。