国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現(xiàn)在位置:范文先生網>理工論文>電子通信論文>DSP接口效率的分析與提高

DSP接口效率的分析與提高

時間:2023-02-20 22:38:08 電子通信論文 我要投稿
  • 相關推薦

DSP接口效率的分析與提高

摘要:分析了導致DSP系統(tǒng)接口效率低下的幾種情況,重點敘述了相應的提高效率的設計方法,并提供了電路圖和源程序。
  關鍵詞:DSP接口電路CAN控制器
  
  近幾年來,數字信號處理器(DSP)得到了廣泛的應用。由于DSP采用程序空間和數據空間分離的哈佛結構,對程序和數據并行操作,使之成倍地提高了處理速度;再加上流水線技術,使得DSP的指令周期多為10ns級。而與之配套的外圍器件卻沒有像DSP那樣猛地發(fā)展。首先,DSP與外圍器件之間的速度差異日益顯著,大部分外圍器件的讀寫周期在50ns以上,即使是最快的靜態(tài)RAM,其讀寫周期亦為8ns左右,也只能與50MHz以下的DSP直接接口;其次,一些領域的器件在設計時并沒有考慮與DSP接口,以至于不能直接接入DSP總線,如CAN總線控制器SA1000采用地址總線與數據總線分時復用的總線接口。這使得DSP與許多外部器件難以接口,特別是在與多個外部器件接口或者與總線不兼容的外部器件接口時,常常會出現(xiàn)因接口處理不當而導致接口效率低下的情況。當DSP對外部器件的操作頻率很高時,接口效率的高低將對系統(tǒng)的運行速度產生不可忽略的影響。
  
  1多個外設的情況
  
  當DSP與低速器件接口時,可以通過設置DSP片內的等待狀態(tài)產生控制寄存器(WSGR),在相應的程序空間、數據空間或I/O空間產生1~7個等待周期,以使DSP的訪問速度能和低速器件相匹配。當在同一空間內既有低速器件又有高速器件時,通常WSGR的延時值被設置成與速度最慢的器件相一致,以保證DSP對所有的器件都能進行正確的訪問。若對高速器件的操作很頻繁,則這種對整個空間的延時將極不合理地降低系統(tǒng)速度。例如,有些系統(tǒng)在程序空間同時擴展有RAM和ROM。而ROM的速度一般遠遠低于RAM,其訪問周期一般為100~200ns,即使DSP和RAM的訪問速度均可達到25ns,但對整個數據空間進行延時后,DSP也只能以ROM的訪問速度(100~200ns)對RAM進行訪問。
  
  在這種情況下,首先應考慮使用軟件方法提供效率。其方法是默認的情況下將WSGR設置成與高速器件一致,當要訪問低速器件時再修改WSGR的值。DSP常常對外部件進行連續(xù)操作,在這種情況下,軟件方法還是比較有效的。但最大問題在于增加了軟件負擔和不穩(wěn)定因素。
  
  顯然,效率最高的情況是,既不需要修改WSGR,DSP又能以外部器件本身的速度對它們進行訪問。事實上,只要能夠產生適當的信號控制DSP的READY端,就可以達到這個目的。DSP在開始一個外部總線的操作后,會在每一個CLKOUT信號(DSP的時鐘輸出)的上升沿時刻對READY端進行查詢,若READY為低,則保持總線的狀態(tài)不變,然后在下一個CLKOUT上升沿時刻兩次查詢,直至查詢到READY為高時結束本次總線訪問。
  
  下面的設計實例中介紹的硬件等待電路(見圖1)能夠實現(xiàn)這個功能。它針對不同的外部器件產生相應的等待信號送到DSP的READY端,實現(xiàn)硬等待。其核心器件采用了廣泛應用的通用邏輯陣列(GAL),GAL的引腳定義與圖1相對應。使用GAL器件使硬件設計變得簡單而靈活,可以完成比較復雜的邏輯關系。
  
  例如,頻率為50MHz的DSP在數據空間外擴有RAM和ROM各一片,訪問周期分別為70ns和150ns,地址空間分別為0x8000~0x8fff和0x9000~0x9fff。由DSP的主頻可知,對RAM和ROM的訪問各需插入3個和7個等待周期。下面給出GAL源文件的關鍵部分(它們使用匯編程序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
  
  ;構成一個三位的二進制計數器
  
  ;Q2為最高位、Q0為最低位
  
  ;對讀信號或寫信號的寬度進行計數
  
  GAL_READY.OE=VCC
  
  /GAL_READY=/DS*A15*/A14*/A13*/A12*/Q1+/DS*A15*/A14*/A13*A12*Q1*/A0
  
  ;為RAM的訪問插入3個周期
  
  +/DS*A15*/A14*/A13*A12*/Q0
  
  
  
  
  +/DS*A15*/A14*/A13*/Q1
  
  +/DS*A15*/A14*/A13*A12*/Q2
  
 ;為ROM的訪問插入7個周期
  
  圖2是一個與寫時序對應的時序圖,其中在下三角符號標出的時刻,DSP對READY端進行查詢。
  
  這種方法能夠充分使用硬件的速度,并且對軟件是透明的,不會增加編程人員的負擔。
  
  圖3DSP與SJA1000的接口原理圖
  
  2總線不兼容的情況
  
  有一類芯片的總線接口是分時復用的,如CAN總線控制器SJA1000。SJA1000有8位的數據和地址復用的總線,可以和多種MCU直接相連。一次總線操作開始時,總線先傳遞此次操作訪問的地址,在ALE信號將地址鎖存后,再進行數據讀寫。而DSP的數據總線和地址總線被并行地引出,這種并行結構比分時復用的串行結構先進,有著高一倍的帶寬。但DSP被設計時并沒有考慮過會在芯片外將并行的總線再串行化,也就是沒有設計相應的輔助信號來完成這種轉換。這使得完全使用硬件方法進行串行轉換比較困難。
  
  此類問題通常使用軟件和硬件配合解決,并不真正地靠硬件進行園,而是把一次總線操作分解成兩步。先把此次操作的目標地址作為數據送到總線上,同時通過硬件產生一個鎖存信號將其鎖存。然后再進行讀寫操作,讀寫操作的目標地址就是上一步被鎖存的地址。
  
  使用這種辦法,硬件和軟件都不需要進行復雜的變換。唯一的缺點是指令的效率變低了。由于SJA1000的讀寫周期一般是DSP的指令周期的幾倍,一次訪問被分解成兩次后多消耗的時間不能忽略。還有一個更重要的影響是,這種轉換方法在尋址時無法使用DSP的并行尋址功能,必須使用另外的變量獨立運行。在多數的CAN總線應用中,這種處理方法不會對系統(tǒng)的整體性能產生太大的影響。但在有的系統(tǒng)中,這種低效是不可容忍的,如由DSP和SJA1000組成的CAN總線網關,它含有多個SJA1000芯片,并且在SJA1000之間需要經常進行數據塊的搬移。對于次數頻繁并且尋址有規(guī)律的操作,利用DSP的并行尋址功能將極大地提高程序的效率。以下程序段可在兩個同網段的SJA1000之間完成一幀消息搬移功能(它在每次操作的同時對下次操作的地址進行并行尋址):
  
  Larar0,mlength;取消息的長度
  
  Larar1,#SJA1_A;一個SJA1000中接收郵箱的首地址
  
  Larar2,#SJA2_S;另一個SJA1000中發(fā)送郵箱的首地址
  
  Mar*,ar0
  
  Mar*-,ar1
  
  Loop:;復制一幀消息
  
  Lacl*+,ar2
  
  Sacl*+,ar0
  
  Banzloop,*-,ar1
  
  如果按下述方法改寫這段程序,不僅對SJA1000的操作時間要增加倍,而且每次操作前都要對地址進行運算,使得完成同樣功能的程序運行時間要增加到原來的3~4倍。
  
  這時,只有使用純硬件的解決方法才能獲得理想的效果。設計的關鍵是生成合適的鎖存信號ALE,使它能夠滿足SJA1000的時序要求。通過研究DSP控制信號的時序要吧發(fā)現(xiàn),從地址建立到讀寫控制信號有效大約要經歷二分之一個CPU時鐘的時間,而SJA1000的ALE信號要求的最小寬度為8ns,因此對于主頻在50MHz(CPU時鐘為20ns)以下DSP,可以利用這二分之一個CPU時鐘的時間間隔生成ALE信號。圖3給出了含兩片SJA1000的接口電路圖。除了片選信號外,這兩片SJA1000的總線和其它控制信號都連在一起。
  
  假設SJA1000的片選地址為0X8xxx和0x9xxx,各引腳定義與圖中對應,則GAL中的邏輯關系如下:
  
  /ADDR_G=DSP_RD*DSP_WR*RD*WR
  
  /DATA_G=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*ADDR_G
  
  /WR=/DSP_WR*/ALE
  
  /RD=/DSP_RD*/ALE
  
  ALE=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
  
  *DSP_RD*DSP_WR
  
  /CS1=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
  
  */DSP_A12*ADDR_G
  
  /CS2=/DSP_DS*DSP_A15*/DSP_A14*/DS
  
  
  
  P_A13*DSP_A12*ADDR_G
  
  對其中一片進行讀寫操作,則時序關系如圖4所示。
  
  其中,twr、tww分別為DSP讀、寫時的ALE信號寬度,它們都接近1/2個CLKOUT的周期。T為ALE的下降沿到RD、WR有效的時間,它由GAL翻轉的延時產生,為10ns以上(注:本圖中DSP的時序來自TMS320C24xxA系列,不同系列的DSP產品之間時序可能有細微的差別)。
  
  對于主頻高于50MHz的DSP,應當使用有更高工作頻率的可編程邏輯器件,并將前面介紹的主數器引入編程邏輯器件內,來產生滿足時序要求的鎖存信號。
  
  本文介紹的兩種高效率的DSP接口的設計方法,去掉了在DSP訪問外設時任何不必要的時間消耗。當然,效率的提高是以增加硬件的復雜雜度為代價的,在能夠滿足設計要求的前提下,設計者應該選擇簡單的設計方案。而對于頻繁進行外設訪問的高性能系統(tǒng),本文提供了理想的接口方案。
  
  
  
  

【DSP接口效率的分析與提高】相關文章:

增強并口EPP與DSP接口的設計增強并口EPP與DSP接口的設計08-06

DSP與慢速設備接口的實現(xiàn)08-06

基于DSP平臺的USB接口設計08-06

運用分析性復核,提高獨立審計效率08-07

CAN總線控制器與DSP的接口08-06

用FIFO設計A/D與DSP之間的接口08-06

TLC320AC01與DSP的接口設計08-06

LMB-018A顯示模塊的原理及與DSP的接口08-06

提高初中數學課堂教學效率的案例分析08-24