">
和處理大多數(shù)MCU項目時一樣,我打算從示例代碼開始,然后通過各種示例搭建自己的項目。但是對于每一個例子,我發(fā)現(xiàn)越來越不熟悉,并且結(jié)果也越來越混亂。在這里代碼被用來定義對象和調(diào)用函數(shù),這在MCU里倒是很常見,但是有些定義是在高階函數(shù)里進行的,而其他的則是在另一個地方。像往常一樣,這些函數(shù)被用來執(zhí)行一個功能或任務,但有一些函數(shù)要依賴于其他函數(shù)而另一些函數(shù)則是獨立的。正如我試圖對它們發(fā)表評論時所發(fā)現(xiàn)的那樣,那些沒有被直接調(diào)用的代碼仍然是代碼功能的關鍵。
我很迷糊。
我決定在YouTube上搜索“Intel FPGA Setup Cyclone V”來尋找示例和“Setup&Go”培訓。當我瀏覽這些內(nèi)容時,我發(fā)現(xiàn)一個共同的主題(圖1):
看似不連貫的一組命令仍然有效,但似乎并不完整。
缺乏不支持FPGA的外部模塊或組件。
有了這些觀察,我回顧了更多設計樣本和代碼,并發(fā)現(xiàn)了英特爾Cyclone V和HPS FPGA架構顯著的優(yōu)勢。
圖1顯示了HDMI命令集,其中包括一系列未被調(diào)用的代碼。它們不是按順序運行的,而是并行運行的。它們的功能很像回調(diào)函數(shù),在HPS中如果有來自較高級別控制器的數(shù)據(jù)調(diào)用時,這些回調(diào)函數(shù)就會被激活。然后編譯器就會提高向MCU傳遞信息的能力,反之亦然。在這兩者之間需要做的就是協(xié)調(diào)定義和時間安排。
圖1:HDMI命令集,其中包括一系列未被調(diào)用的代碼。
項目流程如下所示:
1、Linux HPS抓取圖像。
2、Linux將OpenCV處理過程移交給FPGA。
3、Linux調(diào)整圖像。
4、FPGA接收原始圖像信息,并將其編碼為HDMI接口。
這是使用HPS和FPGA的完美示例。FPGA能夠處理大量重復的運算并實現(xiàn)協(xié)議,而Linux和MCU則處理了程序的動態(tài)元素。這讓我看到了FPGA的優(yōu)勢。
當我深入研究僅含有MCU的設計時,我發(fā)現(xiàn)了FPGA的其他優(yōu)點:它需要很少的元件,而且可以使成本更低,性能更好的MCU獲得非常好的效果。例如,僅含MCU的設計將需要更高的A52等條件來進行圖像處理,此外還需要一個GPU來進行圖形加速處理和更多的RAM來完成整個設計。設計完成后,最終結(jié)果仍然是一個鎖定的,有限的可升級模塊。有了FPGA,這些組件便可以被引入同一個芯片,所以產(chǎn)品級PCB設計更為簡單,因為它需要較少的的組件接口,而且由此產(chǎn)生的模塊仍然可以升級或優(yōu)化。
我頭頂上的燈泡在幾英里外都可能被看到。
將多功能集成到單個電路上,減少接口數(shù)量,或者根據(jù)線路修改功能等這些都是FPGA的優(yōu)勢,但它的好處遠不止這些。FPGA改變了我為了高效完成任務而增加外部組件的方式:不是“按順序執(zhí)行步驟1,步驟2,步驟3”,現(xiàn)在我正在考慮這樣完成任務:“執(zhí)行步驟A,B,C,并且當執(zhí)行完B之后,就執(zhí)行D”?,F(xiàn)在,為什么要花時間來研究MCU到FPGA開發(fā)轉(zhuǎn)換的原因也已變得越來越明晰了。
上海紫卓電子科技有限公司
地址:上海市嘉定工業(yè)區(qū)葉城路925號B區(qū)4幢J
網(wǎng)址:fashioncenter.cn
電話:021-31007998
傳真:021-31007998
郵件:569998567@qq.com
在線咨詢:
569998567
致力成為優(yōu)秀的IC供應配單專家及IC代理商
竭力為客戶提供一站式電子元器件采購及IC配套服務
上海紫卓電子科技有限公司 版權所有 未經(jīng)授權禁止復制或鏡像
CopyRight 2020-2025 fashioncenter.cn All rights reserved