新聞中心

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

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

作者: 時(shí)間:2008-03-05 來(lái)源: 收藏

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

本文引用地址:http://2s4d.com/article/79678.htm

  關(guān)鍵詞:ARM CS89712;主機(jī)接口(HPI);TMS320VC5510

  引 言

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

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

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

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

  

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

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

  硬件連線

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

  

  圖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 來(lái)代替。當(dāng)PA3=1 時(shí),代表讀操作,反之為寫操作。

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

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

  在硬件連接設(shè)計(jì)好的基礎(chǔ)上,我們還需要通過(guò)正確的編程才能實(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ù)取過(guò)來(lái),而且還要將這些數(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來(lái)模擬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)算,然后通過(guò)HPI 接口進(jìn)行通信和交換數(shù)據(jù)的嵌入式系統(tǒng)設(shè)計(jì)應(yīng)用模式的得到越來(lái)越廣泛的應(yīng)用,而這兩者之間能夠高效、快速并且穩(wěn)定的進(jìn)行數(shù)據(jù)交換將是影響系統(tǒng)性能的關(guān)鍵部分之一。文中給出的CS89712 和C5510 之間的硬件連接方法和軟件設(shè)計(jì)經(jīng)過(guò)實(shí)踐的驗(yàn)證,是可行的和滿足要求的。

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


關(guān)鍵詞: ARM 接口 DSP 嵌入式 CPU

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉