<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

      類型分類:
      科普知識
      數據分類:
      FFC連接器

      借助 ShieldBuddy 應對計算密集型項目難題

      發布日期:2022-04-17 點擊率:34

      許多業余愛好者、創客和 DIY 愛好者都使用 Arduino 微機開發板來監視和控制他們的項目。于是,越來越多的專業工程師也開始將這些開發板用作評估和原型開發平臺,以便加快開發速度,降低集成電路 (IC)、傳感器和外設評估方面的成本。如《valuate-sensors-and-peripherals">使用 Arduino BOB 快速評估傳感器和外設》一文所述,這些工程師所在的團隊可能比較精簡,而且還深受產品上市時間 (TTM) 日益縮短的制約。因此,他們必須承擔多個工程領域的工作,同時設法加快元器件評估并降低成本。

      其中一種解決方案是將 Arduino 與傳感器和外設分線板 (BOB) 之類的開源硬件及庫和示例程序之類的開源軟件結合使用。盡管有多種 Arduino 開發板可以滿足一系列的處理和存儲器要求,但是使用浮點運算器 (FPU) 卻能更好地完成某些計算,從而避免減慢主處理器的速度。在 Arduino 生態系統中,ShieldBuddy 就已經解決了這一問題。

      本文將介紹多種 Arduino 處理平臺選項,解釋為什么 FPU 功能對許多應用都很重要,然后介紹 ShieldBuddy,這款開發板與 Arduino 開發板采用類似的物理封裝,但具有三個獨立的 200 MHz 32 位處理器內核,并且每個內核都有各自的 FPU。此外,本文還將介紹該開發板的編程模型,展示其基于 Eclipse 的編程環境及其對 Arduino 集成開發環境 (IDE) 的支持如何幫助 DIY 愛好者和設計人員快速入門。

      適合新手和專業人士的 Arduino

      剛踏入 Arduino 領域的新手往往從 Arduino Uno Rev3(圖 1)入手,這款開發板基于 16 MHz 8 位 ATmega328P 微控制器。該開發板只有 32 KB 的閃存(程序),2 KB 的 SRAM,14 個數字輸入/輸出 (I/O) 引腳和 6 個模擬輸入引腳。其中 6 個數字引腳可以提供脈沖寬度調制 (PWM) 輸出,必要時模擬引腳也可用作數字 I/O 引腳。

      Arduino Uno Rev3 開發板圖片圖 1:Arduino Uno Rev3 開發板基于 16 MHz 8 位 ATmega328P 微控制器。(圖片來源:Arduino.cc)

      Arduino Uno Rev3 的排針封裝是連接擴展板這一龐大子板生態系統的基礎,包括 14 個數字 I/O 引腳、6 個模擬輸入引腳,以及多個電源、接地和基準源引腳。

      繼 Uno Rev3 之后,許多用戶都轉用 Arduino Mega 2560 Rev3 開發板(圖 2)。這款開發板基于 16 MHz 8 位 ATmega2560 微控制器。該開發板具有 256 KB 的閃存和 8 KB 的 SRAM。此外,該板的排針封裝表明它與 Uno 支持相同的擴展板,不過,Mega 配有更多排針,因此具有 54 個數字 I/O 引腳和 16 個模擬輸入引腳。其中 15 個數字引腳可以提供 PWM 輸出;同樣,必要時模擬引腳也可用作數字 I/O 引腳。

      Arduino Mega 2560 Rev3 開發板的圖片圖 2:Arduino Mega 2560 Rev3 開發板基于 16 MHz 8 位 ATmega2560 微控制器。該板的排針封裝表明它與 Arduino Uno 支持相同的擴展板,不過,它配有更多排針,因此共有 54 個數字 I/O 引腳和 16 個模擬輸入引腳。(圖片來源:Arduino)

      除了受限于 8 位數據路徑和 16 MHz 的時鐘頻率之外,Arduino Uno 和 Arduino Mega 微控制器均不具備 FPU,因而任何涉及浮點數的計算都會顯著減慢這些處理器的速度。

      如果用戶想要更強的處理能力,則可以升級使用 Arduino Due(圖 3)。這款開發板與 Arduino Mega 采用類似的物理封裝,但基于 Atmel/Microchip Technology SAM3X8E 的 84 MHz 32 位 Arm? Cortex?-M3 處理器。該開發板具有 512 KB 的閃存、96 KB 的 SRAM、54 個數字 I/O 引腳、12 個模擬輸入引腳,以及 2 個由數模轉換器 (DAC) 驅動的模擬輸出引腳。其中,只有 12 個數字引腳可以提供 PWM 輸出;同樣,必要時模擬引腳也可用作數字 I/O 引腳。不過,遺憾的是,與 Arduino Uno 和 Mega 一樣,Arduino Due 的處理器也不具備 FPU。

      Arduino Due 開發板的圖片圖 3:Arduino Due 開發板基于 Atmel SAM3X8E 的 84 MHz 32 位 Arm Cortex-M3 處理器,排針封裝與 Arduino Mega 相同。(圖片來源:Arduino.cc)

      許多用戶(包括業余愛好者和專業人士)都喜歡 Arduino Mega 和 Arduino Due 開發板具有較多的引腳。但是,即使是 Arduino Due 的 84 MHz 32 位處理器可能也難以執行某些計算密集型任務。同樣,對于需要處理大量數據的大型程序,Due 配備的 512 KB 的閃存和 96 KB 的 SRAM 仍顯不足。

      盡管如今的微控制器能處理的數據量越來越大,但是從提高效率和降低延遲方面考慮,使用 FPU 可以更好地完成某些計算。

      什么是 FPU?為什么需要它?

      要討論 FPU 為何有用,首先要說說計算機處理數字的原理。在計算機中,最簡單的數字表示法是整型(整數),而且使用整型數進行計算,運算成本較低。不過,整型數本質上范圍有限,因而無法表示較大的動態范圍。

      對于工程師和科學家而言,這是個問題,因為他們常常需要在同一計算中使用極大和極小的數值。例如,物理學家可能需要同時使用光速 (300,000,000) 和牛頓引力常數 (0.00000000006674) 來進行計算。同樣,在數字信號處理 (DSP) 等任務以及人工智能 (AI) 和機器學習 (ML) 應用中,工程師則要使用較大動態范圍的數值。

      在這種情況下,解決方案就是使用浮點數表示法,即小數點的位置可根據數值的各個數字“浮動”,從而實現更高的數字“分辨率”。但問題在于,盡管 32 位浮點數所占內存與 32 位整型定點數相同,使用浮點數進行計算卻需要更多的計算資源。

      如果處理器必須使用標準定點硬件進行浮點運算,那么必定會極大地影響該處理器的性能。在這種情況下,解決方案就是為處理器配備特殊的 FPU,即可在很短的時鐘周期內完成復雜的浮點運算。

      這正是 ShieldBuddy 的用武之地。

      ShieldBuddy 為 Arduino 生態系統引入 FPU 和高性能

      目前,一款相對較新的兼容 Arduino 的開發板是 Infineon Technologies 的 KITAURIXTC275ARDSBTOBO1,即 ShieldBuddy(圖 4)。這款嵌入式評估板主要面向 Infineon 的 TC275T64F200WDCKXUMA1 TC275 AURIX TC2xx TriCore 32 位微控制器。

      配備 Infineon TC275 32 位多核處理器的 ShieldBuddy TC275 圖片圖 4:ShieldBuddy TC275 配備板載 Infineon TC275 32 位多核處理器,且與 Arduino Mega 和 Arduino Due 采用相同的封裝,因而可與市面上供應的許多應用擴展板兼容。 (圖片來源:Hitex.com)

      ShieldBuddy 與 Arduino Mega 和 Arduino Due 采用類似的物理封裝,可與許多應用擴展板兼容,但區別在于它配備的 TC275 具有三個獨立的 200 MHz 32 位內核,并且每個內核都有各自的 FPU。此外,ShieldBuddy 具有 4 MB 的閃存(分別是 Arduino Due 的 8 倍、Arduino Mega 的 16 倍),以及 500 KB 的 RAM(分別是 Arduino Due 的 5 倍、Arduino Mega 的 62 倍)。

      有一點可明顯看出區別:Arduino Mega 內核每微秒 (μs) 只能處理約 16 條 8 位指令;相比之下,TC275 每個內核的周期時間為 5 ns,因而每個內核每微秒通常可執行約 150 至 200 條 32 位指令。由于 ShieldBuddy 的每個處理器內核都有各自的 FPU,因此該板進行浮點運算時,幾乎不會削弱性能。

      使用 ShieldBuddy 進行開發

      使用 ShieldBuddy 時,專業軟件開發人員也許希望借助 Eclipse IDE,而業余愛好者和創客可能更偏好使用為人熟知的 Arduino IDE。該板可支持這兩個選項。

      Arduino 的用戶都很清楚,每個草圖(程序)必須具有兩個標準函數:setup()(單次運行)和 loop()(多次運行)。除此之外,用戶還可以創建自己的函數。

      ShieldBuddy 的三個內核分別稱作 Core 0、Core 1 和 Core 2。在使用 Arduino IDE 的情況下,大多數現有草圖都可以編譯,以便直接用于 ShieldBuddy 而無需修改。setup() 和 loop() 函數及其調用的所有用戶創建的函數經編譯后,均默認在 Core 0 上運行。

      創建新程序時,用戶可將這些函數命名為 setup0() 和 loop0() 以達到相同的效果。另外,用戶也可以創建 setup1() 和 loop1() 函數。這些函數及其調用的所有用戶創建的函數經編譯后,均會自動在 Core 1 上運行。同理,setup2() 和 loop2() 函數及其調用的所有用戶創建的函數經編譯后,均會自動在 Core 2 上運行。

      默認情況下,各個內核獨立運行,因此 ShieldBuddy 可以同時運行三個完全獨立的程序。盡管如此,各內核間也可使用共享存儲器等技術進行通信。此外,每個內核還都可以在其他內核中觸發軟中斷。

      結語

      事實證明,Arduino 的開源理念取得了巨大的成功,隨之衍生的硬件和軟件生態系統也得以發展,包含了數百種擴展板、數千個庫和應用程序。

      盡管早期的 Arduino 開發板(例如 16 MHz 8 位 Arduino Uno 和 Arduino Mega)具有一定的局限性,但較新的產品(例如 84 MHz 32 位 Arduino Due)功能明顯就更強大。即便如此,許多用戶仍需要更多的程序存儲空間(閃存)、更多的數據存儲空間 (SRAM) 和更強的處理能力,而這些都絕非任何傳統 Arduino 所能提供。

      ShieldBuddy 具有 4 MB 的閃存、500 KB 的 SRAM 和三個獨立的 200 MHz 32 位處理器內核,而且每個內核都有各自的 FPU,將 Arduino 理念提升到一個全新的層次,因而追求極致的 DIY 愛好者和專業工程師都對它興趣濃厚。

      推薦閱讀:

      1. 向絕對初學者教授電子知識

      2. 通過 Arduino MKR Vidor 4000 快速輕松地應用 FPGA

      3. 借助易用型 Arduino 入門套件,開啟創客世界大門

      下一篇: PLC、DCS、FCS三大控

      上一篇: 安裝醒目的工業燈塔,

      推薦產品

      更多
      主站蜘蛛池模板: 国产成人精品综合网站| 亚洲婷婷第一狠人综合精品| 五月天综合色激情| 天天做天天做天天综合网| 女人和拘做受全程看视频日本综合a一区二区视频 | 亚洲私人无码综合久久网| 五月婷婷亚洲综合| 亚洲综合精品成人| 久久综合久久综合久久| 亚洲精品综合在线影院| 久久综合琪琪狠狠天天| 亚洲AⅤ优女AV综合久久久| 伊人久久大香线蕉综合网站| 伊人久久大香线蕉综合影| 一97日本道伊人久久综合影院| 亚洲狠狠综合久久| 婷婷亚洲综合五月天小说| 精品亚洲综合久久中文字幕| 狠狠色丁香婷婷综合潮喷 | 狠狠色综合一区二区| 色噜噜狠狠色综合日日| 国产综合成人久久大片91| 亚洲狠狠爱综合影院婷婷| 国产成人综合精品| 丁香六月激情综合| 五月综合色婷婷影院在线观看| 色婷婷综合缴情综免费观看| 国产亚洲Av综合人人澡精品| 狠狠综合亚洲综合亚洲色| 亚洲熟女综合色一区二区三区 | 成人综合久久精品色婷婷| 亚洲欧洲av综合色无码| 狠狠色狠狠色综合日日五| 色噜噜狠狠狠狠色综合久 | 色综合天天综合婷婷伊人| 久久九色综合九色99伊人| 国产综合亚洲专区在线| 色噜噜狠狠色综合网| 女人和拘做受全程看视频日本综合a一区二区视频| 婷婷色中文字幕综合在线| 丁香伊人五月综合激激激|