FPGA 是如何引入工業(yè)驅(qū)動(dòng)架構(gòu)的?
在這個(gè)系列的第一篇博文中,我們了解到FPGA是如何被引入到驅(qū)動(dòng)架構(gòu)中的?,F(xiàn)在,我們來(lái)看一看在一個(gè)工業(yè)驅(qū)動(dòng)/伺服機(jī)架構(gòu)中使用FPGA時(shí)遇到的一些挑戰(zhàn),以及以COTS MCU形式運(yùn)轉(zhuǎn)的控制片上系統(tǒng) (SoC) 的全新功能如何用FPGA來(lái)改變針對(duì)工業(yè)驅(qū)動(dòng)的成本有效模型。
很多工業(yè)逆變器和伺服機(jī)廠商在很長(zhǎng)一段時(shí)間內(nèi)依靠現(xiàn)場(chǎng)可編程門陣列 (FPGA) 或ASIC技術(shù)來(lái)完成32位微控制器 (MCU) 等商用現(xiàn)貨 (COTS) 產(chǎn)品所不支持的功能。然而,為了支持位置傳感器反饋或增量-累加濾波,在軟件可編程控制器中添加的FPGA和ASIC將增加系統(tǒng)成本和開(kāi)發(fā)復(fù)雜度。
難道我們就不該問(wèn)一問(wèn):正在被置入到FPGA中的功能是不是能為驅(qū)動(dòng)產(chǎn)品帶來(lái)真正的改變?將這些功能包括在內(nèi)是不是已經(jīng)成為每一個(gè)驅(qū)動(dòng)設(shè)備廠商的標(biāo)準(zhǔn)做法?簡(jiǎn)言之,這些被用來(lái)實(shí)現(xiàn)所需功能、價(jià)格虛高的FPGA門是不是已經(jīng)成為在工業(yè)驅(qū)動(dòng)行業(yè)里生存的籌碼?
雖然FPGA是重新可編程的,并且被認(rèn)為有可能提供系統(tǒng)適應(yīng)性和更佳的系統(tǒng)性能,相對(duì)于目前用于工業(yè)驅(qū)動(dòng)應(yīng)用的MCU,它們也有某些缺點(diǎn)。開(kāi)發(fā)人員應(yīng)該衡量所需專業(yè)化工程技能、總體項(xiàng)目工作量和系統(tǒng)總成本。
很多正在被開(kāi)發(fā)的驅(qū)動(dòng)系統(tǒng)保持了與FPGA組合在一起的C語(yǔ)言可編程微控制器或微處理器。這個(gè)處理器的C代碼生成和調(diào)試開(kāi)發(fā)環(huán)境被人所熟知,并且是必須的。現(xiàn)在,將一個(gè)FPGA引入到這個(gè)系統(tǒng)需要額外的開(kāi)發(fā)流程和工具集。盡管在對(duì)外宣傳時(shí),這些工具在易用性方面取得了一定的進(jìn)步,不過(guò)通常情況下開(kāi)發(fā)MCU C代碼和開(kāi)發(fā)FPGA VHDL代碼的不是同一批工程人員。VHDL編碼風(fēng)格與開(kāi)發(fā)流程與MCU軟件開(kāi)發(fā)大不相同,并且需要特別的工程資源。此外,恰恰是FPGA開(kāi)發(fā)人員必須成為他們所執(zhí)行的硬件IP方面的低級(jí)和系統(tǒng)級(jí)專家。例如,他們不但需要知道如何為一個(gè)BiSS主機(jī)執(zhí)行VHDL,他們需要了解BiSS協(xié)議,這是因?yàn)樗麄冃枰?yàn)證他們的FPGA器具是否符合BiSS傳感器的要求。這項(xiàng)專業(yè)化工程技能不是每個(gè)運(yùn)動(dòng)控制或逆變器廠商都能夠?yàn)閱T工提供的,并且這當(dāng)然也不能發(fā)揮他們?cè)谶\(yùn)動(dòng)和電機(jī)控制性能方面所起到的獨(dú)特作用。只使用一個(gè)本身就支持BiSS編碼器的微控制器是不是更簡(jiǎn)單一些呢?
從開(kāi)發(fā)角度講,管理人員需要將FPGA創(chuàng)建視為一個(gè)定制開(kāi)發(fā)。他們的開(kāi)發(fā)團(tuán)隊(duì)對(duì)于上市銷售的FPGA的產(chǎn)品特性具有額外的所有權(quán),并且對(duì)這些產(chǎn)品特性負(fù)責(zé)。如果VHDL未被正確編碼,他們不能求助于FPGA供應(yīng)商;他們只能自己尋找問(wèn)題的原因,并且找到解決問(wèn)題的補(bǔ)救方法。當(dāng)你把VHDL與使用COTS MCU的模型相比較的時(shí)候,與FPGA開(kāi)發(fā)相關(guān)的定制責(zé)任遠(yuǎn)遠(yuǎn)超過(guò)了FPGA內(nèi)部的門設(shè)計(jì)工作。印刷電路板 (PCB) 影響、MCU門級(jí)/寄存器接口、軟件抽象和總體系統(tǒng)集成工作量全都是非標(biāo)準(zhǔn)的,也就是說(shuō),它們不是現(xiàn)成可用的解決方案。詳細(xì)信息請(qǐng)見(jiàn)圖1。除了開(kāi)發(fā)之外,隨著全新連接組件的發(fā)布或修改,這個(gè)模型在用戶支持、產(chǎn)品維護(hù)版本和長(zhǎng)期品質(zhì)一致性方面具有額外的工程設(shè)計(jì)復(fù)雜度。使用具有這些特性的標(biāo)準(zhǔn)MCU,并且供應(yīng)商對(duì)整個(gè)產(chǎn)品解決方案負(fù)責(zé)(硬件、軟件、工具和設(shè)計(jì))的話,會(huì)不會(huì)更加簡(jiǎn)單?
圖1:FPGA與驅(qū)動(dòng)SoC的EnDat開(kāi)發(fā)比較
此外,也許最明顯的一點(diǎn)就是額外組件對(duì)物料清單的影響。FPGA的成本絕不僅僅限于對(duì)單價(jià)的影響。FPGA器件將需要額外的PCB面積,以及MCU對(duì)接和電源所需要的引腳。當(dāng)與FPGA一同運(yùn)行時(shí),這些成本是不可避免的,不過(guò),當(dāng)這些功能已經(jīng)存在于驅(qū)動(dòng)SoC MCU上時(shí),這些開(kāi)銷是沒(méi)有必要的。在幾種情況下,我們觀察到,相對(duì)于驅(qū)動(dòng)SoC器件,F(xiàn)PGA本身需要額外的、且更加復(fù)雜的電源電路。此外,執(zhí)行FPGA將多余的門引入到系統(tǒng)中,諸如到MCU的寄存器接口,以及實(shí)現(xiàn)相位電流和電壓感測(cè)的外部模數(shù)轉(zhuǎn)換器 (ADC) 接口。一個(gè)驅(qū)動(dòng)SoC包括一個(gè)針對(duì)驅(qū)動(dòng)應(yīng)用的內(nèi)置高性能ADC,并且無(wú)需這個(gè)額外的邏輯電路。因此,相對(duì)于附加FPGA架構(gòu)的MCU,使用一個(gè)單個(gè)COTS驅(qū)動(dòng)SoC可以有很多機(jī)會(huì)降低總體系統(tǒng)成本。
支持DesignDRIVE技術(shù)的2000™ MCU是COTS MCU;它用整體產(chǎn)品理念提供更高級(jí)別的驅(qū)動(dòng)系統(tǒng)集成,通過(guò)降低對(duì)專業(yè)工程技術(shù)人才的需要、節(jié)省開(kāi)發(fā)時(shí)間并簡(jiǎn)化系統(tǒng)成本來(lái)使驅(qū)動(dòng)開(kāi)發(fā)人員受益。
在這個(gè)博客系列的下一篇關(guān)于驅(qū)動(dòng)控制架構(gòu)的文章中,我將著重介紹現(xiàn)貨C2000 Delfino™ MCU工業(yè)驅(qū)動(dòng)SoC如何處理那些傳統(tǒng)上已經(jīng)由一個(gè)FPGA完成的功能:快速轉(zhuǎn)矩環(huán)路計(jì)算、已調(diào)制增量-累加ADC信號(hào)的過(guò)濾、高性能PWM、PWM保護(hù),以及與高性能位置傳感器的對(duì)接。