定義微控制器(MCU)
微控制器MCU就像是大腦,每秒執(zhí)行數(shù)千個(gè)任務(wù)。選擇熟悉的微控制器或以前有效的微控制器可以在此過(guò)程中有所幫助,但不一定適合每個(gè)項(xiàng)目。
首先,讓我們看看微處理器和微控制器之間的區(qū)別。這些經(jīng)常相互混淆。微處理器通常僅由中央處理單元 (CPU) 組成,它執(zhí)行計(jì)算機(jī)程序中的所有指令,包括算術(shù)、邏輯、控制和輸入/輸出操作。微控制器包含一個(gè)或多個(gè)帶有 RAM、ROM 和可編程輸入/輸出外設(shè)的 CPU。微處理器在一般應(yīng)用任務(wù)(如游戲、照片編輯和軟件開發(fā))中往往以更高的時(shí)鐘速度運(yùn)行,而微控制器則專為鍵盤、鼠標(biāo)、電子玩具和自動(dòng)售貨機(jī)等小型嵌入式系統(tǒng)中的更具體任務(wù)而設(shè)計(jì)。
簡(jiǎn)而言之,使用微控制器更容易打開和關(guān)閉 LED,因?yàn)樗梢灾苯釉L問(wèn)輸出引腳,而微處理器必須與外部外圍設(shè)備 (IC) 通信以控制 LED。
拆解
為了幫助選擇正確的微控制器,有必要分解應(yīng)用程序以更好地了解項(xiàng)目需要什么。在討論這些個(gè)人需求時(shí),應(yīng)該清楚哪些有效,哪些無(wú)效。
在開始之前有幾個(gè)關(guān)鍵問(wèn)題要問(wèn):
1、應(yīng)用程序是什么?
2、8 位、16 位還是 32 位?
3、什么處理器?8051、ARM、PIC 還是 AVR?
4、工作電壓是多少?
5、 需要什么包裝尺寸?
6、需要哪些通信接口,需要多少個(gè)?
7、需要多少內(nèi)存?(包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器)
這些開放式問(wèn)題需要進(jìn)一步調(diào)查應(yīng)用程序的功能。有這么多可用的選項(xiàng),重要的是從一開始就開始排除盡可能多的可能性,重點(diǎn)關(guān)注關(guān)鍵規(guī)格。
應(yīng)用程序是什么?
申請(qǐng)是否需要大量處理?這個(gè)處理可以在 8 位微控制器中完成嗎?設(shè)計(jì)有多復(fù)雜?
如果設(shè)計(jì)需要執(zhí)行大量計(jì)算,則可能需要更多內(nèi)存。對(duì)音頻信號(hào)執(zhí)行 FFT 將需要更多 RAM、更高的采樣率和高分辨率 ADC 以及其他功能。通過(guò) UART 讀取溫度和發(fā)送命令的重量相對(duì)較輕,并且可以使用更小的微控制器和更少的內(nèi)存。該應(yīng)用程序決定了哪種類型的微控制器和功能。一些常見的應(yīng)用包括可穿戴設(shè)備、汽車、工業(yè)、智能家居/能源和物聯(lián)網(wǎng)。
8 位、16 位還是 32 位?
位大小實(shí)際上是指處理器內(nèi)部使用的“字”的大小。這個(gè)“字”是由微控制器的指令集處理的一段數(shù)據(jù)。每個(gè)微控制器中字的大小在 8 位、16 位、32 位甚至 64 位之間有所不同。一個(gè)字可以用作地址、變量、寄存器或指令。在 8 位處理器中,每條指令使用 8 位。16 位和 32 位處理器可以處理大量數(shù)據(jù)。更大的寄存器或總線寬度意味著對(duì)資源的限制更少。這到底是什么意思?處理器內(nèi)的每條指令都由字長(zhǎng)決定。在匯編語(yǔ)言中,一條指令后跟一個(gè)變量、地址或寄存器。例如,“MOV AL, 61h;” 將十六進(jìn)制值 0x61 移入 AL 寄存器。編譯時(shí),
這也會(huì)影響內(nèi)部 ROM 和 RAM 存儲(chǔ)器的大小。在 8 位處理器中,內(nèi)存大小由 8 位決定,這提供了 255 個(gè)唯一的內(nèi)存位置。而 16 位微控制器可以處理多達(dá) 65,535 個(gè)內(nèi)存位置,而 32 位微控制器可以處理多達(dá) 4,294,967,295 個(gè)內(nèi)存位置。話雖如此,制造商已經(jīng)開發(fā)出允許較小位大小的微控制器通過(guò)地址組和分頁(yè)訪問(wèn)更多內(nèi)存的方法。這會(huì)使軟件稍微復(fù)雜化。通常 8 位微控制器往往成本更低、功耗更低、控制更快,但技術(shù)進(jìn)步意味著 16 位和 32 位微控制器現(xiàn)在可以相互競(jìng)爭(zhēng)。
雖然用匯編語(yǔ)言編寫時(shí)位大小非常清楚,但在用 C 或 C++ 編寫時(shí),它在代碼中通常并不明顯,因此要記住這一點(diǎn)很重要。使用 C 或 C++ 時(shí),各種數(shù)據(jù)類型在不同的微控制器之間具有不同的大小。嘗試在 8 位微控制器中使用 16 位無(wú)符號(hào)整數(shù)最終會(huì)丟失最高有效字節(jié)。但是,在 16 位或 32 位微控制器中使用 8 位整數(shù)不會(huì)導(dǎo)致任何問(wèn)題。考慮位大小時(shí),最重要的是要處理的數(shù)據(jù)量。在與低速總線通信、進(jìn)行傳感器測(cè)量甚至控制蜂鳴器時(shí),一個(gè) 8 位微控制器就足夠了。但是,嘗試控制 LCD 觸摸屏或以太網(wǎng)接口會(huì)遇到很多麻煩。
了解不同的架構(gòu)及其含義(ARM/AVR/PIC/8051)
市場(chǎng)上有幾種不同的微控制器架構(gòu),包括 8051、ARM、AVR 和 PIC。Microchip 的 PIC 已經(jīng)存在很長(zhǎng)時(shí)間了。Atmel 的 AVR 微控制器已通過(guò) Arduino 開發(fā)平臺(tái)得到普及。ARM 處理器更新、速度更快,已被 NXP Semiconductors、Texas Instruments 和 STMicroelectronics 采用。
主要差異集中在它們?cè)谳^低級(jí)別的操作方式上。雖然 8051、AVR 和 PIC 都有 8 位、16 位和 32 位的產(chǎn)品,但 ARM 通常有 32 位甚至 64 位。8051、AVR 和 PIC 與 I/O 外設(shè)的工作更緊密,因此功耗更低、速度更快。話雖如此,持續(xù)發(fā)展提供了一個(gè)競(jìng)爭(zhēng)非常激烈的市場(chǎng),在這個(gè)市場(chǎng)中很難確認(rèn)一個(gè)優(yōu)于另一個(gè)的優(yōu)勢(shì)。
RISC 和 CISC 架構(gòu)
為了比較 ARM、AVR 和 PIC,有必要查看基本架構(gòu)。RISC 是一種精簡(jiǎn)指令集計(jì)算機(jī),與 CISC 架構(gòu)(復(fù)雜指令集計(jì)算機(jī))相比,它能夠以更少的周期執(zhí)行更多指令。CISC 處理器包括 Intel x86 和 8051、Motorola 68000 和 Zilog Z80 系列。RISC 處理器在使用一小組簡(jiǎn)單通用指令的嵌入式或更小的系統(tǒng)中很常見。RISC 的主要優(yōu)勢(shì)之一是加載/存儲(chǔ)架構(gòu),它將內(nèi)存訪問(wèn)和 ALU 操作(算術(shù)邏輯單元)分開。這提高了成本、功耗和散熱,使其成為輕型電池供電設(shè)備的理想之選。RISC 處理器可以在 ARM、AVR 和 PIC 微控制器中找到
ARM
ARM 代表高級(jí) RISC 機(jī)器。從技術(shù)上講,ARM 是一種處理器,內(nèi)置于嵌入式微控制器中。它們通常為 32 位或 64 位,通常用于 PDA 和智能手機(jī)。ARM Cortex 是一組由 ARM Holdings 授權(quán)的處理器。它們有三種變體;A、R 和 M。Cortex-A 系列是“應(yīng)用程序”配置文件,它是唯一包含 MMU(內(nèi)存管理單元)的變體。許多現(xiàn)代操作系統(tǒng)都需要這個(gè) MMU 才能運(yùn)行。Cortex-R 系列是“實(shí)時(shí)”配置文件,針對(duì)高性能、硬實(shí)時(shí)和安全關(guān)鍵應(yīng)用進(jìn)行了優(yōu)化。它類似于 Cortex-A 配置文件,但具有更高的容錯(cuò)性。
最常見的設(shè)置是 Cortex-M“微控制器”配置文件。該組由 Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3、Cortex-M4(F)、Cortex-M23 和 Cortex-M33(F) 組成?!癋”表示內(nèi)核內(nèi)部的可選浮點(diǎn)單元 (FPU)。通常,微控制器不能使用浮點(diǎn)。Cortex-M0 以最低的價(jià)格代表具有小硅片尺寸的優(yōu)化內(nèi)核。Cortex-M0+ 是 M0 的優(yōu)化版本,其中包括 M3 和 M4 內(nèi)核的一些功能。Cortex-M1 專門設(shè)計(jì)用于作為軟核加載到 Altera、Xilinx 和 Microsemi FPGA 產(chǎn)品中。Cortex-M3 用于高度確定性、低成本的實(shí)時(shí)應(yīng)用。Cortex-M4 是帶有附加 DSP 指令和可選 FPU 的 Cortex M3。Cortex-M7 是一個(gè)高性能內(nèi)核,與 M4 相比具有更高的能效。Cortex-M23 與 M0+ 類似,但具有額外的 Trustzone 安全功能。Cortex-M33 與 Cortex-M4 類似,但也具有額外的 Trustzone 安全功能。
AVR
AVR 是 Atmel 開發(fā)的使用 RISC 處理器的微控制器系列。AVR 最常用于 Arduino 開源板設(shè)計(jì)系列。這些在 8 位 tinyAVR、megaAVR 和 XMEGA 中可用。
AVR32 是 32 位產(chǎn)品,旨在與 ARM 處理器競(jìng)爭(zhēng)。這些與原始 ARM 不兼容,并包含額外的 SIMD 和 DSP 指令以及音頻和視頻處理功能。
大多數(shù) AVR 模型的優(yōu)點(diǎn)之一是它們可以保留引導(dǎo)加載程序區(qū)域來(lái)存儲(chǔ)重新編程代碼。然后代碼可以通過(guò)任何可用的接口重新編程。
PIC
PIC 代表外圍接口控制器。它是由 Microchip 開發(fā)的一系列微控制器,提供多種選擇。它們不是嚴(yán)格意義上的 RISC 處理器,因?yàn)樗鼈兊牟僮髀杂胁煌.a(chǎn)品范圍包括 8 位 PIC10、PIC12、PIC 16 和 PIC18、16 位 PIC24 和 dsPIC 以及 32 位 PIC32MX、PIC32MZ、PIC32MM 和 PIC32MK。8 位范圍側(cè)重于降低成本,dsPIC 側(cè)重于數(shù)字信號(hào)處理。
PIC32 系列微控制器采用 MIPS32-M4K 核心技術(shù),是一種 32 位 RISC 架構(gòu)。MIPS 是 ARM 處理器的直接競(jìng)爭(zhēng)對(duì)手,涵蓋家庭娛樂(lè)、嵌入式和網(wǎng)絡(luò)產(chǎn)品、移動(dòng)、可穿戴和物聯(lián)網(wǎng)設(shè)備中的所有類型的應(yīng)用。
8051
英特爾 MCS-51(也稱為 8051)是一種 CISC 架構(gòu)。這些可用于 8 位、16 位和 32 位微控制器。與 ARM Cortex-M 和 MIPS 處理器相比,8051 硅 IP 內(nèi)核通常尺寸更小、功耗更低。它們被用于從 USB 閃存驅(qū)動(dòng)器到洗衣機(jī)和復(fù)雜的無(wú)線片上通信系統(tǒng)的所有領(lǐng)域。8051 處理器被 Nordic Semiconductors 無(wú)線片上系統(tǒng)解決方案廣泛使用。
工作電壓
這通常是兩個(gè)選項(xiàng)之一,但仍然需要注意。微控制器通常在 3.3V 或 5V 下工作。如果微控制器由 3.3V 供電,而系統(tǒng)中與微控制器通信的其他設(shè)備在 5V 下運(yùn)行,則可能需要電平轉(zhuǎn)換,這會(huì)使電路復(fù)雜化并增加額外成本。嘗試將所有內(nèi)容保持在一個(gè)電壓域中是一種很好的做法。
需要哪些通信接口?
這又回到了應(yīng)用程序和添加到電路中的設(shè)備。串行 EEPROM 可能需要 I2C 或 SPI 接口。其他設(shè)備可能需要 UART/USART/EUSART 進(jìn)行串行通信。一些顯示器需要并行接口,這些接口可能很重。最好首先確定電路中的各種設(shè)備以衡量需要什么。
需要多少內(nèi)存?
同樣,這取決于應(yīng)用程序。該項(xiàng)目是否需要大量本地處理,還是會(huì)執(zhí)行非?;镜娜蝿?wù)?每個(gè)微控制器中都有不同的內(nèi)存類型可用。這些通常是易失性存儲(chǔ)器;內(nèi)存和只讀存儲(chǔ)器。有一些微控制器也具有非易失性存儲(chǔ)器 EEPROM。一開始可能很難衡量每種方法需要多少,并且需要一些經(jīng)驗(yàn)才能掌握它。這也是由前面提到的位大小決定的。
重要的是要注意程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器之間的區(qū)別。程序存儲(chǔ)器是存儲(chǔ)和運(yùn)行已編譯代碼的地方,并且在運(yùn)行期間使用數(shù)據(jù)存儲(chǔ)器。如果需要大量處理,則需要更多的數(shù)據(jù)存儲(chǔ)器。如果項(xiàng)目需要使用查找表或存儲(chǔ)大量預(yù)定義值,則需要更大的程序內(nèi)存。
比較微控制器
看看頂級(jí)微控制器制造商,他們的能力有很多重疊之處。讓我們考慮一下該系列中四種流行的微控制器:德州儀器的 MSP430、意法半導(dǎo)體的 STM32F401、Microchip 的 PIC16F1619 和賽普拉斯半導(dǎo)體的 CY7C68013A。
MSP430 和 PIC16F1619 都專注于低成本。16 位 MSP430是具有眾多可配置接口的低功耗、電池供電設(shè)備的更好選擇,例如室內(nèi)/室外運(yùn)動(dòng)傳感器。PIC16F1619
是一個(gè) 8 位微控制器,功能類似于 MSP430。它沒(méi)有那么低的功率,但將專注于家用電器和白色家電中的安全關(guān)鍵應(yīng)用。這些類型的設(shè)備需要能夠安全地處理所有類型的場(chǎng)景,并在出現(xiàn)問(wèn)題時(shí)以干凈的方式重置。例如,當(dāng)洗碗機(jī)的門打開時(shí),洗滌循環(huán)將停止。然后當(dāng)門關(guān)閉時(shí)它會(huì)再次恢復(fù)。STM32F401
是帶有 FPU 處理器的 32 位 ARM Cortex M4。32 位內(nèi)核和 FPU 使這款微控制器成為醫(yī)療設(shè)備、視頻和音頻設(shè)備、掃描儀以及任何需要盡可能快地執(zhí)行大量浮點(diǎn)計(jì)算的設(shè)備的理想選擇。它還有一個(gè)直接連接到微控制器的 USB 接口,增加了一個(gè)有用的外部接口。PIC16F1619 和 MSP430 無(wú)法處理這些應(yīng)用程序,因?yàn)樗鼈儫o(wú)法同時(shí)處理正在處理的數(shù)據(jù)量。另一方面,ARM Cortex M4 可以輕松執(zhí)行 MSP430 和 PIC16F1619 的大部分任務(wù),同時(shí)犧牲了功耗和成本。
挑選微控制器
雖然考慮所有提供的微控制器是個(gè)好主意,但這通常不是做出選擇的最快途徑。這是一個(gè)快速的經(jīng)驗(yàn)法則派上用場(chǎng)的地方:
1、它們是否有庫(kù)存并且容易獲得?通常情況下,完美的微控制器并不容易獲得,或者只能批量購(gòu)買。
2、他們使用什么工具鏈?是否有在線示例可供參考?
3、是新的嗎?雖然沒(méi)有什么比使用最新最好的更好的了,但這也意味著找到所有添加到第一個(gè)應(yīng)用說(shuō)明中的早期問(wèn)題。任何超過(guò) 3-4 個(gè)月的東西都應(yīng)該在不同的應(yīng)用程序中由不同的消費(fèi)者進(jìn)行大量測(cè)試。
4、檢查引腳排列。沒(méi)有什么比搜索具有 2 個(gè) UART 和一個(gè) I2C 總線的微控制器發(fā)現(xiàn)它們共享相同的引腳更煩人的了。
5、不確定需要多少內(nèi)存?選擇具有比所需更多內(nèi)存的微控制器。未來(lái)的設(shè)計(jì)迭代可以選擇同一系列中更小的微控制器,內(nèi)存更少,以節(jié)省成本。
6、需要多少個(gè)通用輸入/輸出 (GPIO) 引腳?總是得到比需要的更多的東西。額外的 GPIO 可以滿足額外的調(diào)試點(diǎn)。在同一個(gè)系列中獲得更小的微控制器來(lái)嘗試降低成本總是很容易的。變得更大更難。
7、如果使用不同于您習(xí)慣的微控制器,請(qǐng)購(gòu)買和使用評(píng)估板和開發(fā)套件。評(píng)估板往往更貴一些,但從長(zhǎng)遠(yuǎn)來(lái)看可以節(jié)省時(shí)間和金錢。
8、如果創(chuàng)建多個(gè)類似的項(xiàng)目,考慮使用相同的微控制器(或足夠相似的微控制器)以節(jié)省硬件和軟件設(shè)計(jì)時(shí)間。
深圳市晶光華電子有限公司 26年專注提供一站式晶振產(chǎn)品解決方案,產(chǎn)品主要有SMD石英晶振、 車規(guī)晶振 、 SMD振蕩器等。晶光華始終堅(jiān)持以品質(zhì)為基石,品質(zhì)符合國(guó)際IEC和美國(guó)ANSI標(biāo)準(zhǔn)。為了滿足客戶的高標(biāo)準(zhǔn)需求,我司積極整合供應(yīng)鏈,真正服務(wù)每一位品質(zhì)客戶。
【本文標(biāo)簽】 如何選擇微控制器(MCU) 差分輸出 諧振頻率 差分振蕩器 晶光華晶振 振蕩器 車規(guī)級(jí)晶振
【責(zé)任編輯】