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

  引 言

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

  ARM CPU CS89712 的特點

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

  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)主頻最高達74MHz ,;

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

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

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

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

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

  h,、27 個通用I/O口;

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

  C55X DSP 及其EHPI 接口

  C5510 DSP 的特點

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

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

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

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

  a,、20 位主機地址總線;

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

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

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

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

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

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

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

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

 

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

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

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

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

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

  硬件連線

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

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

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

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

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

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

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

  軟件設(shè)計

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

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

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

  WEND

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

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

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

  HPI 接口讀寫程序

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

  結(jié)束語

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

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