基于虛擬圖像注入的目標模擬器設(shè)計
FPGA以ALTERA公司的Cyclone II系列的EP2C8-Q208C8芯片作為目標模擬器的時序和邏輯控制核心。EP2C8Q208C8具有8 256個的邏輯單元(LE)、165 888 bit基于流行的M4K嵌入式存儲器塊,可以配置為廣泛的操作模式,包括ROM、單端口和雙端口RAM等。設(shè)計中用芯片內(nèi)部的雙端口RAM構(gòu)造異步FIFO控制圖像數(shù)據(jù)的時序,加上幀同步(FVAL)和行同步(LVAL)信號一起按照紅外圖像的設(shè)計時序要求將圖像數(shù)據(jù)發(fā)送到Camera Link接口模塊。
Camera Link接口采用DS90CR287作為驅(qū)動芯片,是專用的電平轉(zhuǎn)換器件,能將28位CMOS/TTL電平數(shù)據(jù)和1位像素時鐘信號分別轉(zhuǎn)換成4組LVDS數(shù)據(jù)流及一對LVDS時鐘信號進行傳輸。由于采用差分傳輸方式,提高了傳輸距離及信號精度。使用標準的MDR26作為Camera Link接口與圖像采集卡之間的連接接口。
4 軟件設(shè)計
目標模擬器的軟件設(shè)計主要由DSP程序和FPGA程序組成。
DSP程序流程圖如圖4所示。由于生成圖像數(shù)據(jù)要通過DSP芯片的外部接口XINTF發(fā)送,DSP2812有5個固定的存儲映像區(qū)域,設(shè)計中采用ZONE2區(qū)作為映像區(qū)域,所以首先要解決數(shù)據(jù)存儲映像的問題。本設(shè)計采用CCS提供的下面兩個指令實現(xiàn)數(shù)據(jù)映像。本文引用地址:http://butianyuan.cn/article/188554.htm
#pragma CODE_SECTION 針對程序空間;
#pragma DATA_SECTION 針對數(shù)據(jù)空間;
具體程序?qū)崿F(xiàn)如下:
#pragma DATA_SECTION(pRGB,″My_Sect″)
struct
{Uint16 r;
Uint16 w;
}pRGB[320][240];
在.cmd文件中建立對應的section就可以使用了。
MEMORY
{PAGE1: ZONE2 :origin=0x080000,length=0x080000 }
SECTIONS
{My_Sect ?。?gt;ZONE2,PAGE=1 }
建立映像后要設(shè)置XINTF的相應寄存器值,對于外部接口的訪問主要分為3個階段:(1)建立階段:被訪問區(qū)的片選信號變?yōu)榈碗娖?,地址被放置在地址總線上;(2)激活階段:對外部器件進行訪問。本設(shè)計主要是寫訪問,寫使能(XWE#)選通變低并將數(shù)據(jù)放置在數(shù)據(jù)總線上(XD);(3)跟蹤階段:跟蹤階段為一保持時間,其片選信號為低,而后讀和寫選通變?yōu)楦遊1]。
具體設(shè)置如下:
XintfRegs.XTIMING2.bit.XWRLEAD=1
XintfRegs.XTIMING2.bit.XWRACTIVE=1
XintfRegs.XTIMING2.bit.XWRTRAIL=1
建立、激活、跟蹤分別為1個時鐘周期。
DSP2812的串行通信(SCI)模塊使用16位的波特率選擇寄存器(SCIHBAUD和SCILBAUD)設(shè)置SCI的波特率,因此SCI可以采用64 K種不同的波特率進行通信,通過下面的公式計算出寫入寄存器的值:
其中:BRR為寫入寄存器的值。設(shè)計中系統(tǒng)時鐘為30 MHz,波特率為38 400,則:
評論