<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > ARM CPU S3C44B0X與C54X DSP的接口設計

ARM CPU S3C44B0X與C54X DSP的接口設計

作者:陳猛 趙繼敏 時(shí)間:2008-09-25 來(lái)源:電子技術(shù)應用 收藏

摘  要: 以SAMSUNG公司的 SOC芯片和TI公司的 DSP為例,講述了芯片與DSP的數據接口技術(shù),并給出了硬件連接圖和軟件代碼。

本文引用地址:http://dyxdggzs.com/article/88379.htm

關(guān)鍵詞: (

  后PC時(shí)代,嵌入式產(chǎn)品逐漸占領(lǐng)市場(chǎng)。而這些嵌入式產(chǎn)品的核心——處理器決定了產(chǎn)品的設計和性能。高性能、低功耗、低成本是嵌入式處理器的主要特點(diǎn)。在32位嵌入式處理器市場(chǎng)中,ARM占有78.6%的份額。而TI則占有DSP市場(chǎng)的絕大部分份額。通常的嵌入式系統設計中,由微控制器實(shí)現整個(gè)系統的控制,由DSP來(lái)執行計算密集型操作,然后通過(guò)一定的手段實(shí)現微控制器與DSP之間的通信和數據交換。因此,如何高效地設計控制器(ARM)與DSP之間的接口以滿(mǎn)足嵌入式系統的實(shí)時(shí)性要求,在嵌入式系統設計中顯得尤為重要。

  1 ARM CPU 的特點(diǎn)

  ARM是一款32位的精簡(jiǎn)指令集(RISC)處理器架構,以其高性能、低功耗、低成本占有市場(chǎng)。由于A(yíng)RM公司采用IP授權的方式經(jīng)營(yíng),全球幾乎所有的大半導體公司都有基于A(yíng)RM的SOC芯片。

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

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

  ·內置鎖相環(huán)(PLL),系統主頻最高達66MHz;

  ·4種工作模式,可以實(shí)現電源管理以降低系統功耗;

  ·8KB的系統高速緩存(CACHE),極大地提高了系統運行速度;

  ·支持8個(gè)MEMORY BANK,最大外部存儲空間達256MB,并支持SDRAM;

  ·內置彩色LCD控制器;

  ·2路異步串口(UART);

  ·71個(gè)通用I/O口;

  ·8通路模/數轉換器(ADC);

  ·實(shí)時(shí)時(shí)鐘(RTC)和看門(mén)狗電路(WATCHDOG)。

  2 C54X DSP及其接口

  2.1 C54X DSP的特點(diǎn)

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

  2.2 C54X的(HPI)

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

  以(簡(jiǎn)稱(chēng)C5416)包含的增強型HPI8接口為例,它與外部主機或微處理器的連接具有單獨的8根數據線(xiàn)HD0~HD7和10根控制線(xiàn)。主機主動(dòng)通過(guò)HPI口訪(fǎng)問(wèn)DSP的內部RAM以及其它資源。除了對主機發(fā)中斷(通過(guò)置HPIC寄存器的HINT位,可以使HINT線(xiàn)有效)或清除主機發(fā)來(lái)的中斷(通過(guò)清HPIC寄存器的DSPINT標志)需要DSP干涉外,C5416幾乎不用進(jìn)行其他操作,片內的DMA通道會(huì )自動(dòng)輔助完成RAM區與HPI數據寄存器的數據傳輸。主機由HCNTL0/1線(xiàn)來(lái)選擇HPI的某個(gè)控制寄存器,如表1所列。通過(guò)對這4個(gè)寄存器的訪(fǎng)問(wèn),就可以在所設安全機制的允許范圍下讀/寫(xiě)DSP的所有或部分片內RAM。

  由于DSP最小的存儲單位是字(16bit),因此對于HPI8,每個(gè)傳遞必須要有2個(gè)傳遞周期才能完成。HBIL信號用于區分傳遞的字節是當前字的第一字節還是第二字節。通過(guò)設置HPIC寄存器的BOB位,可以決定第一字節是這個(gè)字的高字節還是低字節。

  2.3 時(shí)序圖

  C54X HPI8的時(shí)序如圖1所示,該時(shí)序可滿(mǎn)足市場(chǎng)上大多數微控制器的時(shí)序特征。因此,C54X可以通過(guò)HPI8很方便地與微控制器接口,S3C44B0X也不例外。

  3 S3C44B0X與C54X DSP的接口設計

  3.1 硬件連線(xiàn)

  TMS320C5416與S3C44B0X連接的接口電路如圖2所示。由圖2可見(jiàn),C54X通過(guò)HPI8與主機設備相連時(shí),除了8位HPI數據總線(xiàn)及控制信號線(xiàn)外,不需要附加其它的邏輯電路,非常方便。

  從HPI寄存器的編址方式可以看出,主機只需兩根地址線(xiàn)(A3、A2)便可尋址到HPI端口的所有控制寄存器、地址寄存器和數據寄存器。同時(shí),將HPI8接口安排在S3C44B0X的BANK2(即地址范圍0X04000000~0X05FFFFFF),而且S3C44B0X具有內部譯碼器,直接產(chǎn)生片選信號nGCS2。由于C54X HPI8是一個(gè)8位的并行端口,而C5416的內部結構為16位,因而主機必須讀/寫(xiě)兩個(gè)連續的8位字節,而且主機還應該提供HBIL信號指示當前傳輸的是第一字節還是第二字節。在S3C44B0X中,可以直接使用地址線(xiàn)A1來(lái)完成此功能:當向A1=0的地址寫(xiě)入數據時(shí),表示為第一字節;向A1=1的地址寫(xiě)入數據表示第二字節。

  另外,還有幾個(gè)關(guān)鍵的控制信號線(xiàn)需要連接。一個(gè)就是HR/W信號,由于S3C44B0X沒(méi)有此信號,使用地址線(xiàn)A4來(lái)代替。當A4=1時(shí),代表讀操作,反之為寫(xiě)操作。在HPI8的操作中,所有的地址線(xiàn)和控制線(xiàn)在HDS1/2的下降沿采樣,用S3C44B0X的讀/寫(xiě)信號nOE和nWE來(lái)完成此功能。

  由于S3C44B0X和C5416 HPI接口的控制邏輯不盡相同,需要使用其它的一些信號線(xiàn)來(lái)進(jìn)行模擬,此時(shí)要嚴格遵循HPI的讀寫(xiě)時(shí)序(如圖1所示)。

  3.2 軟件設計

  由于主機接口(HPI)傳送8位數據字節,而HPIC寄存器(通常是S3C44B0X首先要尋址的寄存器)是一個(gè)16位寄存器,在S3C44B0X這一邊可以相同內容的高字節與低字節來(lái)管理HPIC寄存器(盡管某些位的尋址受到一定的限制),在C54X這一邊高位不用。

  當主機開(kāi)始存取DSP的數據時(shí),首先要執行以下兩步操作:

  ·HPIC寄存器的BOB位置1(高字節與低字節必須相同)。BOB位為字節選擇位。BOB位置1,表示第一字節為低字節。BOB位影響數據和地址的傳送。只有主機可以修改這一位,C54X對它既不能讀也不能寫(xiě)。

  ·將起始地址寫(xiě)入HPIA寄存器。

  此后可正常存取DSP內部RAM的數據了。

  結合硬件設計和HPI的操作步驟,便可以在S3C44B0X上編寫(xiě)程序實(shí)現與C5416的數據通信。

  程序主要分為兩個(gè)部分:一部分是地址及數據的定義;一部分是實(shí)現代碼。具體程序如下:

  #define HPI_BASE        0x4000000

  /* HPIC reg */

  #define HPIC_W_F      *(UINT8*)(HPI_BASE+0x0)

  //000 0 0

  #define HPIC_W_S      *(UINT8 *)(HPI_BASE + 0x2)

  //000 1 0

  #define HPIC_R_F      *(UINT8 *)(HPI_BASE + 0x10)

  //110 0 0

  #define HPIC_R_S      *(UINT8 *)(HPI_BASE + 0x12) 

  //110 1 0

  /* HPIA automatically change */

  #define HPID_W_A_F    *(UINT8 *)(HPI_BASE + 0x4)

  //001 0 0

  #define HPID_W_A_S    *(UINT8 *)(HPI_BASE + 0x6)                 

  //001 1 0

  #define HPID_R_A_F    *(UINT8 *)(HPI_BASE + 0x14)                     

  //101 0 0

  #define HPID_R_A_S    *(UINT8 *)(HPI_BASE + 0x16)

  //101 1 0

  /* HPIA reg */

  #define HPIA_W_F      *(UINT8 *)(HPI_BASE + 0x8)                  

  //010 0 0

  #define HPIA_W_S      *(UINT8 *)(HPI_BASE + 0xA)

  //010 1 0

  #define HPIA_R_F      *(UINT8 *)(HPI_BASE + 0x18)

  //110 0 0

  #define HPIA_R_S      *(UINT8 *)(HPI_BASE + 0x1A)                           

  //110 1 0

  上述這些宏定義了HPI8接口寄存器的地址。對S3C44B0X來(lái)說(shuō),HPI8占用其內存的BANK2,即起始地址為0X04000000。又由于HPI8的HR/W和HBIL信號用S3C44B0X的地址線(xiàn)實(shí)現,因此對同一個(gè)寄存器而言,其讀寫(xiě)地址不同。

  以下代碼從DSP讀出數據:

  UINT16 read_dsp(UINT16 addr)

  {

  INT16 i;

  INT8 j;

 

  set_hpia(addr);           //設置起始地址

 

  i = HPID_R_A_F;         //讀出第一字節

  j = HPID_R_A_S;         //讀出第二字節

 

  return (i<<8)|(j&0xff);

  }

  以下代碼向DSP寫(xiě)入數據:

  void write_dsp(UINT16 addr, UINT16 dat)

  {

  set_hpia(addr-1);                        //設置起始地址

  HPID_W_A_F=(UINT8)((dat>>8) & 0xff);     //寫(xiě)入第一字節

  HPID_W_A_S=(UINT8)(dat & 0xff);         //寫(xiě)入第二字節

  }

  在嵌入式系統設計中,用S3C44B0X作為主控制器,用TMS320C5416進(jìn)行運算,然后通過(guò)HPI接口進(jìn)行通信和交換數據。事實(shí)證明,用HPI接口在A(yíng)RM和DSP間通信滿(mǎn)足嵌入式系統的實(shí)時(shí)性要求。

  參考文獻

  1 李 剛. 數字信號微處理器的原理及其開(kāi)發(fā)應用. 天津: 天津大學(xué)出版社, 2000

  2 TMS320C54X DSP REFERENCE SET VOL5.ENHANCED PERIPHERALS TI

  3 S3C44B0X USER MANUAL. SAMSUNG ELECTRONICS



關(guān)鍵詞: ARM S3C44B0X 主機接口 HPI TMS320C5416

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>