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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > ARM CPU S3C44B0X與C54X DSP的接口設計

          ARM CPU S3C44B0X與C54X DSP的接口設計

          作者:陳猛 趙繼敏 時間:2008-09-25 來源:電子技術應用 收藏

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

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

          關鍵詞: (

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

            1 ARM CPU 的特點

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

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

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

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

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

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

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

            ·內置彩色LCD控制器;

            ·2路異步串口(UART);

            ·71個通用I/O口;

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

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

            2 C54X DSP及其接口

            2.1 C54X DSP的特點

            以高速、低功耗為特征的C54X系列DSP采用先進的改進型哈佛結構,具有分離的數(shù)據(jù)總線和程序總線,片內集成了ROM、RAM和多個外設,如通用I/O口、定時器、時鐘發(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可以由用戶設置為增強型HPI8或HPI16。增強型比標準型更優(yōu)越之處主要在于:增強型允許主機訪問DSP內部的所有片內RAM,而標準型只能訪問RAM區(qū)中指定的2K字。

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

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

            2.3 時序圖

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

            3 S3C44B0X與C54X DSP的接口設計

            3.1 硬件連線

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

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

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

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

            3.2 軟件設計

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

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

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

            ·將起始地址寫入HPIA寄存器。

            此后可正常存取DSP內部RAM的數(shù)據(jù)了。

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

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

            #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來說,HPI8占用其內存的BANK2,即起始地址為0X04000000。又由于HPI8的HR/W和HBIL信號用S3C44B0X的地址線實現(xiàn),因此對同一個寄存器而言,其讀寫地址不同。

            以下代碼從DSP讀出數(shù)據(jù):

            UINT16 read_dsp(UINT16 addr)

            {

            INT16 i;

            INT8 j;

           

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

           

            i = HPID_R_A_F;         //讀出第一字節(jié)

            j = HPID_R_A_S;         //讀出第二字節(jié)

           

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

            }

            以下代碼向DSP寫入數(shù)據(jù):

            void write_dsp(UINT16 addr, UINT16 dat)

            {

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

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

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

            }

            在嵌入式系統(tǒng)設計中,用S3C44B0X作為主控制器,用TMS320C5416進行運算,然后通過HPI接口進行通信和交換數(shù)據(jù)。事實證明,用HPI接口在ARM和DSP間通信滿足嵌入式系統(tǒng)的實時性要求。

            參考文獻

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

            2 TMS320C54X DSP REFERENCE SET VOL5.ENHANCED PERIPHERALS TI

            3 S3C44B0X USER MANUAL. SAMSUNG ELECTRONICS



          評論


          相關推薦

          技術專區(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); })();