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