關鍵詞: CS4235 , DSP嵌入式系統 , 聲效芯片
引 言 聲卡技術是多媒體計算機技術的關鍵技術之一,它的出現使得計算機更富表達力。目前,由于采用的錄放音芯片結構簡單、采樣率過低而使得嵌入式系統中的音質效果比較差,遠遠滿足不了人們對高檔生活、學習用嵌入式系統的要求。如果能將聲卡技術應用到嵌入式系統中,由于聲卡的強大功能,必將使整個系統的聲音質量上升一個新的臺階。通過分析,WSS(Windows Sound System)兼容聲卡和PC機ISA總線的接口原理,我們將其中的聲效芯片CS4235應用到基于DSP的嵌入式系統中。不用現成的聲卡而利用其上的聲效芯片是因為這樣做設計起來更靈活方便,可根據系統需要增刪相應的功能;不用MCS51系列而采用DSP,是因為對聲卡操作需要太多的系統資源,MCS51并不具備此能力,否則硬件接口電路將相當復雜。
2011-8-21 18:12:28 上傳
1 CS4235原理與結構
1.1 聲卡工作原理
圖1示出了聲卡的基本工作原理:主機通過總線將數字化的聲音信號以PCM的方式送到數模轉換器(D/A),將數字信號變成模擬的音頻信號;同時又可以通過模數轉換器(A/D)將麥克風或CD的輸入信號轉換成數字信號,送到計算機進行各種處理。
1.2 CS4235功能結構
2011-8-21 18:12:28 上傳
下載附件 (24.34 KB)WSS是Microsoft公司為統一聲卡的標準,最終為應用提供方便而提出的Windows 環境下多媒體擴展定義的一個音頻子系統標準,包括硬件平臺和軟件接口[1]。CS4235就是一種適應于WSS并且提供了ISA總線接口的聲卡核心芯片,除了聲音的采集和播放外,其它控制全部依賴于主機;它占用較多的主機時間,但成本比較低。CS4235的功能框圖如圖2所示。從圖2中可以看出,CS4235是一個完整的音頻子系統集成電路,提供了16位立體聲ADC及DAC、片內可重構數字濾波器、可編程增益值及衰減值的模擬和數字混合器、可選串行接口、具有同時錄音和播放能力的全雙工通道。CS4235的文檔說明見參考文獻[2]。
限于篇幅,這里不介紹CS4235的模擬硬件部分,而主要研究CS4235與DSP的數字硬件接口問題。由于TMS320F206(簡稱F206)是一種低價格、高性能的16位定點運算數字信號處理器(DSP),性價比極高,目前已成為高檔單片機的理想替代品,在通信、語音處理、軍事、儀器儀表、圖像處理等領域得到了廣泛的應用[3],因而系統中選用F206作為DSP。
CS4235提供的8位并行接口與ISA總線兼容,是否也與DSP的外部擴展總線兼容呢?表1中列出了CS4235和ISA總線接口的信號引腳及簡單描述,相應地也列出了F206的對應引腳。從表1可以看出,要實現DSP對CS4235的直接操作,DSP系統必須提供上述ISA總線信號。DSP芯片一般可提供數據信號線、地址信號線、I/O讀寫信號線和READY信號線,同時還擁有多個中斷輸入引腳;但并不直接具備DMA功能引腳,這給DSP與CS4235之間的接口帶來了不便,也正是本文所要解決的主要問題。
表1 CS4235和ISA總線接口的信號引腳 信號引腳簡單描述 DSP(F206)對應引腳 SD<7:0> 雙向系統數據總線 D<7:0> SA<11:0> 系統地址總線 A<11:0> IOR I/O讀命令由IS和RD譯碼得到IQW=IS+WR IOW I/O寫命令無 AEN 地址使能信號 READY IOCHRDY I/O通道準備好 INT2(實際應用中,只需選擇1根中斷線與DSP相連) IRQ 中斷申請信號:IRQA=IRQ5,IRQB=IRQ7 IRQC=IRQ9,IRQC=IRQ11,IRQD=IRQ11 IRQE=IRQ12,IRQF=IRQ15,IRQG=IRQ10 無 DRQ DMA申請信號:DRQA=DRQ0 DRQB=DRQ1 DRQC=DRQ3 無 DACK DMA應答信號:DACKA=DACK0 DACK1=DAC中,DACKC=DACK3 RS RESET 聲卡復位信號
2 DSP與CS4235的硬件接口
2.1 F206使用HOLD操作的直接存儲器訪問
F206實現DMA功能的關鍵是該類芯片提供了2個信號引腳:HOLD/INT1和,這2個信號控制的HOLD操作過程如下。
?、?。外部設備可以把該引腳驅動到低電平從而請求對外部總線的控制。如果HOLD/INT1中斷線被允許,那么這將觸發中斷。 ② ,在響應中斷時,軟件邏輯可以使處理器發出應答信號,表示它將放棄對其外部總線的控制。根據,外部地址信號(A15"A0)、數據信號(D15"D0)以及存儲器控制信號()被置為高阻狀態。
從①、②可以看出,F206的HOLD操作允許對外部程序、數據以及I/O空間進行直接存儲器訪問,但該功能是在INT1中斷程序中實現的,因而中斷線INT1對下降沿和上升沿二者都應敏感。當F206檢測到下降沿時,它完成正在執行的當前指令,然后迫使程序控制轉到中斷服務子程序,此子程序執行IDLE(空閑)指令。根據IDLE,變為有效而外部總線被置為高阻狀態。只有在檢測到HOLD/INT1引腳上的上升沿之后,CPU才退出IDLE狀態,變為無效,并使外部總線返回到正常狀態。
從以上分析可以看出,F206的DMA操作與PC機中的DMA操作的區別。在PC機中,CPU收到DMA請求信號后,迫使CPU在現行的總線周期結束后,使其地址、數據和部分控制引腳處于三態,從而讓出總線的控制權,并給出1個DMA響應信號;在DMA操作完成且DMA請求信號無效以后,CPU再恢復對系統總線的控制。而在C2XX中,DMA申請信號將引起F206中斷,在中斷程序中發出軟件指令使F206各信號引腳處于三態,同時也給出1個DMA響應信號;在DMA操作完成后,但F206檢測到DMA請求信號無效以后,雖然總線返回到正常狀態,但但F206仍處在中斷程序中。
從以上分析可知,盡管中斷需要保護斷點和現場,使得F206的DMA的處理速度與PC機相比要低的多,畢竟F206也實現了DMA操作,從而可借助DMA控制器8237實現對聲卡的DMA操作訪問。 2.2 DSP與DMA控制器8237的接口電路8237是一個高性能的可編程DMA控制器芯片,可以方便地與CPU相連,實現外部設備與存儲器之間的直接數據交換。其內部結構和引腳信號可參閱文獻[4]。該控制器通過編程可提供多種類型的控制特性,以優化系統性能,增大數據吞吐量,最高數據傳輸速率可達1.6 MB/s。圖3給出了F206與8237接口的主電路,其中8237送給DSP的要求控制總線的DMA請求信號HRQ,經GAL16V8譯碼后送到DSP的HOLD/INT1引腳;同樣,
DSP的DMA應答信號也經GAL16V8譯碼送回8237的HLDA引腳。地址鎖存器74LS573的作用是鎖存8237在DMA服務周期通過數據線D0"7輸出的高8位地址A8"15。由于DSP不直接提供、、和信號,故這些信號只能由GAL16V8譯碼得到。
評論