引 言
目前,由于采用的錄放音芯片結(jié)構(gòu)簡(jiǎn)單,、采樣率過(guò)低而使得嵌入式系統(tǒng)中的音質(zhì)效果比較差,,遠(yuǎn)遠(yuǎn)滿足不了人們對(duì)高檔生活、學(xué)習(xí)用嵌入式系統(tǒng)的要求,。如果能將聲卡技術(shù)應(yīng)用到嵌入式系統(tǒng)中,,由于聲卡的強(qiáng)大功能,必將使整個(gè)系統(tǒng)的聲音質(zhì)量上升一個(gè)新的臺(tái)階,。通過(guò)分析,,WSS(Windows Sound System)兼容聲卡和PC機(jī)ISA總線的接口原理,我們將其中的聲效芯片CS4235應(yīng)用到基于DSP的嵌入式系統(tǒng)中,。不用現(xiàn)成的聲卡而利用其上的聲效芯片是因?yàn)檫@樣做設(shè)計(jì)起來(lái)更靈活方便,,可根據(jù)系統(tǒng)需要增刪相應(yīng)的功能;不用MCS51系列而采用DSP,,是因?yàn)閷?duì)聲卡操作需要太多的系統(tǒng)資源,,MCS51并不具備此能力,,否則硬件接口電路將相當(dāng)復(fù)雜。
① ,。外部設(shè)備可以把該引腳驅(qū)動(dòng)到低電平從而請(qǐng)求對(duì)外部總線的控制,。如果HOLD/INT1中斷線被允許,那么這將觸發(fā)中斷,。 ② ,,在響應(yīng)中斷時(shí),軟件邏輯可以使處理器發(fā)出應(yīng)答信號(hào),,表示它將放棄對(duì)其外部總線的控制,。根據(jù),外部地址信號(hào)(A15"A0),、數(shù)據(jù)信號(hào)(D15"D0)以及存儲(chǔ)器控制信號(hào)()被置為高阻狀態(tài),。
從①,、②可以看出,,F(xiàn)206的HOLD操作允許對(duì)外部程序、數(shù)據(jù)以及I/O空間進(jìn)行直接存儲(chǔ)器訪問(wèn),,但該功能是在INT1中斷程序中實(shí)現(xiàn)的,,因而中斷線INT1對(duì)下降沿和上升沿二者都應(yīng)敏感。當(dāng)F206檢測(cè)到下降沿時(shí),,它完成正在執(zhí)行的當(dāng)前指令,,然后迫使程序控制轉(zhuǎn)到中斷服務(wù)子程序,此子程序執(zhí)行IDLE(空閑)指令,。根據(jù)IDLE,,變?yōu)橛行Ф獠靠偩€被置為高阻狀態(tài)。只有在檢測(cè)到HOLD/INT1引腳上的上升沿之后,,CPU才退出IDLE狀態(tài),,變?yōu)闊o(wú)效,并使外部總線返回到正常狀態(tài),?! ?br />
從以上分析可以看出,F(xiàn)206的DMA操作與PC機(jī)中的DMA操作的區(qū)別,。在PC機(jī)中,,CPU收到DMA請(qǐng)求信號(hào)后,迫使CPU在現(xiàn)行的總線周期結(jié)束后,,使其地址,、數(shù)據(jù)和部分控制引腳處于三態(tài),從而讓出總線的控制權(quán),,并給出1個(gè)DMA響應(yīng)信號(hào),;在DMA操作完成且DMA請(qǐng)求信號(hào)無(wú)效以后,,CPU再恢復(fù)對(duì)系統(tǒng)總線的控制。而在C2XX中,,DMA申請(qǐng)信號(hào)將引起F206中斷,,在中斷程序中發(fā)出軟件指令使F206各信號(hào)引腳處于三態(tài),同時(shí)也給出1個(gè)DMA響應(yīng)信號(hào),;在DMA操作完成后,,但F206檢測(cè)到DMA請(qǐng)求信號(hào)無(wú)效以后,雖然總線返回到正常狀態(tài),,但但F206仍處在中斷程序中,。從以上分析可知,盡管中斷需要保護(hù)斷點(diǎn)和現(xiàn)場(chǎng),,使得F206的DMA的處理速度與PC機(jī)相比要低的多,,畢竟F206也實(shí)現(xiàn)了DMA操作,從而可借助DMA控制器8237實(shí)現(xiàn)對(duì)聲卡的DMA操作訪問(wèn),。 2.2 DSP與DMA控制器8237的接口電路
8237是一個(gè)高性能的可編程DMA控制器芯片,,可以方便地與CPU相連,實(shí)現(xiàn)外部設(shè)備與存儲(chǔ)器之間的直接數(shù)據(jù)交換,。其內(nèi)部結(jié)構(gòu)和引腳信號(hào)可參閱文獻(xiàn)[4],。該控制器通過(guò)編程可提供多種類型的控制特性,以優(yōu)化系統(tǒng)性能,,增大數(shù)據(jù)吞吐量,,最高數(shù)據(jù)傳輸速率可達(dá)1.6 MB/s。圖3給出了F206與8237接口的主電路,,其中8237送給DSP的要求控制總線的DMA請(qǐng)求信號(hào)HRQ,經(jīng)GAL16V8譯碼后送到DSP的HOLD/INT1引腳,;同樣,,
DSP的DMA應(yīng)答信號(hào)也經(jīng)GAL16V8譯碼送回8237的HLDA引腳。地址鎖存器74LS573的作用是鎖存8237在DMA服務(wù)周期通過(guò)數(shù)據(jù)線D0"7輸出的高8位地址A8"15,。由于DSP不直接提供,、、和信號(hào),,故這些信號(hào)只能由GAL16V8譯碼得到,。
圖3所示電路提供了4個(gè)通道的外設(shè)請(qǐng)求DMA服務(wù)信號(hào),,并且8237直接擁有AEN引腳,,滿足了表1中的所有要求,從而就能正確實(shí)現(xiàn)DSP與聲卡的接口,。實(shí)際工作中,,我們根據(jù)聲卡在PC機(jī)中的使用情況設(shè)置8237的DREQ1和DACK1為聲卡的播放通道,,8237的DREQ3和DACK3為聲卡的采集通道,聲卡的中斷申請(qǐng)信號(hào)IRQ7經(jīng)GAL16V8反向后與DSP的引腳連接,。 2.3 系統(tǒng)工作原理及時(shí)序
圖3所示DSP系統(tǒng)對(duì)聲卡的DMA操作過(guò)程可用圖4來(lái)描述,,工作時(shí)序如圖5所示。現(xiàn)結(jié)合圖4,、圖5將系統(tǒng)工作原理及操作順序說(shuō)明如下: ① CS4235向DMA控制器8237發(fā)出DMA請(qǐng)求信號(hào)DREQ,; ② 8237向DSP發(fā)出總線請(qǐng)求信號(hào)HRQ; ③ DSP的引腳檢測(cè)到下跳沿后,,進(jìn)入INT1中斷,,保護(hù)完斷點(diǎn)和現(xiàn)場(chǎng)后,發(fā)IDLE指令,,DSP的引腳電平變低,,響應(yīng)外部DMA請(qǐng)求; ④ 8237接管總線后,,先向CS4235發(fā)DMA請(qǐng)求的響應(yīng)信號(hào)DACK,,表示允許CS4235進(jìn)行DMA傳送,然后按事先設(shè)置的初始地址和需傳送的字節(jié)數(shù),,依次發(fā)送地址和讀寫(xiě)命令,,使得在RAM CS4235之間直接交換數(shù)據(jù),直至全部數(shù)據(jù)交換完畢,;
?、軩MA傳送結(jié)束后,自動(dòng)撤消向CPU的總線請(qǐng)求信號(hào)HRQ,,此時(shí)DSP檢測(cè)到引腳的上升沿,,DSP返回到IDLE指令的下一條指令,DSP獲得總線的控制權(quán),,繼續(xù)在INT1中執(zhí)行程序,。