《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > ARM CPU CS89712與C5510 DSP 的接口設(shè)計(jì)
ARM CPU CS89712與C5510 DSP 的接口設(shè)計(jì)
摘要: 以Cirrus Logic公司的ARM 芯片和TI 公司的TMS320V DSP 為例 研究了ARM與DSP 的數(shù)據(jù)接——HPI 接口的相關(guān)技術(shù) ,并給出了在HPI 接口非復(fù)用模式下 CS897與C5510 DSP 的接口設(shè)計(jì)。
Abstract:
Key words :

  引 言

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

  ARM CPU CS89712 的特點(diǎn)

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

  a、采用ARM7TDMI 內(nèi)核,I/O" title="I/O">I/O 電壓3.3 V ,內(nèi)核電壓2.5 V ;

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

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

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

  e、支持8 個(gè)MEMORYBANK,最大外部存儲(chǔ)空間達(dá)256MB ,并支持SDRAM;

  f、內(nèi)置單色LCD 控制器;

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

  h、27 個(gè)通用I/O口;

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

  C55X DSP 及其EHPI 接口

  C5510 DSP 的特點(diǎn)

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

  C55X的增強(qiáng)型主機(jī)接口(EHPI)

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

  C55X為主機(jī)提供增強(qiáng)型的16 位并行接口(EHPI)具有以下特點(diǎn):

  a、20 位主機(jī)地址總線;

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

  c、復(fù)用" title="復(fù)用">復(fù)用和非復(fù)用兩種總線模式;

  d、主機(jī)可以訪問C5510 的片內(nèi)SARAM、片內(nèi)DARAM和片外存儲(chǔ)器;

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

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

  g、HRDY信號(hào)用來與主機(jī)進(jìn)行握手;

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

關(guān)鍵字:摘 要:以Cirrus Logic公司的ARM 芯片和TI 公司的TMS320V DSP 為例 研究了ARM與DSP 的數(shù)據(jù)接——HPI 接口的相關(guān)技術(shù) 并給出了在HPI 接口非復(fù)用模式下 CS897

 

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

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

ARM CPU CS89712與C5510 DSP 的接口設(shè)計(jì) 

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

  CS89712 與C5510 DSP 的接口設(shè)計(jì)

  硬件連線

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

ARM CPU CS89712與C5510 DSP 的接口設(shè)計(jì)

  圖2  EHPI接口非復(fù)用模式下的連接圖

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

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

  另外,還有幾個(gè)關(guān)鍵的控制信號(hào)需要連接。一個(gè)就是HR/W信號(hào),由于CS89712 沒有此信號(hào),使用端口A 的PA3 來代替。當(dāng)PA3=1 時(shí),代表讀操作,反之為寫操作。

  由于CS89712 和C5510 EHPI 接口的控制邏輯不盡相同,需要使用其它的一些信號(hào)線來進(jìn)行模擬,此時(shí)要嚴(yán)格遵循EHPI 的讀寫時(shí)序。

  軟件設(shè)計(jì)

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

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

    ARM 處理器自身的初始化
    ARM處理器首先要完成自身工作模式等一系列的初始化,才能正常進(jìn)行EHPI 接口的讀/寫,源代碼如下所示。
    //為了配合EHPI 口的時(shí)序,關(guān)掉MMU 頁(yè)表中
    bank3 的Cache
    Xcount SETA 0x30000c1e
     WHILE Xcount < 0x31000000
          DCD Xcount
          Xcount SETA Xcount + 0x00100000

  WEND

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

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

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

  HPI 接口讀寫程序

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

 

    //ARM向DSP 寫數(shù)據(jù)時(shí)
    # define EHPI-BASE 0x3208000
    int t ;
    rPADDR=0x08 ; //PA3 方向定義為輸出
    rPADR=0x00 ; //PA3 為低電平
    t=*(volatile U16* )( EHPI-BASE + Add-offset);//ARM從DSP 讀取數(shù)據(jù)時(shí)
    rPADDR=0x08 ; //PA3 方向定義為輸出
    rPADR=0x08 ; //PA3 為高電平
    (volatile U16*)( EHPI-BASE+Add-offset)=t

  結(jié)束語(yǔ)

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

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