基于TS201的實時圖像處理系統(tǒng)鏈路口通信設(shè)計
隨著信息處理技術(shù)的發(fā)展,實時圖像處理已成為現(xiàn)代信息處理領(lǐng)域中的一項關(guān)鍵技術(shù),該技術(shù)的發(fā)展對于電視制導(dǎo)、圖像跟蹤等具有重要的意義。實時圖像處理要求非常大的計算量與超高的計算速度,單片DSP很難滿足要求,因此必須采用多DSP并行計算結(jié)構(gòu)。這就要求實時圖像處理系統(tǒng)能夠?qū)崟r獲取圖像數(shù)據(jù),并在多片DSP之間實現(xiàn)實時通信交互。論文實時圖像處理系統(tǒng)為核心,論述了基于Analog Device公司的DSP(TS201)為核心器件的鏈路口通信設(shè)計。
1 實時圖像處理系統(tǒng)的組成
如圖1所示,實時圖像處理系統(tǒng)主要由4個模塊組成:CCD圖像采集模塊、圖像處理模塊(TS201 3個DSP+FPGA模塊)、圖像處理結(jié)果輸出模塊、邏輯控制模塊。
其基本的工作原理是將CCD攝像頭采集得到的實時圖像經(jīng)AD轉(zhuǎn)換成數(shù)字圖像,通過FPGA(現(xiàn)場可編程邏輯門陣列)分別送到3個DSP中,DSP經(jīng)過圖像處理模塊完成對圖像信號的運(yùn)算處理,最后通過輸出模塊輸出所期望的運(yùn)算結(jié)果如被捕捉目標(biāo)的位置信號、調(diào)節(jié)控制信號等。
實時圖像處理系統(tǒng)FPGA(Field Pmgrammable Gate Array)選用Altera公司的EP4SGX230/180,該器件具有高密度、高性能、低功耗等優(yōu)點。FPGA是在專用ASIC的基礎(chǔ)上發(fā)展而來的,它克服了專用ASIC不夠靈活的缺點。其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對電路的修改和維護(hù)很方便。
DSP選用ADI公司的TigerSHARC 201,TS201是目前業(yè)界性能最高的DSP處理器之一,具有以下特點:主頻可高達(dá)500 MHz;擁有24 Mbit片上內(nèi)存、雙運(yùn)算模塊、外部端口、4個高速鏈路口、SDRAM控制器、可編程標(biāo)志引腳、2個定時器和定時輸出引腳、14通道的DMA控制器??梢酝瓿善瑑?nèi)存儲器、片外存儲器、儲存器外設(shè)、鏈路口、主機(jī)處理器和其他處理器之間的地開銷的高速傳輸,通過共享總線可無縫鏈接多達(dá)8個TigerSHARC ADSP。FPGA加多個DSP的系統(tǒng)結(jié)構(gòu)在通信、圖像處理、遙感觀測以及雷達(dá)等領(lǐng)域得到了廣泛的應(yīng)用。
2 基于TS201鏈路口的圖像接收技術(shù)
2.1 TS201鏈路口
TS201具有4位寬的4個雙向LVDS(LOW Voltage Differential Signaling)鏈路口是其組成并行系統(tǒng)的關(guān)鍵。鏈路口是ADI公司提出的總線傳輸方式,鏈路口可以直接由處理器核控制,也可以由DMA控制器控制。鏈路口由發(fā)送端和接收端兩部分組成,以低壓差分信號(LVDS)方式傳輸數(shù)據(jù),可以高速準(zhǔn)確的完成板內(nèi)或者板問數(shù)據(jù)的傳輸,滿足系統(tǒng)的實時要求。每個鏈路口的接收和發(fā)送都有指定的DMA通道。通過編程控制可以將鏈路口設(shè)置成4位并行或者1位的方式進(jìn)行傳輸。TS201支持點對點的鏈路口通信,可用于任意的按照鏈路口協(xié)議設(shè)計的器件之間的通信,每個鏈路口的數(shù)據(jù)傳輸率高達(dá)500 Mbytes/s,4個鏈路口傳輸速度達(dá)到4 GB/s。TS201鏈路口發(fā)送及接收數(shù)據(jù)的通信協(xié)議中最小傳輸長度為4字。在1bit模式下,傳輸4字需要64個時鐘周期;在4bit模式下,需要16個時鐘周期;
鏈路發(fā)送傳輸原理如圖2所示。
當(dāng)鏈路口的發(fā)送端發(fā)送數(shù)據(jù)時,首先檢測鏈路接收端LxACKI是否有效,有效后使能時鐘信號LxCLKOUT,開始發(fā)送數(shù)據(jù),LxBCMPO信號表明數(shù)據(jù)是否傳輸結(jié)束;數(shù)據(jù)傳輸開始于第一個時鐘的上升沿。結(jié)束于最后一個時鐘的下降沿;當(dāng)傳輸結(jié)束后,LxCLKOUT置為低。對于發(fā)送端,當(dāng)LxACKI采樣為高時,表示接收端緩存空閑,可以發(fā)送。
鏈路口接收原理如圖3所示。
在接收方式中,當(dāng)接收端檢測到LxACKO,有效后,時鐘信號LxCLKIN開始傳輸,即開始接收數(shù)據(jù),LxBCMPI信號表明數(shù)據(jù)傳輸結(jié)束。
2.2 直接存儲器訪問DMA
TS201對圖像的接收可利用DMA進(jìn)行。DMA(Direct Memory Access)是在處理器內(nèi)核不干預(yù)情況下的后臺高速數(shù)據(jù)傳送機(jī)制口,不占用DSP內(nèi)核的處理時間,TS201片內(nèi)的DMA控制器允許將數(shù)據(jù)傳輸作為一個后臺任務(wù)執(zhí)行,從而將處理器核釋放出來,進(jìn)行其他數(shù)字信號處理操作。在復(fù)雜信號處理系統(tǒng)中,特別是需要大量數(shù)據(jù)傳輸和搬移的操作系統(tǒng),采用DMA方式可以釋放處理器內(nèi)核,提高工作效率。特別對于圖像處理系統(tǒng),可采用二維DMA數(shù)據(jù)傳輸方式,能夠?qū)D像數(shù)據(jù)塊實時接收到DSP中。
TS201有14個DMA通道。其中8個用于鏈路口。一個鏈路口有發(fā)送和接收兩個通道。DMA驅(qū)動傳輸僅允許4字傳輸,且支持鏈路口DMA交叉?zhèn)鬏?。從發(fā)送鏈路到接收鏈路的數(shù)據(jù)發(fā)送及接收,要編程發(fā)送和接收鏈路傳輸控制塊寄存器TCB,發(fā)送數(shù)據(jù)到目標(biāo)發(fā)送鏈路的緩沖區(qū),DMA根據(jù)TCB編程和請求啟動一次傳輸。
2.3 傳輸控制塊寄存器TCB介紹
傳輸控制塊寄存器TCB是一個128位的四字組寄存器。
如圖4所示:包括DI寄存器、DX寄存器、DY寄存器、DP寄存器。TCB包含了DMA傳輸?shù)目刂菩畔ⅰ?/p>
DI寄存器占TCB的0~31位,是32位DMA索引寄存器,用于設(shè)置要發(fā)送或接收數(shù)據(jù)的源地址和目的地址,地址可指向內(nèi)部,外部存儲器及鏈路口。
DX寄存器占TCB的32~63位,如果傳輸?shù)氖嵌S數(shù)據(jù)的話,高16位是x方向計數(shù)值,低16位是x方向修改量。
DY寄存器占TCB的64~95位,DY寄存器和DX寄存器結(jié)合在一起使用,如果傳輸?shù)氖且痪S數(shù)據(jù),不設(shè)置此寄存器,如果傳輸?shù)氖嵌S數(shù)據(jù)的話,高16位是Y方向計數(shù)值,低16位是Y方向修改量。
DP寄存器占TCB的96~127位,用于設(shè)置DMA傳輸?shù)目刂菩畔?。包括TCB指針,鏈路指針選擇器,鏈路目的通道,操作數(shù)據(jù)長度,二維DMA使能等。
3%20圖像處理系統(tǒng)TS201鏈路接收
在圖像處理系統(tǒng)中選用了鏈路口接收作為圖像數(shù)據(jù)接收方式。FPGA采集圖像數(shù)據(jù)完成預(yù)處理后,將圖像數(shù)據(jù)通過內(nèi)部FIFO發(fā)送到高速鏈路口,通過鏈路口,將圖像數(shù)據(jù)分別
傳輸?shù)礁鱾€DSP。
圖像處理系統(tǒng)中以DSP1獲取FPGA傳送的圖像為例。
如圖1所示:DSP1和FPGA之間通過鏈路口3(Link3)連接,TS201%20Link3接收通道對應(yīng)DMA通道11。
鏈路口接收步驟如下:
1)打開并允許DMA11中斷。
2)設(shè)置DSP1鏈路口3接收控制寄存器LRCTL,LRCTL寄存器如同5所示。
設(shè)置LRCTL3接收使能,鏈路傳輸數(shù)據(jù)大小模式等。代碼如下:buihin_sysreg_write(LRCTL3,0x11);0x11的含義是使能Link3接收,每次傳送4 bit數(shù)據(jù)。
3)對DSP1 DMA11傳輸控制塊(TCB)編程。
代碼如下:
TCB_Link3R.DI=&Image_Data;
TCB_Link3R.DX=4|(Img_Col<<16);
TCB_Link3R.DY=4 |(Img_Line<<16);
TCB_Link3R.DP=0x4fla0000;
Link3RecTCB=builtin_compose_128((TCB_Link3R.DI | TCB_Link3R.DX<<32,TCB_Link3R.DY |TCB_Link3R.DP<<32);
DI寄存器設(shè)置為二維圖像接收端的目的地址;DX寄存器為二維DMA的X方向傳輸?shù)臄?shù)據(jù)位數(shù)Img_Col,傳送Img_Col個32bit數(shù)據(jù),一個圖像數(shù)據(jù)占16位,圖像數(shù)據(jù)共Img_Col*2列;DY寄存器為二維DMA的Y方向傳輸?shù)臄?shù)據(jù)位數(shù),傳送Img_Line行數(shù)據(jù),圖像數(shù)據(jù)共Img_Line行;DP寄存器設(shè)置為二維鏈路口3接收。
4 TS201各個DSP之間的通訊設(shè)計
實時圖像處理系統(tǒng)中各個DSP之間的通訊設(shè)計采用鏈路口的方式。以系統(tǒng)DSP0和DSP1通訊為例,從圖1可以看出DSP0 Link3連接DSP1 link2,DSP0 link3發(fā)送通道為DMA7,DSP1 link2接收通道為DMA10。
通訊步驟如下:
1)打開并允許DMA7,DMA10中斷。
2)設(shè)置DSP0鏈路口3發(fā)送控制寄存器LTCTL,寄存器如同6所示。
代碼為builtin_sysreg_write(LTCTL3,0x11);0x11的含義是使能Link3發(fā)送,每次發(fā)送4bit數(shù)據(jù)。
3)DSP0 DMA7傳輸控制塊寄存器(TCB)編程,代碼如下:
TCB_Link3Send.DI=(int *)DSP0SendData;
TCB_Link3Send.DX=4 |(DSP0SendData_Num<<16);
TCB_Link3Send.DY=0;
TCB_Link3Send.DP=0x47180000;
Link3_SendTCB=buihin_compose_128(TCB_Link3Send.DI | TCB_Link3Send.DX <<32,TCB_Link3Send.DY | TCB_Link3Send.DP<<32);
DI寄存器設(shè)置為DSP0發(fā)送數(shù)據(jù)的源地址;DX寄存器為DSP0發(fā)送數(shù)據(jù)位數(shù);DY寄存器為0說明是一維DMA傳輸,DP寄存器設(shè)置為一維鏈路口3發(fā)送。
4)設(shè)置DSP1 link2接收寄存器LRCTL,代碼為builtin_sysreg_write(LRCTL2,0x11);接收原理和DSP1 Link3接收圖像原理相同。
5)DSP1 DMA10傳輸控制塊寄存器(TCB)編程,代碼如下:
TCB_Link2R.DI=&DSP1RecDSP0Data;
TCB_Link2R.DX=4 |((DSPlRecNum)<<16);
TCB_Link2R.DY=0;
TCB_Link2R.DP=0x47100000;
Link2_RecTCB=builtin_compose_128(TCB Link2R.DI | TCB_Link2R.DX<<32,(TCB_Link2R.DY |TCB_Link2R.DP<<32));
DI寄存器設(shè)置為DSP1接收數(shù)據(jù)的目的地址;DX寄存器為DSP1接收的數(shù)據(jù)位數(shù);DY寄存器為0說明是一維DMA傳輸,DP寄存器設(shè)置為一維鏈路口2接收。注意DSP1接收的數(shù)據(jù)長度DSP1RecDSP0Data和DSP0發(fā)送的數(shù)據(jù)長度DSP0SendData要一致。
5 結(jié)論
介紹了基于TS201+FPGA的實施圖像處理系統(tǒng)中關(guān)于TS201鏈路口通訊的二維實時圖像獲取以及多DSP之間鏈路口通訊。給出了通訊時序圖,關(guān)鍵代碼,關(guān)鍵寄存器設(shè)置,保證了實時系統(tǒng)中的圖像數(shù)據(jù)能夠按幀獲取及多DSP之間的實時通訊,確保系統(tǒng)的實時性。