《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于PCI和LVDS的高速數(shù)據(jù)存儲系統(tǒng)的設(shè)計
基于PCI和LVDS的高速數(shù)據(jù)存儲系統(tǒng)的設(shè)計
來源:電子技術(shù)應(yīng)用2014年第4期
馬志剛1,2, 劉文怡1, 凌 偉1
(1.中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點實驗室,,電子測試技術(shù)重點實驗室, 山西 太原030051
摘要: 針對某系統(tǒng)圖像數(shù)據(jù)量大、傳輸速率快的特點,,提出了采用PCI總線協(xié)議完成PC與高速數(shù)據(jù)存儲系統(tǒng)之間的通信,,利用LVDS總線協(xié)議傳輸數(shù)據(jù)并進行混合編幀的解決方案。為提高數(shù)據(jù)存儲速率,,使用Flash交叉雙平面頁編程技術(shù),,將寫入速度提高到30 MB/s,有效地滿足了圖像高速存儲的要求,。針對數(shù)據(jù)的碼率匹配,,通過構(gòu)建片內(nèi)FIFO緩存來實現(xiàn)。測試結(jié)果表明,,所設(shè)計的數(shù)據(jù)存儲系統(tǒng)能夠穩(wěn)定地接收并存儲圖像數(shù)據(jù),,而且具有很高的可靠性。
中圖分類號: TP273
文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)04-0080-04
Design of high-speed data storage system based on PCI and LVDS
Ma Zhigang1,2, Liu Wenyi1, Ling Wei1
1. Key Laboratory of Instrumentation Science & Dynamic Measurement(North University of China), Ministry of Education, Science and Technology on Electronic Test & Measurement Laboratory, Taiyuan 030051, China;2. College of Information Science and Engineering, Shanxi Agricultural University, Taigu 030801, China
Abstract: In the light of the characteristics of the large amount of data and the high rate of transmission in the image acquisition system, the solution scheme which applys the PCI bus protocol for achieving communication between PC and the data storage system and LVDS bus protocol for data transmission and mixed coding is proposed. In order to improve the rate of data storage, the interleave two-plane page programming techniques is adopted, and the writing rate can be improved to be 30 Mbyte/s, which fully fulfils the requirement of high-speed storage of the image data. Meanwhile, on-chip FIFO buffer is built for data code rate matching. Test results indicated that the data memory system proposed in this paper can receive and store image data stably and reliably.
Key words : PCI; LVDS; data memory system; interleave two-plane page programming

    數(shù)據(jù)采集與存儲技術(shù)已經(jīng)在圖像數(shù)據(jù)處理,、遙測信息分析,、語音識別、GPS導(dǎo)航,、可視電話等一系列高速信號記錄系統(tǒng)中扮演著越來越重要的角色,,并且逐步滲透到其他重要領(lǐng)域。在航天應(yīng)用領(lǐng)域,,為了了解飛行艙內(nèi)的情況,,飛行器在執(zhí)行飛行任務(wù)的過程中,地面需要對飛行艙內(nèi)的環(huán)境進行持續(xù)監(jiān)測,從而精確地獲取艙體內(nèi)部的各種參數(shù)信息,。通過事后分析這些信息,,可對飛行器的性能進行評價并為下次飛行試驗做好準(zhǔn)備。然而,,由于圖像數(shù)據(jù)傳輸速度快,信息量大,,飛行艙的空間有限,,因此,需要設(shè)計出一種具有采集與存儲速度快,、容量大,、體積小、抗干擾能力強,、可靠性高的數(shù)據(jù)存儲系統(tǒng)[1],。
    在數(shù)據(jù)存儲系統(tǒng)中,影響存儲速率的關(guān)鍵因素是數(shù)據(jù)傳輸和存儲方式,。采用LVDS總線傳輸方式和混合編幀技術(shù)提高了數(shù)據(jù)接收的速率,;為提高數(shù)據(jù)存儲器存儲速率,本文采用了一種可使Flash存儲速度達到最優(yōu)的交叉雙平面頁編程技術(shù)[1-3],。
1 系統(tǒng)總體設(shè)計
    本文設(shè)計的高速數(shù)據(jù)存儲系統(tǒng)用于完成對飛行器飛行過程中圖像數(shù)據(jù)的采集,、編碼和存儲。試驗結(jié)束后,,通過PC控制專用的讀數(shù)裝置讀取存儲系統(tǒng)中的數(shù)據(jù),并由PC上的數(shù)據(jù)處理軟件完成數(shù)據(jù)的分析與處理,。在單元測試過程中,PC通過PCI通信接口卡(PCI9054)完成與高速數(shù)據(jù)存儲系統(tǒng)之間的通信,,實現(xiàn)指令的下發(fā),、在線實時監(jiān)測狀態(tài)顯示、數(shù)據(jù)回讀,、對存儲數(shù)據(jù)的分析以及生成分析報告等功能,。系統(tǒng)主要功能模塊可劃分為:主控單元、PC,、地面監(jiān)控裝置,、圖像采集單元、圖像存儲器(Flash),、電壓轉(zhuǎn)換模塊等,,如圖1所示。

2 關(guān)鍵技術(shù)分析
2.1 PCI板卡設(shè)計

    本文采用PLX公司的PCI9054芯片實現(xiàn)PCI總線接口的邏輯設(shè)計,。PCI9054的數(shù)據(jù)寬度為32 bit,,本地總線支持復(fù)用/非復(fù)用的32 bit地址數(shù)據(jù)總線。PCI總線作為橋接芯片,提供了PCI總線空間,、本地總線空間以及配置空間,,既能作為PCI總線的發(fā)起設(shè)備也可作為PCI從設(shè)備。FPGA作為本地總線控制器,,即PCI局部總線的目標(biāo)設(shè)備,,完成PC與下位機的通信。設(shè)計采用從模式,,基于FPGA和PCI9054的硬件平臺完成PCI局部總線的設(shè)計,,PCI板卡整體設(shè)計框圖如圖2所示。

    PCI板卡插入PC的PCI擴展槽使用,,如果要正常工作,,需要在Windows下編寫驅(qū)動程序。驅(qū)動程序主要實現(xiàn)以下幾個功能: (1)連接設(shè)備;(2)設(shè)備初始化;(3)設(shè)備讀和寫;(4)斷開設(shè)備,。Windows操作系統(tǒng)下驅(qū)動程序開發(fā)最常用的有DDK,、Driverstudio、Windriver等工具,。其中DDK的效率最高,,但編寫難度較大,因而多數(shù)技術(shù)人員使用Driverstudio,、Windriver來編寫驅(qū)動程序,使用這兩種工具編寫出來的程序也稱為WDM(Windows Device Module)程序,。DriverStudio中的DriverWorks軟件為WDM驅(qū)動程序提供了完整的框架,本設(shè)計利用其DriverWizard生成驅(qū)動程序框架,,然后添加各功能函數(shù),。此處利用類KMemoryRange實現(xiàn)對PCI9054內(nèi)部存儲器的讀寫訪問,類KIoRange實現(xiàn)對其寄存器的訪問[4],。
2.2 LVDS圖像采集編幀技術(shù)
    圖像數(shù)據(jù)由LVDS接口輸入,圖3所示為圖像信號接口時序,,經(jīng)解串器DS90CR216解碼后轉(zhuǎn)換為21 bit并行總線輸出。圖像數(shù)據(jù)的幀同步信號周期為10 ms,,高電平有效,, 每幀有289行有效數(shù)據(jù); 行同步信號周期為32 μs,,高電平有效,,每行有384個有效數(shù)據(jù);其中,,像素時鐘為15 MHz,,圖像像素時鐘的上升沿為觸發(fā)條件。幀同步信號低電平期間仍有(10÷0.032)-289=23.5個行同步信號,即幀同步信號低電平的時間應(yīng)為23.5×0.032 ms= 0.752 ms,。幀同步信號高電平的時間為9.248 ms,,行同步低電平的時間為32-(384÷15)=6.4 μs。

    測量信息伴隨著圖像數(shù)據(jù)而來,每接收一幀圖像就接收80 B的測量信息,,測量信息的串行傳輸波特率為115 200 b/s,,每包測量信息的數(shù)據(jù)共10 bit。為便于PC進行圖像數(shù)據(jù)分析處理,,在測量信息的數(shù)據(jù)前加上幀頭0X“14 92 00”和2 B幀計數(shù),。待80 B測量信息全部讀取出來后,給出圖像采集模塊的復(fù)位信號,,同時清零行計數(shù)器并清空片內(nèi)FIFO中的信息,,將采集到的一幀圖像數(shù)據(jù)和編好幀的測量信息寫入二選一數(shù)據(jù)選擇器。在幀同步信號高電平期間,,將圖像數(shù)據(jù)寫入外部16 KB的FIFO(IDT7206);在幀同步信號低電平期間,,將測量信息寫入,,最后等待圖像記錄啟動信號。
2.3 片內(nèi)FIFO設(shè)計
    圖像數(shù)據(jù)的緩存,、Flash存儲與事后回讀等過程中都用到了片內(nèi)FIFO,,采用片內(nèi)FIFO可降低硬件的復(fù)雜度、節(jié)約了成本且更有利于完成邏輯控制,。本文選用的FPGA芯片是XC3S400,,該芯片內(nèi)部的16個Block RAM不占用芯片的邏輯資源,設(shè)計中采用“A端口只寫,,B端口只讀”的思想,,根據(jù)每個端口的時鐘信號以及使能信號分別對各個端口進行操作。利用IP核技術(shù)構(gòu)建容量為1 KB的片內(nèi)FIFO原理圖如圖4所示[1],。

 

 

    圖4中的FIFO模塊調(diào)用數(shù)據(jù)寬度為8 bit,、存儲深度為1 024 B的雙口RAM,該RAM共有兩個獨立的存儲單元(A和B),。RAM的每一個管腳都是獨立配置的,,數(shù)據(jù)和地址的寫入發(fā)生在各個單元的時鐘上升沿。數(shù)據(jù)和地址的讀/寫操作還與讀/寫時鐘有關(guān),,所以設(shè)計中將A端口寫使能信號接VCC,,B端口的寫使能信號接GND,實現(xiàn)“A端口只寫,,B端口只讀”,。由外部控制模塊fifo_ctrl為雙口RAM的A端口產(chǎn)生寫時鐘和寫地址,為B端口產(chǎn)生讀時鐘和讀地址,,根據(jù)讀寫地址的差值offset產(chǎn)生FIFO的空(empty),、半滿(half)以及滿(full)信號。
2.4 交叉雙平面技術(shù)
    圖像傳輸速度快,對圖像數(shù)據(jù)的存儲采用寫入速度最快的交叉雙平面頁編程(Interleave Two-plane Page Program)技術(shù)[2-3],。為實現(xiàn)對Flash的交叉雙平面操作,,首先要對Flash(K9WBG08U1M)芯片內(nèi)部平面結(jié)構(gòu)進行劃分。整片F(xiàn)lash分為兩片(chip #1和chip #2),,每片分為4個平面(plane),,每個平面共2 048個存儲塊。也就是說,,整個Flash存儲空間由8個平面(plane1~plane8)組成,,將這8個平面分為4組:chip #1中的plane0與plane1為第0組,plane2與plane3為第1組,;chip #2中的plane4與plane5為第2組,,plane6與plane7為第3組,F(xiàn)lash的交叉雙平面操作必須嚴(yán)格按照這個分組執(zhí)行,。
    定義矢量plane(2:0)對這8個平面進行操作管理:plane(0)用于控制平面組內(nèi)的兩個平面之間的切換:為0時表示對偶數(shù)平面操作,,對應(yīng)操作偶數(shù)塊;為1時表示對奇數(shù)平面操作,,對應(yīng)操作奇數(shù)塊,。plane(1)用于完成各個平面組之間的切換:為0時表示操作的是偶數(shù)組(第0組與第2組),對應(yīng)操作Flash的前4 096塊,即A31為0,;為1時表示對奇數(shù)組(第1組與第3組)進行操作,,對應(yīng)操作Flash的后4 096塊,即A31為1,。plane(2)相當(dāng)于片選信號,,用于內(nèi)部兩片F(xiàn)lash之間的切換,為0表示對chip #1進行操作,,為1表示對chip #2操作,。進行交叉雙平面操作時,可根據(jù)plane(2:0)的值確定所要操作的平面,。
    當(dāng)對第0組平面執(zhí)行編程操作時,,依次往第1組、第2組,、第3組的各個平面中寫入命令,、地址和數(shù)據(jù)。經(jīng)過多次反復(fù)測試,,F(xiàn)lash的峰值寫入速度不小于30 MB/s,完成這三組平面的數(shù)據(jù)寫入時間為 6×4 096 B÷30 MB/s=819.2 μs>700μs ,。如果寫入Flash速度小于峰值速度,則后3組的數(shù)據(jù)寫入時間將會更大,。所以,,當(dāng)這4組依次編程結(jié)束準(zhǔn)備繼續(xù)對第0組其他頁進行編程時,,已經(jīng)錯過了第0組的頁編程時間。交叉雙平面頁編程的方法省去了等待頁編程的時間,,縮短了Flash的寫入時間,,提高了寫入速度[3]。交叉雙平面頁編程時序如圖5所示,。

3 系統(tǒng)功能自檢
    系統(tǒng)上電后,,先運行PC軟件,檢查監(jiān)控裝置與計算機之間通信是否正常,,然后設(shè)置并啟動信號源,,此時監(jiān)控裝置開始向記錄器發(fā)送數(shù)據(jù)。其中,,監(jiān)控裝置下發(fā)的數(shù)字量串行波特率為115 200 b/s,,實時監(jiān)測回收的信號波特率為800 kb/s,信號源數(shù)據(jù)格式設(shè)計為:每幀共128  B,,前5 B由幀頭0X “EB 90”和3 B幀計數(shù)組成,,剩余字節(jié)為0X“0F~89”遞增數(shù)據(jù)。PC監(jiān)測數(shù)據(jù)的內(nèi)容就是監(jiān)控裝置向記錄器發(fā)送的數(shù)據(jù),。根據(jù)實時顯示的監(jiān)測數(shù)據(jù)可以判斷系統(tǒng)是否正常工作。通過PC讀取并分析記錄器所存數(shù)據(jù)與下發(fā)信號源是否一致,,完成系統(tǒng)功能自檢,。
4 系統(tǒng)實測結(jié)果
    系統(tǒng)上電后,存儲器接收到啟動記錄信號后開始記錄,。記錄圖像數(shù)據(jù)的時間不限制,,直到記滿。圖6是用圖像分析軟件對測試數(shù)據(jù)還原后的某幀圖像,。


    設(shè)計了一種以FPGA為主控單元,,以Flash為存儲介質(zhì)的高速圖像數(shù)據(jù)存儲系統(tǒng)。系統(tǒng)用于完成對高速LVDS圖像數(shù)據(jù)的采集,、存儲和實時監(jiān)測,,系統(tǒng)具有存儲速度快、存儲容量大,、系統(tǒng)可靠性高等優(yōu)點,,能夠滿足實際測試的需求。在后續(xù)的設(shè)計中還可以做以下優(yōu)化工作:(1)采用雙片F(xiàn)lash進行雙備份,,防止單片F(xiàn)lash失效而造成數(shù)據(jù)丟失,,進一步提高數(shù)據(jù)存儲的完整性和可靠性[5-6]。(2)對FPGA代碼進行優(yōu)化,、提高FPGA資源的使用率[6-8],。
參考文獻
[1] 李勇. 基于LVDS接口的高速圖像數(shù)據(jù)記錄器的設(shè)計與實現(xiàn)[D]. 太原:中北大學(xué), 2013.
[2] 馬志剛, 朱思敏,劉文怡. 基于LVDS的高速圖像數(shù)據(jù)存儲系統(tǒng)設(shè)計[J]. 數(shù)據(jù)采集與處理,2013,28(3):382-385.
[3] 郭錚,劉文怡,馮妮.基于FPGA多通道高速數(shù)據(jù)采集存儲器設(shè)計[J]. 電視技術(shù),2012,36(17):55-57.
[4] 王麗莉. 基于CPCI光纖傳輸卡的設(shè)計與研究[D].太原:中北大學(xué),2012.
[5] 常鐵原,王欣,陳文軍.多路數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2008,11(2):21-23.
[6] 劉攀,王紅亮,孟令軍.基于FPGA的數(shù)字圖像采集存儲系統(tǒng)的設(shè)計[J]. 電視技術(shù),2010,34(6):33-35.
[7] 胡振良.某導(dǎo)彈遙測數(shù)據(jù)存儲器系統(tǒng)的設(shè)計與實現(xiàn)[D].太原:中北大學(xué),2008.
[8] 段靜輝. 基于存儲測試技術(shù)的炮射導(dǎo)彈測試系統(tǒng)的研究[D]. 太原:華北工學(xué)院, 2000.
[9] 王國華, 宋卿, 徐旭偉,等.飛行數(shù)據(jù)采集器通用自動測試軟件[J]. 測試技術(shù)學(xué)報,2010,24(3):199-204.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。