雙片ADSP-21160系統(tǒng)的程序加載設(shè)計
來源:21IC中國電子網(wǎng) ; 作者:電子科技大學(xué) 韓瑋
本文檔詳細(xì)說明了雙片ADSP-21160系統(tǒng)的加載,以及如何在VISUAL DSP++集成開發(fā)環(huán)境中通過DSP將引導(dǎo)程序上載到FLASH中。SHARC系列是美國模擬器件公司(Analog Devices)的重要芯片系列之一。該系列產(chǎn)品具有很強(qiáng)的數(shù)字信號處理能力,多片SHARC芯片可以構(gòu)成更為處理能力強(qiáng)大的系統(tǒng),廣泛應(yīng)用于通信,雷達(dá)等領(lǐng)域。SHARC系列芯片族包含了ADSP-21060/21061/21601/21065L,以及最新的21160/21161系列。它們共同的特點(diǎn)是不但有強(qiáng)大的處理能力,而且有豐富的接口資源,十分適合多片級聯(lián)構(gòu)成功能更復(fù)雜的系統(tǒng)。
在多片系統(tǒng)中,如何對多片SHARC DSP進(jìn)行程序加載是一個比較實(shí)際的問題,本文就是從硬件構(gòu)架和軟件流程上對雙片ADSP-21160的SHARC系統(tǒng)的加載問題進(jìn)行分析的。
1.;雙片ADSP-21160系統(tǒng)的硬件構(gòu)架
1.1;雙片ADSP-21160的連接以AD21160N為例。
兩片SHARC分別為DSP1和DSP2,相應(yīng)的ID2~0管腳置為001和010。其中ID為001的是主片,ID為010的為從片。
如果系統(tǒng)采用非主機(jī)引導(dǎo)模式,每片的/HBG,/HBR分別置為無效狀態(tài)(拉高)。
如果加載采用EPROM引導(dǎo),每片SHARC的/BMS做線或后和EPROM的/CE相連。并且每片的BR1,BR2對應(yīng)相連,其余BRx置為無效(拉高)。
ACK信號決定了總線權(quán)的轉(zhuǎn)移,應(yīng)該把ACK強(qiáng)制拉高。當(dāng)ID = 000(單片系統(tǒng)),或者ID = 001(多片系統(tǒng)的主片)的時候,ACK會自動內(nèi)部拉高。為了保險起見,可以把主片和從片的ACK都在外部強(qiáng)制拉高。否則,會出現(xiàn)總線權(quán)不能交給從片的現(xiàn)象。
地址總線和數(shù)據(jù)總線對應(yīng)相連,并和EPROM的地址線,數(shù)據(jù)線相連。
當(dāng)雙片系統(tǒng)加電后,主片ADSP-21160和從片ADSP-21160都是從EPROM中讀出256個字節(jié)的初始程序段。這256個字節(jié)的程序段包含了加載初始化信息,在此段的最后有一張?zhí)D(zhuǎn)表,顯示了不同ID的程序?qū)?yīng)的不同的存儲地址。SHARC通過讀自己的系統(tǒng)寄存器得到自己的ID,然后取出自己所要加載的程序代碼的偏移地址。
根據(jù)SHARC的總線制裁機(jī)制,ID號低的SHARC有較高的優(yōu)先權(quán),所以ID=001的主片先加載。當(dāng)?shù)谝黄虞d完畢后,通過BR1通知第二片可以開始加載,總線權(quán)轉(zhuǎn)移到ID=010的SHARC。當(dāng)?shù)诙虞d完畢后,通過BR2通知系統(tǒng),然后此雙片系統(tǒng)開始運(yùn)行程序。
;;
1.2;ADSP-21160與FLASH的連接
FLASH的CE,OE,WE分別與AD21160的BMS,RD,WR相連,其中BMS表示片選信號,WR為寫信號,RD為讀信號。另外FLASH的地址線和數(shù)據(jù)線也分別與DSP連接好。
如果把AD21160的MS0~2與FLASH的片選線相連,就是把FLASH成了AD21160的外部擴(kuò)展存儲區(qū)。這樣會帶來方便,首先,可以在VisualDSP++ for SHARC中直接讀FLASH里的數(shù)據(jù),無需編程讀出;其次,可以用直接讀寫的辦法燒寫FLASH,還可以用軟件控制插入的等待時間。
如果僅用BMS與FLASH相連,那么就只能用DMA的方式進(jìn)行FLASH的讀寫操作。
1.3;燒寫FLASH的方式
當(dāng)使用BMS片選FLASH的時候,F(xiàn)LASH作為AD21160的字節(jié)存儲空間,AD21160只能通過DMA方式訪問FLASH。
完成一次DMA傳送需對4個存儲器映像寄存器進(jìn)行設(shè)置。注意,寫FLASH只能使用DMA10。
具體如下:
1.設(shè)置BSO,使BMS強(qiáng)制有效,并打開DMA10的中斷使能;
;;USTAT1 = DM(SYSCON);
BIT SET USTAT1 BSO;
DM(SYSCON) = USTAT1;
;;BIT SET MODE1 IRPTEN;
;;BIT SET IMASK EP1I;
;;BIT SET IMASK EP0I;
2.注意對FLASH的寫是字節(jié)編程,所以要把數(shù)據(jù)文件轉(zhuǎn)化為8bit的字節(jié)形式。每次DMA只能送出一個字節(jié)。
3.因?yàn)锽MS片選FLASH,所以不能對FLASH的讀寫進(jìn)行插入等待狀態(tài)的指令。變通的辦法是,DMA次數(shù)寄存器設(shè)為3或3以上的整數(shù),即對同一個地址連續(xù)多次寫入同一個字節(jié),等效于插入等待狀態(tài),拉寬寫使能信號的寬度。
4.有關(guān)FLASH讀寫時序,請參看所使用的FLASH的datasheet,并按照其時序和控制字要求,使用SHARC的匯編指令編寫FLASH的燒寫程序。該程序可以通過仿真器在SHARC芯片上運(yùn)行,實(shí)現(xiàn)把.dat文件燒寫到FLASH中。
2.;雙片系統(tǒng)的LDF文件
LDF文件是對系統(tǒng)的存儲資源進(jìn)行說明和定義的文件,雙片系統(tǒng)的LDF與單片的LDF有所不同。為了更好的進(jìn)行雙片之間的通信,其LDF文件一般定義如下:
ARCHITECTURE(ADSP-21160);;;;;;21160系統(tǒng)
SEARCH_DIR( $ADI_DSP\211xx\lib ); 庫文件路徑
$LIBRARIES = lib160.dlb