<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于LVDS的高速圖像數據存儲器的設計與實現

          基于LVDS的高速圖像數據存儲器的設計與實現

          作者: 時間:2014-10-28 來源:網絡 收藏

            采集數據的有效傳輸和存儲轉發(fā)技術的發(fā)展保證了數字圖像在現實中廣泛應用。如今,從多媒體通信領域的遠程教育、圖像監(jiān)視到醫(yī)學上的遠程會診,都和數據的有效傳輸及存儲轉發(fā)技術息息相關。在國防工業(yè)領域,圖像數據的采集存儲和連續(xù)有效轉發(fā)也起著巨大的作用,航空遙感圖像和衛(wèi)星遙感圖像的處理加工,電視制導中數據視頻圖像的傳輸,都離不開圖像傳輸存儲技術。本文設計的基于Flash的高速大容量固態(tài),采用了基于的數據傳輸方式傳輸兩路高速圖像數據,實現圖像數據的高速實時存儲。不僅具有處理速度快、設計靈活性高等特點,還具有可配置性和可重構性的特點。

          本文引用地址:http://www.ex-cimer.com/article/264513.htm

            1系統(tǒng)總體設計

            本文介紹的圖像存儲器在飛行任務中負責完成兩路獨立視頻信號的采集存儲任務。視頻圖像存儲的總體結構框圖如圖1所示,當光耦接收到起飛和誘餌兩個控制點火信號后,就控制視頻信號1、視頻信號2經2路獨立的接口傳輸,并分別解碼后緩存到2個外部FIFO中,最后寫入到2個各自的存儲模塊Flash當中。在系統(tǒng)工作時,讀書裝置可以實時監(jiān)測記錄器關鍵狀態(tài)參數;系統(tǒng)存儲工作完成后,讀數裝置通過接口以20 Mbyte/s的速度遠程高速讀取圖像記錄器的數據,將數據回傳至上位機進行存盤判讀。

            

           

            圖1存儲器功能框圖

            本設計存儲器負責接收的2路圖像尺寸均為640 X480 byte,在飛行器內部傳感器下發(fā)起飛和誘餌兩個關鍵信號的控制下,圖像分別對這2路視頻圖像信號進行采集,采樣位數:8 byte/像素,輸入數據碼率:30.72 Mbyte/s,幀率:100 f/s(幀/秒),然后將解碼后的數據分別存儲到2個Flash中,最后準確地完成數據的轉發(fā)任務,使圖像數據順利進入下一模塊。存儲器視頻信號處理硬件電路框圖如圖2所示。

            

           

            圖2存儲器視頻信號處理硬件電路框圖

            2硬件電路設計

            2.1 LVDS長線傳輸電路設計

            本設計系統(tǒng)中攝像頭發(fā)出的視頻圖像信號屬于高速變化的信號,容易受到噪聲影響。低壓差分(Low Volt-age Differential Signaling,LVDS)數據傳輸技術是一種新型的、具有很低的差分電壓擺動幅度的信號傳輸方式。LVDS傳輸過程中以差分的方式傳送數據,從而具有很低的串擾和噪聲以及只消耗很少的功率。此外它通過一對并行PCB走線或平衡電纜傳輸數據,可以達到100 Mbit/s甚至高于1 Gbit/s的高速率數據傳輸。解決了高速數據的有效傳輸,同時也將有助于降低系統(tǒng)設計復雜度,提高系統(tǒng)可靠性。基于LVDS技術的傳輸特點及應用優(yōu)勢,本設計中圖像輸入接口采用LVDS進行圖像數據接收。設計中為滿足信號實時高準確性的傳輸,在LVDS發(fā)送端采用串化器和驅動器相結合的方式增強信號;在LVDS接收端采用均衡器和解串器相結合的方式,來補償信號長線傳輸過程中的損耗。這樣高速圖像信號可以穩(wěn)定地傳輸上百米。如圖3為LVDS接口端硬件電路設計圖。

            

           

            圖3 LVDS接口端硬件電路設計圖(點擊查看大圖)

            2.2 FIFO的電路設計

            本設計中進入FIFO前經解碼得到的圖像數據傳輸速率為30.72 Mbit/s,因此在FIFO的選型中,必須選擇一款讀寫速度快而且容量大的外部FIFO來緩存圖像數據。經過計算并對比分析后,本設計選用了CYPRESS公司生產的64 kbit x 18 bit的CY7CA285V:

            1)CY7C4285V擁有66.7 MHz的最大工作頻率,10 ns的最小讀寫周期,完全可以穩(wěn)定、可靠地接收碼率為30.72 Mbit/s的圖像數據,也滿足25 ns讀寫周期的要求。

            

           

            圖4單路圖像數據接收接口時序定義圖

            2)從FIFO接收圖像數據的時序圖中(如圖4)可以看出,一個水平同步時間內,寫入FIFO的圖像數據有640 byte,而讀出FIFO的數據量為33 Mbyte/s x 18.75μs=618.75 byte.這樣每一個水平同步時間內FIFO中就會剩余640 byte-618.75 byte=21.25 byte的圖像數據。當垂直同步信號拉低時,FIFO中剩余的圖像數據量達到最大,本設計控制FIFO半滿即讀,那么FIFO的容量至少應為:2 x 21.25 x480=20400 byte.顯然容量為64 kbyte的CY7C4285V可以滿足設計要求。

            3)操作簡單。首先,單片64 kbyte CY7CA285V就可以滿足設計要求,而不需串聯(lián)多個FIFO,這樣操作起來方便了很多。其次,該FIFO有讀使能、寫使能作為狀態(tài)保障,且均采用邊沿觸發(fā)方式,使得時序控制簡捷高效,便于的邏輯實現。

            3關鍵技術研究

            3.1高速寫入方式

            本設計選用三星公司的K9WBG08U1M作為存儲介質。該芯片容量大小為4 Gbyte,內部分為2片,每片2 Gbyte,可通過片選信號和切換兩片存儲空間,每片由8192塊組成,每塊中有64頁,每一頁都可以存儲4 kbyte的圖像數據和128 byte的狀態(tài)信息。本設計要完成對高速圖像數據的存儲任務,普通的Flash寫入方式無法滿足30.72 Mbyte/s.數據存儲速度的要求。因此,大幅提高Flash數據接口的寫入速度,成為系統(tǒng)設計的關鍵。K9WBG08U1M內部平面結構圖如圖5所示,Flash內部的兩片分別為chip1和chip2,4個平面Plane0~Plane3組成1個chip,原始的寫入方式為依次寫滿Plane0、Plane1、Plane2、Plane3,為大幅度提高數據存儲速度,系統(tǒng)采用交錯雙平面頁編程(interleave two-plane page program)的操作方式,并行對chip1、chip2的8個平面進行操作,如圖6所示Interleave two-plane編程時序圖:從chip1的Plane0開始依次寫入每一個平面第1塊的第1頁,即寫入chip1的Plane0的block0的page0后,再橫向連續(xù)寫入7頁,那么當循環(huán)回chip1的Plane0的block0的page1時,用時25 ns x 4096 x 7=716.8μs大于頁編程時間tPRoG的最大值700μs,從而可以不問斷地繼續(xù)對chip1的Plane0的block0的page1進行操作,這樣充分利用了頁編程的時間,使Flash的寫入速度提高到40 Mbyte/s,完全可以完成對30.72 Mbyte/s圖像數據的存儲任務。

            

           

            圖5 K9WBG08U1M內部平面結構圖

            

           

            圖6 Interleave two-plane編程時序圖

          存儲器相關文章:存儲器原理



          上一頁 1 2 下一頁

          關鍵詞: LVDS 數據存儲器 FPGA

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();