《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > DSP鏈路口在并行處理系統(tǒng)中的應用

DSP鏈路口在并行處理系統(tǒng)中的應用

2009-02-23
作者:袁偉明 吳順君

  摘? 要: 在介紹ADSP2106X系列鏈路口的特點和功能的基礎上,,著重討論了鏈路口靈活的使用方法和使用技巧以及使用過程中應注意的問題,,并給出了具體應用實例。?

  關鍵詞: DSP? ADSP2106X? 鏈路口?

?

  隨著數字信號處理技術的快速發(fā)展,,數字信號處理技術在多個領域(如通信,、雷達、聲納等)得到了廣泛應用。在很多情況下,,由于對信號要求實時處理并且數據量不斷增加,,單片DSP芯片已不能滿足要求。AD公司推出的ADSP2106X系列,,由于采用了超級哈佛結構,,適用于構成各種不同的并行多處理器系統(tǒng),較好地滿足了上述要求,,因此在國內外得到廣泛應用,。在多片并行ADSP2106x處理系統(tǒng)中,鏈路口的應用得到了越來越多的重視,。在這方面,,如何充分、有效地利用鏈路口進行數據傳輸,,已成為廣大DSP應用者首先要解決的一個問題,。?

  本文根據筆者在工程中應用和調試ADSP2106X器件的經驗,著重討論鏈路口的適用場合,、使用方法,,并對使用過程中常見問題進行分析,給出解決方法,。?

1? ADSP2106X及其鏈路口的特點和功能?

  ADSP2106X采用超級哈佛結構,,具有體積小、速度高,、內存大,、訪問靈活等特點,適用于構成各種不同的并行多處理器系統(tǒng),,完成各種實時信號的處理功能,,特別適用于雷達信號處理和聲納信號處理。?

  ADSP2106X提供了6個鏈路口,,每個鏈路口包括4位數據線,、一個雙向時鐘信號、一個雙向確認信號,。鏈路握手信號包括LxCLK和LxACK,,鏈路口以四位碼一組的方式傳送32位或48位字。發(fā)送方在時鐘LxCLK的上升沿送出4位碼,,接收方利用時鐘下降沿鎖存4位碼,,并且使LxACK有效,表示已準備接收下一個字,。在每個字開始發(fā)送時,,發(fā)送方如果看到LxACK無效,,將使LxCLK變高,并等待LxACK有效后發(fā)送新字,。當發(fā)送緩存為空時,,LxCLK將保持低。如果接收時鐘不超過主時鐘(40MHz),,LCOM寄存器的LCLKX2x位應設為0;若接收時鐘為主時鐘的2倍,,則置為1。兩個用于數據通信的鏈路口之間的連接關系如圖1所示,。?

?

?

  每個鏈路口還可以按2倍時鐘頻率的速率進行數據傳輸,。?

  鏈路口有以下功能和特點:?

  ⑴各鏈路口可以獨立工作或同時工作;?

 ?、奇溌窋祿梢源虬?2位或48位數據,,可以被處理器核訪問,可以與片內存儲器進行DMA傳送;?

 ?、峭獠恐鳈C可以直接訪問鏈路口;?

 ?、染哂须p緩沖的發(fā)送和接收寄存器;?

  ⑸可通過時鐘/確認信號在鏈路口通信時握手,,每個鏈路口均可收/發(fā)數據,,并分別有一個DMA通道支持;?

  ⑹利用鏈路連接可以組成一維到多維的各種形式處理器網絡,。?

  鏈路口有三種中斷形式:?

 ?、臘MA使能時,DMA完成后將產生一個可屏蔽中斷;?

 ?、艱MA禁止時,,處理器核可以對存儲器映射的LBUF進行讀寫,當接收緩沖不空或發(fā)送緩沖不滿時,,可產生可屏蔽中斷;?

 ?、钱斖獠吭O備訪問一個未指定的鏈路口,或者訪問一個已指定但對應LBUF被禁止的鏈路口時,,將產生可屏蔽的LSRQ中斷,。?

  鏈路口有三個重要的寄存器:LAR寄存器、LCTL寄存器,、LCOM寄存器,,它們都是32位寄存器。LAR寄存器(3x~3x+2位)代表了LBUFx的指定鏈路口,,x取0~5,,其它位保留。LCTL寄存器主要用來對各個LBUF進行設置(是否使能,、是否用DMA方式,、是否用鏈式DMA、發(fā)送還是接收數據),。LCOM寄存器包含每個LBUF的狀態(tài)位(空還是滿),,設置各LBUF傳送數據的速率以及其它功能。?

  ADSP2106X有6個獨立的鏈路緩沖LBUF5~0,,每個LBUF由一個內部寄存器和一個外部寄存器組成的2級FIFO構成,。當LBUF用于發(fā)送時,內部寄存器接收片內存儲器送來的數據,,外部寄存器將數據字展開成4位碼,,并且最高位先發(fā)送。當DMA或處理核送來的數據占滿這2級FIFO時,,將送出一個“滿”標志,。每當一個字展開發(fā)送后,FIFO中將空出一個位置并發(fā)出一個DMA請求,。當FIFO空時,,LxCLK無效。當LBUF用于接收時,,外部寄存器用于數據打包,,然后數據經內部寄存器以DMA方式送到片內存儲器。通過鏈路指定寄存器LAR確定LBUF5~0與LINK5~0的連接關系,。存儲器之間傳送數據時可以把一個LINK指定給兩個LBUF,,利用DMA通信。?

  直接數據傳輸(DMA)可以承擔數據傳輸任務而無需運算控制單元干預,,從而提高了程序執(zhí)行效率,。ADSP2106X提供了10條DMA通道,其中只有LBUF0~3支持二維DMA(即以行主模式訪問一個二維陣列元素),。LBUF5~0與6個DMA通道的對應關系如下:?

??? DMA通道1??? 鏈路緩沖LBUF0(與串口1接收共享)?

??? DMA通道3??? 鏈路緩沖LBUF1(與串口1發(fā)送共享)?

??? DMA通道4??? 鏈路緩沖LBUF2?

??? DMA通道5??? 鏈路緩沖LBUF3?

??? DMA通道6??? 鏈路緩沖LBUF4(與外部口0? EPB0共享)?

??? DMA通道7??? 鏈路緩沖LBUF5(與外部口1? EPB1共享)?

2?鏈路口的設置及應用中需要注意的問題 ?

  對于多DSP系統(tǒng),,為了克服多處理器之間占用總線的瓶頸問題,增強處理器之間的通信能力,,一般利用各處理器的鏈路口兩兩互聯進行高速,、點到點通信。處理器間的數據連接可以根據需要進行設置,,多個鏈路口數據通路可以同時并行工作而互不干擾,。每個鏈路口的LxCLK和LxACK提供了處理器之間進行異步數據傳輸的握手信號。因為采用鏈路口通信,,所以允許發(fā)送和接收端的長距離互聯,。鏈路口采用的是自同步方式,這樣時鐘和數據均只有相對延時,,不存在絕對延時,,這對印制板布線很重要,。?

  要利用鏈路口進行通信,首先必須對鏈路口及DMA寄存器進行正確的設置,。一般的DMA設置是:對DMA參數寄存器的起始地址IIx,、地址修正IMx及傳輸次數Cx進行設置,然后設置相應的DMA控制器中的DMA使能位,,這樣就啟動了DMA,。設置鏈路口操作時,應按照LAR,、LCOM,、LCTL的次序設置寄存器,在對LAR重新指定前,,必須禁止鏈路口所要指定的LBUF,,一旦設置LCTL,就啟動了DMA,。如果已打開中斷服務程序屏蔽位,,則收/發(fā)數據完后就進入相應的LBUF的中斷服務程序。在鏈路口中斷服務程序中,,通過檢驗LCOM的相應位判斷收/發(fā)數據是否完成,,進而利用中斷服務程序來完成其它功能。要注意的是,,在中斷服務程序開始,,要啟動備用寄存器,退出時一定關閉,。也就是說在中斷服務程序中使用備用寄存器,,以保護正常程序中的寄存器。?

  如果傳輸的數據在內存中不是一段數據,,而是多段數據,,就可以利用鏈式DMA,。先禁止鏈路口所要指定的LBUF,,對LAR指定,依次設置LCOM和LCTL(置LxCHEN位為1),,向CP寄存器寫入DMA控制塊(每個控制塊包含了相應收/發(fā)數據段的信息)在內存中的首地址,,就可啟動鏈式DMA;而向CP寫入0則禁止鏈式DMA,。當前DMA完成后,由DMA控制器自動裝入下一套參數,,放在存儲器中的(DMA)參數寄存器,,建立下一個DMA。CP的位17為1時表示當前DMA完成后產生一個中斷請求,。DMA參數有4個:?

  IIx?????地址(存儲器起始地址)?

??? IMx ??? 地址修改量?

??? Cx ???? 計數指針?

??? CPx?? ? 鏈指針 ?

  它們在內存中的位置關系如圖2所示,。?

  鏈式DMA方式只是對同一個LBUF口而言,,多個LBUF不存在相互之間的鏈式DMA的情況。?

  如果兩個鏈路口之間是單次傳輸數據,,那么先設置接收方DMA還是先設置發(fā)送方DMA都沒關系;但是,,如果是多次循環(huán)的收發(fā)數據,一定要保證接收方的DMA設置早于發(fā)送方DMA,,否則每次傳輸數據時都會丟掉前兩個32位字,。這是因為發(fā)送方一旦準備好,,就往接收方的緩存預先打入兩個32位字,。而當接收方設置DMA接收數據時,首先要清除這個將要用到的緩存,,因此這兩個32位字就丟掉了,。在實際DMA傳輸數據過程中,一定不能對正在用的LBUF進行其它操作,。?

  當鏈路口禁止時,,其數據線LxDAT3~0及LxCLK、LxACK都是三態(tài),。為了允許收發(fā)雙方在被使能的時間上有先后,,在鏈路口禁止時要對LPDPD清0,以使LxDAT3~0及LxCLK,、LxACK被內部下拉(50kΩ),。要注意的是,這些信號線如果懸空,,則必須用內部或外部下拉電阻,。?

  通過LINK口對DSP進行程序加載,一般用host(主機)或EPROM加載模式,。?

3 鏈路口應用實例分析?

  筆者在實際工作中曾用到某型雷達信號處理系統(tǒng),。該系統(tǒng)包括4塊運算板和一塊后處理板,這5塊板子結構完全相同,。單塊DSP板包括20片ADSP2106X,,同時處理同一個周期的4個通道(和通道、輔助通道1,、輔助通道2和差通道)的數據,,每5片處理一個通道,4個通道連線關系原則上基本相同,。實際工作中根據重頻來改變運算板的個數,,運算板處理完數據通過鏈路口分時向后處理板傳送數據。因為在實際中將出現多個鏈路口同時工作,,為了避免各鏈路口工作時之間的高頻干擾,,對印制板設計的要求非常高,。限于篇幅,下面只給出和通道的原理框圖,,如圖3所示,。?

?

?

  LINK0和LINK3分別接收輔助通道的數據,LINK2和LINK5把處理后的數據傳送到后處理板,,4塊板子分時向后處理板匯總數據,。通過調試發(fā)現,在同一塊運算板內部,,各鏈路口之間的數據以80MHz的速率傳送(系統(tǒng)時鐘工作頻率為40MHz)時,,同時工作,相互之間幾乎沒有干擾,,可以保證數據傳送的準確性,,大大提高了并行傳輸的能力。而在4塊運算板和后處理板之間傳送數據(即板子之間傳送數據),,如果采取80MHz的速率同時傳送,,則相互之間干擾比較大,很難保證傳輸的正確性;用1倍速(40MHz)的速率傳送就可減少干擾,,而且在接收板(即后處理板)鏈路口的握手信號上采取加濾波電容或下拉電阻的措施可以減少信號中的毛刺,。本系統(tǒng)本來設計為同時由和通道、輔助通道1和差通道向后處理板傳送數據,,但實際工作中為了保證數據的正確性,,在滿足要求的情況下,把輔助1通道的數據通過鏈路口傳送到和通道,,再由和通道把數據發(fā)送出去,,這樣減少了用于傳送數據的鏈路口的個數,數據可以正確地傳輸,。鏈路口之間握手信號線采用電纜連接(一般用雙絞線),。目前本系統(tǒng)已在某型雷達中得到了很好的應用。?

  工程實踐表明,,并行多DSP系統(tǒng)中充分利用鏈路口,,可在保證數據傳輸可靠性的同時,克服多處理器之間占用總線的瓶頸問題,,增強了處理器之間的通信能力,。?

參考文獻?

1 ADSP2106X? User’s Guide. Analog Devices Inc. 1st Ed, 1995?

2 蘇 濤,,吳順君,,廖曉群. 高性能數字信號處理器與高速實時信號處理. 西安:西安電子科技大學出版社,1999?

3 Hawang? Kai, Xu? Zhiwei .Scalable? Parallel? Comuters for? Real-Time Singal Processing. IEEE? Signal? Processing? Magazine,, 1996:50~66
本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯系電話:010-82306118,;郵箱:[email protected],。