當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:以SAMSUNG公司的ARM SOC芯片S3C44B0X和TI公司的TMS320C5416 DSP為例,講述了ARM與DSP的數(shù)據(jù)接口技術(shù),并結(jié)出了硬件連接圖和軟件代碼。 關(guān)鍵詞:ARM S3C44B0X 主機(jī)接

摘要:以SAMSUNG公司的ARM SOC芯片S3C44B0X和TI公司的TMS320C5416 DSP為例,講述了ARM與DSP的數(shù)據(jù)接口技術(shù),并結(jié)出了硬件連接圖和軟件代碼。 關(guān)鍵詞:ARM S3C44B0X 主機(jī)接口(HPI) TMS320C5416 后PC時(shí)代,嵌入式產(chǎn)品逐漸占領(lǐng)市場(chǎng)。而這些嵌入式產(chǎn)品的核心——處理器決定了產(chǎn)品的市場(chǎng)和性能。高性能、低功耗、低成本是嵌入式處理器的主要特點(diǎn)。在32位嵌入式處理器市場(chǎng)中,ARM占有78.6%的份額。而TI而占有DSP市場(chǎng)的絕大部分份額。通常的嵌入式系統(tǒng)設(shè)計(jì)中,由微控制器實(shí)現(xiàn)整個(gè)系統(tǒng)的控制,由DSP來(lái)執(zhí)行計(jì)算密集型操作,然后通過(guò)一定的手段實(shí)現(xiàn)微控制器與DSP之間的通信和數(shù)據(jù)交換。因此,如何高效地設(shè)計(jì)控制器(ARM)與DSP之間的接口以滿足嵌入式系統(tǒng)的實(shí)時(shí)性要求,在嵌入式系統(tǒng)設(shè)計(jì)中顯得尤為重要。 1 ARM CPU S3C44B0X的特點(diǎn) ARM是一款32位的精簡(jiǎn)指令集(RISC)處理器架構(gòu),以其高性能、低功耗、低成本占有市場(chǎng)。由于ARM公司采用IP授權(quán)的方式經(jīng)營(yíng),全球幾乎所有的大半導(dǎo)體公司都有基于ARM的SOC芯片。


S3C44B0X是SAMSUNG(三星)公司一款基于ARM7TDMI的SOC芯片。它一方面具有ARM處理器的所有優(yōu)點(diǎn):低功耗、高性能;同時(shí)又具有非常豐富的片上資源,非常適合嵌入式產(chǎn)品的開發(fā)。其特點(diǎn)如下: %26;#183;采用ARM7TDMI內(nèi)核,I/O電壓3.3V,內(nèi)核電壓2.5V; %26;#183;內(nèi)置鎖相環(huán)(PLL),系統(tǒng)主頻最高達(dá)66MHz; %26;#183;4種工作模式,可以實(shí)現(xiàn)電源管理以降低系統(tǒng)功耗; %26;#183;8KB的系統(tǒng)高速緩存(CACHE),極大地提高了系統(tǒng)運(yùn)行速度; %26;#183;支持8個(gè)MEMORY BANK,最大外部存儲(chǔ)空間達(dá)256MB,并支持SDRAM; %26;#183;內(nèi)置彩色LCD控制器; %26;#183;2路異步串口(UART); %26;#183;71個(gè)通用I/O口; %26;#183;8通路模/數(shù)轉(zhuǎn)換器(ADC); %26;#183;實(shí)時(shí)時(shí)鐘(RTC)和看門狗電路(WATCHDOG)。 2 C54X DSP及其HPI接口 2.1 C54X DSP的特點(diǎn) 以高速、低功耗為特征的C54X系列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)。 2.2 C54X的主機(jī)接口(HPI) 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。增強(qiáng)型比標(biāo)準(zhǔn)型更優(yōu)越之處主要在于:增強(qiáng)型允許主機(jī)訪問(wèn)DSP內(nèi)部的所有片內(nèi)RAM,而標(biāo)準(zhǔn)只能訪問(wèn)RAM區(qū)中指定的2K字。 以TMS320C5416(簡(jiǎn)稱C5416)包含的增強(qiáng)型HPI8接口為例,它與外部主機(jī)或微處理器的連接具有單獨(dú)的8根數(shù)據(jù)線HD0~HD7和10根控制器。主機(jī)主動(dòng)通過(guò)HPI口訪問(wèn)DSP的內(nèi)部RAM以及其它資源。除了對(duì)主機(jī)發(fā)中斷(通過(guò)置HPIC寄存器的HINT位,可以使HINT線有效)或清除主機(jī)發(fā)來(lái)的中斷(通過(guò)清HPIC寄存器的DSPINT標(biāo)志)需要DSP干涉外,C5416幾乎不用進(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è)寄存器的訪問(wèn),就可以在所設(shè)安全機(jī)制的允許范圍下讀/寫DSP的所有或部分片內(nèi)RAM。 表1 HCNTL0/1的選擇功能描述 HCNTL1 HCNTL0 說(shuō) 明 0 0 主機(jī)讀/寫HPI控制寄存器--HPIC。 0 1 主機(jī)以地址自動(dòng)增的模式讀/寫HPI數(shù)據(jù)鎖存器--HPID。若為讀操作,則HPI地址寄存器HPIA自動(dòng)讀后增1;若為寫操作,則HPIA自動(dòng)寫后增 1。 1 0 主機(jī)讀/寫HPI地址寄存器--HPIA,該地址指向C54X的片內(nèi)RAM。 1 1 主機(jī)讀/寫HPI數(shù)據(jù)鎖存器--HPID,HPIA不變。由于DSP最小的存儲(chǔ)單位是字(16bit),因此對(duì)于HPI8,每個(gè)傳遞必須要有2個(gè)傳遞周期才能完成。HBIL信號(hào)用于區(qū)分傳遞的字節(jié)是當(dāng)前字的第一字節(jié)還是第二字節(jié)。通過(guò)設(shè)置HPIC寄存器的BOB位,可以決定第一字節(jié)是這個(gè)字的高字節(jié)還是低字節(jié)。 2.3 時(shí)序圖 C54X HPI8的時(shí)序如圖1所示,該時(shí)序可滿足市場(chǎng)上大多數(shù)微控制器的時(shí)序特片。因此,C54X可以通過(guò)HPI8很方便地與微控制器接口,S3C44B0X也不例外。 3 S3C44B0X與C54X DSP的接口設(shè)計(jì) 3.1 硬件連線 TMS320C5416與S3C44B0X連接的接口電路如圖2所示。由圖2可見(jiàn),C54X通過(guò)HPI8與主機(jī)設(shè)備相連時(shí),除了8位HPI數(shù)據(jù)總線及控制信號(hào)線外,不需要附加其它的邏輯電路,非常方便。 從HPI寄存器的編址方式可以看出,主機(jī)只需兩根地址線(A3、A2)便可尋址到HPI接口的所有控制寄存器、地址寄存器和數(shù)據(jù)寄存器。同時(shí),將HPI8 接口安排在S3C44B0X的BANK2(即地址范圍0X04000000~0X05FFFFFF),而且S3C44B0X具有內(nèi)部譯碼器,直接產(chǎn)生片選信號(hào)nGCS2。由于C54X HPI8是一個(gè)8位的并行端口,而C5416的內(nèi)部結(jié)構(gòu)為16位,因而主機(jī)必須讀/寫兩個(gè)連續(xù)的8位字節(jié),而且主機(jī)還應(yīng)該提供HBIL信號(hào)指示當(dāng)然傳輸?shù)氖堑谝蛔止?jié)還是第二字節(jié)。在S3C44B0X中,可以直接使用址線A1來(lái)完成此功能:當(dāng)向A1=0的地址寫入數(shù)據(jù)時(shí),表示為第一字節(jié);向A1=1的地址寫入數(shù)據(jù)表示第二字節(jié)。 另外,還有幾個(gè)關(guān)鍵的控制信號(hào)線需要連接。一個(gè)就是HR/W信號(hào),由于S3C44B0X沒(méi)有此信號(hào),使用地址線A4來(lái)代替。當(dāng)A4=1時(shí),代表讀操作,反之為寫操作。在HPI8的操作中,所有的地址線和控制線在HDS1/2的下降沿采樣,用S3C44B0X的讀/寫信號(hào)nOE和nWE來(lái)完成此功能。 由于S3C44B0X和C5416 HPI接口的控制邏輯不盡相同,需要使用其它的一些信號(hào)線來(lái)進(jìn)行模擬,此時(shí)要嚴(yán)格遵循HPI的讀寫時(shí)序(如圖1所示)。 3.2 軟件設(shè)計(jì) 由于主機(jī)接口(HPI)傳送8位數(shù)據(jù)字節(jié),而HPIC寄存器(通常是S3C44B0X首先要尋址的寄存器)是一個(gè)16位寄存器,在S3C44B0X這一邊可以相同內(nèi)容的高字節(jié)與低字節(jié)來(lái)管理HPIC寄存器(盡管某些位的尋址受到一定的限制),在C54X這一邊高位不用。


當(dāng)主機(jī)開始存取DSP的數(shù)據(jù)時(shí),首先要執(zhí)行以下兩步操作: %26;#183;HPIC寄存器的BOB位置1(高字節(jié)與低字節(jié)必須相同)。BOB位為字節(jié)選擇位。BOB位置1,表示第一字節(jié)為低字節(jié)。BOB位影響數(shù)據(jù)和地址的傳送。只有主機(jī)可以修改這一位,C54X對(duì)它既不能讀也不能寫。 %26;#183;將起始地址寫入HPIA寄存器。 此后可正常存取DSP內(nèi)部RAM的數(shù)據(jù)了。 結(jié)合硬件設(shè)計(jì)和HPI的操作步驟,便可以在S3C44B0X上編寫程序?qū)崿F(xiàn)C5416的數(shù)據(jù)通信。 程序主要分為兩個(gè)部分:一部分是地址及數(shù)據(jù)的定義;一部分是實(shí)現(xiàn)代碼。具體程序如下: #define HPI_BASE 0x4000000 /* HPIC reg */ #define HPIC_W_F *(UINT8*)(HPI_BASE+0x0) //000 0 0 #define HPIC_W_S *(UINR8 *)(HPI_BASE +0x2) //000 1 0 #define HPIC_R_F *(UINT8 *) (HPI_BASE + 0x10) //110 0 0 #define HPIC_R_S *(UNIT8 *)(HPI_BASE+0x12) //110 1 0 /*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接口寄存器的地址。對(duì)S3C44B0X來(lái)說(shuō),HPI8占用其內(nèi)存的BANK2,即起始地址為0X04000000。又由于HPI8的HR/W和HBIL信號(hào)用S3C44B0X的地址線實(shí)現(xiàn),因此對(duì)同一個(gè)寄存器而言,其讀寫地址不同。 以下代碼從DSP讀出數(shù)據(jù): UINT16 read_dsp(UINT16 addr) { INT16 i; INT8 j; set_hpia(addr); //設(shè)置起始地址 i=HPID_R_A_F; //讀出第一字節(jié) j=HPID_R_A_S; //讀出第二字節(jié) return (i<<8)|(j%26;amp;0xff); } 以下代碼向DSP寫入數(shù)據(jù): void write_dsp(UINT16 addr,UINT16 dat) { set_hpia(addr-1); //設(shè)置起始地址 HPID_W_A_F=(UINT8)((dat>>8)%26;amp; 0xff); //寫入第一字節(jié) HPID_W_A_S=(UINT8)(dat %26;amp; 0xff); //寫入第二字節(jié) } 在嵌入式系統(tǒng)設(shè)計(jì)中,用S3C44B0X作為主控制器,用TMS320C5416進(jìn)行運(yùn)算,然后通過(guò)HPI接口進(jìn)行通信和交換數(shù)據(jù)。事實(shí)證明,用HPI接口在ARMDSP間通信滿足嵌入式系統(tǒng)的實(shí)時(shí)性要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉