什么是異構(gòu)多處理系統(tǒng),為什么需要異構(gòu)多處理系統(tǒng)?
4 異構(gòu)多處理系統(tǒng)實(shí)例
本文引用地址:http://butianyuan.cn/article/201605/291731.htm機(jī)器人拾取和放置裝配線是一個(gè)很常見的機(jī)器視覺和控制應(yīng)用實(shí)例,這個(gè)應(yīng)用通常有以下基本功能:
?、俑叻直媛氏鄼C(jī)視頻采集系統(tǒng);
?、诎炼葘?duì)比度調(diào)節(jié)、失真校正和消除死點(diǎn)等功能的視頻圖像處理;
③目標(biāo)檢測(cè)和識(shí)別;
?、軜?biāo)記組件在裝配中正確位置的算法決策;
?、輽C(jī)器手臂運(yùn)動(dòng)路徑選擇;
?、揠姍C(jī)驅(qū)動(dòng)控制;
?、甙踩录z測(cè)和關(guān)機(jī);
⑧用于狀態(tài)顯示和系統(tǒng)控制的圖形用戶界面;
?、崤渲煤桶踩芾怼?/p>
上述的每一個(gè)功能都可能需要特定的處理能力,比如,讓通用處理器來處理實(shí)時(shí)HD圖像,處理器很容易就會(huì)負(fù)載過重?zé)o法在特定時(shí)間完成處理。
那么,就讓我們考慮使用這種異構(gòu)多處理系統(tǒng)實(shí)現(xiàn)可能的解決方案。為了有助于更加形象的理解,Xilinx將會(huì)以Zynq UltraScale+ MPSoC控制機(jī)器人系統(tǒng)在平板電腦上玩紙牌游戲的例子來詮釋。系統(tǒng)的部分功能已經(jīng)實(shí)現(xiàn)并在“Embedded World 2016”展會(huì)上展示。
4.1 視頻獲取和處理
1080P60視頻流要求3Gbps(373MB/s)的數(shù)據(jù)率,視頻流路徑上需要做的處理可能包括:亮度、對(duì)比度調(diào)節(jié),白平衡,失真校正,死點(diǎn)剔除等。這些bit級(jí)處理用可編程邏輯完成非常高效,無需處理器太多參與。
4.2 目標(biāo)檢測(cè)和識(shí)別
初始對(duì)象檢測(cè)通常需要掃描整幅圖像尋找類似細(xì)節(jié)目標(biāo)輪廓之類的關(guān)鍵特征,這項(xiàng)功能一般由可編程邏輯實(shí)現(xiàn)。一旦目標(biāo)被判定為疑似目標(biāo),那么就可能需要執(zhí)行更為復(fù)雜的算法對(duì)目標(biāo)進(jìn)行更進(jìn)一步的決策判定。應(yīng)用處理器通常負(fù)責(zé)目標(biāo)識(shí)別的下一級(jí)數(shù)據(jù)量變小但算法更加復(fù)雜的處理。
在這個(gè)機(jī)器人紙牌游戲案例中,所有的圖像都是通過可編程邏輯掃描,識(shí)別紙牌邊界和定位游戲紙牌,以及紙牌的排列和花色。隨著數(shù)據(jù)量明顯降低,紙牌排列和邊界圖像被遞交給應(yīng)用處理器通過圖像識(shí)別算法來識(shí)別排列和花色。
4.3 算法決策
算法決策一般是很復(fù)雜的處理,通常通用應(yīng)用處理器可以很好的完成。在我們的例子里, 新牌打出的時(shí)候觸發(fā)應(yīng)用處理器計(jì)算新的關(guān)于牌的角色和運(yùn)動(dòng)可能的決策集。
4.4 運(yùn)動(dòng)路徑選擇
兩點(diǎn)之間,直線最短,這樣的路徑會(huì)導(dǎo)致目標(biāo)在兩個(gè)端點(diǎn)之間發(fā)生沖突。運(yùn)動(dòng)路徑通常被分為多段,并且需要從傳統(tǒng)的笛卡爾坐標(biāo)系中翻譯到機(jī)器人運(yùn)行系統(tǒng)坐標(biāo)系。在我們的多核異構(gòu)系統(tǒng)中,這既可以通過應(yīng)用處理器完成也可以通過實(shí)時(shí)處理器完成。
機(jī)器人紙牌游戲相對(duì)而言會(huì)比較簡(jiǎn)單,因?yàn)樵谄桨咫娔X上運(yùn)動(dòng)路徑?jīng)]有潛在的障礙物。我們?cè)趹?yīng)用實(shí)例里選擇了Delt機(jī)器人,Delt機(jī)器人結(jié)構(gòu)通常是三個(gè)并聯(lián)手臂連接到一個(gè)和受動(dòng)器相關(guān)的通用關(guān)節(jié)執(zhí)行器上。因此,受動(dòng)器在3D笛卡爾坐標(biāo)系中的運(yùn)動(dòng)必須翻譯成三個(gè)獨(dú)立馬達(dá)的運(yùn)動(dòng)矢量,在這個(gè)應(yīng)用中所需的x,y,z坐標(biāo)參數(shù)傳給實(shí)時(shí)處理器來計(jì)算三個(gè)機(jī)械手臂各自的運(yùn)動(dòng)路徑。
4.5 電機(jī)驅(qū)動(dòng)控制
電機(jī)控制算法用于控制加速、正常運(yùn)行和減速,對(duì)機(jī)械約束允許的最小運(yùn)動(dòng)時(shí)間進(jìn)行優(yōu)化,確保在加減速的過程中不會(huì)對(duì)部件造成損害,減小能量消耗等等。上述計(jì)算和運(yùn)動(dòng)驅(qū)動(dòng)一起,通常都是通過實(shí)時(shí)處理器來實(shí)現(xiàn),實(shí)時(shí)處理器在這些方面體現(xiàn)出卓越的性能,在我們的例子里也是如此。實(shí)時(shí)處理器工作在鎖步模式下來增加可靠性。
4.6 安全事件檢測(cè)和關(guān)機(jī)
安全事件可以是人進(jìn)入機(jī)器人視野,而機(jī)器人可能會(huì)對(duì)人類造成傷害,能夠識(shí)別這一事件并且在一定程度上快速響應(yīng)保護(hù)人類對(duì)系統(tǒng)而言至關(guān)重要。我們機(jī)器人紙牌運(yùn)動(dòng)員在其周圍構(gòu)建了一個(gè)紅外線墻,當(dāng)某一光束中斷,機(jī)器人的電源會(huì)馬上關(guān)閉,然后系統(tǒng)會(huì)立馬停止。在這個(gè)例子里,可以使用三冗余平臺(tái)管理單元,這個(gè)高度可靠的處理單元可以接收來自紅外線墻的輸入,在事件檢測(cè)時(shí)關(guān)閉機(jī)器人。
4.7 圖形用戶接口
圖形用戶接口(GUIs)通常運(yùn)行在Linux操作系統(tǒng)上層,Linux支持從基本的窗口管理器擴(kuò)展到完整桌面環(huán)境。
這個(gè)紙牌機(jī)器人系統(tǒng)需要顯示紙牌桌界面,實(shí)時(shí)預(yù)覽HD相機(jī)圖像,紙牌排列和花色檢測(cè)窗口顯示以及游戲狀態(tài)窗口等等。Ubuntu桌面環(huán)境提供了一個(gè)很好的平臺(tái),在這上面前述內(nèi)容都可以實(shí)現(xiàn)很好的顯示,并且可以通過這些用戶界面控制游戲。多核應(yīng)用處理器是運(yùn)行Linux和Ubuntu桌面的完美選擇,集成的多核GPU用于融合顯示2D、3D和視頻數(shù)據(jù)。
4.8 配置和安全
處理系統(tǒng)需要啟動(dòng)操作系統(tǒng)和應(yīng)用程序,可編程邏輯也需要配置。開發(fā)者越來越希望保護(hù)他們的代碼和知識(shí)產(chǎn)權(quán)核不被競(jìng)爭(zhēng)對(duì)手和黑客獲取,因此代碼和配置數(shù)據(jù)的加密和驗(yàn)證對(duì)確保代碼正確加載至關(guān)重要。一旦運(yùn)行,系統(tǒng)就需要保護(hù)免受外界影響。
在這個(gè)例子里面,配置和安全單元在紙牌游戲運(yùn)行之前執(zhí)行驗(yàn)證和解密代碼及配置數(shù)據(jù)。燒錄的E-Fuses可以保護(hù)配置和數(shù)據(jù)不能通過JTAG之類的接口回讀。
系統(tǒng)攻擊可能會(huì)導(dǎo)致信息泄露或者不正常的運(yùn)行。這些攻擊可能包括過壓/欠壓或者是超高溫/超低溫等,這些攻擊可以被檢測(cè)到并按需鎖定系統(tǒng)。
5 總結(jié)
早期的嵌入式系統(tǒng)通常包含一個(gè)或幾個(gè)微處理器來處理包括用戶接口、數(shù)據(jù)采集、數(shù)據(jù)處理、外部控制和應(yīng)用處理等各種各樣的功能。接下來的各代產(chǎn)品帶來更高性能的處理器、多核處理器、專用處理器和實(shí)時(shí)處理器。FPGA最初以膠合邏輯角色出現(xiàn),隨著他們邏輯量變大,已經(jīng)用于實(shí)現(xiàn)額外的外設(shè)、狀態(tài)機(jī)和大規(guī)模并行數(shù)據(jù)處理。最新一代Xilinx Zynq UltraScale+ MPSoC是一個(gè)單片異構(gòu)多處理系統(tǒng),它由多核應(yīng)用處理器、多核圖形處理器、多核實(shí)時(shí)處理器 、一個(gè)平臺(tái)管理單元、一個(gè)配置和安全管理單元以及可實(shí)現(xiàn)多處理組件的編程邏輯組成。這樣的器件使得軟件和硬件都可以根據(jù)特定應(yīng)用完全定制來充分滿足目標(biāo)嵌入式應(yīng)用的要求。
評(píng)論