想要搭建一套嵌入式系統(tǒng),首先得確認(rèn)想要采用的指令集架構(gòu)(Instruction Set Architectures, ISA),各家的指令集架構(gòu)各有其優(yōu)缺點(diǎn)與擁護(hù)者,本文將為您大致介紹嵌入式系統(tǒng)的概念與范圍,以及指令集架構(gòu)選擇時(shí)需要考慮的方面。
為了滿足客戶在應(yīng)用上的不同需求,DigiKey的應(yīng)用與技術(shù)網(wǎng)頁(yè)提供了各式各樣的應(yīng)用相關(guān)資源,以便協(xié)助工程師更快的進(jìn)行設(shè)計(jì)。從應(yīng)用面來(lái)看,DigiKey針對(duì)汽車、自動(dòng)化與控制、物聯(lián)網(wǎng)解決方案、能量收集等場(chǎng)景提供了多種不同的解決支持方案。
更進(jìn)一步,該網(wǎng)頁(yè)還列出了不同嵌入式系統(tǒng)與微控制器技術(shù)涵蓋的各種指令集架構(gòu)、評(píng)估板、開(kāi)發(fā)板、模塊上系統(tǒng)、擴(kuò)充板、實(shí)時(shí)操作系統(tǒng)、嵌入外設(shè)組件、微處理器、數(shù)字信號(hào)處理器、單板機(jī)、微控制器、現(xiàn)場(chǎng)可編程門陣列等細(xì)分模塊,以供研發(fā)人員和電子愛(ài)好者根據(jù)自己需要進(jìn)行進(jìn)一步查閱。
以下我們將陸續(xù)為您介紹嵌入式系統(tǒng)網(wǎng)頁(yè)內(nèi)相關(guān)的各種應(yīng)用與技術(shù),如評(píng)估板與實(shí)時(shí)操作系統(tǒng)(RTOS)、微處理器(MPU)與各種控制器(DSP、SBC、MCU、FPGA),以及各類外設(shè)(內(nèi)存、時(shí)鐘、通信、I/O、電源)等。讓我們先來(lái)看看嵌入式系統(tǒng)與微控制器的相關(guān)技術(shù)與應(yīng)用。
嵌入式系統(tǒng)和指令集架構(gòu)的選擇
嵌入式系統(tǒng)(Embedded System)是一種特定用途的計(jì)算機(jī)系統(tǒng),通常被嵌入到其他設(shè)備或系統(tǒng)中,以執(zhí)行特定的任務(wù)或功能。這些系統(tǒng)通常是專為為特定應(yīng)用或產(chǎn)品而設(shè)計(jì)的,并且由相對(duì)較小、專門的硬件和軟件所組成。想要搭建一套嵌入式系統(tǒng),首先得確認(rèn)想要采用的指令集架構(gòu)(Instruction Set Architectures, ISA),各家的指令集架構(gòu)都各有其優(yōu)缺點(diǎn)與擁護(hù)者,下面將為您大致介紹嵌入式系統(tǒng)的概念與范圍以及指令集架構(gòu)選擇時(shí)需要考慮的方面。
嵌入式系統(tǒng)應(yīng)用領(lǐng)域相當(dāng)廣泛
嵌入式系統(tǒng)的應(yīng)用領(lǐng)域相當(dāng)廣泛,通常被設(shè)計(jì)用來(lái)執(zhí)行各種特定的功能或任務(wù),從日常生活中的家電產(chǎn)品到汽車電子系統(tǒng)、醫(yī)療設(shè)備、工業(yè)自動(dòng)化等各個(gè)領(lǐng)域都有存在,它們?cè)谔岣弋a(chǎn)品智能化、效能和功能性方面發(fā)揮了關(guān)鍵作用。此外,許多嵌入式系統(tǒng)需要對(duì)命令進(jìn)行實(shí)時(shí)處理和響應(yīng),這意味著它們必須在特定的時(shí)間限制內(nèi)完成任務(wù),這在需要實(shí)時(shí)控制和反饋的應(yīng)用中尤其重要。 另一方面,由于嵌入式系統(tǒng)通常配置在資源有限的設(shè)計(jì)中,因此它們的硬件資源(如處理器、內(nèi)存)和功率都有相應(yīng)的限制。
因此,軟件必須被精心設(shè)計(jì)以充分匹配這些有限資源,加上嵌入式系統(tǒng)的硬件配置通常是固定的,并且無(wú)法或難以進(jìn)行硬件升級(jí),這使得軟件的效能優(yōu)化至關(guān)重要。 當(dāng)前多數(shù)嵌入式系統(tǒng)都需要與其他設(shè)備或系統(tǒng)進(jìn)行通信,以執(zhí)行協(xié)同任務(wù)或傳送數(shù)據(jù),這使其必須支持多種通信協(xié)議,可能包括有線或無(wú)線通信,例如藍(lán)牙、Wi-Fi、CAN(Controller Area Network)等。 嵌入式系統(tǒng)也必須搭配嵌入式軟件,才能執(zhí)行其特定功能,嵌入式系統(tǒng)的軟件通常是專門為其硬件平臺(tái)設(shè)計(jì)的,這可能包括實(shí)時(shí)操作系統(tǒng)(RTOS)或特定應(yīng)用的軟件棧。
選擇指令集架構(gòu)是開(kāi)發(fā)嵌入式系統(tǒng)的第一步
嵌入式系統(tǒng)通常是接收、解釋和發(fā)送信號(hào)的電子系統(tǒng)的協(xié)調(diào)部分,其功能來(lái)自于硬件和軟件的結(jié)合,對(duì)于剛接觸嵌入式系統(tǒng)的人來(lái)說(shuō),C語(yǔ)言編程可以作為軟件開(kāi)發(fā)的理想起點(diǎn)。想要進(jìn)行軟件開(kāi)發(fā),就必須從選擇整體結(jié)構(gòu)(如指令集架構(gòu))開(kāi)始,到一些較大的主控類別(如微控制器)結(jié)束。
指令集架構(gòu)(ISA)也稱指令集或者指令集體系,是計(jì)算機(jī)體系結(jié)構(gòu)中與程序設(shè)計(jì)有關(guān)的部分,包含基本數(shù)據(jù)類型,指令集,寄存器,尋址模式,存儲(chǔ)體系,中斷,異常處理以及外部IO。通常ISA不會(huì)交叉兼容,因此為一種ISA設(shè)計(jì)的系統(tǒng)一般無(wú)法在另一種ISA上運(yùn)行。例如,x86系統(tǒng)和軟件無(wú)法在采用ARM的芯片上運(yùn)行,因?yàn)閮烧咛幚?a target="_blank">程序代碼指令和數(shù)據(jù)集的方式不同。
當(dāng)然,市面上有幾種不同的解決方法可以解決兼容性問(wèn)題,包括仿真不同ISA操作條件的軟件,或者將不同ISA組合到單一軟件工具包中。例如ARM創(chuàng)建了一種名為ARM big.LITTLE的混合架構(gòu),這是一種異質(zhì)多處理架構(gòu),通過(guò)將高功率和低功率處理內(nèi)核組合到一個(gè)系統(tǒng)中,可以對(duì)高功率進(jìn)程進(jìn)行優(yōu)先排序,并與低功率和低優(yōu)先級(jí)請(qǐng)求分開(kāi)處理,以實(shí)現(xiàn)更大的系統(tǒng)靈活性和更精確的電源管理。
指令集架構(gòu)主要可以分成精簡(jiǎn)指令集(RISC)和復(fù)雜指令集(CISC)架構(gòu)兩種。RISC的概念可以追溯到20世紀(jì)80年代,旨在使用簡(jiǎn)單的指令集在計(jì)算過(guò)程中執(zhí)行單步驟操作,主要的想法是通過(guò)減少用于加載、評(píng)估和存儲(chǔ)數(shù)據(jù)的簡(jiǎn)單指令的數(shù)量來(lái)使硬件更簡(jiǎn)單。一般來(lái)說(shuō),可以視為每個(gè)程序代碼指令只為計(jì)算機(jī)系統(tǒng)執(zhí)行一個(gè)動(dòng)作,更簡(jiǎn)單的操作可以實(shí)現(xiàn)更快的完成速度并降低功耗,這使得它們?cè)诒銛y式裝置或其他以電源效率為驅(qū)動(dòng)因素的應(yīng)用中受到歡迎。
相較之下,CISC則允許在計(jì)算過(guò)程的每個(gè)步驟中發(fā)生多個(gè)指令和程序代碼操作,通常包括加載和存儲(chǔ)步驟的復(fù)雜指令。一般來(lái)說(shuō),CISC可以被認(rèn)為是除了RISC之外的所有指令集架構(gòu),因?yàn)檫@個(gè)術(shù)語(yǔ)是為了響應(yīng)采用RISC的芯片和系統(tǒng)的發(fā)展而開(kāi)發(fā)的。雖然CISC沒(méi)有官方的定義,但它們通常可以被認(rèn)為具有更復(fù)雜的設(shè)計(jì)系統(tǒng),因此通常需要更多的功率來(lái)運(yùn)行。
RISC與CISC這兩種架構(gòu)其目的其實(shí)都是想要使CPU的執(zhí)行速度更快:RISC是通過(guò)減少每個(gè)指令的周期,以減少每個(gè)應(yīng)用程序的指令總數(shù)為代價(jià),從而達(dá)到更快的CPU執(zhí)行速度;而CISC則是通過(guò)最小化每個(gè)程序的指令數(shù),以更復(fù)雜的硬件為代價(jià),達(dá)到相同的目的。
選擇指令集架構(gòu)時(shí),有多種因素需要考慮,這些因素通常會(huì)涉及到硬件、軟件和系統(tǒng)集成等方面,包括應(yīng)用所需的性能、功耗、成本、軟件生態(tài)系統(tǒng)、兼容性、擴(kuò)展性、安全性等。總體來(lái)說(shuō),選擇指令集架構(gòu)是一個(gè)復(fù)雜的決策過(guò)程,需要綜合考慮多個(gè)因素,并根據(jù)具體的應(yīng)用場(chǎng)景和需求做出適當(dāng)?shù)倪x擇。
各種指令集架構(gòu)滿足不同應(yīng)用需求
目前主流的指令集架構(gòu)有許多種類,每種都有其各自的特點(diǎn)和應(yīng)用領(lǐng)域,常見(jiàn)的一些主要指令集架構(gòu)包括RISC-V、x86、ARM、MIPS和Power等,以下將針對(duì)最常見(jiàn)的RISC-V、x86和ARM進(jìn)行介紹。
RISC-V
RISC-V是一種基于RISC架構(gòu)的開(kāi)放標(biāo)準(zhǔn)ISA,與其他芯片設(shè)計(jì)不同,RISC-V完全開(kāi)源并具有開(kāi)放架構(gòu),具有可擴(kuò)展性和自由授權(quán)的特點(diǎn),這意味著任何人、在任何地方都可以制造RISC-V芯片,且無(wú)需支付任何授權(quán)費(fèi)用,這使RISC-V吸引了廣泛的關(guān)注,成為了開(kāi)源社群中的熱門選擇。然而,雖然RISC-V的內(nèi)核是開(kāi)源,但可能還有其他一些不被視為公共區(qū)間的附加組件和外圍擴(kuò)展。RISC-V在嵌入式系統(tǒng)、物聯(lián)網(wǎng)設(shè)備和一些新興市場(chǎng)中取得了一些成績(jī),并在某些特定領(lǐng)域中快速崛起。目前市面上已經(jīng)有一些RISC-V開(kāi)發(fā)板問(wèn)世,包括SparkfunRED-V與Digilent RVfpga,可以大幅加快采用RISC-V指令集來(lái)開(kāi)發(fā)嵌入式系統(tǒng)的研發(fā)進(jìn)度。
Digilent的RVfpga開(kāi)發(fā)板 更多產(chǎn)品型號(hào):
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處理器最古老的指令集架構(gòu)系列之一,其中的x86處理器系列始于1970年代末,作為Intel 8位微處理器的擴(kuò)展,經(jīng)過(guò)不斷調(diào)整和改進(jìn),成為當(dāng)今最常見(jiàn)的計(jì)算機(jī)處理器類型之一。x86擁有豐富的指令集和通用緩存,它最初是為桌面計(jì)算機(jī)和服務(wù)器應(yīng)用而設(shè)計(jì)的,x86芯片通常用于筆記本計(jì)算機(jī)、桌面計(jì)算機(jī)、服務(wù)器、工作站和超級(jí)計(jì)算機(jī),以及部分嵌入式系統(tǒng),專為最佳效能而設(shè)計(jì)。目前用于開(kāi)發(fā)x86架構(gòu)的開(kāi)發(fā)板包括LattePandax86板與Udoox86板等。
更多產(chǎn)品型號(hào):
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”(高級(jí) RISC 機(jī)器),但現(xiàn)在則簡(jiǎn)稱為“ARM”,是由Arm LTD開(kāi)發(fā)和授權(quán)的RISC處理器系列。ARM采用的是一種RISC架構(gòu),注重簡(jiǎn)潔和節(jié)能。由于ARM的功耗較低且發(fā)熱量低,因此ARM芯片被廣泛采用于移動(dòng)設(shè)備和便攜式設(shè)備、嵌入式系統(tǒng)和有低功耗需求的應(yīng)用中,例如智能手機(jī)、平板、嵌入式系統(tǒng)、物聯(lián)網(wǎng)裝置,以及某些筆記本計(jì)算機(jī)和其他低功耗設(shè)備。常見(jiàn)的ARM開(kāi)發(fā)板包括STMicroelectronicsNUCLEO與STMicroelectronicsIOT等。
更多產(chǎn)品型號(hào):
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 |
指令集架構(gòu) | 比較/總結(jié) |
RISC-V | 精簡(jiǎn)指令集架構(gòu),開(kāi)源與開(kāi)放架構(gòu),且免授權(quán)費(fèi),是最具發(fā)展?jié)摿Φ闹噶罴軜?gòu)。 |
x86 | 具有悠久歷史的復(fù)雜指令集架構(gòu),廣泛用于個(gè)人計(jì)算機(jī)領(lǐng)域,是追求個(gè)人計(jì)算機(jī)兼容性的首選。 |
ARM | 廣泛使用于智能手機(jī)的精簡(jiǎn)指令集架構(gòu),消耗功率低、發(fā)熱量低,但需要授權(quán)費(fèi),開(kāi)發(fā)成本較高。 |
RISC-V是當(dāng)前最具發(fā)展?jié)摿Φ闹噶罴軜?gòu)
CPU設(shè)計(jì)開(kāi)發(fā)是一個(gè)漫長(zhǎng)且成本高昂的過(guò)程,由于ARM等供應(yīng)商會(huì)對(duì)使用其設(shè)計(jì)的開(kāi)發(fā)者收取專利費(fèi),以支付開(kāi)發(fā)成本,因此開(kāi)放、免授權(quán)費(fèi)的RISC-V架構(gòu)成為當(dāng)前最具發(fā)展?jié)摿Φ闹噶罴軜?gòu)。
RISC-V與其他指令集架構(gòu)(ISA)的區(qū)別在于該標(biāo)準(zhǔn)是開(kāi)源的,并且免費(fèi)供個(gè)人、學(xué)術(shù)和商業(yè)用途。此外,它還定義了CPU中處理最重要功能的基礎(chǔ)內(nèi)核,它本身就是可以實(shí)現(xiàn)簡(jiǎn)化功能的通用型計(jì)算機(jī)。這個(gè)基礎(chǔ)內(nèi)核可以通過(guò)使用延伸指令來(lái)擴(kuò)充,這些延伸指令被指定為與基礎(chǔ)內(nèi)核一起工作,并且彼此之間不會(huì)發(fā)生沖突。例如,您可以實(shí)現(xiàn)具有64位基本整數(shù)指令集的CPU,并包含一個(gè)支持單精度浮點(diǎn)指令的延伸,以及另一個(gè)用于整數(shù)乘法和除法的延伸。
目前已經(jīng)有一些制造商實(shí)現(xiàn)了RISC-V ISA,您也可以從使用此類CPU的各種開(kāi)發(fā)板中進(jìn)行選擇。其中之一是LoFive R1,它是RISC-V生態(tài)系統(tǒng)簡(jiǎn)易且經(jīng)濟(jì)的開(kāi)始,它具有您期望從開(kāi)發(fā)板(如Arduino)獲得的所有功能,而且價(jià)格低廉。
SparkFunRED-V則是另一款低成本入門級(jí)開(kāi)發(fā)板,其外形與成熟的Arduino Uno R3相同,這使得它成為想要在現(xiàn)有設(shè)計(jì)中替換Arduino的最佳選擇。SeeedStudio GAPUino則是另一款與流行的ArduinoUno R3引腳完全兼容的開(kāi)發(fā)板。然而,與前兩個(gè)評(píng)估板相比,它的價(jià)格則不太實(shí)惠。
結(jié)語(yǔ)
嵌入式系統(tǒng)與微控制器是當(dāng)前最熱門的話題,選擇ISA則是嵌入式系統(tǒng)開(kāi)發(fā)的第一步,DigiKey提供了多種ISA開(kāi)發(fā)板供客戶選擇,并提供相對(duì)應(yīng)的支持,設(shè)計(jì)師也可以到應(yīng)用與技術(shù)網(wǎng)頁(yè)參考更詳細(xì)的應(yīng)用與技術(shù)介紹,以加快系統(tǒng)的開(kāi)發(fā)速度,若有更多需求,也可與DigiKey聯(lián)系以獲得更多詳細(xì)信息。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7487瀏覽量
151045 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3566瀏覽量
129226 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2903文章
44269瀏覽量
371231 -
RISC-V
+關(guān)注
關(guān)注
44文章
2228瀏覽量
46026 -
得捷電子
+關(guān)注
關(guān)注
1文章
255瀏覽量
8644
原文標(biāo)題:開(kāi)發(fā)嵌入式系統(tǒng) 指令集架構(gòu)要怎么選才合適?
文章出處:【微信號(hào):得捷電子DigiKey,微信公眾號(hào):得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論