初曉慧,盛琳陽
(哈爾濱師范大學(xué))
星敏感器圖像顯示驗(yàn)證VGA接口設(shè)計(jì)*
初曉慧,盛琳陽
(哈爾濱師范大學(xué))
設(shè)計(jì)了星敏感器圖像驗(yàn)證VGA顯示接口,采用單片F(xiàn)PGA實(shí)現(xiàn)了輸入圖像數(shù)據(jù)處理、VGA時(shí)序產(chǎn)生等功能.實(shí)驗(yàn)仿真表明,該系統(tǒng)邏輯時(shí)序設(shè)計(jì)正確,能很好地完成對(duì)星敏感器星點(diǎn)定位、星圖識(shí)別等功能測(cè)試的監(jiān)視工作.
VGA;嵌入式系統(tǒng);FPGA
星敏感器是天文導(dǎo)航系統(tǒng)的主要設(shè)備,是一種高精度、高可靠性的姿態(tài)測(cè)量部件.星敏感器的工作原理是以天空中的恒星作為參照物,利用CCD相機(jī)某一時(shí)刻拍攝到的某一幅星圖,進(jìn)行星點(diǎn)提取、星圖識(shí)別、姿態(tài)計(jì)算等處理,最后給出航天器三軸姿態(tài)[1].
在星敏感器投入使用前,必須進(jìn)行一系列的地面功能測(cè)試,用以檢驗(yàn)其各部分功能的有效性和可靠性.通常的地面功能測(cè)試方法主要有兩種[2]:一種是借助星場(chǎng)模擬器來進(jìn)行功能測(cè)試,其基本方法是用星場(chǎng)模擬器模擬無窮遠(yuǎn)的星空,星敏感器通過觀測(cè)模擬的星空?qǐng)D像進(jìn)行識(shí)別和姿態(tài)計(jì)算.該方法的缺點(diǎn)在于星場(chǎng)模擬器價(jià)格昂貴;另一種是外場(chǎng)觀星測(cè)試,即在實(shí)際星空下進(jìn)行測(cè)試,該方法簡(jiǎn)單易行,但是受天氣等因素影響較大,無法保證隨時(shí)測(cè)試的需求,也無法模擬星敏感器的在軌狀態(tài).
隨著電子技術(shù)的不斷進(jìn)步,目前星敏感器常采用FPGA實(shí)現(xiàn)星圖的預(yù)處理[3],此時(shí)可以在同一片F(xiàn)PGA內(nèi)設(shè)計(jì)一個(gè)星圖模擬器,從而簡(jiǎn)單方便地實(shí)現(xiàn)設(shè)計(jì)調(diào)試階段對(duì)星敏感器星點(diǎn)定位、星圖識(shí)別等功能的測(cè)試.因該星圖模擬器僅在設(shè)計(jì)調(diào)試階段用于模擬生成CCD相機(jī)信號(hào),本身不具備顯示圖像功能,為實(shí)現(xiàn)在半物理仿真試驗(yàn)和實(shí)際觀星試驗(yàn)時(shí)監(jiān)測(cè)星圖情況,需要在星圖模擬器后設(shè)計(jì)一個(gè)VGA接口.由于CCD相機(jī)特殊的信號(hào)時(shí)序以及數(shù)據(jù)跨時(shí)鐘域傳輸引起的亞穩(wěn)態(tài)問題,決定了該VGA接口不能采用普通PC機(jī)顯示卡上VGA接口的設(shè)計(jì)方法.
該文使用FPGA設(shè)計(jì)了星圖模擬器后的VGA接口IP核,針對(duì)CCD相機(jī)特殊的信號(hào)時(shí)序設(shè)計(jì)了相應(yīng)的輸入數(shù)據(jù)處理模塊,采用異步FIFO解決了數(shù)據(jù)跨時(shí)鐘域傳輸引起的亞穩(wěn)態(tài)問題,實(shí)驗(yàn)證明,采用該接口連接顯示器,能很好地完成設(shè)計(jì)調(diào)試階段對(duì)星敏感器星點(diǎn)定位、星圖識(shí)別等功能測(cè)試的監(jiān)視工作.
顯示系統(tǒng)總體結(jié)構(gòu)圖如圖1所示.
相機(jī)數(shù)據(jù)既可以是來自CCD相機(jī)的真實(shí)圖像數(shù)據(jù),也可以是來自星圖模擬器的模擬圖像數(shù)據(jù).該數(shù)據(jù)經(jīng)FPGA處理后,以圖像像素點(diǎn)灰度值的形式存入異步FIFO中緩存.每幀圖像由768行構(gòu)成,每行1024點(diǎn)像素.顯示緩存器SRAM中保存一幀圖像信息,在行掃描期間,F(xiàn)PGA控制邏輯輸出場(chǎng)掃描和行掃描控制信號(hào),同時(shí)從SRAM中依次取出數(shù)據(jù),送D/A轉(zhuǎn)換器
轉(zhuǎn)換成模擬RGB信號(hào),從VGA接口輸出.在行掃描回掃期和場(chǎng)掃描回掃期期間,F(xiàn)PGA控制邏輯將FIFO中的數(shù)據(jù)移入顯示緩存器SRAM中,進(jìn)行數(shù)據(jù)更新.
FPGA選用Xilinx的XC2S200-5PQ208C.控制邏輯分為三個(gè)模塊:相機(jī)數(shù)據(jù)處理緩存模塊,顯示緩存管理模塊,VGA時(shí)序生成模塊.
圖1 顯示系統(tǒng)總體結(jié)構(gòu)圖
來自線陣CCD相機(jī)的圖像數(shù)據(jù)包括時(shí)鐘、門控和圖像數(shù)據(jù).時(shí)鐘頻率40MHz,門控低電平有效.線陣CCD的圖像數(shù)據(jù)位寬為10位,數(shù)據(jù)傳輸通道均采用5位并行輸出.門控有效期間,先發(fā)送32個(gè)輔助數(shù)據(jù),然后是12000個(gè)圖像數(shù)據(jù).圖像數(shù)據(jù)中,前2048個(gè)數(shù)據(jù)每?jī)蓚€(gè)組成一個(gè)10bit的圖像像素點(diǎn)灰度值,像素的高5位在前,低5位在后;共1024個(gè)像素點(diǎn)構(gòu)成一幀圖像的一行,其余數(shù)據(jù)舍棄.這樣的輸入數(shù)據(jù)時(shí)序決定了系統(tǒng)無法將輸入數(shù)據(jù)不經(jīng)處理直接傳送至顯示緩沖器中.另一方面,由于輸入數(shù)據(jù)與處理模塊處于不同的時(shí)鐘域,會(huì)產(chǎn)生所謂亞穩(wěn)態(tài)問題[4],為此,在輸入數(shù)據(jù)與顯示緩沖器之間,增加了一個(gè)FIFO存儲(chǔ)器,作為數(shù)據(jù)輸入緩存.在FPGA設(shè)計(jì)中,設(shè)計(jì)了一個(gè)相機(jī)數(shù)據(jù)處理緩存模塊.該模塊先搜索門控信號(hào)的下降沿,找到后開始計(jì)數(shù).先計(jì)滿32個(gè)脈沖,然后開始每個(gè)脈沖讀取一個(gè)5bit的數(shù)據(jù),每?jī)蓚€(gè)數(shù)據(jù)組合成一個(gè)10 bit的圖像點(diǎn)像素灰度值存入FIFO中.
FIFO選用美國(guó)IDT公司生產(chǎn)的高速大容量先進(jìn)先出存儲(chǔ)器IDT72V2113.該器件最高工作頻率為133 MHz,容量為512 K字節(jié),可以通過引腳方便地將容量設(shè)置成512 K×9 bit或者256 K×18 bit兩種方式.此處由于每個(gè)像素點(diǎn)為10 bit信息,故設(shè)置為256 K×18 bit方式,這樣,每個(gè)存儲(chǔ)單元的低10位存儲(chǔ)一個(gè)像素點(diǎn)的灰度值,高8位數(shù)據(jù)線不用.芯片提供全滿、半滿、全空、將滿及將空等五種標(biāo)志信號(hào).FPGA的相機(jī)數(shù)據(jù)處理緩存模塊要根據(jù)FIFO的寫入時(shí)序設(shè)計(jì)相應(yīng)的控制邏輯.
VGA顯示接口是視頻圖形陣列(Video Graphics Array)接口的簡(jiǎn)稱.原來是微機(jī)系統(tǒng)使用的顯示接口,因?yàn)槭褂脧V泛,現(xiàn)在絕大部分的顯示設(shè)備都帶有VGA顯示接口.在VGA接口協(xié)議框架中,根據(jù)不同的分辨率和刷新頻率,又分為不同的顯視模式:VGA(640×480)、SVGA(800×600)和XGA(1024×768)等.VGA顯示接口總共有15條線,為顯示器提供兩類信號(hào),一類是數(shù)據(jù)信號(hào),一類是控制信號(hào).數(shù)據(jù)信號(hào)包括紅(Red)、綠(Green)、藍(lán) (Blue)信號(hào)三色模擬信號(hào),簡(jiǎn)稱RGB信號(hào),控制信號(hào)包括行同步信號(hào)(Horizon Synchronizing,HS)和場(chǎng)同步信號(hào)(Vertical Synchronizing,VS),控制了VGA的顯示時(shí)序.輸出不同分辨率時(shí),行同步信號(hào)和場(chǎng)同步信號(hào)的頻率也不同.
常見的CRT彩色顯示器,其彩色顯像管屏幕上的每一個(gè)像素點(diǎn)都由紅、綠、藍(lán)三種涂料組合而成,由RGB三束電子束分別激活這三種顏色的磷光涂料,以不同強(qiáng)度的電子束調(diào)節(jié)三種顏色的明暗程度就可得到所需的顏色.VGA顯示接口采用的是光柵逐行掃描的方法來顯示圖像.顯示一幀圖像的過程是電子束從屏幕的左上角開始向右掃描一行,掃描到屏幕最右端后關(guān)閉電子束(水平消隱),迅速回到最左端,然后從下一行開始繼續(xù)掃描下一行圖像,這樣從左至右,從上至下,掃描正程顯示圖像,掃描回程消隱,直到掃描完整幅圖像,關(guān)閉電子束(垂直消隱),迅速返回到屏幕的左上角開始掃描下一幀圖像.
設(shè)計(jì)VGA控制器主要任務(wù)是時(shí)序的驅(qū)動(dòng),也即是對(duì)5 個(gè)信號(hào)(Red,Blue,Green,HS,VS)的時(shí)序驅(qū)動(dòng),這是完成設(shè)計(jì)的關(guān)鍵.時(shí)序稍有偏差.顯示必然不正常.甚至?xí)p壞彩色顯示器.圖2為VGA行掃描時(shí)序圖.圖3為VGA場(chǎng)掃描時(shí)序圖.
圖2 VGA行掃描時(shí)序圖
圖3 VGA場(chǎng)掃描時(shí)序圖
由于VGA是模擬接口,只能接收模擬的圖像信號(hào),因此,必須將數(shù)字圖像信號(hào)進(jìn)行數(shù)模轉(zhuǎn)換.這里使用的是一塊高速DAC芯片ADV7123.ADV 7123是美國(guó)AD公司生產(chǎn)的三路高速、10位輸入的視頻DA轉(zhuǎn)換器,具有330 MHz的最大采樣速度.由于本系統(tǒng)要顯示的圖像為灰度圖像,而對(duì)于VGA顯示器而言,當(dāng)輸入的R、G、B信號(hào)相等時(shí)顯示圖像為灰度圖像,因此,本系統(tǒng)將處理后的亮度數(shù)字信號(hào)同時(shí)輸出給ADV7123的R、G和B接口,同時(shí)送出HS和VS同步信號(hào),即可在顯示器上顯示出灰度圖像.
顯示緩存中需要存儲(chǔ)一幀CCD相機(jī)拍攝的待顯示的圖像數(shù)據(jù).存儲(chǔ)方式為每個(gè)存儲(chǔ)單元存儲(chǔ)一個(gè)像素點(diǎn)的10bit亮度信息,由地址為全零的單元開始依次存入一幀圖像第一行的第1列到第1024列,接著存入第二行的第1列到第1024列……,如此一直存完所有768行.
實(shí)際上可以選用的器件有多種,如DRAM、SDRAM及SRAM等.DRAM、SDRAM屬于動(dòng)態(tài)存儲(chǔ)器,容量大、價(jià)格便宜但速度較慢,且在使用中需要定時(shí)刷新,對(duì)于基于FPGA的視頻顯示系統(tǒng),需要設(shè)計(jì)專用的刷新電路,增加了系統(tǒng)設(shè)計(jì)的復(fù)雜程度.而SRAM速度高、接口簡(jiǎn)單、容量較小.隨著集成電路技術(shù)的不斷發(fā)展,容量不斷增大,價(jià)格也不斷下降,在需要高速實(shí)時(shí)顯示的視頻處理系統(tǒng)中的使用越來越普遍.因此在本系統(tǒng)中,使用了Cypress公司的CY7C1061AV33型號(hào)的SRAM,它的容量是1M×16bit,速度是10 ns,根據(jù)上面的分析,完全可以保證快速地讀出和寫入圖像數(shù)據(jù).
FPGA與SRAM之間的連接比較簡(jiǎn)單,只需分別將SRAM的數(shù)據(jù)線、地址線、輸出使能信號(hào)(OE)、寫(WE)和片選信號(hào)(CE)與FPGA相連即可.而要完成對(duì)顯示緩存的控制管理,則需要按使用要求編寫軟件實(shí)現(xiàn)控制時(shí)序.
對(duì)顯示緩存的控制操作主要有兩部分內(nèi)容:一是在行掃描有效同時(shí)場(chǎng)掃描也有效期間,要依次從SRAM中讀取圖像亮度數(shù)據(jù),送ADV7123以產(chǎn)生圖像的模擬信號(hào).二是在一場(chǎng)的行掃描和場(chǎng)掃描消隱期間,要完成圖像的更新.
圖像的更新操作主要任務(wù)是把相機(jī)新產(chǎn)生的存于FIFO中的數(shù)據(jù)及時(shí)傳送到顯示緩存中,以便在下一幀顯示掃描時(shí)能把新數(shù)據(jù)及時(shí)顯示出來.在這同時(shí)又不能影響正在進(jìn)行的顯示掃描.由相機(jī)輸入時(shí)序可以計(jì)算出,在完成掃描顯示一幀圖像的周期內(nèi),相機(jī)產(chǎn)生的數(shù)據(jù)量約為19行,遠(yuǎn)遠(yuǎn)不夠一幀圖像.為了既能及時(shí)更新數(shù)據(jù),又在視覺上有一定的舒適感,設(shè)計(jì)上使新數(shù)據(jù)覆蓋上一幀圖像中最先顯示的部分.顯示時(shí)則通過修改讀取數(shù)據(jù)地址指針將新數(shù)據(jù)接到上一幀圖像的底部.這樣在視覺上使人感到圖像在緩慢向上滾動(dòng).為不影響顯示掃描,數(shù)據(jù)的傳送選在行消隱和場(chǎng)消隱期間進(jìn)行.由相機(jī)輸入時(shí)序可以計(jì)算出,在一幀的行消隱和場(chǎng)消隱期間,完全可以把新產(chǎn)生的數(shù)據(jù)全部傳送到顯示緩存中.
讀取圖像的操作從場(chǎng)消隱脈沖結(jié)束時(shí)開始.在場(chǎng)消隱期間對(duì)讀取操作進(jìn)行初始化,包括把下一幀的起始地址置入讀取數(shù)據(jù)地址指針等操作.CY7C1061AV33有20根地址線,其中低10位作為列地址,可尋址1024列;高10位作為行地址.當(dāng)場(chǎng)消隱結(jié)束,第一個(gè)行掃描脈沖開始有效后,列地址置為全零,行地址則要在上一幀掃描結(jié)束地址的基礎(chǔ)上加上消隱期間新存入的行數(shù),這樣就確定了下一幀顯示的起始地址.若此時(shí)行地址為n,則從第n行讀取第一個(gè)像素點(diǎn)顯示.然后列地址加1,讀取第n行的第二個(gè)像素點(diǎn)……,這樣,每讀取一個(gè)數(shù)據(jù),列地址加1,直到第n行第1024個(gè)像素點(diǎn)讀取完畢,列地址回到0,行地址加1,然后開始讀取第n+1行數(shù)據(jù).若n+1=768,則將n置為0.這樣依次讀取每一行數(shù)據(jù)顯示,直到讀完一幀,則完成了一幀圖像的顯示,開始場(chǎng)消隱.
圖4截取了在ModelSim SE 5.7環(huán)境下對(duì)本系統(tǒng)的時(shí)序仿真波形.ModelSim是Mentor Graphics公司開發(fā)的目前業(yè)界最通用的專業(yè)化仿真、調(diào)試工具之一.設(shè)計(jì)取XGA顯示模式,分辨率為1024 ×768,幀頻率 75Hz,像素頻率約82 MHz.圖中mclk信號(hào)為像素時(shí)鐘,hs2信號(hào)為水平同步信號(hào),vs2信號(hào)為垂直同步信號(hào),vs和hs信號(hào)相與產(chǎn)生復(fù)合消隱信號(hào).仿真期間復(fù)位信號(hào)mreset無效(置高).
圖4 仿真結(jié)果
仿真結(jié)果表明,采用該文提出的方法可以正確地生成VGA同步時(shí)序信號(hào).實(shí)際調(diào)試中,使用此VGA接口連接CRT顯示器或液晶顯示器,都能正確顯示CCD相機(jī)輸入的圖像數(shù)據(jù).
設(shè)計(jì)的圖像顯示驗(yàn)證VGA接口,通過使用FIFO緩存、采用行消隱和場(chǎng)消隱期間更新圖像數(shù)據(jù)到顯示緩存等措施,解決了CCD相機(jī)圖像數(shù)據(jù)特殊的時(shí)序難以在普通VGA接口上顯示的問題及數(shù)據(jù)跨時(shí)鐘域引起的亞穩(wěn)態(tài)問題.目前本系統(tǒng)已經(jīng)在實(shí)際星敏感器的設(shè)計(jì)調(diào)試中應(yīng)用,使用效果良好.進(jìn)一步的研究將考慮使系統(tǒng)具有能夠?qū)D像進(jìn)行抽點(diǎn)全景顯示和不抽點(diǎn)局部顯示、在圖像實(shí)時(shí)顯示的同時(shí)能夠報(bào)告丟行信息、實(shí)時(shí)顯示時(shí)能夠通過硬盤記錄全部原始數(shù)據(jù)等功能.
[1]岳蕊,周國(guó)輝.Tycho-2星表文件格式數(shù)據(jù)的讀?。跩].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2010,26(4):42-44.
[2]魏新國(guó),張廣軍,樊巧云,江潔.利用仿真星圖的星敏感器地面功能測(cè)試方法.紅外與激光工程[J],2008,37(6):1087-1091.
[3]楊清珍,陳朝陽,等.用FPGA實(shí)現(xiàn)星圖目標(biāo)的質(zhì)心提取.計(jì)算機(jī)與數(shù)字工程[J],2005,33(10):63-65.
[4]黃忠朝,趙于前.一種實(shí)現(xiàn)高速異步FIFO的FPGA方法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(3):13-15.
VGA Interface Design Verified by Star Sensor Image Display
Chu Xiaohui,Sheng Linyang
(Harbin Normal University)
In this paper,VGA interface designs are verified by the star sensor image display.Some functions such as input image data processing and produce VGA time order are realized by single FPGA.Experiment results show that logic time order of this system is right,and it could complete function test monitoring work of star point positioning,star graph identify of star sensor.
VGA;Embedded system;FPGA
2010-08-08
*黑龍江省教育廳科學(xué)技術(shù)研究項(xiàng)目(11541104)
(責(zé)任編輯:季春陽)