新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA和FLASH ROM的圖像信號發生器設計

        基于FPGA和FLASH ROM的圖像信號發生器設計

        作者: 時間:2012-07-03 來源:網絡 收藏

        2.2 無效塊管理
        選取 SAMSUNG 公司的 NAND 型的K9F1G16UOM-作為存儲芯片,單片容量為1 Gb、數據寬度為16 b。大容量的器件一般都是按塊(block)管理其存儲空間。FLASH芯片可能有包含一個或多個無效位的無效塊,這在NAND型FLASH中是不可避免的。無效塊出現的幾率很小,但影響很大。如果對FLASH中的無效塊進行操作,無效塊會在數據記錄的過程中造成數據的丟失和誤碼,影響數據的有效性和完整性。由于無效塊和有效塊相互隔離,無效塊并不會影響有效塊的操作,因此只要在數據存儲前將FLASH中的無效塊剔除,就可有效避免數據的丟失和誤碼。
        FLASH在出廠時會對無效塊進行檢查,并將信息標注在FLASH每一塊的第一頁和第二頁的第1 024個字,0xFFFF表示塊有效。非0xFFFF則表示無效塊。為避免破壞這些標注信息,在對FLASH進行任何擦除或寫入操作前,要首先建立無效塊信息表。SAMSUNG公司保證其FLASH的第一塊一定是有效塊,并且在對其擦寫1 000次以內不會出任何錯。所以本文使用該塊來保存整片FLASH的無效塊信息。遍歷訪問FLASH中的每個塊的第一頁和第二頁,判斷該塊是否滿足有效塊的要求,若不滿足則將其塊地址緩存到的RAM中;接下來,將FLASH的無效塊數量和無效塊地址存入該片FLASH的第一塊的第一頁內。在FLASH的使用過程中,仍然有可能產生新的無效塊,當出現這種情況時,則需要更新無效塊信息表。無效塊信息表用來供讀寫地址產生器查詢時使用,這樣就可以避開壞塊的影響。
        2.3 數據寫入管理
        圖像數據寫入時,接收來自USB控制器的數據,并產生控制時序將數據寫入FLASH。由于高幀頻相機一般是多通道輸出,所以在模擬這類相機的時候要注意這個因素。對于某一幅目標圖像,圖像數據寫入首先是應用程序獲取圖像數據;然后將各個通道對應位置的像素數據按次序調整在一起;接著通過USB將數據傳輸至FPGA,FPGA將數據截斷成2 KB大小并依次將各分段數據塊寫入8片FLASH中,數據分流如圖4所示。圖像數據按通道進行調整可以使得系統輕松地實現多通道輸出。對數據的分流處理,使得系統的8片FLASH在讀出時可以真正實現并行讀取數據。

        本文引用地址:http://www.104case.com/article/190175.htm

        e.JPG


        FLASH的一頁(page)的大小為2 KB,也是它的基本瀆寫單元。要想連續寫入2 KB的數據,需要將訪問FLASH的頁地址都設為00H。當FPGA需要向某一片FLASH寫入數據時,首先要查看該片FLASH的FPGA寫入管理模塊是否處于ready狀態;若處于busy狀態,則應用程序進入傳輸等待,當寫入管理進入ready狀態后,則應用程序發送數據,一共2 KB數據緩沖到FLASH在FPGA中對應的RAM;數據緩沖完成之后,該FLASH的寫入管理模塊進入busy狀態并開始將RAM中的數據寫入FLASH 的某一頁(page),同時FPGA轉向對下一片FLASH進行傳輸訪問。
        2.4 數據讀出管理
        數據讀取輸出是指FPGA模擬CCD相機輸出時序,將FLASH中的數據通過Camera Link接口進行循環輸出。所選的FLASH的單片最大讀出速率可達25 MB/s,由于8片FLASH可以并行讀出,所以整個系統的數據讀出率可以達到200 MB/s。這樣有利于模擬出較高幀頻的CCD相機輸出。當系統進行圖像數據瀆取輸出時,FPGA中設置了FIFO來緩沖數據。Camera Link輸出管理模塊產生相機時序,將FIFO中的數據按要求送到Cam era Link接口。對于從FLASH向FIFO轉移數據,首先將各FLASH中的2 KB數據被讀入其在FPGA中對應的RAM中;然后控制各RAM中的數據被按順序轉移至FIFO中,控制器通過FIFO的數據深度來判斷是否需要繼續讀入數據,當判斷FIFO中的數據快滿時暫停讀取,這時由于數據繼續被讀出,隨著FIFO中的數據減少到一定程度時,啟動將RAM中的數據繼續讀入FIFO;一旦一個RAM中的數據被轉移,則FLASH讀取管理模塊繼續將該FLASH中的后續數據寫入該RAM。

        c1.jpg


        在加載某種8位數據寬度、雙通道輸出的目標圖像時,使用Chipscope得到的Camera Link信號如圖5所示。其中,strobe為時鐘信號,dval,lval,fval分別是數據有效、行有效、幀有效信號。觀測結果說明輸出的數據與加載的數據保持一致,輸出控制時序也符合要求。
        為了模擬出不同類型的CCD相機,只需要修改FPGA程序中設定的strobe時鐘頻率、Line blanking時間、Frame blanking時間等必要參數即可。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 依安县| 敦煌市| 白朗县| 茌平县| 无为县| 晴隆县| 陆良县| 卫辉市| 闽侯县| 鲜城| 滨海县| 寻甸| 达州市| 文安县| 从江县| 沈阳市| 张家界市| 安徽省| 那曲县| 磴口县| 东阿县| 轮台县| 禄劝| 拜泉县| 武汉市| 澄江县| 岐山县| 芷江| 嘉荫县| 拜泉县| 讷河市| 张家口市| 洞头县| 苗栗市| 贺兰县| 天门市| 徐汇区| 旬阳县| 新安县| 长治市| 镇原县|