1 背景知識
因為Zynq-7000 PS(Processing System)端嵌入了Cortex-A9 ARM 處理核以及PL(Programmable Logic)端為基于Kintex-7或者Artix-7的FPGA架構使得Xilinx Zynq-7000更加強悍,應用領域更加廣泛。下面將從以下方面介紹Zynq-7000的應用領域:汽車、通信系統、機器人、控制和儀器 、圖像和視頻處理 、醫藥、工業控制和許多其他領域。
2 應用概述
考慮 Zynq、FPGA 和相關芯片的應用廣泛,選擇幾個重要的領域給大家介紹。雖然有大量的可能性應用,但這里的只是選擇一些有代表性的應用。?
2.1 汽車
圖1 汽車系統(左:輔助駕駛系統;右:道路標識識別 )
現在的汽車里都有大量的電子裝置,從引擎管理到車窗、倒車輔助系統、駕駛員輔助系統、后視鏡和燈光等控制功能,以及導航和資訊娛樂系統都有。先進駕駛輔助系統 (Advanced Driver Assistance Systems,ADAS)專門指的就是汽車里為了駕駛員的安全和便捷所提供的系統的總和,包括:偏離車道告警系統、道路標識識別(如進入限速較低的路段時提醒駕駛員)、泊車輔助、抬頭顯示,以及甚至能監視駕駛員的清醒程度。圖1左是輔助駕駛抬頭顯示系統,圖1右是道路標識識別系統。?
FPGA,以及現在的 Zynq 芯片,可以用來實現這些汽車系統 。Zynq 的處理能力使它特別適合做這樣的系統,而且能夠降低元件的數量在一個對成本和功耗敏感并且還往往對物理空間有要求的市場中是一種優勢。?
2.2 通信系統
圖2 通信系統 (左:無線基站;中:衛星地面站;右: 有限網絡交換機)?
FPGA 是對基于包交換的無線和有線通信進行計算密集型處理的平臺。這個領域很多樣化,包括地面和衛星傳輸的收發信機、移動通信骨干網絡、有線網絡設備、雷達、聲納、全球定位系統 (Global Positioning System, GPS)和許多其他的通信系統。圖2左為無線基站,中為地面衛星雷達,右為網絡交換機。?
在無線通信中,無線電頻譜日益緊張,而與此同時大量無線系統和標準不斷在擴張。柔性無線電 (flexible radio)的概念有可能更好地利用無線電頻譜,并能把無線電設備穩固在一個能動態改變操作的單個設備上。Zynq 就是一個理想的柔性無線電平臺。在有線通信中,通過使用 “ 軟定義網絡(softly defined networks,SDN)” 使其達到類似程度的靈活性,SDN 能在軟件的控制下升級功能。?
2.3 機器人、控制和儀器?
圖3 控制和儀器儀表系統(左:工業控制室;中:風力發電廠;右:高能物理實驗)?
從制造和加工到高能物理實驗的工業和科學處理,都需要精密的控制和儀器。圖3 分別展示了工廠控制室、風力發電廠和 CERN 的高能物理實驗裝置 。?
FPGA 和 Zynq 芯片是非常合適的平臺,因為借助于 PL 的能力,它們能快速、實時地同時處理多個傳感器的輸入并操作多個動作器的輸出。Zynq 在系統集成和操作的靈活性上還有更大的潛力。比如,可以監視一個控制環的性能,如果有必要就可以改變它的配置轉用軟件控制。如果需要,PS 還可以支持實時操作系統及 (或)GUI (圖形用戶界面)。
電機控制算法在工業的很多領域都是極為重要的。比如,對美國制造業工廠的調查發現,工業中消耗的大約 50% 的電力是用于 “ 機器驅動 ”,也就是電機、泵和風扇 。由于在 PS 和 PL 之間的高帶寬連接,能夠形成緊密的反饋回路,并能利用 AMS 包所提供的 DAC 采樣能力,使得 Zynq 很適合做電機控制。?
2.4 圖像和視頻處理?
圖 4 醫藥應用(左:MRI 掃描;右:機器人輔助手術)
在醫療診斷中一個重要的問題是要 “ 看見 ” 人體的內部,這就需要像計算機斷層攝影(Computer Tomography,CT)掃描、超聲波和核磁共振成像(Magnetic Resonance Imagers,MRI)這樣的醫療影像設備。為了增強和顯示通過這樣的設備所獲得的圖像,往往就需要對大量的數據做精密的圖像處理算法。和其他圖像處理應用一樣,Zynq 綜合了 PS 和 PL 的能力,既支持高速并行計算,也支持基于軟件的算法。醫學領域所涉及到的進一步的應用包括機器人輔助手術中的儀器控制,以及實時手術圖像,比如內窺鏡設備、病人監視設備和家庭保健技術 。?
2.5 其他及未來的應用?
接下去,會給出 FPGA 和 Zynq 的一些關鍵應用領域的概述。不過,還有很多正在開展的和潛在的應用沒能詳細列在這里,從音頻信號處理到基于 Zynq 的無人機都有!?
2.5.1智能系統和智能網絡?
智能這個術語在很多應用領域都能找到,包括智能電網、智能建筑、智能家居、智能交通、智能城市、智能農業等等。
智能家居用的是和智能建筑類似的原理,讓民居也在成本和環境上受益。除了能管理暖氣、燈光和電器的使用,智能家居可能還包括室內保安和娛樂方面的功能。圖 5是一個智能家居的展示。?
圖5 智能家居的某些功能
2.5.2 圖像和視頻處理,及計算機視覺?
圖像處理的特征是它具有巨大的并行性:每個圖像,或等價的視頻的每個幀,是由二維的像素點的矩陣組成的,而且在 X 和 Y 軸上可能有超過 1000 個像素點。比如,全高清(HD)視頻通常定義為1920 x 1080 個像素點,也就是總共有 2073600 個像素點。還得考慮到每個像素點是由三個通道組成的才能表達顏色!如果用8 位的通道來分別表達紅色、綠色和藍色的數據,這樣每個像素點就需要 24 位,而每幅 HD 圖像就需要 49766400 位。數碼相機產生的圖片可能還會更大??紤]到這么大的尺寸,因此任何對單個像素點的計算就需要大量的計算并行展開,這就是很適合在FPGA 或是 Zynq 芯片的 PL 部分上做的事情了。當然,最好能降低要計算的數據的量,而且有些圖像處理是可以在更高的抽象層級上做的,在較少的數據上執行更高級的算法,也就是可能由軟件來做。對于視頻處理,更多的關注在壓縮方面。單幅圖片通常在空間域上壓縮來縮減文件大小,但是在視頻應用中,當幀速率達到每秒100 幀(在某些特殊應用中更高)的時候,由于涉及到更為大量的數據,對壓縮的需求尤為突出,還可能需要實時計算的約束。但是時間域給壓縮提供了進一步的機會,因為連續的視頻幀往往存在高度的重合??梢杂盟惴▉戆l送一小段時間片段內完整的、最新的幀,然后在這些幀之間,對幀與幀之間的不同進行編碼。已經存在很好的視頻壓縮標準了,而且還在不斷地發展和進步。?
圖6 圖像處理中的抽象
圖7 可以用計算機視覺來檢測路口車輛?
如前所述,計算機視覺需要識別出特征和目標來,這樣就能從圖像中析取出含義來。這就牽涉到復雜的運算和軟件算法。比如,為了判斷是否有車輛,就可能必須在圖像中分析識別出來的線條,然后甚至可以把車輛的類型分類為摩托車、小汽車、大巴等。這個階段表達了向圖6 中所示的最高抽象層級的轉化,從而能得到圖像內容的描述。比如,在圖7中,圖像顯示的是交叉路口的小車。汽車的數量可以用計算機視覺算法被檢測并記錄下來,然后甚至還可以根據行駛的方向做出分類來。
? ? 視頻處理應用還可能進一步調用目標追蹤,比如如果在 CCTV 畫面中識別出感興趣的人了,那個人在畫面中的進一步的運動就可以被追蹤。類似的,如果路口的畫面形成了視頻,那么車輛就可以被追蹤。從圖像處理和計算機視覺算法中獲得的數據可以用作更高層級應用的數據。比如,在車輛識別的實例中,計算機視覺系統可以提供關于車輛通過一個路口的統計數據,可以用來做交通管理和城市規劃。
除了芯片的架構,我們還應該考慮在促進為 Zynq 開發圖像處理系統的設計中,Xilinx 和第三方開發工具的作用。以下羅列了一些值得一提的相關說明:
? Xilinx IP 包 — 在 IP Integrator 里有很多 IP 包是用于圖像和視頻處理應用的,包括視頻存儲、圖像增強和色彩調整功能。
? ? ? OpenCV — 開放計算機視覺(Open Computer Vision)是一個開源項目,實現了一組用于圖像和視頻處理的 C/C++ 庫。OpenCV 的工具可以用來開發運行在 PS 上的軟件算法。
? ? ? Vivado HLS 視頻庫 — Vivado HLS 包含一個能綜合到 HDL 里去的函數庫,實現了對圖像和視頻處理的特殊支持。這些函數可以替代部分 OpenCV 函數,因此如有需要,對應的功能就能方便地被劃分到硬件中去。
? ? ? MATLAB / Simulink — MATLAB 和 Simulink 提供了豐富的用于圖像和視頻處理以及計算機視覺的工具。不僅提供相關的函數和開發環境,還可以把開發好的算法轉換成能實現在 Zynq 上的 C/C++ 代碼。??
評論
查看更多