DSP接口效率的分析與提高
1多個(gè)外設(shè)的情況
當(dāng)DSP與低速器件接口時(shí),可以通過設(shè)置DSP片內(nèi)的等待狀態(tài)產(chǎn)生控制寄存器(WSGR),在相應(yīng)的程序空間、數(shù)據(jù)空間或I/O空間產(chǎn)生1~7個(gè)等待周期,以使DSP的訪問速度能和低速器件相匹配。當(dāng)在同一空間內(nèi)既有低速器件又有高速器件時(shí),通常WSGR的延時(shí)值被設(shè)置成與速度最慢的器件相一致,以保證DSP對(duì)所有的器件都能進(jìn)行正確的訪問。若對(duì)高速器件的操作很頻繁,則這種對(duì)整個(gè)空間的延時(shí)將極不合理地降低系統(tǒng)速度。例如,有些系統(tǒng)在數(shù)據(jù)空間同時(shí)擴(kuò)展有RAM和ROM。而ROM的速度一般遠(yuǎn)遠(yuǎn)低于RAM,其訪問周期一般為100~200ns,即使DSP和RAM的訪問速度均可達(dá)到25ns,但對(duì)整個(gè)數(shù)據(jù)空間進(jìn)行延時(shí)后,DSP也只能以ROM的訪問速度(100~200ns)對(duì)RAM進(jìn)行訪問。在這種情況下,首先應(yīng)考慮使用軟件方法提高效率。其方法是在默認(rèn)的情況下將WSGR設(shè)置成與高速器件一致,當(dāng)要訪問低速器件時(shí)再修改WSGR的值。DSP常常對(duì)外部器件進(jìn)行連續(xù)操作,在這種情況下,軟件方法還是比較有效的。但最大問題在于增加了軟件負(fù)擔(dān)和不穩(wěn)定因素。顯然,效率最高的情況是,既不需要修改WSGR,DSP又能以外部器件本身的速度對(duì)它們進(jìn)行訪問。事實(shí)上,只要能夠產(chǎn)生適當(dāng)?shù)男盘?hào)控制DSP的READY端,就可以達(dá)到這個(gè)目的。DSP在開始一個(gè)外部總線的操作后,會(huì)在每一個(gè)CLKOUT信號(hào)(DSP的時(shí)鐘輸出)的上升沿時(shí)刻對(duì)READY端進(jìn)行查詢,若READY為低,則保持總線的狀態(tài)不變,然后在下一個(gè)CLKOUT上升沿時(shí)刻再次查詢,直至查詢到READY為高時(shí)結(jié)束本次總線訪問。下面的設(shè)計(jì)實(shí)例中介紹的硬件等待電路(見圖1)能夠?qū)崿F(xiàn)這個(gè)功能。它針對(duì)不同的外部器件產(chǎn)生相應(yīng)的等待信號(hào)送到DSP的READY端,實(shí)現(xiàn)硬等待。其核心器件采用了廣泛應(yīng)用的通用邏輯陣列(GAL),GAL的引腳定義與圖1相對(duì)應(yīng)。使用GAL器件使硬件設(shè)計(jì)變得簡單而靈活,可以完成比較復(fù)雜的邏輯關(guān)系。
例如,頻率為50MHz的DSP在數(shù)據(jù)空間外擴(kuò)有RAM和ROM各一片,訪問周期分別為70ns和150ns,地址空間分別為0x8000~0x8fff和0x9000~0x9fff。由DSP的主頻可知,對(duì)RAM和ROM的訪問各需插入3個(gè)和7個(gè)等待周期。下面給出GAL源文件的關(guān)鍵部分(它們使用匯編程序FM的格式編寫):Q0:=/Q0*/RD+/Q0*/WR
Q1:=/Q0*Q1*/RD+Q0*/Q1*/RD+/Q0*Q1*/WR
+Q0*/Q1*/WR
Q2:=/Q1*Q2*/RD+/Q0*Q1*Q2*/RD+Q0*Q1*/Q2*/RD
+/Q1*Q2*/WR+/Q0*Q1*Q2*/WR+Q0*Q1*/Q2*/WR
;構(gòu)成一個(gè)三位的二進(jìn)制計(jì)數(shù)器
;Q2為最高位、Q0為最低位
;對(duì)讀信號(hào)或?qū)懶盘?hào)的寬度進(jìn)行計(jì)數(shù)
GAL_READY.OE=VCC
/GAL_READY=/DS*A15*/A14*/A13*/A12*/Q1
+/DS*A15*/A14*/A13*/A12*Q1*/Q0
;為RAM的訪問插入3個(gè)周期
+/DS*A15*/A14*/A13*A12*/Q0
+/DS*A15*/A14*/A13*A12*/Q1
+/DS*A15*/A14*/A13*A12*/Q2
;為ROM的訪問插入7個(gè)周期
圖2是一個(gè)與寫時(shí)序?qū)?yīng)的時(shí)序圖,其中在下三角符號(hào)標(biāo)出的時(shí)刻,DSP對(duì)READY端進(jìn)行查詢。
這種方法能夠充分使用硬件的速度,并且對(duì)軟件是透明的,不會(huì)增加編程人員的負(fù)擔(dān)。
評(píng)論