圖像采集是安全和監控視頻鏈中最關(guān)鍵的部分,這是因為對于從視頻流提取有效信息的圖像信號處理能力是與獲取的圖像質(zhì)量密切相關(guān)的,或許看似深奧,其實(shí)本質(zhì)上是傳感器質(zhì)量和傳感器輸出處理質(zhì)量的組合。安全監控系統的發(fā)展趨勢是圖像處理功能向網(wǎng)絡(luò )邊緣遷移-即移到攝像機里面,靠近傳感器! 靈活性和效率是產(chǎn)品開(kāi)發(fā)周期中的最高目標。本文探討了在FPGA內針對CMOS圖像傳感器的微控制器和信號處理單元的整合。就其性質(zhì)而言,FPGA和微控制器相當靈活,但問(wèn)題是使用這些器件是否會(huì )形成一個(gè)有效率的設計? 一般而言,一個(gè)簡(jiǎn)單的規則是用FPGA取代標準的微控制器不能夠產(chǎn)生一個(gè)節約成本的替代方案。只有不能通過(guò)在微控制器內集成外設來(lái)滿(mǎn)足設計的邊界條件情況下,FPGA的解決方案才變得更加具有吸引力,例如PWM通道的數量,計數器/定時(shí)器或I/O端口的數量。 同樣,DSP算法轉移至FPGA可顯著(zhù)提升數據吞吐量和控制功能的執行速度。然而,可能會(huì )有一些靈活性方面的損失。不過(guò),通常DSP開(kāi)發(fā)人員可以利用FPGA的優(yōu)勢,因為這些功能可以用VHDL或Verilog HDL來(lái)描述并直接用硬件實(shí)現。即使一些模塊是預制的IP模塊,這個(gè)任務(wù)仍然是集成這些模塊到一個(gè)完整的設計之中。 Helion是一家致力于利用FPGA和DSP從事圖像信號處理領(lǐng)域開(kāi)發(fā)的公司。他們的核心知識在于驅動(dòng)和接口至CMOS圖像傳感器,動(dòng)態(tài)擴展和進(jìn)行信號預處理到TFT的領(lǐng)域。使用Helion系統意味著(zhù)決定圖像質(zhì)量的很多功能可以直接在攝像機中實(shí)現。根據系統要求,這些解決方案基于DSP,FPGA或兩者兼而有之。 Helion已經(jīng)選擇了萊迪思半導體公司的低成本系列FPGA技術(shù)。LatticeXP2和MachXO是非易失器件,單芯片解決方案特別適用于緊湊的攝像機設計。由于LatticeXP2包括RAM塊和DSP模塊,可實(shí)現最佳圖像處理計算。如果只需要一個(gè)簡(jiǎn)單的傳感器和控制功能,MachXO是最節省成本的解決方案。萊迪思還有SRAM FPGA系列,LatticeECP2、ECP2M和ECP3。這些器件中還包括DSP塊,以及1.5MBit至 5.3MBit內部存儲器的“M”類(lèi)型! Helion的大多數項目也使用了32位微控制器-LatticeMico32,它是免費提供的,采用開(kāi)發(fā)環(huán)境為開(kāi)放源代碼許可證模式。這種軟核的主要特點(diǎn)是使關(guān)鍵控制路徑的時(shí)間更少,通過(guò)FPGA的數據是直接通過(guò)獨立的布線(xiàn)資源! 用Mico System-Builder (MSB)軟件構建該項目的特殊Mico32配置,裝配各種可用元件,包括用戶(hù)的特定IP模塊。對于這些IP模塊和用戶(hù)特殊的外設的互連,Mico32 使用按照Wishbone規范操作的總線(xiàn)接口。 MSB自動(dòng)互連設計的內部元件,當所需的IP塊都在MSB內時(shí),無(wú)需編寫(xiě)VHDL或Verilog HDL就能完成FPGA設計! 圖1 Mico System-Builder屏幕 一個(gè)簡(jiǎn)單的例子可以說(shuō)明基于Mico32方法的優(yōu)勢。對于圖片位置的控制,通過(guò)I2C總線(xiàn)用外部微處理器給FPGA中的顯示控制器規定路線(xiàn)?偣灿256個(gè)控制和參數寄存器。為了避免電視干擾出現,通過(guò)I2C寫(xiě)的參數必須在消隱期間處理。數據集輸入一致且可以被激活時(shí),該處理器釋放控制寄存器。進(jìn)一步通過(guò)寄存器,處理器獲得當前顯示控制器的行數。 這些功能可以在FPGA設計內直接解決。針對 IC2寄存器組的監控,設計人員需要IC2從器件(slave)、I/O端口、狀態(tài)機,并復制這些參數,針對訪(fǎng)問(wèn)IC2從器件(slave)的內部存儲器接口,提供仲裁。對于用VHDL或VerilogHDL開(kāi)發(fā)FPGA所花費的時(shí)間相對比較多,代碼的可重用性受限于HDL編碼控制器。 另一種Helion Mico32解決方案利用已經(jīng)由萊迪思MSB提供的元件:I2C從器件(slave)、GPIO、存儲器、DMA和用戶(hù)特殊的元件,諸如端口監控到啟動(dòng)存儲器傳輸。MSB提供了針對 “共享總線(xiàn)”或” Slave Side-Arbitration “配置器件的功能,這意味著(zhù)以正確的形式自動(dòng)產(chǎn)生仲裁。針對在MSB中組合這些元件,使用這種方法在幾分鐘之內就可產(chǎn)生FPGA代碼。 于是針對Mico32,可以編寫(xiě)C代碼,用所提供的調試手段進(jìn)行檢查。所有的元件都很容易重復使用。 用這個(gè)例子,更多為數據路徑而準備的IP模塊可以組合在MSB中,例如,色彩流水線(xiàn)或圖像傳感器接口。對于圖像傳輸,Slave Side-Arbitration是最佳的,因為MSB產(chǎn)生自己的Wishbone總線(xiàn)。用這種方法,數據流不是限于通過(guò)微控制器和仲裁邏輯,在一個(gè)實(shí)體中所有元件均是自動(dòng)連接的,即對片上系統設計的理想情況。MSB中更復雜的設計說(shuō)明了這個(gè)觀(guān)點(diǎn),系統的描述大大超過(guò)在第一個(gè)例子中用VHDL或VerilogHDL的要求。 圖2 Mico32調試屏幕 基于MSB提供的簡(jiǎn)捷和節省時(shí)間的處理方式, Helion整合了圖像傳感器驅動(dòng)電路的大部分和以其自己的元件形式的數據預處理,這些元件可作為IP核!〔⒁阅K化的方式和MSB中驗證的功能設想和實(shí)現系統。圖3為一個(gè)實(shí)例的框圖。 圖3系統實(shí)例 除了MSB,對于整個(gè)系統開(kāi)發(fā)環(huán)境,還需要萊迪思的ispLEVER FPGA設計軟件。由MSB產(chǎn)生的Verilog HDL代碼用ispLEVER進(jìn)行綜合和實(shí)現。該工具中包含了Reveal邏輯分析儀,調試μC的代碼后,用戶(hù)選擇對數據進(jìn)行故障分析或實(shí)時(shí)控制路徑進(jìn)行檢查。Reveal提供了大量的觸發(fā)和跟蹤選項。完整的圖像處理不是完全逼真的,對μC的源代碼級調試不能包括FPGA中的所有事件或數據序列。然而使用觸發(fā)信號和邏輯組合的方式, Reveal可以實(shí)時(shí)記錄時(shí)序并將結果傳送至主機。例如,如果設計人員考慮設置Mico32位的端口位作為Reveal的觸發(fā),并將此與控制的特定條件和數據信號相結合,就可能用μC軟件很快地切換邏輯分析儀,這也適用于調試器。 總結 MICO System Builder能夠分擔通常所做的工作。FPGA設計人員指定自己的IP模塊并集成這些組元件至MSB。該軟件開(kāi)發(fā)者將項目中的元件連接在一起,針對Mico32開(kāi)發(fā)C/C++程序。通過(guò)靈巧的劃分與分配數據流到自己的總線(xiàn)結構,實(shí)現高的數據吞吐量。在開(kāi)發(fā)階段除了靈活性之外,微控制器帶來(lái)了FPGA高效率的優(yōu)點(diǎn)。另一方面在許多情況下,控制的效率和預處理允許跟隨信號鏈后進(jìn)一步進(jìn)行DSP處理,或選擇更小更節省成本的DSP。 |