




摘要:本文介紹了在Lattice FPGA平臺上實現的雙圖像傳感器設計方案。該方案通過處理兩個圖像傳感器的數據來對改善最終的圖像數據。
關鍵詞:雙圖像傳感器;FPGA;Lattice;MachXO2
DOI: 10.3969/j.issn.1005-5517.2012.10.013
當人們考慮有兩個圖像傳感器的應用時,首先很可能想到的是一個三維攝相機。不過,也有許多設計可以通過使用來自兩個圖像傳感器的數據進行改善;一個例子是汽車司機錄像機(CDR)的黑盒子,這通常是安裝在后視鏡附近,擁有兩個攝像機(圖1)。一個攝像機朝向擋風玻璃,而另一個攝像機指向司機。在本地的存儲器芯片中存儲攝像機的視頻,如果有意外事故或疑問,可以進行檢索。
兩個攝像機和其數據的其他應用包括對監視的精確分析,在車中對行人的檢測。在這些設計中,這兩個相機的輸出被用來創建一個包括深度感知的算法。有了這些數據,處理器可以非常精確地“看到”圖像和從陰影或其他物體中辨別出人。
所有這些設計都要求有一個圖像信號處理器(ISP)。然而,一個ISP支持兩個傳感器并不簡單。雖然大多數ISP可以支持兩個圖像傳感器的吞吐量,絕大多數ISP器件已經設計成只有一個傳感器接口。即使有兩個端口的ISP往往不能組合在一起,同時處理兩個圖像,或者,如果他們能做到,往往是非常昂貴的。
除了這個ISP接口被限制為只處理一個圖像傳感器之外,更高分辨率的圖像傳感器構成了另一個設計挑戰。從歷史上看,通過統一的CMOS并行總線(圖2),所有高達720p30分辨率的圖像傳感器都被連接到ISP。
對于720p60和更高的分辨率,圖像傳感器無法通過CMOS并行總線進行高質量的傳輸。因為并行總線速度必須高于70MHz,開關噪聲導致圖像傳感器的質量下降。為了解決這個問題,圖像傳感器供應商引入串行而非并行總線來傳輸數據。然而,由于許多ISP器件只設計成采用并行總線,需要將新的傳感器的串行總線轉換到這個并行總線(圖3)。
圖1 汽車司機錄像機
最后,對于需要3D算法的應用,這兩個圖像傳感器必須同步工作。這不容易做到,因為每個傳感器的制造商都有自己的方法和格式。例如,一些圖像傳感器使用I/O引腳來進行觸發,而其他制造商則使用I2C,SPI或兩者兼而有之。幾乎所有的ISP都面臨著設計挑戰,以支持多種模式,從而確保各種傳感器是同步的。
一些ISP廠商都試圖來解決這個問題,通過提供兩個獨立的接口和兩個處理引擎來支持兩個圖像傳感器。但是,結果是構成了一個非常昂貴的ISP器件,不僅圖像處理能力遠遠超過實際的需求,而且對軟件開發人員而言,配置和編程更加復雜。
如果一個設計正確地支持格式化兩個傳感器,使它們同步,在數據發送到ISP之前以正確的格式將數據合并,所有這些雙圖像傳感器的挑戰都是可以克服的。如前所述,目前許多ISP可以處理兩個傳感器的吞吐量。關鍵問題是同步接受圖像,用正確的格式,以及送至正確的總線。最具成本效益的設計解決方案是使用一個小的FPGA和幀緩沖存儲器。
圖4展示了一個具有成本效益的解決方案,同步,合并和輸出正確的格式到ISP。通過利用低成本FPGA,如萊迪思的MachXO2和一種廉價的LP SDRAM器件,兩個圖像傳感器可以橋接到一個ISP。FPGA設計需要包含以下功能:首先,它必須從ISP接口接至I2C或SPI寄存器配置。對于這兩個傳感器,此配置設置是相同的。FPGA則需要發送串行配置數據(I2C或SPI)到兩個傳感器,并確保它們被正確地配置。在這一點上,兩個傳感器將有相同的配置,但他們仍然需要同步。對每一個特定的傳感器制造,MachXO2 FPGA的靈活性能夠實施必需的獨特控制。為了確保驅動每個傳感器的時鐘完全一樣,FPGA還將輸出時鐘到兩個傳感器。一旦兩個傳感器被設置和同步,這兩個傳感器便開始傳輸圖像數據。
然后FPGA將需要在I/O單元和邏輯結構中解串化的高速串行圖像數據,因此它可以轉換這個傳感器的數據流為并行格式。然后MachXO2 FPGA尋找適當的控制字符,所以對于每個傳感器,它能夠識別幀的起始和行的起始。這通常是通過尋找控制字符或命令序列來完成的。一旦檢測到傳感器的圖像數據,FPGA可以提取原始圖像數據,并開始使用低功耗SDRAM存儲器來存儲幀。當然,在FPGA中需要一個LP SDRAM存儲器控制器,用來正確地讀寫圖像數據。FPGA執行的下一個功能是整理這個幀格式到所需的輸出格式。例如,一個流行的格式是自上而下的配置,另一個是并排的配置(圖5)。
在傳送集成的傳感器數據之前,FPGA中的傳感器數據要轉換成Bayer模式圖像格式。這將確保正確的RGB顏色傳遞到ISP。有了已知的正確圖像和輸出格式配置,然后MachXO2 FPGA用并行總線輸出格式化的數據到ISP。外部LP SDRAM用于緩沖傳入的幀,由于前一幀已被送出。通常情況下,LP SDRAM運行兩倍快的輸出時鐘到ISP。為了確保ISP的讀取和識別數據,FPGA輸出被設計成模仿并行圖像傳感器的輸出。也就是說,FPGA產生時鐘、幀有效、行有效,通常以一個12位數據總線送至ISP。
萊迪思半導體公司和Aptina已經實現了這個設計。通過使用萊迪思MachXO和兩個Aptina的9MT024圖像傳感器,這個設計是一個非常符合成本效益的解決方案,幾乎所有的ISP都可以接受。配置傳感器的所有主要功能,對它們進行同步,然后實施合適地格式化輸出圖像數據。
圖2 通過CMOS并行接口連接ISP
圖3 轉換到并行總線
圖4 FPGA設計解決方案
圖5 輸出格式