在可編程邏輯架構中可輕松實現用于從圖像傳感器提取信息的圖像處理流水線,此外,可編程邏輯架構還可用來為其他異構傳感器(例如 RADAR 和 LIDAR)或者同構系統中的多種情況實現處理流水線。
當使用 All Programmable Zynq-7000 或 All Programmable UltraScale+? MPSoC 時,處理器存儲器與可編程邏輯之間緊密耦合的架構允許應用軟件訪問所得到的數據集,以便進一步處理和制定決策。獨立傳感器鏈可在可編程邏輯中實現,而且可并行運行,這對于立體視覺等需要同步操作的情況非常有利。
為了加速在可編程邏輯中實現的融合應用的交付進程,我們可利用高層次綜合 (HLS) 開發可直接在可編程邏輯架構中實現的算法。
實例架構
開發前面介紹的對象檢測和距離算法,利用 All Programmable SoC 演示同構和異構方案。盡管兩種方案使用的傳感器類型不用,但這兩種架構的最終目標都是將兩個數據集放在處理系統的 DDR 內存,同時將可編程邏輯架構的性能最大化。
實現同構對象檢測系統需要使用相同的傳感器類型,這里是 CMOS 成像傳感器。這樣做的優勢是只需要開發一條圖像處理鏈,這個圖像處理鏈可以為兩個圖像傳感器在可編程邏輯架構中實例化兩次。
同構架構實現立體視覺系統的條件之一是要求兩個圖像傳感器同步在可編程邏輯架構中并行實現兩個圖像處理鏈并使用具有適當約束的相同時鐘,這樣有助于滿足這一苛刻的要求。
盡管視差計算需要進行密集處理,但兩次實現相同的圖像處理鏈的能力可顯著節省開發成本。
上圖給出了同構方案的架構,其中兩條圖像處理鏈主要基于可用的 IP 模塊。圖像數據采用定制的傳感器接口 IP 模塊捕獲,并從并行格式轉換為 AXI 流媒體。這樣能實現輕松可擴展的圖像處理鏈;我們可以利用高性能 AXI 互連以及視頻 DMA 將結果從圖像處理鏈傳送到 PS DDR。
考慮采用不同類型傳感器的異構實例, 我們可將上面介紹的圖像傳感器對象檢測架構與 RADAR 距離檢測相結合。對于 RADAR 的實現,我們有兩個選擇:脈沖方案(多普勒)或者連續波。具體選擇哪種方案取決于最終應用要求,不過,這兩種方法大同小異。
RADAR 的架構可分成兩部分:信號生成和信號接收。信號生成部分負責生成連續波信號或者待傳輸的脈沖信號,無論哪種方案都需要利用信號生成 IP 模塊與高速數模轉換器進行接口連接。
信號接收部分也需要使用高速模數轉換器來捕獲接收到的連續波或脈沖信號。說到信號處理,這兩種方案都需要使用通過可編程邏輯架構實現的 FFT 分析方法;同樣,我們可使用 DMA 將得到的數據集傳送到 PS DDR。
無論選擇哪種實現架構,兩個數據集的融合算法都是通過軟件用 PS 來執行。另外,這些融合算法對處理帶寬要求較高,實現更高性能的一種方法是使用現有工具集功能,尤其是設計環境 SDSoC?。
SDSoC 可利用 Vivado HLS 和連接框架(二者對軟件開發人員都是透明的)無縫地在處理器與 SoC 可編程邏輯之間傳輸軟件功能。當然,我們可利用高層次綜合為同構和異構實現方式的處理鏈開發功能。我們還可進一步擴展,針對所選的實現方案創建定制 SDSoC 平臺,然后借助 SDSoC 功能,利用未占用的邏輯資源進一步加速整個嵌入式視覺系統性能的提升。
結論
傳感器融合已經扎根,同時,嵌入式視覺系統正在迅速增長,傳感器快速推廣和普及。All Programmable FPGA 和 SoC 提供的功能使多種類型的傳感器可并行運行并按要求實現同步;同時,利用 SoC 處理系統或軟核處理器來執行數據融合和決策活動。
系統和高層次綜合工具(如 SDSoC 和 Vivado HLS),為工程設計團隊帶來了多種優勢,可確保如期進行應用開發。