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