針對高速圖像數據傳輸和處理的應用平臺,設計了一款嵌入式圖像處理系統,采用基于TS201的DSP,雙FPGA的系統架構。該系統可以同時處理不同傳感器來源的圖像(如星敏、紅外等),而且具有體積小、使用靈活、功耗低以及性能高等優點。在設計時對芯片選型進行了分析,并給出了圖像處理系統總體的通信結構——關鍵是DSP和FPGA間的鏈路口通信,同時給出了數據傳輸具體的實現方案,最后通過仿真驗證了該設計平臺的功能,肯定了其實用性。
《通信與信息技術》(雙月刊)創刊于1971年,由四川省通信學會主辦。本刊堅持為社會主義服務的方向,堅持以馬克思列寧主義、毛澤東思想和鄧小平理論為指導,貫徹“百花齊放、百家爭鳴”和“古為今用、洋為中用”的方針,堅持實事求是、理論與實際相結合的嚴謹學風,傳播先進的科學文化知識,弘揚民族優秀科學文化,促進國際科學文化交流,探索防災科技教育、教學及管理諸方面的規律,活躍教學與科研的學術風氣,為教學與科研服務。
隨著圖像處理技術日益發展,人們需要采集的圖像也越來越大,內容也更豐富,此時對圖像處理平臺的處理速度以及傳輸速度也有了更高要求。考慮到成本、性能、開發難易程度,同時基于FPGA和DSP圖像處理平臺的高靈活度、強實用性、高可靠性,本文設計了一種采用了基于TS201的雙DSP,雙FPGA系統架構的嵌入式圖像處理系統。由于該DSP有著豐富的內外資源及外設接口,能夠將處理器微型化專業化并且支持內部高速緩存,數據處理速度很快且基本上能夠滿足本應用需求。
鏈路口通信的使用不但能減輕DSP的總線上的傳輸速度和壓力,同時與FPGA的有著相對較少的連接,所以鏈路口的使用為FPGA和DSP的實時數據通信提供了極大的便利,因而對兩者間鏈路口通信進行設計和實現也是發揮高速圖像數據處理的關鍵所在。
1圖像處理平臺的設計
本文給出一款同時具有高速圖像傳輸及處理的圖像處理平臺。該嵌入式圖像處理系統采用基于TS201的雙DSP,雙FPGA的系統架構,可以同時處理不同傳感器來源的圖像(如星敏、紅外等),而且該平臺具有體積小、使用靈活、功耗低以及性能高等優點。
FPGA的特點是完成一些非高難度而計算量又比較大的處理,在本平臺中FPGA需要完成圖像處理算法之外的大部分數據操作,而且本系統需要DSP和FPGA協同工作以達到優勢互補的效果,因此對核心器件FPGA要求包括具有較高幀頻圖像傳輸能力,高速數據緩存能力,一定的算法處理能力,再綜合功耗以及成本,最終FPGA采用XILINX公司的XC6SLXl00-3CSG484I芯片。該FPGA芯片具有338個普通I/0接口169個可編程單端或差分對,包含有101261個邏輯單元,可以說有著很好的片上邏輯資源。
系統的DSP采用ADI公司的TigerSHARC系列芯片TS201,它是ADI公司2003年分布的TigerSHARC新成員,其內核的工作頻率最高可以達到600MHz,以1.6ns為一個指令周期,大大加速了芯片的處理速度,本系統中圖像處理算法復雜度不高,一般DSP工作在400~500MHz就足夠用。ADSPTS201的主要優點有:1)具有了一定的并行處理的能力從而滿足高速處理的需求。2)具有4個鏈路口,能夠提供額外的4位全雙向10能力,并且還能以雙倍速率鎖存數據(因為其在CCLK時鐘上升沿和下降沿都能鎖存數據)。
此設計中DSP和FPGA之間的通過鏈路口連接,傳輸速率為1GB/s,普通差分I/O接口傳輸數據速率最高1080Mb/s,完全能夠滿足傳輸需求,所以選擇LX系列。根據I/O數量的關系選擇XC6SLX100-3CSG484I芯片:338個I/O口,169個可編程單端或差分對,101261個邏輯單元。
本圖像處理平臺的基本通信結構如圖1所示。
2 DSP、FPGA間鏈路口通信設計
由于圖像處理平臺對數據的高速傳輸有著越來越高的需求,而鏈路口為數據傳送提供了高速、獨立的通信機制,故如何設計鏈路口之間的通信是高速數據傳輸的有力保障。
ADSP TS201TigerSHARC的每個鏈路口都由數據線和控制線組成的,其中數據線是4位雙向的能實現雙數據率傳輸技術的差分數據線,控制線是由3個控制信號組成的。設計選用上升沿和下降沿均對數據進行鎖存與驅動的雙倍數據速率傳輸模式。其鏈路口結構如圖2所示。
TS201芯片的鏈路口傳輸方式可以是4位并行方式。,也可選擇1位傳輸,其中每個通信通道都可達4位,是通過LxCLK-OUTP/N,LxACKI,LxCLKINP/N和LxACKO信號來進行控制控制,LxBCMPI和LxBCMPO則用于描述塊傳輸已經完成。由于鏈路口通信為LVDS的差分連接模式,考慮到LVDS信號對走線以及器件之間的連接相當嚴格,為了達到匹配的目的需要在接收方內部加100Ω的端接電阻,此外印制電路板連線要匹配,保證所有數據引腳和時鐘引腳有相同的延遲,其他布線原則與上述LVDS布線規則相同。
多DSP處理系統中,TS201使用鏈路口進行處理系統之間的互聯的,按互聯方式分為緊耦合和松耦合,緊耦合方式是通過外部總線來實現DSP相互之間以及DSP和其他資源之間的互聯,緊耦合方式的優點是數據吞吐帶寬大,軟件操作簡單,缺點是電路設計復雜,松耦合方式則是通過特殊端口來實現DSP之間以及DSP與其他資源之間的互聯,比如說鏈路口、握手信號、標志等形式,優點是電路設計簡單,易于實現。本圖像處理平臺,兩個子系統DSP之間的通信則是采用了松耦合的方式,實現之間的點對點通信。
具體而言,本圖像處理平臺是通過鏈路口0進行DSP之間的互聯,使得兩個DSP之間可以進行數據交換,通過鏈路口1進行DSP與FPGA之間的連接,用于DSP與FPGA之間進行有序的數據交換,而未被用到的鏈路口2、鏈路口3做閑置處理即加高電平。并且兩個獨立的子系統之間FPGA與FPGA之間也建立者通信關系,他們采用的是I/O差分對之間的連接,主要實現輔助DSP通信的作用。
3 TS201鏈路口和DMA傳輸實現
ADSP TS201片上有四個完全獨立的鏈路口,每一個鏈路口獨立地進行接收和發送操作,每個鏈路口都是由4位雙向差分數據線和另外3個控制信號組成。通信的時候可以選1bit模式或者4bit模式,鏈路口通信為LVDS的差分連接模式,是完全的雙向通信,即在發射數據的同時可從對方接收數據,鏈路口的時鐘最高可達核內的時鐘速度,能夠擁有更高的數據吞吐量。本系統外部輸入時鐘(SCLK)為80MHz,經過SCLKRAT2-0進行比率設置,比率為5得到最終內核時鐘400MHz,DSP與FPGA之間通過鏈路口1進行的連接,用于DSP與FPGA之間進行有序的數據交換。
數據通信時,可以由處理器直接控制鏈路口,也可以用DMA控制器控制鏈路口,并且能夠擁有雙倍的數據速率,這是因為鏈路口在時鐘的上升沿和下降沿都可對數據進行鎖存和驅動。如圖3為4位模式鏈路口通信協議,4位模式下傳輸4字需要16個時鐘。
在本系統中圖像由FPGA發向DSP的時候,FPGA需要檢測兩個信號,一個是設置的FLAG0握手信號,另一個則是Lx-ACKI信號,FLAG0握手信號是由DSP程序控制產生的,而Lx-ACKI信號則是鏈路口配置完之后,接收緩沖器為空,接收通道初始化正常后,由DSP芯片自動產生的。當這兩個信號都有效時,DSP可以進行收圖,此時隨著LxCLKIN信號開始數據傳輸。
并且本系統中按照4bit進行接收,則其規則如圖所示,第一個數據(4bit)在鏈路口時鐘的上升沿進行采集,最后一個數據(4bit)在下降沿采集,而且鏈路口一個數據包是128bit的,也就是所謂的4字傳輸,當滿一個數據包的時候才會接收一次,接收的時候,一般數據是接收緩沖器為空,才會將數據從接收移位寄存器完整的4字移入,如果接收緩沖器滿著,會將接收移位寄存器的數據拷貝到臨時接收緩沖器中,直到接收器空下來。
需要額外注意的是LxBCMPI信號,這個塊傳輸結束標志信號是由FPGA產生的,一幀496X496的圖像按照一行或者若干行進行發送的時候,可以設置此信號,表示這一塊傳輸完成。比如在本系統中按照一行進行塊傳輸,則FPGA需要在最后4個字傳輸的第一個LxCLKIN的上升沿將LxBCMPI信號拉高,這是非常重要的一個設置。如圖4為FPGA和DSP之間的握手流程:
在圖像進行傳輸的時候,可以利用TS201的DMA傳輸方式,將數據傳輸作為后臺任務操作,由于不占用內核時間資源此時DSP核可以進行其他操作。此款DSP提供了14個DMA通道,鏈路口專用的通道8個,通道4和通道8分別對應著鏈路口0的發送通道和接收通道。由此也可以看出鏈路口的發送和接收是獨立的,可以同時進行,并且DMA的傳輸數據流具有方向,需要對其進行設定。TS201提供了便利的設置方法,只需重點設置傳輸控制塊寄存器(TCB),如圖5所示TCB是一個128位的四字組寄存器:
DP寄存器包括了DMA傳輸的所有控制信息,參考TCB DP寄存器的含義選擇所需要的傳輸方式進行設置即可。
對于鏈路口DMA傳輸,只需要設置好TCB控制寄存器,一旦建立和使能DMA模塊,數據在握手信號控制下就可以自動被接收到指定位置,這個傳輸過程直到塊傳輸結束,或者未設置塊傳輸的時候,完成整個約定好長度的數據傳輸。如果TCB設定允許在塊傳輸結束后產生一個DMA中斷,以及正確的將DMA中斷寫入中斷向量表,且中斷被使能,則整塊數據傳輸完成后,可以正常響應DMA中斷。本系統中在一行數據傳輸完之后會進入DMA中斷的服務子程序,由于非自動DMA根據TCB編程和請求啟動只完成一次DMA傳輸,也就是一行數據的接收,在進人服務子程序后,需要再次對TCB進行配置,以便接下來數據的接收,直至所有數據接收完畢。
進行鏈路口DMA接收之前,對需要先對系統的初始化以及鏈路口初始化,主要依靠對系統配置寄存器(SYSCON)、鏈路口接收控制寄存器(LRCTLX)按照需要進行配置,特別需要注意的是對鏈路口接收控制寄存器(LRCTLX)配置之前,要先對其進行清零初始化操作,并且每一次響應DMA中斷進入DMA中斷服務函數后,進行配置之前再次清鏈路口。這是非常重要的一個操作,否則會導致接收數據出現錯誤。
如圖6為系統配置寄存器(SYSCON)的位定義,以及鏈路口接收控制寄存器(LRCTLx)位定義:
在確定完成一幀圖像接收后,系統可以開始進行圖像處理操作,這是為了保證圖像數據的完整性,在本系統中,設置了外部IRQ0中斷,當傳輸結束后利用幀同步信號產生中斷,用于處理附加數據和幀計數,以及對行計數進行清零操作。
4實現與仿真
ModelSim作為Mentor公司在業界最優秀的HDL語言仿真軟件,它提供了友好的仿真環境,是業界唯一的單內核支持Verilog和VHDL混合仿真的仿真器。
在仿真環境搭建好以后,首先對程序進行功能級仿真,驗證功能是否達到要求;功能仿真正確后再進行布局布線后仿真,根據布局布線仿真的情況再對程序進行分析,調整或者修改原先的設計,以滿足設計要求。
如圖7,是仿真時FPGA通過鏈路口給DSP傳輸數據的時序圖,能清楚地看到圖像數據在控制信號及時鐘信號觸發下的傳輸過程。
隨著DSP功能越來越復雜,以及開發周期越來越短,DSP系統的設計調試工作更加倚重DSP開發系統和調試工具,AD-SP提供了很好的對應開發平臺,利用開發工具Visual DSP,方便地完成對DSP軟、硬件進行跟蹤和調試。
如圖8,我們利用Visual DSP,開發平臺展示了鏈路口成功接收的一幀圖像:
5結束語
整體而言,本文設計的圖像處理平臺具有一定的通用性,在圖像高速傳輸及處理方面也頗具優勢,其次,系統中給出了FPGA和DSP間鏈路口的通信設計和傳輸過程的實現方法,并通過測試和仿真得到了圖像的傳輸結果。另外,結構圖中兩DSP之間進行了鏈路口通信,雖然只是作為備用,如果有處理效率大幅度提升的需要,可以將兩片DSP芯片進行并行度提高,完成2片互聯從而進一步提高圖像處理平臺的處理性能。
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >