<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM CPU CS89712與C5510 DSP 的接口設計

          ARM CPU CS89712與C5510 DSP 的接口設計

          作者: 時間:2008-03-05 來源: 收藏

            摘 要:以Cirrus Logic公司的ARM 芯片和TI 公司的TMS320V DSP 為例,研究了ARM與DSP 的數(shù)據(jù)接——HPI 接口的相關技術,并給出了在HPI 接口非復用模式下,CS89712 與C5510 的信號連接圖和嵌入式實時操作系統(tǒng)uCOS-II下驅動程序的部分關鍵源代碼。

          本文引用地址:http://www.ex-cimer.com/article/79678.htm

            關鍵詞:ARM CS89712;主機接口(HPI);TMS320VC5510

            引 言

            目前嵌入式系統(tǒng)已被廣泛地應用到電子產品領域和無線通信、網絡通信等高端設備領域。32 位ARM嵌入式處理器具有高性能、低功耗的特性,DSP芯片由于功能強大,加上接口方便、軟件可用資源豐富、編程方便、穩(wěn)定性好、精度高等優(yōu)點,應用也越來越廣泛。通常在嵌入式系統(tǒng)的設計中,由ARM嵌入式處理器實現(xiàn)整個系統(tǒng)的協(xié)調控制和網絡功能,由DSP 芯片來執(zhí)行復雜計算,因此需要實現(xiàn)ARM處理器和DSP 之間的數(shù)據(jù)交換。從某種程度上來說,ARM嵌入式處理器和DSP 之間數(shù)據(jù)交換的速度決定了整個系統(tǒng)的運行速度和性能。

            ARM CPU CS89712 的特點

            CS89712 是Cirrus Logic 公司一款基于ARM7TDMI的SOC 芯片。它一方面具有ARM 處理器的所有優(yōu)點:低功耗、高性能;同時又具有非常豐富的片上資源,非常適合嵌入式產品的開發(fā)。其特點如下:

            a、采用ARM7TDMI 內核,I/O 電壓3.3 V ,內核電壓2.5 V ;

            b、內置鎖相環(huán)(PLL),系統(tǒng)主頻最高達74MHz ;

            c、3種工作模式,可以實現(xiàn)電源管理以降低系統(tǒng)功耗;

            d、8KB 的系統(tǒng)高速緩存(CACHE),極大地提高了系統(tǒng)運行速度;

            e、支持8 個MEMORYBANK,最大外部存儲空間達256MB ,并支持SDRAM;

            f、內置單色LCD 控制器;

            g、2 路異步串口(UART);

            h、27 個通用I/O口;

            i、實時時鐘(RTC)和看門狗電路(WATCHDOG)。

            C55X DSP 及其EHPI 接口

            C5510 DSP 的特點

            以高速、低功耗為特征的VC55X 系列DSP 采用先進的改進型哈佛結構,具有分離的數(shù)據(jù)總線和程序總線,片內集成了ROM、RAM和多個外設,如通用I/O口、定時器、時鐘發(fā)生器、軟件可編程等待狀態(tài)發(fā)生器、可編程塊切換邏輯、串行口、直接存儲器存取控制器(DMA)和與外部處理器通信用的主機接口(HPI)。

            C55X的增強型主機接口(EHPI)

            TI 的C5510 之前的DSP 系列(C54X系列)中的主機接口(HPI)主要有三種:標準8 位HPI8 接口、增強型8 位HPI8 接口和16 位HPI16 接口。其中C542~C549 內含標準型HPI8 ;C5402、C5410 內含增強型HPI8 ;C5410 以上為HPI16 ;C5409、C5416 的HPI 可以由用戶設置為增強型HPI8 或HPI16。C5510 其內部使用的是增強型主機接口,增強型比標準型更優(yōu)越之處主要在于:增強型允許主機訪問DSP 內部的所有片內RAM,而標準只能訪問RAM 區(qū)中指定的2K字。

            C55X為主機提供增強型的16 位并行接口(EHPI)具有以下特點:

            a、20 位主機地址總線;

            b、16 位主機數(shù)據(jù)總線;

            c、復用和非復用兩種總線模式;

            d、主機可以訪問C5510 的片內SARAM、片內DARAM和片外存儲器;

            e、在高速傳輸數(shù)據(jù)時可以自增的20 位的地址寄存器(在復用模式下);

            f、多地址、數(shù)據(jù)探頭為各種主機提供緊密接口;

            g、HRDY信號用來與主機進行握手;

            C5510 與外部主機或微處理器的連接具有單獨的16 根數(shù)據(jù)線HD0~HD15、20 根地址線HA0~HA19 和10 根控制線。主機主動通過EHPI 口能夠直接訪問DSP 的存儲區(qū)。在圖1 所示的HPI 能訪問的地址范圍內,主機和DSP 可以通過DSP 的內部和外部存儲區(qū)來交換信息。除了對主機發(fā)中斷(通過置HPIC 寄存器的HINT 位,可以使HINT 線有效)或清除主機發(fā)來的中斷(通過清HPIC 寄存器的DSPINT標志)需要DSP 干涉外,C5510 幾乎不用進行其他操作。片內的DMA 通道會自動輔助完成RAM區(qū)與HPI 數(shù)據(jù)寄存器的數(shù)據(jù)傳輸。主機由HCNTL0/1 線來選擇HPI 的某個控制寄存器,如表1 所列。通過對這4 個寄存器的訪問,就可以在所設安全機制的允許范圍下讀/寫DSP 的所有或部分片內RAM。

            主機由HCNTL0/1 線來選擇HPI 的某個控制寄存器。在非復用模式下,HCNTL0 決定HPI 是否訪問控制其(HPIC)寄存器或數(shù)據(jù)寄存器(HPID),如表1 所示(0 ——低電平,1 ——高電平),此時HCNTL1未被使用。

            表1  HCNTL0/1 的選擇功能描述

            

            圖1  通過HPI 可以訪問的DSP 存儲區(qū)圖

            CS89712 與C5510 DSP 的接口設計

            硬件連線

            TMS320VC5510 與CS89712 連接的接口電路如圖3 所示。由圖2 可見,C5510 通過EHPI 與主機設備相連時,除了EHPI 數(shù)據(jù)總線及控制信號線外,不需要附加其它的邏輯電路,非常方便。

            

            圖2  EHPI接口非復用模式下的連接圖

            從EHPI 寄存器的編址方式可以看出,將HPI16接口安排在CS89712 的BANK3(即地址范圍0X03000000~0X03FFFFFF),而且CS89712 具有內部譯碼器,直接產生片選信號CS3。

            由于C55X HPI16 是一個16 位的并行端口,而C5510 的內部結構為16 位,所以在非復用模式下,只需將數(shù)據(jù)和地址總線分別連接即可。

            另外,還有幾個關鍵的控制信號需要連接。一個就是HR/W信號,由于CS89712 沒有此信號,使用端口A 的PA3 來代替。當PA3=1 時,代表讀操作,反之為寫操作。

            由于CS89712 和C5510 EHPI 接口的控制邏輯不盡相同,需要使用其它的一些信號線來進行模擬,此時要嚴格遵循EHPI 的讀寫時序。

            軟件設計

            在硬件連接設計好的基礎上,我們還需要通過正確的編程才能實現(xiàn)我們預想的時序。因為我們在ARM CS89712 上運行嵌入式操作系統(tǒng)uCOS-II ,所以在寫程序對HPI 接口進行讀/寫操作時將HPI 接口看作一個外部設備,將完成讀/寫操作的程序看成在uCOS-II 下面的一個字符型驅動。這樣軟件的設計就變成了在uCOS-II 下面驅動程序的開發(fā)??紤]到CS89712 不光要將DSP 的數(shù)據(jù)取過來,而且還要將這些數(shù)據(jù)處理后再發(fā)送出去,這就需要這兩者之間有很好的配合。

            CS89712 與DSP5510 之間的EHPI 接口讀/寫程序主要由兩個部分組成: 11ARM 自身的初始化;21HPI 接口讀寫程序。

            ARM 處理器自身的初始化

            ARM處理器首先要完成自身工作模式等一系列的初始化,才能正常進行EHPI 接口的讀/寫,源代碼如下所示。

            //為了配合EHPI 口的時序,關掉MMU 頁表中

            bank3 的Cache

            Xcount SETA 0x30000c1e

            WHILE Xcount < 0x31000000

            DCD Xcount

            Xcount SETA Xcount + 0x00100000

            WEND

            rMEMCFG1&=0x00ffffff;//設置與DSP 連接的nCS3 :16 位總線寬度、8 個隨機狀態(tài)

            rMEMCFG1|=0x01000000;//3 個順序等待狀態(tài)、禁止順序訪問、禁止擴展時鐘上面這段代碼主要是對幾個寄存器進行配置。

            在配置好ARM 處理器的工作模式后,對外部I/O 接口BANK3 的對應地址進行讀/寫操作,就可以完成對HPI 接口的相應操作了。

            HPI 接口讀寫程序

            以下的第一句代碼是宏定義,定義了C5510 的EHPI 接口寄存器的地址。在本設計中,已經將HPI口與外部I/O 接口的BANK3 相接,這樣HPI 口將占用外部I/O 接口BANK3 的地址。由于是使用PA3來模擬HPI16 接口的HR/W,所以對DSP 進行讀/寫操作時, 應先將該信號置為相應的讀/寫有效狀態(tài)。

            //ARM向DSP 寫數(shù)據(jù)時

            # define EHPI-BASE 0x3208000

            int t ;

            rPADDR=0x08 ; //PA3 方向定義為輸出

            rPADR=0x00 ; //PA3 為低電平

            t=*(volatile U16* )( EHPI-BASE + Add-offset);//ARM從DSP 讀取數(shù)據(jù)時

            rPADDR=0x08 ; //PA3 方向定義為輸出

            rPADR=0x08 ; //PA3 為高電平

            (volatile U16*)( EHPI-BASE+Add-offset)=t

            結束語

            以ARM芯片作為主控制器,用DSP 芯片進行運算,然后通過HPI 接口進行通信和交換數(shù)據(jù)的嵌入式系統(tǒng)設計應用模式的得到越來越廣泛的應用,而這兩者之間能夠高效、快速并且穩(wěn)定的進行數(shù)據(jù)交換將是影響系統(tǒng)性能的關鍵部分之一。文中給出的CS89712 和C5510 之間的硬件連接方法和軟件設計經過實踐的驗證,是可行的和滿足要求的。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          關鍵詞: ARM 接口 DSP 嵌入式 CPU

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();