0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)評(píng)FPGA——Arduino MKR Vidor 4000

西西 ? 來(lái)源:劉林華 ? 作者:電子發(fā)燒友 ? 2018-12-19 14:31 ? 次閱讀

Arduino MKR Vidor 4000的出現(xiàn)確實(shí)讓我挺意外的,為何?因?yàn)樗且豢?a target="_blank">FPGA開(kāi)發(fā)板。眾所周知,Arduino最深入人心的東西就是其簡(jiǎn)單的入門,快速的開(kāi)發(fā),這種特性很好的體現(xiàn)在它的硬件以及開(kāi)發(fā)工具上,因此,Arduino一度成為剛接觸嵌入式編程的學(xué)生或者工程師群體,甚至是電子業(yè)余愛(ài)好者的首選。

但是,MKR Vidor 4000的推出打破了這種簡(jiǎn)單,F(xiàn)PGA相比MCU入門更難,開(kāi)發(fā)工具也龐大復(fù)雜,學(xué)習(xí)成本大,甚至說(shuō)你沒(méi)有一定的專業(yè)知識(shí)連入門都不易,那這種有違Arduino特色的板子意義何在?我理解為兩點(diǎn):1.目前人工智能火爆,而FPGA則是人工智能中可謂全能的角色,高端可用于推理加速乃至訓(xùn)練,入門級(jí)的則作為嵌入式邊緣計(jì)算的輔助被很好的應(yīng)用在低功耗領(lǐng)域,如物聯(lián)網(wǎng)、移動(dòng)電子設(shè)備等,所以FPGA作為一個(gè)“有潛力的風(fēng)口”切入不錯(cuò);2. 目前Arduino所有的產(chǎn)品核心器件較為單一,都是簡(jiǎn)單的通用MCU,甚至連個(gè)“全家桶”MCU都沒(méi)有,這種單一適合初學(xué)者,但是無(wú)法滿足更高需求的用戶,因此推更加靈活和強(qiáng)大的FPGA作為產(chǎn)品線的補(bǔ)充,用于覆蓋更多用戶群體。當(dāng)然,這只是我個(gè)人的推測(cè),事實(shí)究竟是怎樣?相信看完本文你也會(huì)有自己的理解。

MKR Vidor 4000

MKR Vidor 4000作為一款拇指型的開(kāi)發(fā)板,小巧精致是它固有的特性,這是優(yōu)點(diǎn),同時(shí)也是缺點(diǎn)。優(yōu)點(diǎn)在于沒(méi)有復(fù)雜的硬件,上手理解應(yīng)該會(huì)比較簡(jiǎn)單;而缺點(diǎn)則是因?yàn)樘^(guò)簡(jiǎn)單,所以注定不可能搭載很多功能,而且更多的功能實(shí)現(xiàn)都需要靠外接其它功能外設(shè)支持,成本花銷會(huì)很大。不過(guò)對(duì)于MKR Vidor 4000來(lái)說(shuō),這種缺點(diǎn)不明顯,為何?因?yàn)樗幌衿渌腁rduino開(kāi)發(fā)板一樣搭載純粹的MCU,MKR Vidor 4000搭載英特爾FPGA與Microchip MCU相結(jié)合,其特有的屬性讓它變得非常靈活又難能可貴,比如它可以做以往Arduino系列板卡做不到的事情,處理高速的音頻、視頻信號(hào)。

從我見(jiàn)到MKR Vidor 4000的第一眼開(kāi)始就知道這個(gè)板子非常適合作為原型開(kāi)發(fā),當(dāng)你了解清楚這板子的功能后完全可以基于此做應(yīng)用級(jí)的開(kāi)發(fā),板子搭載的眾多豐富接口都有配套的外設(shè)模塊,有錢就買買買,當(dāng)然沒(méi)錢的話玩玩單板其實(shí)也是可以的,畢竟FPGA的無(wú)限可編程性還是能給大家留下一個(gè)預(yù)期。Vidor 4000的外設(shè)接口分布如下圖所示:

Vidor 4000板子的背面很簡(jiǎn)潔,主要是板卡的電源管理部分。而對(duì)應(yīng)的另一側(cè)則是miniPCIe接口,這在Arduino的開(kāi)發(fā)板上還屬于十分罕見(jiàn),也是因?yàn)檫@個(gè)接口的原因,很多應(yīng)用可以直接基于Vidor 4000做原型開(kāi)發(fā)。板子PCB上也貼心的開(kāi)了兩個(gè)U型凹槽用于螺絲固定,真正方面那些需求融合進(jìn)自己產(chǎn)品設(shè)計(jì)的用戶。

在靠近MicroUSB接口處有兩顆電源芯片,一顆為TI的bq24195L,集成了開(kāi)關(guān)模式電池管理和系統(tǒng)電源路徑管理,可以應(yīng)用于各類移動(dòng)電源、平板電腦和其他便攜式設(shè)備的單節(jié)鋰離子和鋰聚合物電池,在這塊板子上,當(dāng)同時(shí)存在電池與USB供電的時(shí)候,通過(guò)內(nèi)部開(kāi)關(guān)會(huì)自動(dòng)切換為USB供電;另一顆為英特爾的EZ6301QI,這是一款可擴(kuò)展的多輸出 PowerSoC,集成了 3 個(gè)獨(dú)立電源:一個(gè) 1.5A DC-DC 降壓轉(zhuǎn)換器(包含集成式電感器)和兩個(gè)300mA的線性穩(wěn)壓器,如下圖所示,僅需少量的外圍器件就可以組成Vidor 4000所需要的電源系統(tǒng)。

板子正面的5V MicroUSB供電接口,外接I2C模塊接口以及鋰電池供電接口。

另一側(cè)則是幾個(gè)比較“高端”的接口,miniPCEIe、MiPi CSI、MicroHDMI。

這種接口一般在Arduino的MCU開(kāi)發(fā)板上基本不會(huì)存在,但在Vidor 4000上齊全了,這主要依托于板載的這顆Intel Cyclone 10 FPGA,因此板子上的miniPCIe接口所涉及到的引腳都是FPGA的可編程IO口,用戶可以自己定義需要的接口信號(hào),非常靈活,也易于嵌入式到現(xiàn)有的產(chǎn)品中去。

英特爾的Cyclone FPGA具體型號(hào)為10CL016YU256CBG,包含16K邏輯單元,504 KB嵌入式RAM和56個(gè)18x18 bit HW乘法器,用于高速DSP。每個(gè)pin腳都可以在150 MHz以上速度進(jìn)行切換,并可配置為UART,(Q)SPI,高分辨率/高頻率 PWM,正交編碼器,I2C,I2S,Sigma Delta DAC等功能。

FPGA部分關(guān)聯(lián)的功能以及外設(shè)接口,參照下表:

MCU部分關(guān)聯(lián)的功能以及外設(shè)接口,參照下表:

上電使用

如果您本身熟悉FPGA開(kāi)發(fā),那么毫無(wú)疑問(wèn)你對(duì)Verilog,VHDL和RTL都不陌生。雖然Vidor的工具鏈提供了對(duì)這些語(yǔ)言的支持,但這肯定不是它原本的目的,要不然用戶為何要選擇這個(gè)Arduino的FPGA開(kāi)發(fā)板(市面上更多功能,更強(qiáng)性能的FPGA開(kāi)發(fā)板多的是),而且,這樣的話將Arduino的生態(tài)置于何處?

Vidor 4000的目的顯然是讓任何人都可以更輕松配置FPGA,玩轉(zhuǎn)FPGA,所以傳統(tǒng)的FPGA開(kāi)發(fā)方式肯定不是Vidor 4000想傳達(dá)給用戶的,這點(diǎn)很重要,也就是說(shuō),你可以將Vidor看作是一個(gè)使用FPGA的平臺(tái),而不是一個(gè)學(xué)習(xí)FPGA的平臺(tái)。真要學(xué)習(xí)FPGA的朋友,推薦使用愛(ài)板網(wǎng)評(píng)測(cè)過(guò)的另一款小腳丫FPGA比較合適。

官方為MKR Vidor 4000開(kāi)發(fā)板提供了不少庫(kù)以及IP,如MIPI相機(jī)輸入、DVI輸出、120MHz DAC、QR碼跟蹤器、PWM、四編碼器、I2C,I2S,SPI和UART、FFT、FIR濾波器,所以,我們可以直接拿來(lái)使用。

必要的開(kāi)發(fā)環(huán)境安裝有:(Vidor 4000三件套)

Arduino IDE工具

MKR Vidor開(kāi)發(fā)板支持包

庫(kù)管理包

東西準(zhǔn)備就緒,那就可以使用上面的“三件套”實(shí)現(xiàn)基本的功能演示,我們借助了樹(shù)莓派上的攝像頭,通過(guò)MiPi攝像頭接口輸入,MicroHDMI輸出,輸出連接到顯示器上。

程序是一個(gè)二維碼檢測(cè)器。

源碼如下

#include “VidorGraphics.h”

#include “VidorCamera.h”

VidorCamera vcam;

#define MAXDIM 10

static uint16_t x[QR_PT_DET_NUM], y[QR_PT_DET_NUM];

struct qrPtn {

uint16_t x[QR_PT_DET_NUM];

uint16_t y[QR_PT_DET_NUM];

};

static qrPtn qrBufferPtn[MAXDIM];

uint16_t count = 0, last;

void setup() {

Serial.begin(9600);

// wait for the serial monitor to open,

// if you are powering the board from a USB charger remove the next line

while (!Serial);

if (!FPGA.begin()) {

Serial.println(“Initialization failed!”);

while (1) {}

}

/**

begin() enable the I2C communication and initialize the display for the camera

*/

if (!vcam.begin()) {

Serial.println(“Camera begin failed”);

while (1) {}

}

/**

qrrec.begin(); enable the QR code recognition

*/

vcam.qrrec.begin();

delay(4000);

Serial.println(“Power ON”);

}

void loop() {

/**

qrrec.readQRCode(); get, if available, the coordinates of the QR code in the screen

*/

vcam.qrrec.readQRCode();

for (int i = 0; i 《 QR_PT_DET_NUM; i++) {

if (vcam.qrrec.qr.pt[i].valid) {

x[i] = (vcam.qrrec.qr.pt[i].xs + vcam.qrrec.qr.pt[i].xe) / 2;

y[i] = (vcam.qrrec.qr.pt[i].ys + vcam.qrrec.qr.pt[i].ye) / 2;

vcam.vgfx.Cross(x[i], y[i], 65535);

}

}

last = count % MAXDIM;

for (int i = 0; i 《 QR_PT_DET_NUM; i++) {

vcam.vgfx.Cross(qrBufferPtn[last].x[i], qrBufferPtn[last].y[i], 0, 0);

qrBufferPtn[last].x[i] = x[i];

qrBufferPtn[last].y[i] = y[i];

}

count++;

}編譯下載,實(shí)際的運(yùn)行結(jié)果如下,可以在顯示器上看到經(jīng)過(guò)攝像頭采集,F(xiàn)PGA處理后輸出的圖像效果,顯然圖像處理方面應(yīng)該沒(méi)有任何調(diào)教過(guò),優(yōu)化,所以看起來(lái)會(huì)比較渣,但是二維碼的檢測(cè)定位的功能是沒(méi)問(wèn)題的。

除了此demo外還有不少關(guān)于攝像頭輸入和HDMI輸出的demo,相較之下還比這個(gè)二維碼檢測(cè)的demo少了些許功能,而在圖像輸出上也沒(méi)什么提升,所以不再演示了。從Vidor 4000提供的一些demo不難發(fā)現(xiàn)基本上都是關(guān)于一些IP的使用,明白我意思不,這個(gè)所謂的“使用”,不是教你如何去學(xué)習(xí)開(kāi)發(fā)FPGA,而是教你如何像先前使用Arduino IDE開(kāi)發(fā)MCU那樣去玩FPGA,官方將復(fù)雜的功能實(shí)現(xiàn)都模塊化成庫(kù)或者IP,用戶只需通過(guò)原本的Arduino IDE工具像簡(jiǎn)單的MCU開(kāi)發(fā)一樣去使用FPGA。

小結(jié)

相比傳統(tǒng)的Arduino開(kāi)發(fā)板,Vidor 4000的優(yōu)勢(shì)在于集成了靈活多變的FPGA,體現(xiàn)在板卡上的話就是具備了MiPi CSI(沒(méi)有MIPI DSI接口是個(gè)遺憾)、MicroHDMI、miniPCIe等與傳統(tǒng)的Arduino MCU開(kāi)發(fā)板不同的“先進(jìn)”接口,配合Arduino官方提供的庫(kù)以及相關(guān)的IP,用戶可以在原本簡(jiǎn)單的Arduino開(kāi)發(fā)板是實(shí)現(xiàn)更加靈活、更多功能的擴(kuò)展,實(shí)現(xiàn)更復(fù)雜的應(yīng)用。在不少用戶眼里,認(rèn)為Arduino的簡(jiǎn)單是理所當(dāng)然的,但是我要說(shuō)的是我們現(xiàn)在所能得到Arduino的一切理所當(dāng)然的簡(jiǎn)單是靠許許多多工程師傾注心血用復(fù)雜去構(gòu)建,Arduino之所以能在全球范圍內(nèi)流行,并不是因?yàn)樗旧砗?jiǎn)單,而是它將復(fù)雜簡(jiǎn)單化,就比如說(shuō)文章中的MKR Vidor 4000,這或許是你這輩子最有底氣去接觸FPGA的一個(gè)產(chǎn)品了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1636

    文章

    21841

    瀏覽量

    608497
  • FPGA開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    10

    文章

    124

    瀏覽量

    31670
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用FPGA開(kāi)發(fā)板編程出更高級(jí)的應(yīng)用

    最新的努力,推出一款名為 Arduino MKR Vidor 4000 的新型低成本開(kāi)發(fā)板,其代表了一種在嵌入式系統(tǒng)設(shè)計(jì)中使用 FPGA
    的頭像 發(fā)表于 03-20 08:05 ?4044次閱讀
    如何使用<b class='flag-5'>FPGA</b>開(kāi)發(fā)板編程出更高級(jí)的應(yīng)用

    Arduino MKR WIFI 1010上使用LoRa庫(kù)遇到問(wèn)題

    Arduino MKR WIFI 1010上使用LoRa不能初始化SX1276. 不知道是SPI在庫(kù)里不能使用還是其他的問(wèn)題,請(qǐng)大師指點(diǎn)!謝謝!
    發(fā)表于 04-21 14:18

    MKR Vidor 4000一款拇指型的FPGA開(kāi)發(fā)板

    MKR Vidor 4000作為一款拇指型的開(kāi)發(fā)板,小巧精致是它固有的特性,這是優(yōu)點(diǎn),同時(shí)也是缺點(diǎn)。優(yōu)點(diǎn)在于沒(méi)有復(fù)雜的硬件,上手理解應(yīng)該會(huì)比較簡(jiǎn)單;而缺點(diǎn)則是因?yàn)樘^(guò)簡(jiǎn)單,所以注定不可能搭載很多功能,而且更多的功能實(shí)現(xiàn)都需要靠外
    發(fā)表于 08-05 17:56 ?1277次閱讀
    <b class='flag-5'>MKR</b> <b class='flag-5'>Vidor</b> <b class='flag-5'>4000</b>一款拇指型的<b class='flag-5'>FPGA</b>開(kāi)發(fā)板

    使用Grove Sensor的Arduino MKR1010和阿里云IoT

    電子發(fā)燒友網(wǎng)站提供《使用Grove Sensor的Arduino MKR1010和阿里云IoT.zip》資料免費(fèi)下載
    發(fā)表于 10-27 14:17 ?0次下載
    使用Grove Sensor的<b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>1010和阿里云IoT

    Arduino MKR GSM 1400和DTMF開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《Arduino MKR GSM 1400和DTMF開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 11-02 09:52 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b> GSM 1400和DTMF開(kāi)源

    使用MKR IoT載體的Arduino燈控制器

    電子發(fā)燒友網(wǎng)站提供《使用MKR IoT載體的Arduino燈控制器.zip》資料免費(fèi)下載
    發(fā)表于 11-17 14:34 ?0次下載
    使用<b class='flag-5'>MKR</b> IoT載體的<b class='flag-5'>Arduino</b>燈控制器

    帶有Arduino MKR1010和MKR RGB Shield的Otto Biped

    電子發(fā)燒友網(wǎng)站提供《帶有Arduino MKR1010和MKR RGB Shield的Otto Biped.zip》資料免費(fèi)下載
    發(fā)表于 11-21 10:27 ?0次下載
    帶有<b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>1010和<b class='flag-5'>MKR</b> RGB Shield的Otto Biped

    使用 Arduino MKR Vidor 4000 快速輕松地應(yīng)用 FPGA

    發(fā)表于 11-25 19:00 ?0次下載
    使用 <b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b> <b class='flag-5'>Vidor</b> <b class='flag-5'>4000</b> 快速輕松地應(yīng)用 <b class='flag-5'>FPGA</b>

    Arduino MKR1000通用Remonster

    電子發(fā)燒友網(wǎng)站提供《Arduino MKR1000通用Remonster.zip》資料免費(fèi)下載
    發(fā)表于 12-09 16:51 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>1000通用Remonster

    基于Arduino Zero/MKR的示波器

    電子發(fā)燒友網(wǎng)站提供《基于Arduino Zero/MKR的示波器.zip》資料免費(fèi)下載
    發(fā)表于 12-15 10:08 ?0次下載
    基于<b class='flag-5'>Arduino</b> Zero/<b class='flag-5'>MKR</b>的示波器

    帶有MKR Vidor 4000的LED排序器

    電子發(fā)燒友網(wǎng)站提供《帶有MKR Vidor 4000的LED排序器.zip》資料免費(fèi)下載
    發(fā)表于 12-19 09:27 ?0次下載
    帶有<b class='flag-5'>MKR</b> <b class='flag-5'>Vidor</b> <b class='flag-5'>4000</b>的LED排序器

    Arduino MKR1000的大負(fù)載

    電子發(fā)燒友網(wǎng)站提供《Arduino MKR1000的大負(fù)載.zip》資料免費(fèi)下載
    發(fā)表于 01-04 09:50 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>1000的大負(fù)載

    如何將Arduino MKR和Portenta安裝到機(jī)柜中

    電子發(fā)燒友網(wǎng)站提供《如何將Arduino MKR和Portenta安裝到機(jī)柜中.zip》資料免費(fèi)下載
    發(fā)表于 02-03 11:39 ?0次下載
    如何將<b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>和Portenta安裝到機(jī)柜中

    如何使用Arduino MKR GSM 1400的蜂窩定位

    電子發(fā)燒友網(wǎng)站提供《如何使用Arduino MKR GSM 1400的蜂窩定位.zip》資料免費(fèi)下載
    發(fā)表于 06-15 15:06 ?0次下載
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b> GSM 1400的蜂窩定位

    使用Arduino MKR1000通過(guò)WiFi進(jìn)行HID攻擊

    電子發(fā)燒友網(wǎng)站提供《使用Arduino MKR1000通過(guò)WiFi進(jìn)行HID攻擊.zip》資料免費(fèi)下載
    發(fā)表于 06-25 11:10 ?0次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>MKR</b>1000通過(guò)WiFi進(jìn)行HID攻擊