基于PCI 和FPGA 的InSAR 基線測(cè)量實(shí)時(shí)采集系統(tǒng)(二)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
相關(guān)資料:
基于PCI和FPGA的InSAR基線測(cè)量實(shí)時(shí)采集系統(tǒng)(一)
2. 3 FPGA 核心邏輯控制
基于FPGA 的時(shí)序邏輯控制模塊是本系統(tǒng)的核心設(shè)計(jì),能夠?qū)崿F(xiàn)對(duì)相機(jī)和激光測(cè)距儀的模式設(shè)置、相機(jī)和激光測(cè)距儀的數(shù)據(jù)同步控制、多個(gè)傳感器數(shù)據(jù)的緩存與整理,對(duì)外部高速緩存的控制以及與PLX9656 的通信。 系統(tǒng)采用Altera 公司的Stratix Ⅱ系列EP2S60F1020 器件,配置芯片選用EPC16.
1) 傳感器觸發(fā)設(shè)置
本設(shè)計(jì)中,2個(gè)傳感器的工作模式通過(guò)主機(jī)端進(jìn)行設(shè)置,通過(guò)PCI 總線將模式設(shè)置字符串傳到FPGA 中,通過(guò)串口控制器實(shí)現(xiàn)與相機(jī)和激光測(cè)距儀的通信,從而完成對(duì)相機(jī)和激光測(cè)距儀的配置。 且相機(jī)和激光測(cè)距儀收到配置命令后也通過(guò)串口控制器把應(yīng)答信息傳到FPGA 中,再通過(guò)PCI 總線傳到主機(jī)上。為了實(shí)現(xiàn)與激光測(cè)距儀的同步控制,相機(jī)選擇軟件外觸發(fā)模式,此模式下需要在FPGA 內(nèi)產(chǎn)生一個(gè)頻率為20 Hz 的EXSYNC 觸發(fā)信號(hào)送給CCD 相機(jī)進(jìn)行曝光讀取數(shù)據(jù),EXSYNC 的低電平寬度為10 μs,相機(jī)的曝光時(shí)間由主機(jī)端進(jìn)行參數(shù)設(shè)置。
2) 數(shù)據(jù)同步控制
把EXSYNC 觸發(fā)信號(hào)同時(shí)送給激光測(cè)距儀和相機(jī),來(lái)實(shí)現(xiàn)2 個(gè)傳感器的輸出同步。 因?yàn)?個(gè)傳感器的測(cè)量速度不同,相機(jī)的輸出幀頻為20 幀/ s,激光測(cè)距儀的輸出頻率為50 Hz,所以數(shù)據(jù)同步的設(shè)計(jì)關(guān)鍵在于如何記錄同時(shí)刻的單幀圖像數(shù)據(jù)和激光測(cè)距儀數(shù)據(jù),2 個(gè)傳感器同步采集的時(shí)序關(guān)系圖如圖2 ( a) 所示,CLK 100 Hz 是取2 個(gè)頻率的最小公倍數(shù),可以根據(jù)FPGA 的內(nèi)部資源使用情況來(lái)設(shè)定,Data_lrf_sel 為選擇的激光數(shù)據(jù),其中I 表示該時(shí)刻的數(shù)據(jù)無(wú)效,V 表示該時(shí)刻的數(shù)據(jù)有效。數(shù)據(jù)同步方案為相機(jī)數(shù)據(jù)進(jìn)入FPGA 后,在2 個(gè)雙口RAM 中進(jìn)行整理緩存,激光測(cè)距儀經(jīng)過(guò)串口接收器把數(shù)據(jù)傳入FPGA 內(nèi),本設(shè)計(jì)的串口接收器帶有FIFO 緩存,數(shù)據(jù)經(jīng)過(guò)緩存后接送入雙口RAM 中進(jìn)行進(jìn)一步緩存; 按照?qǐng)D2 ( a) 所示的時(shí)序關(guān)系圖生成雙口RAM 的寫使能WEN 信號(hào),WEN 信號(hào)有效時(shí)把此時(shí)刻的激光數(shù)據(jù)寫入雙口RAM 中; 當(dāng)讀使能信號(hào)有效時(shí),首先從雙口RAM 中的激光測(cè)距儀數(shù)據(jù)到FIFO 中,接著讀取相應(yīng)幀的圖像數(shù)據(jù)到FIFO 中; FIFO 半滿后,激光測(cè)距儀數(shù)據(jù)和相機(jī)數(shù)據(jù)一起送到外部的SDRAM中進(jìn)行進(jìn)一步緩存,仿真時(shí)序圖如圖2 ( b) 所示。由圖2 的仿真結(jié)果可知,本文同步設(shè)計(jì)方案能夠有效地減少2 個(gè)傳感器之間的延時(shí),采集2 個(gè)傳感器的相對(duì)同步數(shù)據(jù)。 雖然不是嚴(yán)格意義上的同步,但已能滿足柔性基線測(cè)量系統(tǒng)的需求。
圖2 CCD 相機(jī)和激光測(cè)距儀同步采集設(shè)計(jì)及仿真時(shí)序圖
Fig. 2 Timing diagram and simulation results of synchronous acquisition using CCD camera and laser rangefinder
3) 數(shù)據(jù)緩存與整理
本系統(tǒng)中采用的緩存方案為首先把圖像數(shù)據(jù)、控制信號(hào)進(jìn)行3 級(jí)鎖存,因?yàn)閷?shí)驗(yàn)相機(jī)輸出的圖像數(shù)據(jù)為2 個(gè)TAP 的數(shù)據(jù),分別把2 個(gè)TAP 的數(shù)據(jù)送入FPGA 內(nèi)部的2 個(gè)雙口RAM 中進(jìn)行緩存,左邊TAP 的數(shù)據(jù)按照順序地址存儲(chǔ),右邊TAP 的數(shù)據(jù)按照逆序地址存儲(chǔ),從而將2 個(gè)TAP的數(shù)據(jù)拼接成完整的圖像。 當(dāng)使能信號(hào)有效時(shí),把2 個(gè)雙口RAM 的數(shù)據(jù)送入到FIFO 中進(jìn)一步緩存,當(dāng)FIFO 數(shù)據(jù)半滿后,把FIFO 的數(shù)據(jù)通過(guò)SDRAM 接口控制器送入到外部的SDRAM 存儲(chǔ)器中去。
4) PCI 邏輯接口
本系統(tǒng)通過(guò)PCI 本地邏輯接口來(lái)完成FPGA與PLX9656 的通信。 系統(tǒng)加電啟動(dòng)后,PLX9656的內(nèi)部寄存器由PCI 總線的RST#信號(hào)復(fù)位; 同時(shí)PLX9656 輸出局部復(fù)位信號(hào)LRESET,并檢查EEPROM 是否存在。 如果采用本地端DMA 方式控制,則整個(gè)握手過(guò)程如下: 首先當(dāng)SDRAM 緩存中的數(shù)據(jù)達(dá)到設(shè)定值后,LINTI # 信號(hào)有效,PLX9656 向主機(jī)端發(fā)送中斷請(qǐng)求信號(hào); 若CPU 響應(yīng)中斷,則在中斷相應(yīng)程序內(nèi)發(fā)出DMA 讀命令、要讀的字節(jié)數(shù)和地址信息等。 PLX9656 申請(qǐng)本地總線,使LHOLD 信號(hào)有效。 FPGA 驅(qū)動(dòng)LHOLDA信號(hào)有效來(lái)響應(yīng)PLX9656 的請(qǐng)求,PLX9656 將PCI 地址空間映射到本地地址空間。 接著通過(guò)設(shè)置寄存器來(lái)啟動(dòng)DMA 傳輸,PLX9656 有效ADS#( 地址選通信號(hào)) 、訪問(wèn)地址出現(xiàn)在LA 地址總線上。 再次FPGA 有效READY # 信號(hào),同時(shí)使能SDRAM 控制接口的讀使能有效信號(hào),數(shù)據(jù)開始出現(xiàn)在LD 數(shù)據(jù)總線上。 當(dāng)數(shù)據(jù)的最后一個(gè)字節(jié)開始傳輸時(shí),PLX9656 驅(qū)動(dòng)BLAST#信號(hào)有效,同時(shí)FPGA 無(wú)效READY #信號(hào)。 最后使SDRAM 的讀使能是信號(hào)無(wú)效,PLX9656 驅(qū)動(dòng)LHOLD 無(wú)效,釋放本地總線,接著FPGA 也驅(qū)動(dòng)LHOLDA 無(wú)效,結(jié)束一次數(shù)據(jù)的傳輸。 DMA 傳輸?shù)臅r(shí)序仿真圖如圖3 所示。
圖3 本地總線到PCI 總線的DMA 傳輸時(shí)序仿真圖
Fig. 3 Simulation results of DMA transmissionfrom local bus to PCI bus