基于ISA總線的ADSP21160鏈路口加載
引言
實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)的核心及標(biāo)志是數(shù)字信號(hào)處理器(DSP),DSP 現(xiàn)在廣泛應(yīng)用于雷達(dá)信號(hào)處理、各種通用信號(hào)處理、通訊、語音處理、圖像處理及自動(dòng)控制等各個(gè)方面。 隨著實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)的發(fā)展,單片DSP已無法滿足諸如雷達(dá)信號(hào)處理等高速實(shí)時(shí)信號(hào)處理的發(fā)展要求。 AD公司的ADSP2106X,ADSP2116X系列浮點(diǎn)DSP采用超級(jí)哈佛結(jié)構(gòu)、多級(jí)流水并擁有多達(dá)6個(gè)鏈路口,特別適合多片DSP級(jí)連,構(gòu)成多處理器并行系統(tǒng),因此廣泛應(yīng)用于雷達(dá)等高速實(shí)時(shí)信號(hào)處理系統(tǒng)。
當(dāng)ADSP用戶產(chǎn)生用戶代碼,并進(jìn)行了軟件及硬件仿真后,接下來要做的就是將程序代碼加載到DSP內(nèi)部程序空間,使程序代碼脫離仿真環(huán)境,直接運(yùn)行在硬件板卡上。本文主要介紹ADSP21160的三種主要加載方式之一-鏈路口加載,并附帶介紹了ADSP21160的鏈路口及通用計(jì)算機(jī)的ISA總線。
圖 1 ISA與Link port的接口電路
ADSP21160鏈路口的特點(diǎn)和功能
?各鏈路口可以獨(dú)立、同時(shí)工作;
?鏈路口數(shù)據(jù)可以打包成32位、48位,被處理器核訪問,與片內(nèi)存儲(chǔ)器作DMA傳輸;
?外部主機(jī)可以直接訪問鏈路口;
?雙緩沖的發(fā)送和接收寄存器;
?通過時(shí)鐘/確認(rèn)信號(hào)在鏈路通信時(shí)握手,每個(gè)鏈路均可收/發(fā)數(shù)據(jù),并分別由一個(gè)DMA通道支持;
?利用鏈路連接可以組成一維到多維的多種形式的處理器網(wǎng)絡(luò)。
鏈路口的信號(hào)握手
鏈路口握手信號(hào)包括LxACK和LxCLK,可在ADSP21160之間進(jìn)行異步數(shù)據(jù)傳輸,其它遵守同樣協(xié)議的外部設(shè)備也可與鏈路口進(jìn)行通信,本文介紹鏈路口通過可編程器件CPLD與與ISA總線通信。鏈路口以8位碼一組的方式發(fā)送32位或48位字,發(fā)送方在LxCLK的上升沿送出8位碼,接收方利用時(shí)鐘下降沿鎖存8位碼,接收方使LxACK有效,表示已準(zhǔn)備接收下一個(gè)字。在每個(gè)字發(fā)送開始時(shí),發(fā)送方如果看到LxACK無效,將使LxCLK為高,并等待LxACK有效后才開始發(fā)送新字。接收緩沖器為滿時(shí),接收方將使LxACK無效。當(dāng)發(fā)送緩沖器為空時(shí),LxCLK將保持為低。當(dāng)作為發(fā)送方時(shí),鏈路口驅(qū)動(dòng)LxCLK和LxDAT7~0;當(dāng)作為接收方時(shí),鏈路口驅(qū)動(dòng)LxACK以進(jìn)行數(shù)據(jù)發(fā)送及握手。
ADSP21160的引導(dǎo)模式
在加電復(fù)位后,ADSP21160可以自動(dòng)從外部設(shè)備加載程序,稱為引導(dǎo)。ADSP21160支持3種引導(dǎo)模式:prom、host、link port。另外還可以選擇no boot模式及通過JTAG口加載程序。常用的引導(dǎo)模式有prom 引導(dǎo)和link port引導(dǎo)。
對(duì)于prom 引導(dǎo),DSP的BMS作為輸出接EPROM片選信號(hào)線,EPROM的8位數(shù)據(jù)線接ADSP21160的DATA32~DATA39,對(duì)于多處理器共享系統(tǒng),可以用一片EPROM對(duì)所有的ADSP21160加載,即把所有處理器的BMS接在一起,只有主處理器的BMS被驅(qū)動(dòng)。
對(duì)于link port 引導(dǎo),DMAC6控制寄存器為A0H,鏈路緩沖4(LBUF4)指定到鏈路口4,用于加載外部程序,數(shù)據(jù)以8位形式在LxCLK上升沿由其它ADSP21160的link port或外部設(shè)備發(fā)送,在LxCLK下降沿鎖存到接收DSP的LBUF4中。加載程序的外部設(shè)備可以直接向鏈路口緩沖寫入數(shù)據(jù),只要寫入速率不超過DSP的主時(shí)鐘頻率即可。而此處的外部設(shè)備采用計(jì)算機(jī)的ISA總線,采用CPLD進(jìn)行l(wèi)ink port 與ISA的接口設(shè)計(jì),使ISA的輸出滿足link port 的協(xié)議。通過地址譯碼將ADSP21160的link port映射為一個(gè)I/O端口,采用I/O端口寫操作,將數(shù)據(jù)從計(jì)算機(jī)發(fā)送到ADSP21160的link port,以實(shí)現(xiàn)DSP的鏈路口加載。
加載程序采用C++語言編制,首先通過譯碼端口向鏈路口緩沖寫256X48位的引導(dǎo)碼,間隔大約50ms后加載剩余程序代碼。兩段程序發(fā)送有一段時(shí)間間隔是由于發(fā)送完引導(dǎo)碼后,引導(dǎo)碼在DSP內(nèi)部執(zhí)行,進(jìn)行初始化,初始化完畢后才可加載剩余的程序代碼,否則將導(dǎo)致加載失敗。另外,要注意向鏈路口緩沖寫數(shù)據(jù)不能太快,否則將有數(shù)據(jù)丟失,導(dǎo)致加載失敗。
ISA總線及其與link port的接口
ISA總線主要用于計(jì)算機(jī)對(duì)接口板的控制及相互之間的數(shù)據(jù)傳輸。由于link port只有8根數(shù)據(jù)線,所以,對(duì)于ISA,采用其基本的62根線,而不需要36根擴(kuò)展插槽。本接口電路只使用地址線A0~A9,數(shù)據(jù)線D0~D7,及控制線AEN,WR,I/OCHRDY。其中地址線A0~A9實(shí)現(xiàn)地址譯碼;數(shù)據(jù)線D0~D7進(jìn)行數(shù)據(jù)傳輸;控制線AEN參與譯碼以區(qū)分總線的CPU控制和DMA控制器控制,當(dāng)AEN 為低電平時(shí),由CPU控制總線,當(dāng)AEN為高時(shí),由DMA控制器控制總線; WR信號(hào)驅(qū)動(dòng)I/O端口寫,將數(shù)據(jù)從計(jì)算機(jī)發(fā)送到ADSP21160 的鏈路口;I/OCHRDY用于計(jì)算機(jī)與ADSP21160的link port的握手。為了將數(shù)據(jù)從計(jì)算機(jī)發(fā)送到link port ,需將ADSP21160的link port 4譯碼成一個(gè)I/O端口。計(jì)算機(jī)有1024個(gè)I/O端口,其中留給外部設(shè)備的的端口為0X100~0X3FF,這其中大多數(shù)又為各種計(jì)算機(jī)常用外設(shè)所占用 ,實(shí)際用戶可用的地址為0X300~0X31F,本接口電路采用0X300作為ADSP21160的link port 的口地址。
ISA與link port的接口電路由Altera公司的可編程器件CPLD實(shí)現(xiàn)。考慮到此接口電路的復(fù)雜程度,采用MAX7000S系列的EPM7064S 來實(shí)現(xiàn)。用CPLD實(shí)現(xiàn)接口電路具有以下特點(diǎn):
?高性能;
?高集成度:多種組合及時(shí)序電路可在一片CPLD上完成;
?開發(fā)周期短:通過軟件編程即可完成各種組合電路及邏輯電路的設(shè)計(jì),過去需要幾天才可完成的任務(wù),現(xiàn)在幾個(gè)小時(shí)甚至幾十分鐘即可完成;
?可在線修改:通過下載線可方便的將 pof文件傳輸?shù)紺PLD而無需將其從板上取下來,極大的方便了設(shè)計(jì);
?CPLD的輸入及輸出管腳可自由安排,有利于實(shí)現(xiàn)良好的PCB布線,特別適用于PCB 板上器件較多的情況。
ISA與link port 的接口電路
接口電路如圖1所示。由A0~A9及WR、AEN作為CPLD的輸入,CPLD實(shí)現(xiàn)譯碼及驅(qū)動(dòng),將link port 的I/O端口地址譯碼為0X300,CPLD的輸出CPLDLxCLK接到link port的LxCLK,CPLDLxCLK與ISA的WR反相;計(jì)算機(jī)ISA總線的D0~D7經(jīng)CPLD緩沖隔離,接到link port的DATA0~DATA7;link port 的LxACK通過OC門接到ISA的I/OCHRDY。當(dāng)計(jì)算機(jī)發(fā)出I/O寫時(shí),在寫信號(hào)的下降沿時(shí),計(jì)算機(jī)將數(shù)據(jù)發(fā)送到數(shù)據(jù)線,此時(shí)CPLDLxCLK為上升沿;在寫信號(hào)的上升沿,即CPLDLxCLK的下降沿,link port 將數(shù)據(jù)線上的數(shù)據(jù)鎖存。如果link port的LBUF 為滿,則將其LxACK驅(qū)動(dòng)為低,ISA的I/OCHRDY接收到此信號(hào)后將使WR保持低電平,CPLDLxCLK保持高電平,數(shù)據(jù)一直保持在數(shù)據(jù)線上。直到link port 的LBUF不滿時(shí),link port 驅(qū)動(dòng)其LxACK為高,ISA的I/OCHRDY接收到此信號(hào)后將使WR由低變高,即CPLDLxCLK由高變低,在CPLDLxCLK下降沿?cái)?shù)據(jù)線上的數(shù)據(jù)被link port鎖存到其數(shù)據(jù)緩沖器LBUF 。若無寫信號(hào),則ISA的WR信號(hào)為高電平,此時(shí)CPLDLxCLK為低電平,則link port的LxCLK信號(hào)亦為低電平,link port 不會(huì)接收任何數(shù)據(jù)。
結(jié)語
以上接口電路運(yùn)用于某雷達(dá)信號(hào)處理平臺(tái)的程序加載,運(yùn)行良好。最初接口電路的驗(yàn)證是通過使用該接口電路加載簡單測試程序完成的。因?yàn)樵撔盘?hào)處理板上ADSP21160的FLAG1引腳外接LED(發(fā)光二極管),當(dāng)FLAG1置高,LED亮。測試程序的主要功能是置FLAG1為高。加載程序運(yùn)行大約2秒后,LED亮,表示加載成功?!?BR>參考文獻(xiàn)
1 蘇濤,吳順君.高性能DSP與高速實(shí)時(shí)信號(hào)處理(第二版)
2 ADSP-21160 SHARC DSP Hardware Reference.1998
3 趙曙光,郭萬有.可編程邏輯器件原理、開發(fā)與應(yīng)用
4 李伯成,候伯亨.微型機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)
評(píng)論