雖然 Arduino 基板設計的早期迭代只利用 Atmel 8、16 和 32 位 AVR 微控制器,但最近卻出現了許多包括非 Atmel MCU 和 MPU 在內的基板。 在適當考慮一些重要設計取舍后,這不僅可向設計師賦予更大的處理器與 I/O 靈活性,還可提供更多選擇,讓 Arduino 板運用于從開發到生產的所有階段。
當然,眾多這類新 Arduino 基板還在普通行業標準和開源硬件方法中提供更高的系統處理器靈活性。 Arduino 憑借這些屬性而成為處理器評估和選購的一個很有吸引力的選擇,在此階段之后,可能才適合過渡至使用處理器供應商的開發板(以及相關聯的軟件和其他資源)。 但在某些情形下,Arduino 板可能不僅適用于開發,結合“盾形”擴展板所帶來的靈活的增強功能后,還適合直接用于直至生產的所有階段。
本文將展示多個典型的 Arduino 基板以及盾板產品,討論其處理器基礎及外設分配等。 最后還會提供一些總結性建議,以輕松、有效地評估您下一次設計可采用的替代處理器。
定義 Arduino
“評估板”和“開發板”術語通常可互換使用,但這樣做是錯誤的。 顧名思義,開發板旨在協助進行軟件編碼(在系統硬件設計上運行),以及提供板上硬件和其他必要系統電路之間的連接。 因此,開發板提供大量測試點和接口選擇,以及強大的捆綁軟件工具集。
但是開發板的全面性(及相應的高價位)固有隱含假設是:您已通過架構和產品擴散評估階段,并選擇了特定的硬件產品組合。 這就是說,某些開發板的板載電路可能超出了(或至少不同于)您打算納入最終設計中的電路。 此外,開發板的靈活性還決定它需要比您設計需要的尺寸更大。 更通俗的來說,開發板軟硬件配置的全面性,結合其低出貨量,意味著即使用于小批量、高利潤率的系統生產方案,它們的價格也可能是令人難以接受的。
過去十年來,Arduino 基板和擴展板規范實際上已迅速成為行業標準,理由很充分。 它們利用更基本的“基”板,而非試圖提供多位一體的統一板設計。 Arduino 靈活的增強功能由擴展板(亦稱“盾板”)提供,能夠通過標準化接口連接至基板。 盾板可以疊接,甚至可以通過自助盾板設計來補充。 由于眾多供應商提供包含許多電路的盾板,因此您不但可以輕松評估不同的功能,而且還可評估實現這些功能的不同硬件選擇。
類似地,在 Arduino 基板設計的初始迭代只利用 Atmel AVR 微控制器的情況下,最近也出現了包含非 Atmel MCU 和 MPU 在內的其他基板備選對象,可提供更高的系統處理器評估靈活性。 此外,Arduino 的緊湊外形尺寸結合其高容量特色,成就了較高的性價比,使其不僅對評估和后續開發階段有吸引力,還適用于許多適度量產的情形。
Adafruit Industries Digi-Key Metro 板
我們首先來了解相對傳統的基板設計—Adafruit IndustriesDigi-Key Metro 板。 Arduino UNO R3 參考設計的這個派生器件,由 Digi-Key 做了兩項外觀美化(從硬件的角度看,這兩塊板是相同的),在“帶針座的 Metro 328”板的基礎上實現了進一步定制。
-
它采用紅色,相應主流 Adafruit 產品為黑色,以及
-
板下側印有完整零件清單(圖 1)
圖 1a
圖 1b
圖 1c
圖 1:Adafruit Digi-Key Metro 板 (a) 是制造商主流的帶針座 Metro 328 板 (b) 的變型,定制使用紅色裝飾涂層,并在其下側 (c) 印有完整的零件清單。
AtmelATmega328P 微控制器基于 Digi-Key Metro 板,是一個采用 8 位 20 MHz AVR RISC 的處理器,具有額外的 32 KB 系統內可編程閃存、1,024 B 的 EEPROM 以及 2 KB 的 SRAM。 ATmega328P 還隨附多種片載外設;連接選件包括 23 個 GPIO、16 個觸摸接口通道、24 個外部中斷、一個字節導向的雙線串行接口以及一個 SPI 串行端口。
Seeed Technology Intel Edison for Arduino 套件
另一個極端是Seeed Technology的 Intel Edison for Arduino 套件,它是用于基礎Intel Edison 開發平臺(圖 2)的多個可用硬件擴展選擇之一。 此基板尺寸為 127 mm x 72 mm,比前述 71 mm x 53 mm Arduino UNO 外形尺寸大不少,但 Arduino“盾形”擴展總線標準化則通過四個板載連接器來實現。 Arduino 套件還包括一個 SD 卡連接器,以及兩個小型和標準型 USB 主機連接器。
圖 2a
圖 2b
圖 2c
圖 2:Seeed Technology 的 Arduino 套件將“盾形”擴展板生態系統支持帶至原本專有的 Intel Edison 開發平臺板設計 (a)。 如果您只需要“分線”連接并且偏好較小的板外形尺寸,則可考慮該公司的替代 Intel Edison 分線套件 (b)。 此外,SparkFun Electronics 的開放式電源入門套件提供一種中間方法;尺寸介于兩個其他板之間,通過專有的(雖然開源)“塊”疊接方案 (c) 擴展。
Intel 的 Edison 在 IoT 和其它嵌入式電子市場上出現得相對較晚,是一個采用 22 nm 工藝制造的 SoC,其內核采用該公司的 32 位 Quark 微控制器(在此特定情況下運行頻率為 100 MHz)。 同一芯片上還有一個雙核、雙線程 500 MHz "Silvermont" Intel Atom 處理器陣列。 Intel Edison 開發平臺模塊上還包括 1 GB 的 LPDDR3 SDRAM、4 GB 的基于 EMMC 的閃存、一個 USB 2.0 PHY 和雙頻 Wi-Fi 以及藍牙無線收發器。
為了在后續外形尺寸顯著減小的情況下獲得 Intel Edison 評估開發所需的較適度功能,Seeed 還提供分線套件。 此外,作為中間的替代硬件方法,Intel Edison 倡導者還應考慮 SparkFun Electronics 的基板和擴展塊系列,其中幾個基板和擴展塊捆綁在該公司的開放式電源入門套件中。 SparkFun 的基于 Intel Edison 的產品線從供應商的角度出發目前為專有采購(雖然從板設計文檔的角度出發為開源),將在即將推出的文章中會更詳細地討論。
UDOO Neo 開發板
如果 Arduino 的標準化富有吸引力,但 NXP 的 i.MX 6 處理器更符合您的喜好,您可能需要考慮 UDOO 的 Neo 開發板產品線(圖 3和表 1)。 Neo 提供三種型號,它們全部基于 i.MX6 SoloX SoC 并且外形尺寸皆為 89 mm x 59 mm,介于之前討論的兩個選件的尺寸之間(但同樣采用引腳分配和布局標準的板載 Arduino“盾板”連接器組)。
圖 3a
圖 3b
圖 3c
圖 3:UDOO 的 Neo 產品線提供三種版本:基本版 (a)、擴展版 (b) 和完整版 (c),帶有混用無線和有線網絡連接選件,以及各種系統存儲器分配和可選的運動傳感器。
表 1:UDOO Neo 系統板型號及選件。
所有三個型號均具有以下特性:
-
視頻輸出:Micro HDMI 以及 LVDS + 觸摸 (I2C)
-
存儲:8 位 microSD 卡(帶 SDIO 支持)
-
音頻:HDMI(輸出)、S/PDIF、I2S
-
USB:一個 USB 2.0 A 型,一個 microUSB(帶 OTG 支持)
UDOO Neo 產品線所基于的NXPi.MX 6SoloX 應用處理器由一個 ARM? Cortex?-A9 處理器內核(運行速度高達 1 GHz)及 ARM Cortex-M4 內核(高達 200 MHz)組成。 同時集成了一個 Vivante GC400T 2D/3D 圖形加速器。
Analog Devices ADUCM360 基板
如果 ARM 的 Cortex-M 系列內核是您唯一關注的處理器,您應了解下Analog DevicesADUCM360 基板,制造商稱該基板的外形尺寸與 101.6 mm x 53.3 mm Arduino Due 參考板設計兼容(圖 4)。 此板所基于的ADuCM360 應用處理器是一個速率達 3900 次采樣/秒的 24 位數據采集系統,包含兩個 24 位多通道三角積分型模數轉換器 (ADC)、一個提供高達 20 MIPS 峰值性能的 32 位 ARM Cortex-M3 處理器內核,以及 128 KB 的基于 EEPROM 的閃存和 8 KB 的 SRAM。
圖 4a
圖 4b
圖 4c
圖 4d
圖 4:Analog Devices 的 ADUCM360 基板 (a) 采用兼容 Arduino Due 的外形尺寸 (b)。 提供的 Analog Devices 牌“盾形”擴展板支持加速計和電子秤 (c) 以及毒氣檢測 (d) 功能。 (圖片由 Analog Devices 提供)
ADUCM360 基板還支持 PMOD 擴展總線標準,這解釋了圖 4 中所示的附加連接器組。 Analog Devices 推出了幾款 Arduino Uno R3 格式的盾形擴展板供選擇,有力補充了更廣泛的 Arduino 生態系統提供的擴展板:
-
EVAL-ADXL362-ARDZ,基于 ADXL362 3 軸 MEMS 加速計。
-
EVAL-CN0216-ARDZ,一種電子秤信號調節系統。
-
EVAL-CN0357-ARDZ,一種使用電化學傳感器的有毒氣體檢測器。
處理器評估與設計考慮因素
本文討論的 Arduino 板代表了一組廣泛的處理器架構及關聯能力。 例如,Atmel ATmega328P 是一種相對比較簡單的 8 位 RISC CPU 應用,而 64 位雙核 Intel Atom 處理器不僅以較高時鐘速度運行,而且采用多線程并在其他方面更先進。 16 和 32 位 ARM Cortex-M3/M4 和 Cortex-A9 以及 Intel Quark 處理器是早期兩個極端型號之間的中間選擇。
一方面,如我最近發布的另一篇文章中所寫,緊湊、強大、高效且具成本優勢的基于 ARM 的板卡才是有吸引力的硬件選擇,您不會想要選擇對您的特定需求而言過慢的 CPU,尤其是當你希望為今后不可避免的軟件升級保留一些性能“空間”時。 另一方面,沒有必要為超出你需求的處理器功率買單;記住你的選擇不僅是價格,還有功耗影響。 若您的軟件大部分時間都處于等待輸入的空閑循環中,更高的時鐘速度可能意義不大。 此外,僅當您的軟件具有較低的指令間相關性時,像超標和故障支持等架構特性才能達到明顯更高的、可實現的 IPC(指令/時鐘)。
類似地,相比更簡單的單核 CPU,缺乏線程獨立性將導致多核 CPU 的吞吐量優勢只能部分發揮,而較高位指令集理論優勢在特定應用中可能無法發揮作用(更何況其更大存儲器封裝需求)。
認真確定您的特殊需求,因為這將幫助您專注于本文介紹的全部產品中的首選處理器選擇。 理想情況下,您的終端系統軟件應該已經可以使用,這樣您便可在多種備選對象上運行該軟件,并評估這些備選對象的相對優勢和不足。 但實際上,很可能在硬件開發工作的同時已經編寫代碼的重要部分(如果不是全部)。 因此,您需要使用軟件來評估替代處理器,逼近您將要使用的函數和例程(特別是最嚴苛的函數和例程)。
為了對您有所幫助,我們提供了多種基準軟件選擇。 出于對魯棒性和開源特性的五月份認真考慮,一種可能的選擇是相應稱作“基準”的、由 Google 在 GitHub 上提供的微基準支持庫。 此庫包含許多特定示例,因此必須運行代表終端節點中可能存在的多種特征的一系列測試,以全面評估每個替代處理器。
在基本使用中,您可以定義執行待評估代碼的函數:
static void BM_StringCreation(benchmark::State& state) {
while (state.KeepRunning())
std::string empty_string;
}
// Register the function as a benchmark
BENCHMARK(BM_StringCreation);
// Define another benchmark
static void BM_StringCopy(benchmark::State& state) {
std::string x = "hello";
while (state.KeepRunning())
std::string copy(x);
}
BENCHMARK(BM_StringCopy);
BENCHMARK_MAIN();
還可以通過單一例程實現一系列基準;使用一個額外參數來指定要運行基準系列中的哪一個。 例如,以下代碼定義了一系列用于評估不同長度 memcpy() 調用速度的基準:
static void BM_memcpy(benchmark::State& state) {
char* src = new char[state.range_x()];
char* dst = new char[state.range_x()];
memset(src, 'x', state.range_x());
while (state.KeepRunning())
memcpy(dst, src, state.range_x());
state.SetBytesProcessed(int64_t(state.iterations()) *
int64_t(state.range_x()));
delete[] src;
delete[] dst;
}
BENCHMARK(BM_memcpy)->Arg(8)->Arg(64)->Arg(512)->Arg(1<<10)->Arg(8<<10);
也可以更簡潔地編碼,例如像這樣:
BENCHMARK(BM_memcpy)->Range(8, 8<<10);
-
Digi-Key
+關注
關注
4文章
135瀏覽量
52721 -
Arduino
+關注
關注
188文章
6477瀏覽量
187844 -
UDOO
+關注
關注
0文章
3瀏覽量
5260
發布評論請先 登錄
相關推薦
嵌入式微處理器選型的考慮因素
SHARC處理器的評估系統
嵌入式微處理器選型要考慮的因素盤點
新一代HMI的3個考慮因素
AN-386:選擇DSP處理器的考慮因素,ADSP-2105與TMS320C25
![AN-386:選擇DSP<b class='flag-5'>處理器</b>的<b class='flag-5'>考慮</b><b class='flag-5'>因素</b>,ADSP-2105與TMS320C25](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
元器件選型基本原則 嵌入式微處理器選型考慮因素
選擇DSP處理器的考慮因素(ADSP-2115 vs. TMS320C5x)
![選擇DSP<b class='flag-5'>處理器</b>的<b class='flag-5'>考慮</b><b class='flag-5'>因素</b>(ADSP-2115 vs. TMS320C5x)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN-386:選擇DSP處理器的考慮因素(ADSP2100系列與TMS320C25)
![AN-386:選擇DSP<b class='flag-5'>處理器</b>的<b class='flag-5'>考慮</b><b class='flag-5'>因素</b>(ADSP2100系列與TMS320C25)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論