想要搭建一套嵌入式系統,首先得確認想要采用的指令集架構(Instruction Set Architectures, ISA),各家的指令集架構各有其優缺點與擁護者,本文將為您大致介紹嵌入式系統的概念與范圍,以及指令集架構選擇時需要考慮的方面。
為了滿足客戶在應用上的不同需求,DigiKey的應用與技術網頁提供了各式各樣的應用相關資源,以便協助工程師更快的進行設計。從應用面來看,DigiKey針對汽車、自動化與控制、物聯網解決方案、能量收集等場景提供了多種不同的解決支持方案。
更進一步,該網頁還列出了不同嵌入式系統與微控制器技術涵蓋的各種指令集架構、評估板、開發板、模塊上系統、擴充板、實時操作系統、嵌入外設組件、微處理器、數字信號處理器、單板機、微控制器、現場可編程門陣列等細分模塊,以供研發人員和電子愛好者根據自己需要進行進一步查閱。
以下我們將陸續為您介紹嵌入式系統網頁內相關的各種應用與技術,如評估板與實時操作系統(RTOS)、微處理器(MPU)與各種控制器(DSP、SBC、MCU、FPGA),以及各類外設(內存、時鐘、通信、I/O、電源)等。讓我們先來看看嵌入式系統與微控制器的相關技術與應用。
嵌入式系統和指令集架構的選擇
嵌入式系統(Embedded System)是一種特定用途的計算機系統,通常被嵌入到其他設備或系統中,以執行特定的任務或功能。這些系統通常是專為為特定應用或產品而設計的,并且由相對較小、專門的硬件和軟件所組成。想要搭建一套嵌入式系統,首先得確認想要采用的指令集架構(Instruction Set Architectures, ISA),各家的指令集架構都各有其優缺點與擁護者,下面將為您大致介紹嵌入式系統的概念與范圍以及指令集架構選擇時需要考慮的方面。
嵌入式系統應用領域相當廣泛
嵌入式系統的應用領域相當廣泛,通常被設計用來執行各種特定的功能或任務,從日常生活中的家電產品到汽車電子系統、醫療設備、工業自動化等各個領域都有存在,它們在提高產品智能化、效能和功能性方面發揮了關鍵作用。此外,許多嵌入式系統需要對命令進行實時處理和響應,這意味著它們必須在特定的時間限制內完成任務,這在需要實時控制和反饋的應用中尤其重要。 另一方面,由于嵌入式系統通常配置在資源有限的設計中,因此它們的硬件資源(如處理器、內存)和功率都有相應的限制。
因此,軟件必須被精心設計以充分匹配這些有限資源,加上嵌入式系統的硬件配置通常是固定的,并且無法或難以進行硬件升級,這使得軟件的效能優化至關重要。 當前多數嵌入式系統都需要與其他設備或系統進行通信,以執行協同任務或傳送數據,這使其必須支持多種通信協議,可能包括有線或無線通信,例如藍牙、Wi-Fi、CAN(Controller Area Network)等。 嵌入式系統也必須搭配嵌入式軟件,才能執行其特定功能,嵌入式系統的軟件通常是專門為其硬件平臺設計的,這可能包括實時操作系統(RTOS)或特定應用的軟件棧。
選擇指令集架構是開發嵌入式系統的第一步
嵌入式系統通常是接收、解釋和發送信號的電子系統的協調部分,其功能來自于硬件和軟件的結合,對于剛接觸嵌入式系統的人來說,C語言編程可以作為軟件開發的理想起點。想要進行軟件開發,就必須從選擇整體結構(如指令集架構)開始,到一些較大的主控類別(如微控制器)結束。
指令集架構(ISA)也稱指令集或者指令集體系,是計算機體系結構中與程序設計有關的部分,包含基本數據類型,指令集,寄存器,尋址模式,存儲體系,中斷,異常處理以及外部IO。通常ISA不會交叉兼容,因此為一種ISA設計的系統一般無法在另一種ISA上運行。例如,x86系統和軟件無法在采用ARM的芯片上運行,因為兩者處理程序代碼指令和數據集的方式不同。
當然,市面上有幾種不同的解決方法可以解決兼容性問題,包括仿真不同ISA操作條件的軟件,或者將不同ISA組合到單一軟件工具包中。例如ARM創建了一種名為ARM big.LITTLE的混合架構,這是一種異質多處理架構,通過將高功率和低功率處理內核組合到一個系統中,可以對高功率進程進行優先排序,并與低功率和低優先級請求分開處理,以實現更大的系統靈活性和更精確的電源管理。
指令集架構主要可以分成精簡指令集(RISC)和復雜指令集(CISC)架構兩種。RISC的概念可以追溯到20世紀80年代,旨在使用簡單的指令集在計算過程中執行單步驟操作,主要的想法是通過減少用于加載、評估和存儲數據的簡單指令的數量來使硬件更簡單。一般來說,可以視為每個程序代碼指令只為計算機系統執行一個動作,更簡單的操作可以實現更快的完成速度并降低功耗,這使得它們在便攜式裝置或其他以電源效率為驅動因素的應用中受到歡迎。
相較之下,CISC則允許在計算過程的每個步驟中發生多個指令和程序代碼操作,通常包括加載和存儲步驟的復雜指令。一般來說,CISC可以被認為是除了RISC之外的所有指令集架構,因為這個術語是為了響應采用RISC的芯片和系統的發展而開發的。雖然CISC沒有官方的定義,但它們通常可以被認為具有更復雜的設計系統,因此通常需要更多的功率來運行。
RISC與CISC這兩種架構其目的其實都是想要使CPU的執行速度更快:RISC是通過減少每個指令的周期,以減少每個應用程序的指令總數為代價,從而達到更快的CPU執行速度;而CISC則是通過最小化每個程序的指令數,以更復雜的硬件為代價,達到相同的目的。
選擇指令集架構時,有多種因素需要考慮,這些因素通常會涉及到硬件、軟件和系統集成等方面,包括應用所需的性能、功耗、成本、軟件生態系統、兼容性、擴展性、安全性等。總體來說,選擇指令集架構是一個復雜的決策過程,需要綜合考慮多個因素,并根據具體的應用場景和需求做出適當的選擇。
各種指令集架構滿足不同應用需求
目前主流的指令集架構有許多種類,每種都有其各自的特點和應用領域,常見的一些主要指令集架構包括RISC-V、x86、ARM、MIPS和Power等,以下將針對最常見的RISC-V、x86和ARM進行介紹。
RISC-V
RISC-V是一種基于RISC架構的開放標準ISA,與其他芯片設計不同,RISC-V完全開源并具有開放架構,具有可擴展性和自由授權的特點,這意味著任何人、在任何地方都可以制造RISC-V芯片,且無需支付任何授權費用,這使RISC-V吸引了廣泛的關注,成為了開源社群中的熱門選擇。然而,雖然RISC-V的內核是開源,但可能還有其他一些不被視為公共區間的附加組件和外圍擴展。RISC-V在嵌入式系統、物聯網設備和一些新興市場中取得了一些成績,并在某些特定領域中快速崛起。目前市面上已經有一些RISC-V開發板問世,包括SparkfunRED-V與Digilent RVfpga,可以大幅加快采用RISC-V指令集來開發嵌入式系統的研發進度。
Digilent的RVfpga開發板 更多產品型號:
114993026 | LOFIVE-R1, | 110991164 |
102110647 | 102991184 | 110991188 |
110991190 | 114992445 | 102110425 |
102991310 | 113991054 | DEV-22925 |
ESP32-C3-DEVKIT-LIPO | ||
MPFS-ICICLE-KIT-ES | MAX78002EVKIT# | |
ESP32-C3-DEVKIT-LIPO | P0082 |
x86
CISC處理器最古老的指令集架構系列之一,其中的x86處理器系列始于1970年代末,作為Intel 8位微處理器的擴展,經過不斷調整和改進,成為當今最常見的計算機處理器類型之一。x86擁有豐富的指令集和通用緩存,它最初是為桌面計算機和服務器應用而設計的,x86芯片通常用于筆記本計算機、桌面計算機、服務器、工作站和超級計算機,以及部分嵌入式系統,專為最佳效能而設計。目前用于開發x86架構的開發板包括LattePandax86板與Udoox86板等。
更多產品型號:
DFR0470-ENT | DFR0419 | DFR0981 |
DFR0418 | DFR0545 | DFR0982 |
DFR0444 | DFR0543 | VL-EPM-16F |
SB02-3740-0000-C1-V | ||
SB02-4940-0000-C1-V |
ARM
ARM最初稱為“Advanced RISC Machines”(高級 RISC 機器),但現在則簡稱為“ARM”,是由Arm LTD開發和授權的RISC處理器系列。ARM采用的是一種RISC架構,注重簡潔和節能。由于ARM的功耗較低且發熱量低,因此ARM芯片被廣泛采用于移動設備和便攜式設備、嵌入式系統和有低功耗需求的應用中,例如智能手機、平板、嵌入式系統、物聯網裝置,以及某些筆記本計算機和其他低功耗設備。常見的ARM開發板包括STMicroelectronicsNUCLEO與STMicroelectronicsIOT等。
更多產品型號:
102110420 | SC0915 | SC0195(9) |
SC0919 | DEV-16771 | DEV-16997 |
MAKER-PI-RP2040 | SC0193(9) | SC0695 |
SC0194(9) | SC0692 | SC0917 |
102010428 | EK-TM4C123GXL | NUCLEO-F103RB |
STM32F407G-DISC1 | NUCLEO-F446RE | NUCLEO-L476RG |
NUCLEO-H743ZI2 | DEV-16771 | B-U585I-IOT02A |
NUCLEO-F401RE | NUCLEO-L053R8 | DEV-20359 |
DEV-21438 | SC1146 | NUCLEO-F411RE |
STM32F429I-DISC1 | NUCLEO-F746ZG | NUCLEO-G431KB |
A000062 | ABX00012 | NUCLEO-G431RB |
102110646 | OM13058UL | NUCLEO-L152RE |
NUCLEO-F303K8 | STM32H735G-DK | NUCLEO-F303RE |
STM32F769I-DISCO | NUCLEO-L432KC | DEV-16402 |
STM32F072B-DISCO | BBB01-SC-505 | ABX00087 |
ST25R3911B-DISCO, | FRDM-KE06Z | CY8CKIT-043 |
STM32MP157F-DK2 | NUCLEO-U575ZI-Q | 102010328 |
指令集架構 | 比較/總結 |
RISC-V | 精簡指令集架構,開源與開放架構,且免授權費,是最具發展潛力的指令集架構。 |
x86 | 具有悠久歷史的復雜指令集架構,廣泛用于個人計算機領域,是追求個人計算機兼容性的首選。 |
ARM | 廣泛使用于智能手機的精簡指令集架構,消耗功率低、發熱量低,但需要授權費,開發成本較高。 |
RISC-V是當前最具發展潛力的指令集架構
CPU設計開發是一個漫長且成本高昂的過程,由于ARM等供應商會對使用其設計的開發者收取專利費,以支付開發成本,因此開放、免授權費的RISC-V架構成為當前最具發展潛力的指令集架構。
RISC-V與其他指令集架構(ISA)的區別在于該標準是開源的,并且免費供個人、學術和商業用途。此外,它還定義了CPU中處理最重要功能的基礎內核,它本身就是可以實現簡化功能的通用型計算機。這個基礎內核可以通過使用延伸指令來擴充,這些延伸指令被指定為與基礎內核一起工作,并且彼此之間不會發生沖突。例如,您可以實現具有64位基本整數指令集的CPU,并包含一個支持單精度浮點指令的延伸,以及另一個用于整數乘法和除法的延伸。
目前已經有一些制造商實現了RISC-V ISA,您也可以從使用此類CPU的各種開發板中進行選擇。其中之一是LoFive R1,它是RISC-V生態系統簡易且經濟的開始,它具有您期望從開發板(如Arduino)獲得的所有功能,而且價格低廉。
SparkFunRED-V則是另一款低成本入門級開發板,其外形與成熟的Arduino Uno R3相同,這使得它成為想要在現有設計中替換Arduino的最佳選擇。SeeedStudio GAPUino則是另一款與流行的ArduinoUno R3引腳完全兼容的開發板。然而,與前兩個評估板相比,它的價格則不太實惠。
結語
嵌入式系統與微控制器是當前最熱門的話題,選擇ISA則是嵌入式系統開發的第一步,DigiKey提供了多種ISA開發板供客戶選擇,并提供相對應的支持,設計師也可以到應用與技術網頁參考更詳細的應用與技術介紹,以加快系統的開發速度,若有更多需求,也可與DigiKey聯系以獲得更多詳細信息。
審核編輯:劉清
-
微控制器
+關注
關注
48文章
7651瀏覽量
152114 -
嵌入式系統
+關注
關注
41文章
3625瀏覽量
129756 -
物聯網
+關注
關注
2913文章
44929瀏覽量
377064 -
RISC-V
+關注
關注
45文章
2323瀏覽量
46596 -
得捷電子
+關注
關注
1文章
255瀏覽量
9050
原文標題:開發嵌入式系統 指令集架構要怎么選才合適?
文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論