国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

雙DSP共享Flash程序加載引導(dǎo)設(shè)計(jì)與實(shí)現(xiàn)*

2016-12-21 07:14王怡林
關(guān)鍵詞:存儲(chǔ)器寄存器時(shí)鐘

王怡林

(光電控制技術(shù)重點(diǎn)實(shí)驗(yàn)室,河南 洛陽 471009)

?

雙DSP共享Flash程序加載引導(dǎo)設(shè)計(jì)與實(shí)現(xiàn)*

王怡林

(光電控制技術(shù)重點(diǎn)實(shí)驗(yàn)室,河南 洛陽 471009)

針對(duì)雙DSP共享Flash進(jìn)行程序加載引導(dǎo)的復(fù)雜問題,對(duì)基于TMS320C6414和ADSP2187的雙DSP程序加載引導(dǎo)方法進(jìn)行了研究與設(shè)計(jì)。其中TMS320C6414作為主處理器,ADSP2187作為協(xié)處理器,共享的Flash芯片連接在TMS320C6414的EMIFB接口上,TMS320C6414通過EMFIA接口與ADSP2187的IDMA接口連接。系統(tǒng)上電后,TMS320C6414首先從Flash芯片讀出主處理程序并完成自身加載和引導(dǎo),然后讀出協(xié)處理程序,發(fā)送給ADSP2187并協(xié)助其完成加載和引導(dǎo)。

TMS320C6414;ADSP2187;共享Flash;加載;引導(dǎo)

0 引言

在紅外目標(biāo)跟蹤領(lǐng)域,隨著算法復(fù)雜度的提升,運(yùn)算量增長(zhǎng)速度非常驚人,這使傳統(tǒng)的單DSP處理系統(tǒng)難以負(fù)荷, 因而對(duì)復(fù)雜的信號(hào)處理算法進(jìn)行分塊并在硬件系統(tǒng)上采取多DSP 并行處理的方法勢(shì)在必行[1]。某信息處理平臺(tái)是某光電跟蹤裝置的核心,為滿足系統(tǒng)要求,該平臺(tái)以TMS320C6414和ADSP2187兩型DSP芯片為核心進(jìn)行設(shè)計(jì)?;隗w積、成本等限制,需兩個(gè)DSP共用一片F(xiàn)lash完成程序存儲(chǔ),并在上電時(shí)順利完成兩個(gè)DSP程序的加載和引導(dǎo)。本文針對(duì)這一要求進(jìn)行研究,設(shè)計(jì)了一種兩個(gè)DSP共享Flash的程序加載引導(dǎo)方法。

1 系統(tǒng)方案設(shè)計(jì)

TMS320C6414是TI公司推出的一款32位定點(diǎn)數(shù)字處理器,采用超長(zhǎng)指令字結(jié)構(gòu),一個(gè)周期可同時(shí)執(zhí)行8條指令,主頻最高達(dá)600 MHz[2],內(nèi)部包括64個(gè)用于配置的32位寄存器,還有6個(gè)計(jì)算單元(ALU),2個(gè)乘法器。接口方面具備2個(gè)外部存儲(chǔ)接口,3個(gè)多通道緩沖串行接口, 1個(gè)主機(jī)接口和通用I/O接口等,還具備EDMA功能。

ADSP2187是ADI公司的ADSP系列的定點(diǎn)數(shù)字信號(hào)處理器[3],內(nèi)含3個(gè)相互獨(dú)立的計(jì)算單元,即ALU、MAC和桶形移位器。除此之外,還有1個(gè)程序控制器(PC),1個(gè)可編程的定時(shí)器,2個(gè)數(shù)據(jù)地址產(chǎn)生器,以及32 K×24 bit的程序存儲(chǔ)空間和32 K×16 bit的數(shù)據(jù)存儲(chǔ)空間。對(duì)外接口方面包括1個(gè)可編程的Flash I/O,2個(gè)串口,1個(gè)16 bit的內(nèi)部DMA接口以及1 B DMA接口(BDMA)。

基于兩個(gè)處理器的特點(diǎn),本設(shè)計(jì)將Flash芯片連接在TMS320C6414上,程序的加載和引導(dǎo)由TMS320C6414主導(dǎo)完成。首先對(duì)TMS320C6414 的啟動(dòng)模式進(jìn)行配置。TMS320C6414 的啟動(dòng)模式由其上電時(shí)的EMIFB接口地址總線中的BEA[15:14](BOOTMODE[1:0])的連接電平?jīng)Q定, 在復(fù)位期間檢測(cè)這兩位的高低電平來決定TMS320C6414的引導(dǎo)模式。本設(shè)計(jì)將TMS320C6414的引導(dǎo)模式配置成使用默認(rèn)的8位ROM時(shí)序。TMS320C6414完成自身的程序引導(dǎo)后,通過IDMA接口向ADSP2187發(fā)送其程序并控制對(duì)方完成引導(dǎo)[4]。兩個(gè)處理器及存儲(chǔ)器連接關(guān)系如圖1所示。

圖1 處理器及存儲(chǔ)器連接關(guān)系

2 接口電路設(shè)計(jì)

要通過TMS320C6414來完成ADSP2187的程序加載和引導(dǎo),首先要使兩者之間建立通信連接,由于兩個(gè)處理器架構(gòu)以及對(duì)外接口的不同,需要對(duì)兩個(gè)處理器的通信接口進(jìn)行匹配性設(shè)計(jì),以滿足數(shù)據(jù)傳輸需求。

TMS320C6414的對(duì)外通信接口主要有兩個(gè)EMIF接口、兩個(gè)McBSP接口、一個(gè)HPI接口以及通用I/O等其他接口。ADSP2187主要的對(duì)外數(shù)據(jù)通信接口是IDMA接口,且可通過IDMA完成程序加載和引導(dǎo)。根據(jù)這兩個(gè)處理器接口的特點(diǎn),基于EMIFA接口和IDMA接口來進(jìn)行兩個(gè)處理器的數(shù)據(jù)通信接口電路設(shè)計(jì)。

EMIF接口全稱為外部存儲(chǔ)器接口(External Memory Interface),是C6000系列DSP主要的外部存儲(chǔ)器擴(kuò)展接口,最高數(shù)據(jù)吞吐率可達(dá)1 200 MB/s。可以與目前幾乎所有的存儲(chǔ)器類型直接連接,包括SBSRAM、SDRAM、SRAM、FIFO等以及其他可以共享內(nèi)部存儲(chǔ)空間的設(shè)備。

相比C6000系列其他DSP型號(hào),TMS320C6414的EMIFA接口具有以下特點(diǎn):

(1)總線寬度達(dá)64 bit。

(2)接口時(shí)鐘可以基于其輸入時(shí)鐘在片內(nèi)產(chǎn)生,有3種方案:1/6×CPU時(shí)鐘、1/4×CPU時(shí)鐘和外部輸入時(shí)鐘。

(3)具有一個(gè)可編程同步存儲(chǔ)器控制器。

(4)具備PDT信號(hào),可支持外部設(shè)備之間的數(shù)據(jù)傳輸。

ADSP2187的IDMA接口實(shí)質(zhì)上是一個(gè)并行的I/O接口,當(dāng)ADSP2187作為從機(jī)時(shí),主機(jī)可通過該接口讀/寫ADSP2187內(nèi)部的存儲(chǔ)器和寄存器。IDMA接口具有復(fù)用的16 bit數(shù)據(jù)/地址總線,支持對(duì)其內(nèi)部16 bit數(shù)據(jù)存儲(chǔ)器和24 bit程序存儲(chǔ)器的訪問,對(duì)IDMA的訪問是完全異步的。

IDMA接口的控制信號(hào)包括選擇信號(hào)(IS#)、讀取信號(hào)(IRD#)、寫入信號(hào)(IWR#)和地址鎖存信號(hào)(IAL#)。當(dāng)選擇信號(hào)和地址鎖存信號(hào)有效時(shí),ADSP2187將總線上的數(shù)據(jù)當(dāng)做地址寫入IDMA控制寄存器,當(dāng)選擇信號(hào)和讀取信號(hào)有效時(shí),ADSP2187將控制寄存器內(nèi)地址所指存儲(chǔ)單元的內(nèi)容輸出到總線上,此過程構(gòu)成一個(gè)完整的IDMA接口讀取操作。寫入操作和讀取操作的地址傳輸方式一致,完成地址傳輸后,將選擇信號(hào)和寫入信號(hào)置為有效,待寫入數(shù)據(jù)發(fā)送到總線上,ADSP2187將總線上的數(shù)據(jù)寫入IDMA控制寄存器內(nèi)地址所指存儲(chǔ)單元。

本設(shè)計(jì)將EMIFA的CE2空間設(shè)成16 bit異步接口,數(shù)據(jù)總線ED15:0與IDMA總線IAD15:0對(duì)應(yīng)連接,EMIFA地址總線EA6和EA7求異或后再與片選信號(hào)CE2求或后作為IDMA接口的選擇信號(hào)(IS#),EA6求非后與EA7、CE2以及EMIFA的讀取信號(hào)ARW共4個(gè)信號(hào)一起求與作為IDMA接口的讀取信號(hào)(IRD#)輸入, EA6求非后與EA7、CE2以及EMIFA寫入信號(hào)AWE共4個(gè)信號(hào)一起求作為IDMA接口的寫入信號(hào)(IWR#)輸入, EA7和EA6求非、ARE非、AEW非、CE2非共5個(gè)信號(hào)求與后作為地址鎖存信號(hào)(IAL#)輸入。CPLD具有編程靈活等優(yōu)點(diǎn)[5],本設(shè)計(jì)中采用CPLD完成譯碼。ADSP2187的IDMA接口輸入信號(hào)運(yùn)算關(guān)系如下:

IS=CE2+(EA6?EA7)

在TMS320C6414看來,ADSP2187控制寄存器的映射地址是0xA000 00A0,數(shù)據(jù)寄存器的映射地址是0xA000 0050。

值得說明的是,僅僅完成相關(guān)信號(hào)的譯碼和地址映射還不夠,還需要對(duì)EMIFA和IDMA進(jìn)行時(shí)序匹配。對(duì)于IDMA來說,有短周期和長(zhǎng)周期兩種讀/寫方式選擇,后者需要主機(jī)檢測(cè)IACK信號(hào)的狀態(tài)來判斷IDMA是否準(zhǔn)備好。本設(shè)計(jì)選用短周期讀/寫操作,其寫入操作的時(shí)序圖如圖2所示。

圖2 IDMA寫入操作時(shí)序

本設(shè)計(jì)中,EMIFA時(shí)鐘設(shè)置為1/6×CPU時(shí)鐘,CPU時(shí)鐘為480 MHz,則EMIFA時(shí)鐘為120 MHz。EMIFA接口CE2空間的時(shí)序由寄存器CE2CTL控制,主要包括建立時(shí)間、處罰時(shí)間、保持時(shí)間三項(xiàng)參數(shù)設(shè)置,三項(xiàng)參數(shù)均以時(shí)鐘周期數(shù)來表示。

根據(jù)圖2中IDMA接口的時(shí)序要求,建立時(shí)間、觸發(fā)時(shí)間和保持時(shí)間的總和應(yīng)大于tIWP,換算后3項(xiàng)參數(shù)的和應(yīng)大于等于2,同時(shí)保持時(shí)間應(yīng)大于tIDH,將CE2CTL相應(yīng)參數(shù)設(shè)為1即可。

TMS320C6414向ADSP2187寫入數(shù)據(jù)的流程為:先向地址0xA000 00A0寫存儲(chǔ)地址,然后向0xA000 0050寫入待寫數(shù)據(jù)即可完成寫操作。讀操作的時(shí)序匹配方法和流程與寫操作相似,不再詳述。

3 TMS320C6414加載引導(dǎo)方法

當(dāng)光電跟蹤裝置上電后,TMS320C6414 進(jìn)入復(fù)位狀態(tài),完成復(fù)位后, 其只能先將1 KB大小的程序代碼自動(dòng)加載到內(nèi)部RAM。通常情況下,光電跟蹤裝置的信息處理程序規(guī)模遠(yuǎn)遠(yuǎn)大于1 KB,為了完成整個(gè)程序的加載和引導(dǎo),必須編寫一段程序搬移代碼來將整個(gè)信息處理程序搬運(yùn)到內(nèi)部RAM,并且搬移低代碼的大小不能超過1 KB,按照TMS320C6414用戶手冊(cè)的要求,須用匯編語言完成,搬移程序在完成了信息處理程序的搬運(yùn)后,須將PC指針指向信息處理程序的入口,自此信息處理程序才能開始運(yùn)行,進(jìn)而完成目標(biāo)識(shí)別和跟蹤任務(wù)。完整的搬移程序的代碼及注釋如下:

…………;

//相關(guān)寄存器初始化工作結(jié)束

S_R .set b4

D_R .set a4

//將程序長(zhǎng)度、RAM首地址、Flash首地址的存儲(chǔ)首地址拷貝進(jìn)寄存器A3

mvkl copy_table, A3

mvkh copy_table, A3

//程序加載開始

copy_section_top:

ldw *A3++, B0

//將程序長(zhǎng)度加載到B0

ldw *A3++, A4

//將運(yùn)行首地址加載A4

ldw *A3++, B4

//將程序在Flash中的首地址加載到B4

nop 2

[!b0] b copy_done

//判斷拷貝是否完成

nop 5

shr B0,2,B1

//將B0除以4后加載到B1

//開始進(jìn)行程序加載

copy_loop:

ldw *S_R++,B5

|| mv B1, A1

//待拷貝長(zhǎng)度加載進(jìn)A1

|| sub B1, 1, B1

//長(zhǎng)度減1

//將程序從Flash讀入B5

[B1] ldw *S_R++,B5

||[B1] sub B1, 1, B1

//將B5中的程序加載到RAM中

stw B5,*D_R++

|| sub A1, 1, A1

[A1] stw B5,*D_R++

||[A1] sub A1, 1, A1

[B1] b copy_loop

//判斷是否完成加載

nop 5

//跳轉(zhuǎn)到開始處進(jìn)行下一段的加載

b copy_section_top

nop 5

//加載完成,對(duì)相應(yīng)的寄存器進(jìn)行設(shè)置

copy_done:

mvkl 0x01840000,A4

mvkh 0x01840000,A4

stw B4,*A4

nop 5

mvkl .S2 _c_int00, B0

mvkh .S2 _c_int00, B0

B .S2 B0

nop 5

//各段長(zhǎng)度、RAM首地址、Flash首地址設(shè)置

copy_table:

; .text

//代碼段長(zhǎng)度

.word 0x00029220

.word 0x00000400

.word 0x64010400

; .cinit

//變量段

.word 0x00002dcc

.word 0x000460e0

.word 0x64039620

.word 0x0

//所有段結(jié)束標(biāo)志

4 ADSP2187加載引導(dǎo)方法

ADSP2187支持從片外ROM和IDMA接口引導(dǎo)兩種方式,非常方便用戶設(shè)計(jì)系統(tǒng)的需要[6]。本文所述信息處理機(jī)采用從IDMA接口引導(dǎo)的方式實(shí)現(xiàn)預(yù)處理程序的加載引導(dǎo),ADSP2187上電后,從IDMA接口接收主處理器TMS320C6414傳輸?shù)某绦虿?zhí)行。

ADSP2187函數(shù)根據(jù)在存儲(chǔ)器中所處的位置分為函數(shù)段、數(shù)據(jù)段,函數(shù)段和數(shù)據(jù)段又根據(jù)所處的OVERLAY頁面再分為不同的段[7]。每段前3個(gè)數(shù)據(jù)標(biāo)示了該段的數(shù)據(jù)長(zhǎng)度、該段在存儲(chǔ)區(qū)域的首地址和該段所處的頁面。該段數(shù)據(jù)處于函數(shù)區(qū)還是數(shù)據(jù)區(qū)由首地址的14位標(biāo)示。

TMS320C6414首先對(duì)ADSP2187進(jìn)行復(fù)位操作,然后從Flash中讀取該段數(shù)據(jù)的函數(shù)區(qū)字節(jié)數(shù)、函數(shù)區(qū)首地址和函數(shù)段所處的頁面,再從Flash中搬移1 B,通過IDMA口寫到ADSP2187的函數(shù)區(qū),寫完后再從該函數(shù)區(qū)地址讀出數(shù)據(jù)并與所寫的數(shù)據(jù)進(jìn)行比較,如果不相等則重新寫該地址和校對(duì),循環(huán)TryCycle次退出;如果相等,則進(jìn)行下一個(gè)字節(jié)的傳輸,直到該段數(shù)據(jù)全部傳輸?shù)紸DSP2187中。同樣地,TMS320C6414再把其余數(shù)據(jù)通過IDMA口傳輸?shù)紸DSP2187中,最后在ADSP2187的0地址寫數(shù)啟動(dòng)ADSP2187運(yùn)行,并以此判斷整個(gè)循環(huán)的結(jié)束。因?yàn)锳DSP2187函數(shù)區(qū)數(shù)據(jù)為24 bit,因此對(duì)函數(shù)區(qū)數(shù)據(jù)讀寫時(shí)需要同時(shí)讀取2 B數(shù)據(jù)。

對(duì)ADSP2187芯片IDMA接口的讀寫,通過對(duì)IDMA的控制寄存器和OVERLAY寄存器的操作來實(shí)現(xiàn)。寄存器各位定義如圖3、圖4所示。

圖3 IDMA 控制寄存器

圖4 IDMA Overlay寄存器

對(duì)ADSP2187IDMA口的操作需要先對(duì)IDMA口控制寄存器和OVERLAY寄存器進(jìn)行配置,說明需要讀取的數(shù)據(jù)是程序區(qū)還是數(shù)據(jù)區(qū)、在哪個(gè)頁面中、地址為多少,然后對(duì)總線進(jìn)行讀寫操作,從而實(shí)現(xiàn)對(duì)ADSP2187內(nèi)部存儲(chǔ)區(qū)的讀寫。

得益于接口電路的作用,TMS320C6414可以通過對(duì)地址0x03200000的操作來實(shí)現(xiàn)對(duì)IDMA控制寄存器和OVERLAY寄存器的配置,當(dāng)寫到該地址的數(shù)據(jù)最高位為1時(shí),對(duì)OVERLAY寄存器進(jìn)行操作,為0時(shí)則對(duì)控制寄存器進(jìn)行操作;可以通過對(duì)地址0x03100000的讀寫實(shí)現(xiàn)對(duì)數(shù)據(jù)總線的讀寫。ADSP2187的程序加載引導(dǎo)邏輯流程如圖5所示。

5 結(jié)論

本設(shè)計(jì)實(shí)現(xiàn)了TMS320C6414和ADSP2187兩個(gè)DSP芯片共享Flash的程序引導(dǎo)加載,該設(shè)計(jì)已成功應(yīng)用于某光電跟蹤裝置上,較好地完成了信息處理程序的加載和引導(dǎo),工作穩(wěn)定可靠。本文設(shè)計(jì)方法為將來其他多DSP共享Flash的信息處理機(jī)設(shè)計(jì)提供了參考,有著重要的實(shí)際意義。

[1] 李宏,李偉,李蒙,等.基于多DSP的紅外目標(biāo)跟蹤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,2006,32(8):59-61.

[2] 楊明,趙曉博,狄衛(wèi)國,等.基于TMS320C6414的大容量存儲(chǔ)器擴(kuò)展設(shè)計(jì)[J]. 自動(dòng)化技術(shù)與應(yīng)用,2008(6):103-105.

[3] 王冬,李登科.基于雙DSP的信息處理機(jī)設(shè)計(jì)[J].國外電子測(cè)量技術(shù),2013,32(6):89-92.

[4] 趙熠,景德勝.一種基于雙處理器的信息處理平臺(tái)的設(shè)計(jì)[J].電子技術(shù)設(shè)計(jì)與應(yīng)用,2015(6):86-87.

[5] 陳誠,陳曉平,王識(shí)君.基于DSP+CPLD的電動(dòng)舵機(jī)控制系統(tǒng)的設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,2015,41(4):84-86.

[6] 陳勇,賈明永,董德新,等.ADSP2187L在某光電跟蹤裝置中的應(yīng)用[J].航空兵器,2004(4):22-24.

[7] 梁楷.ADSP-218X的IDMA接口設(shè)計(jì)[J].網(wǎng)絡(luò)財(cái)富,2010(21):183.

Design and implementation of program loading for dual DSP shared Flash

Wang Yilin

(Science and Technology on Electro-optic Control Laboratory, Luoyang 471009, China)

Promgram loading and booting for dual DSP system sharing Flash is very complex. This paper takes a research on that issue based on TMS320C6414 and ADSP2187. TMS320C6414 is master processor, and ADSP2187 is co-pocessor. The shared Flash chip is connected to the EMIFB of TMS320C6414, the IDMA of ADSP2187 is connected to the EMIFA. When the system is powered,TMS320C6414 reads the main processing program from Flash chip,then completes loading and booting. Then TMS320C6414 reads the co-program and sends to ADSP2187, and helps it to load and boot the program.

TMS320C6414; ADSP2187; shared Flash; load; boot

圖5 ADSP2187程序引導(dǎo)邏輯流程

國家自然科學(xué)基金(61273075)

TP368

A

10.19358/j.issn.1674- 7720.2016.23.009

王怡林. 雙DSP共享Flash程序加載引導(dǎo)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2016,35(23):31-34.

2016-08-08)

王怡林(1979-),女,本科,工程師,主要研究方向:光電跟蹤控制。

猜你喜歡
存儲(chǔ)器寄存器時(shí)鐘
STM32和51單片機(jī)寄存器映射原理異同分析
別樣的“時(shí)鐘”
靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
古代的時(shí)鐘
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
移位寄存器及算術(shù)運(yùn)算應(yīng)用
有趣的時(shí)鐘
任意2~k點(diǎn)存儲(chǔ)器結(jié)構(gòu)傅里葉處理器
時(shí)鐘會(huì)開“花”
存儲(chǔ)器——安格爾(墨西哥)▲
彰化县| 昌宁县| 玉屏| 丹阳市| 许昌县| 新营市| 四子王旗| 铁岭市| 锦州市| 板桥市| 长兴县| 丽江市| 依安县| 梅州市| 普安县| 五家渠市| 逊克县| 抚顺县| 绍兴县| 南汇区| 翼城县| 乌拉特中旗| 洞口县| 黄山市| 昌黎县| 广灵县| 小金县| 苏州市| 锦屏县| 明溪县| 西和县| 泰兴市| 江津市| 会宁县| 阿尔山市| 巴东县| 禄丰县| 海原县| 廊坊市| 通榆县| 高清|