瓦伦西亚断腿
客服熱線:0755-32806662

CCD圖像傳感器的實用性如何最大發揮

2016-10-28 10:37 瀏覽:231 評論:0 來源:光學網手機版   
核心摘要:CCD常用于對量子效率、動態范圍、暗信號和讀出噪聲等指標要求極高的高性能圖像系統。CCD工作在一種并行/串行架構,也就是說圖像的每一線并行移動,輸出的線數據在時鐘作用下逐像素寫入串行寄存器讀出。因為CCD是模擬器件,為了獲得更好的性能,這些并行和串行轉換需要精確的時序和精確的重疊區域控制。
許多現有的CCD驅動系統都基于大規模的系統架構,這限制了它們的性能和靈活性。E2V公司“Space Imaging ”項目組的產品開發團隊已經研發出了用于內部測試和系統產品的靈活的“proximity electronics core”原型機。這里的“proximity”指的是為了獲得更好性能,驅動電路離CCD非常近。這種設計架構允許主要的圖像處理工作在前端轉換成“安全”的數字信號后可以在遠端通過專用的處理集群完成。
CCD傳感器

這個核心板的主要功能是:
(1)Software-Defined:軟件配置操作模式,硬件使用一個類似于SOI 7層協議棧的預定義協議棧;
(2)信號快速轉換到數字域,顯著的減少了模擬鏈路路徑;
(3)提升了用于定義CCD驅動行為的抽象層次;
(4)產生高精度的時鐘;
(5)Network-Enabled:通過千兆網進行高速通信;
(6)Interface-Rich:可以使用許多通用的嵌入式通信接口,如USB、RS-232、 I2C, SPI, CAN等。

開發團隊之所以選擇使用Xilinx Zynq-7000 SoC用作系統原型,是因為它支持豐富的接口標準,各種功能可根據各自的特點選擇在ARM Cortex-A9 MPCore雙核處理器(PS)或可編程邏輯(PL)上面完成。Zynq SoC允許設計團隊聚焦到增值領域:應用軟件、嵌入式軟件、FPGA開發和模擬前端設計。

1 什么是Software Defined?
這里沒有一個明確的標準定義來自Software-Defined嵌入式系統的各個組件是如何聯系在一起的。比如說,沒有一個標準化的組裝機制來整理基于主機的應用程序、嵌入式系統軟件、硬件、COTS、FPGA、電源等等。因此,開發團隊采用下面的模型,如圖1所示。

圖1  Software-Defined嵌入式系統模型

 

圖1 Software-Defined嵌入式系統模型

和OSI通信模型非常類似的是,用戶創建解決方案時無需提供所有的層級功能。層與層之間和層內都使用工業標準接口進行通信,比如FPGA API層采用AXI總線協議,Module Level采用SPI,I2C通信等。只要有可能,我們都盡量避免使用自定義的接口和協議,因為自定義接口和協議會降低模塊間的可重用性并且增加不必要的成本和風險。

2 Proximity Core架構
系統架構如圖2所示,展示了運行在本地Host的應用軟件是如何配置嵌入式系統的。一旦完成配置,由SoM和模擬卡組成的嵌入式系統就會給CCD輸出時鐘,采樣CCD像素數據并封裝成以太網幀發出。歸功于SoM靈活的IO特性,也可以方便的連接到包括濾光片、快門在內的圖像系統的其他硬件。

圖2 CCD Proximity Core系統級架構

 

圖2 CCD Proximity Core系統級架構

3 Proximity Core應用軟件
我們用Python語言開發基于PC的應用軟件,這個軟件允許用戶定制圖形化的波形圖,下圖3是軟件GUI的截屏。和傳統的難調試、耗時多的基于文本的波形文件相比,直觀的GUI讓人更容易理解用于驅動CCD的波形。

圖3 軟件GUI屏幕截圖

 

圖3 軟件GUI屏幕截圖

應用軟件將用戶滿意的波形圖數據寫入到Zynq SoC內的波形發生器使之產生這個波形,這種設計方法可以使用戶在設備工作的過程中更新波形,這是針對假設情景分析的一個偉大嘗試。

4 Zynq SoC核
標準的核心是運行嵌入式軟件和實現FPGA API Levels的Zynq SoC,它完成以下功能:
(1)和基于PC的應用軟件通信;
(2)配置Zynq PL內的波形發生器;
(3)產生CCD驅動波形;
(4)和模擬前端連接,并對CCD輸出的模擬像素信號進行模數轉換;
(5)使用數字相關雙采樣技術來確定像素值;
(6)通過千兆網發送數據。

以上這些任務分成產生輸出波形和輸入視頻處理兩組。產生輸出波形需要靈活的、高精度的波形發生器。開發團隊在波形發生中使用Xilinx PicoBlaze微控制器,PicoBlaze是一個8位的微控制器軟核,每條指令僅用兩個時鐘周期,實時性能非常高。

PicoBlaze控制器在Zynq SoC PL內完全獨立運行,它的可執行代碼存儲在內部的雙端口RAM中。使用雙端口RAM代替單口RAM存儲PicoBlaze代碼的優勢是Zynq SoC PS端可以向PicoBlaze控制器實時更新代碼。不需要調用通用PicoBlaze匯編器,系統內基于PC的應用程序就可以產生PicoBlaze可執行代碼并將它下載到目標器件。

系統大多數圖像信號處理(ISP)鏈路都使用Vivado IP庫里面的標準組件,但是輸入視頻處理需要開發一個自定義的ADC接口和DCDS IP Block。在系統定制和優化過程中,所有的標準和自定義的IP組件都允許通過AXI-Lite接口進行software-defined配置。

輸入視頻處理內部模塊和模塊間的數據流通信采用AXI Stream協議傳輸,允許使用DMA通過Zynq SoC的高性能AXI接口將數據很容易的寫到PS端的DDR內存。千兆網專用的DMA將內存中的圖像數據搬運到PS的Ethernet MAC發送,這樣可以節省ARM處理器的開銷。

運行在ARM處理器的嵌入式軟件主要負責兩大功能:管理PicoBlaze控制器的代碼存儲空間和將采集到的圖像數據通過千兆網發送出去。

使用Zynq SoC一個額外的優勢是其內部集成XADC可以實時監控CCD和其他嵌入式組件的運行參數。如果有需要,這些系統健康數據可以疊加在圖像數據的后面發出。

5 模擬前端
非常遺憾的是,CCD設備沒有一個易用性很好的數字接口。在Zynq SoC輸出的數字時鐘和CCD時鐘輸入引腳之間需要一個中間級實現電平轉換和大電流驅動。中間緩沖級將數字時鐘信號電平變換到CCD需要的電壓范圍(典型值是8V-30V)并提高電流驅動能力,因為CCD內部設計的原因,它的時鐘輸入引腳的負載很重。

模擬輸入鏈路將CCD輸出的模擬像素信號縮放到適合ADC采樣的動態范圍內。因為CCD的輸出不是一個真正的差分信號,在使用不同類型的CCD時可能需要額外的模擬信號處理,比如說類差分減法。

下圖4是在電氣和光學實驗室中從“proximity electronics core”原型機上捕捉到的第一個輸出波形。

圖4 實驗室捕捉到CCD輸出的第一個波形

 

圖4 實驗室捕捉到CCD輸出的第一個波形

6 將來的性能優化考慮
通常的,CCD輸出波形彼此之間,特別是重疊區域對齊必須要非常精密的位置控制。雖然Zynq SoC可以運行在很高的頻率下,但是我們可能要求更高精度,也就是對這些信號亞毫微秒級的控制,不包括這個原型機在內,E2V已經開發出了在Zynq SoC ARM處理器的控制下允許亞毫微秒級脈沖控制的技術。結合上述方法,這些額外的控制辦法通過粗調和精調時序相結合來確保CCD工作在最佳狀態。

(責任編輯:小編)
下一篇:

黑科技,用激光分離手機后蓋,太炫酷了

上一篇: 暫無
打賞
免責聲明
本文僅代表作者個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,作者需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們
 
0相關評論
 
瓦伦西亚断腿 91街机捕鱼窍门 电车之狼r 重庆时时为啥不会赢 重庆时时彩网上怎么买 免费四人麻将大全 澳洲幸运5官方网 永利34511网址 时时彩平台哪个好 河南22选5历史开奖直播 2019中超文字直播 浙体彩20选5走势图 时时乐开奖公告 竞彩 黑龙江11选5走势图