- 相關(guān)推薦
DSP接口效率的分析與提高
摘要:分析了導致DSP系統接口效率低下的幾種情況,重點(diǎn)敘述了相應的提高效率的設計方法,并提供了電路圖和源程序。近幾年來(lái),數字信號處理器(DSP)得到了廣泛的應用。由于DSP采用程序空間和數據空間分離的哈佛結構,對程序和數據并行操作,使之成倍地提高了處理速度;再加上流水線(xiàn)技術(shù),使得DSP的指令周期多為10ns級。而與之配套的外圍器件卻沒(méi)有像DSP那樣猛地發(fā)展。首先,DSP與外圍器件之間的速度差異日益顯著(zhù),大部分外圍器件的讀寫(xiě)周期在50ns以上,即使是最快的靜態(tài)RAM,其讀寫(xiě)周期亦為8ns左右,也只能與50MHz以下的DSP直接接口;其次,一些領(lǐng)域的器件在設計時(shí)并沒(méi)有考慮與DSP接口,以至于不能直接接入DSP總線(xiàn),如CAN總線(xiàn)控制器SA1000采用地址總線(xiàn)與數據總線(xiàn)分時(shí)復用的總線(xiàn)接口。這使得DSP與許多外部器件難以接口,特別是在與多個(gè)外部器件接口或者與總線(xiàn)不兼容的外部器件接口時(shí),常常會(huì )出現因接口處理不當而導致接口效率低下的情況。當DSP對外部器件的操作頻率很高時(shí),接口效率的高低將對系統的運行速度產(chǎn)生不可忽略的影響。
1 多個(gè)外設的情況
當DSP與低速器件接口時(shí),可以通過(guò)設置DSP片內的等待狀態(tài)產(chǎn)生控制寄存器(WSGR),在相應的程序空間、數據空間或I/O空間產(chǎn)生1~7個(gè)等待周期,以使DSP的訪(fǎng)問(wèn)速度能和低速器件相匹配。當在同一空間內既有低速器件又有高速器件時(shí),通常WSGR的延時(shí)值被設置成與速度最慢的器件相一致,以保證DSP對所有的器件都能進(jìn)行正確的訪(fǎng)問(wèn)。若對高速器件的操作很頻繁,則這種對整個(gè)空間的延時(shí)將極不合理地降低系統速度。例如,有些系統在程序空間同時(shí)擴展有RAM和ROM。而ROM的速度一般遠遠低于RAM,其訪(fǎng)問(wèn)周期一般為100~200ns,即使DSP和RAM的訪(fǎng)問(wèn)速度均可達到25ns,但對整個(gè)數據空間進(jìn)行延時(shí)后,DSP也只能以ROM的訪(fǎng)問(wèn)速度(100~200ns)對RAM進(jìn)行訪(fǎng)問(wèn)。
在這種情況下,首先應考慮使用軟件方法提供效率。其方法是默認的情況下將WSGR設置成與高速器件一致,當要訪(fǎng)問(wèn)低速器件時(shí)再修改WSGR的值。DSP常常對外部件進(jìn)行連續操作,在這種情況下,軟件方法還是比較有效的。但最大問(wèn)題在于增加了軟件負擔和不穩定因素。
顯然,效率最高的情況是,既不需要修改WSGR,DSP又能以外部器件本身的速度對它們進(jìn)行訪(fǎng)問(wèn)。事實(shí)上,只要能夠產(chǎn)生適當的信號控制DSP的READY端,就可以達到這個(gè)目的。DSP在開(kāi)始一個(gè)外部總線(xiàn)的操作后,會(huì )在每一個(gè)CLKOUT信號(DSP的時(shí)鐘輸出)的上升沿時(shí)刻對READY端進(jìn)行查詢(xún),若READY為低,則保持總線(xiàn)的狀態(tài)不變,然后在下一個(gè)CLKOUT上升沿時(shí)刻兩次查詢(xún),直至查詢(xún)到READY為高時(shí)結束本次總線(xiàn)訪(fǎng)問(wèn)。
下面的設計實(shí)例中介紹的硬件等待電路(見(jiàn)圖1)能夠實(shí)現這個(gè)功能。它針對不同的外部器件產(chǎn)生相應的等待信號送到DSP的READY端,實(shí)現硬等待。其核心器件采用了廣泛應用的通用邏輯陣列(GAL),GAL的引腳定義與圖1相對應。使用GAL器件使硬件設計變得簡(jiǎn)單而靈活,可以完成比較復雜的邏輯關(guān)系。
例如,頻率為50MHz的DSP在數據空間外擴有RAM和ROM各一片,訪(fǎng)問(wèn)周期分別為70ns和150ns,地址空間分別為0x8000~0x8fff和0x9000~0x9fff。由DSP的主頻可知,對RAM和ROM的訪(fǎng)問(wèn)各需插入3個(gè)和7個(gè)等待周期。下面給出GAL源文件的關(guān)鍵部分(它們使用匯編程序FM的格式編寫(xiě)):
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è)三位的二進(jìn)制計數器
;Q2為最高位、Q0為最低位
;對讀信號或寫(xiě)信號的寬度進(jìn)行計數
GAL_READY.OE=VCC
/GAL_READY=/DS*A15*/A14*/A13*/A12*/Q1 /DS*A15*/A14*/A13*A12*Q1*/A0
;為RAM的訪(fǎng)問(wèn)插入3個(gè)周期
/DS*A15*/A14*/A13*A12*/Q0
/DS*A15*/A14*/A13*/Q1
/DS*A15*/A14*/A13*A12*/Q2
;為ROM的訪(fǎng)問(wèn)插入7個(gè)周期
圖2是一個(gè)與寫(xiě)時(shí)序對應的時(shí)序圖,其中在下三角符號標出的時(shí)刻,DSP對READY端進(jìn)行查詢(xún)。
這種方法能夠充分使用硬件的速度,并且對軟件是透明的,不會(huì )增加編程人員的負擔。
圖3 DSP與SJA1000的接口原理圖
2 總線(xiàn)不兼容的情況
有一類(lèi)芯片的總線(xiàn)接口是分時(shí)復用的,如CAN總線(xiàn)控制器SJA1000。SJA1000有8位的數據和地址復用的總線(xiàn),可以和多種MCU直接相連。一次總線(xiàn)操作開(kāi)始時(shí),總線(xiàn)先傳遞此次操作訪(fǎng)問(wèn)的地址,在A(yíng)LE信號將地址鎖存后,再進(jìn)行數據讀寫(xiě)。而DSP的數據總線(xiàn)和地址總線(xiàn)被并行地引出,這種并行結構比分時(shí)復用的串行結構先進(jìn),有著(zhù)高一倍的帶寬。但DSP被設計時(shí)并沒(méi)有考慮過(guò)會(huì )在芯片外將并行的總線(xiàn)再串行化,也就是沒(méi)有設計相應的輔助信號來(lái)完成這種轉換。這使得完全使用硬件方法進(jìn)行串行轉換比較困難。
此類(lèi)問(wèn)題通常使用軟件和硬件配合解決,并不真正地靠硬件進(jìn)行園,而是把一次總線(xiàn)操作分解成兩步。先把此次操作的目標地址作為數據送到總線(xiàn)上,同時(shí)通過(guò)硬件產(chǎn)生一個(gè)鎖存信號將其鎖
【DSP接口效率的分析與提高】相關(guān)文章:
增強并口EPP與DSP接口的設計增強并口EPP與DSP接口的設計03-18
TLC320AD50C與DSP接口設計03-18
Trimedia DSP芯片JTAG接口的仿真器設計03-18
MPC8272總線(xiàn)與DSP HPI總線(xiàn)接口的FPGA實(shí)現03-07
TM1300 DSP系統以太網(wǎng)接口的設計03-18
觸摸屏控制器與DSP接口的研究與設計03-07