七大主流單片機的優(yōu)缺點
單片機現(xiàn)在可謂是鋪天蓋地,種類繁多,讓開發(fā)者們應(yīng)接不暇,發(fā)展也是相當(dāng)?shù)难杆?,從上世紀(jì)80年代,由當(dāng)時的4位8位發(fā)展到現(xiàn)在的各種高速單片機……
各個廠商們也在速度、內(nèi)存、功能上此起彼伏,參差不齊~~同時涌現(xiàn)出一大批擁有代表性單片機的廠商:Atmel、TI、ST、MicroChip、ARM…國內(nèi)的宏晶STC單片機也是可圈可點…
下面為大家?guī)?1、MSP430、TMS、STM32、PIC、AVR、STC單片機之間的優(yōu)缺點比較及功能體現(xiàn)……
51單片機
應(yīng)用最廣泛的8位單片機當(dāng)然也是初學(xué)者們最容易上手學(xué)習(xí)的單片機,最早由Intel推出,由于其典型的結(jié)構(gòu)和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統(tǒng),堪稱為一代“經(jīng)典”,為以后的其它單片機的發(fā)展奠定了基礎(chǔ)。
51單片機之所以成為經(jīng)典,成為易上手的單片機主要有以下特點:
特性:
1. 從內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),稱作位處理器,處理對象不是字或字節(jié)而是位。不但能對片內(nèi)某些特殊功能寄存器的某位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備,使用起來得心應(yīng)手。
2. 同時在片內(nèi)RAM區(qū)間還特別開辟了一個雙重功能的地址區(qū)間,使用極為靈活,這一功能無疑給使用者提供了極大的方便,
3. 乘法和除法指令,這給編程也帶來了便利。很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調(diào)用,十分不便。
缺點:(雖然是經(jīng)典但是缺點還是很明顯的)
1. AD、EEPROM等功能需要靠擴展,增加了硬件和軟件負(fù)擔(dān)
2. 雖然I/O腳使用簡單,但高電平時無輸出能力,這也是51系列單片機的最大軟肋
3. 運行速度過慢,特別是雙數(shù)據(jù)指針,如能改進能給編程帶來很大的便利
4. 51保護能力很差,很容易燒壞芯片
應(yīng)用范圍:
目前在教學(xué)場合和對性能要求不高的場合大量被采用
使用最多的器件:8051、80C51
MSP430單片機
MSP430系列單片機是1996年開始推向市場的一種16位超低功耗的混合信號處理器,給人們留下的最大的亮點是低功耗而且速度快,匯編語言用起來很靈活,尋址方式很多,指令很少,容易上手。主要是由于其針對實際應(yīng)用需求,把許多模擬電路、數(shù)字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。其迅速發(fā)展和應(yīng)用范圍的不斷擴大,主要取決于以下的特點…
特性:
1. 強大的處理能力,采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式( 7 種源操作數(shù)尋址、 4 種目的操作數(shù)尋址)、簡潔的 27 條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算;還有高效的查表處理指令;有較高的處理速度,在 8MHz 晶體驅(qū)動下指令周期為 125 ns 。這些特點保證了可編制出高效率的源程序
2. 在運算速度方面,能在 8MHz 晶體的驅(qū)動下,實現(xiàn) 125ns 的指令周期。 16 位的數(shù)據(jù)寬度、 125ns 的指令周期以及多功能的硬件乘法器(能實現(xiàn)乘加)相配合,能實現(xiàn)數(shù)字信號處理的某些算法(如 FFT 等)
3. 超低功耗方面,MSP430 單片機之所以有超低的功耗,是因為其在降低芯片的電源電壓及靈活而可控的運行時鐘方面都有其獨到之處。電源電壓采用的是 1.8~3.6V 電壓。因而可使其在 1MHz 的時鐘條件下運行時, 芯片的電流會在 200~400uA 左右,時鐘關(guān)斷模式的最低功耗只有 0.1uA
缺點:
1. 個人感覺不容易上手,不適合初學(xué)者入門,資料也比較少,只能跑官網(wǎng)去找
2. 占的指令空間較大,因為是16位單片機,程序以字為單位,有的指令竟然占6
個字節(jié)。雖然程序表面上簡潔, 但與pic單片機比較空間占用很大
應(yīng)用范圍:
在低功耗及超低功耗的工業(yè)場合應(yīng)用的比較多
使用最多的器件:MSP430F系列、MSP430G2系列、MSP430L09系列
TMS單片機
這里也提一下TMS系列單片機,雖不算主流。由TI推出的8位CMOS單片機,具有多種存儲模式、多種外圍接口模式,適用于復(fù)雜的實時控制場合。雖然沒STM32那么優(yōu)秀,也沒MSP430那么張揚,但是TMS370C系列單片機提供了通過整合先進的外圍功能模塊及各種芯片的內(nèi)存配置,具有高性價比的實時系統(tǒng)控制。同時采用高性能硅柵CMOS EPROM和EEPROM技術(shù)實現(xiàn)。低工作功耗CMOS技術(shù),寬工作溫度范圍,噪聲抑制,再加上高性能和豐富的片上外設(shè)功能,使TMS370C系列單片機在汽車電子,工業(yè)電機控制,電腦,通信和消費類具有一定的應(yīng)用。
STM32單片機
由ST廠商推出的STM32系列單片機,行業(yè)的朋友都知道,這是一款性價比超高的系列單片機,應(yīng)該沒有之一,功能及其強大。其基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M內(nèi)核,同時具有一流的外設(shè):1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表現(xiàn),當(dāng)然和MSP430的功耗比起來是稍微遜色的一些,但這并不影響工程師們對它的熱捧程度,由于其簡單的結(jié)構(gòu)和易用的工具再配合其強大的功能在行業(yè)中赫赫有名…其強大的功能主要表現(xiàn)在:
特性:
1.內(nèi)核:ARM32位Cortex-M3CPU,最高工作頻率72MHz,1.25DMIPS/MHz,單周期乘法和硬件除法
2.存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器
3.時鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動電壓。POR、PDR和可編程的電壓探測器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振
4、調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。最多高達(dá)112個的快速I/O端口、最多多達(dá)11個定時器、最多多達(dá)13個通信接口
使用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列。
PIC單片機
PIC單片機系列是美國微芯公司(Microship)的產(chǎn)品,共分三個級別,即基本級、中級、高級,是當(dāng)前市場份額增長最快的單片機之一,CPU采用RISC結(jié)構(gòu),分別有33、35、58條指令,屬精簡指令集,同時采用Harvard雙總線結(jié)構(gòu),運行速度快,它能使程序存儲器的訪問和數(shù)據(jù)存儲器的訪問并行處理,這種指令流水線結(jié)構(gòu),在一個周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲器取出下一條指令,這樣總的看來每條指令只需一個周期,這也是高效率運行的原因之一,此外PIC單片機之所以成為一時非常熱的單片機不外乎以下特點:
特點:
1. 具有低工作電壓、低功耗、驅(qū)動能力強等特點。PIC系列單片機的I/O口是雙向的,其輸出電路為CMOS互補推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時同為輸入和輸出的狀態(tài)。
2. 當(dāng)置位1時為輸入狀態(tài),且不管該腳呈高電平或低電平,對外均呈高阻狀態(tài);置位0時為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動能力,低電平吸入電流達(dá)25mA,高電平輸出電流可達(dá)20mA。相對于51系列而言,這是一個很大的優(yōu)點
3. 它可以直接驅(qū)動數(shù)碼管顯示且外電路簡單。它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程(ISP)功能。
不足之處:
其專用寄存器(SFR)并不像51系列那樣都集中在一個固定的地址區(qū)間內(nèi)(80~FFH),而是分散在四個地址區(qū)間內(nèi)。只有5個專用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個存儲體內(nèi)同時出現(xiàn),但是在編程過程中,少不了要與專用寄存器打交道,得反復(fù)地選擇對應(yīng)的存儲體,也即對狀態(tài)寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。數(shù)據(jù)的傳送和邏輯運算基本上都得通過工作寄存器W(相當(dāng)于51系列的累加器A)來進行,而51系列的還可以通過寄存器相互之間直接傳送,因而PIC單片機的瓶頸現(xiàn)象比51系列還要嚴(yán)重,這在編程中的朋友應(yīng)該深有體會
使用最多的器件:PIC16F873、PIC16F877
AVR單片機
AVR單片機是Atmel公司推出的較為新穎的單片機,其顯著的特點為高性能、高速度、低功耗。它取消機器周期,以時鐘周期為指令周期,實行流水作業(yè)。AVR單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時完成下一條指令的讀取。通常時鐘頻率用4~8MHz,故最短指令執(zhí)行時間為250~125ns。AVR單片機能成為最近仍是比較火熱的單片機,主要的特點:
特點:
1. AVR系列沒有類似累加器A的結(jié)構(gòu),它主要是通過R16~R31寄存器來實現(xiàn)A的功能。在AVR中,沒有像51系列的數(shù)據(jù)指針DPTR,而是由X(由R26、R27組成)、Y(由R28、R29組成)、Z(由R30、R31組成)三個16位的寄存器來完成數(shù)據(jù)指針的功能(相當(dāng)于有三組DPTR),而且還能作后增量或先減量等的運行,而在51系列中,所有的邏輯運算都必須在A中進行;而AVR卻可以在任兩個寄存器之間進行,省去了在A中的來回折騰,這些都比51系列出色些
2. AVR的專用寄存器集中在00~3F地址區(qū)間,無需像PIC那樣得先進行選存儲體的過程,使用起來比PIC方便。AVR的片內(nèi)RAM的地址區(qū)間為0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它們占用的是數(shù)據(jù)空間的地址,這些片內(nèi)RAM僅僅是用來存儲數(shù)據(jù)的,通常不具備通用寄存器的功能。當(dāng)程序復(fù)雜時,通用寄存器R0~R31就顯得不夠用;而51系列的通用寄存器多達(dá)128個(為AVR的4倍),編程時就不會有這種感覺。
3. AVR的I/O腳類似PIC,它也有用來控制輸入或輸出的方向寄存器,在輸出狀態(tài)下,高電平輸出的電流在10mA左右,低電平吸入電流20mA。這點雖不如PIC,但比51系列還是要優(yōu)秀的…
缺點:
1. 是沒有位操作,都是以字節(jié)形式來控制和判斷相關(guān)寄存器位的
2. C語言與51的C語言在寫法上存在很大的差異,這讓從開始學(xué)習(xí)51單片機的朋友很不習(xí)慣
3. 通用寄存器一共32個(R0~R31),前16個寄存器(R0~R15)都不能直接與立即數(shù)打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接與立即數(shù)打交道,顯然要優(yōu)于前者。
使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515
STC單片機
說到STC單片機有人會說到,STC也能算主流,估計要被噴了~~我們基于它是國內(nèi)還算是比較不錯的單片機來說。STC單片機是宏晶生產(chǎn)的單時鐘/機器周期的單片機,說白了STC單片機是51與AVR的結(jié)合體,有人說AVR是51的替代單片機,但是AVR單片機在位控制和C語言寫法上存在很大的差異。而STC單片機洽洽結(jié)合了51和AVR的優(yōu)點,雖然功能不及AVR那么強大,但是在AVR能找到的功能,在STC上基本都有,同時STC單片機是51內(nèi)核,這給以51單片機為基礎(chǔ)的工程師們提供了極大的方便,省去了學(xué)習(xí)AVR的時間,同時也不失AVR的各種功能…
STC單片機是高速、低功耗、超強抗干擾的新一代8051單片機51單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍,內(nèi)部集成MAX810專用復(fù)位電路。4路PWM 8路高速10位A、D轉(zhuǎn)換,針對電機電機 的供應(yīng)商控制,強干擾場合,成為繼51單片機后一個全新系列單片機…
特性:
1. 下載燒錄程序用串口方便好用,容易上手,擁有大量的學(xué)習(xí)資料及視頻,最著名的要屬于杜老師的那個視頻了,好多對單片機有興趣的朋友都是通過這個視頻入門的,同時具有寬電壓:5.5~3.8V,2.4~3.8V, 低功耗設(shè)計:空閑模式,掉電模式(可由外部中斷喚醒)
2. STC單片機具有在應(yīng)用編程,調(diào)試起來比較方便;帶有10位AD、內(nèi)部EEPROM、
可在1T/機器周期下工作,速度是傳統(tǒng)51單片機的8~12倍,價格也較便宜
3. 4 通道捕獲/比較單元,STC12C2052AD系列為2通道,也可用來再實現(xiàn)4個定時器或4個外部中斷,2個硬件16位定時器,兼容普通8051的定時器。4路PCA還可再實現(xiàn)4個定時器,具有硬件看門狗、高速SPI通信端口、全雙工異步串行口,兼容普通8051的串口,同時還具有先進的指令集結(jié)構(gòu),兼容普通8051指令集
PS:STC單片機功能雖不及AVR、STM32強大,價格也不及51和ST32便宜,但是這些并并不重要,重要的是這屬于國產(chǎn)單片機比較出色的單片機,但愿國產(chǎn)單片機能一路長虹…
使用最多的器件:STC12C2052AD
Freescale單片機
主要針對S08,S12這類單片機,當(dāng)然Freescale單片機遠(yuǎn)非于此。Freescale系列單片機采用哈佛結(jié)構(gòu)和流水線指令結(jié)構(gòu),在許多領(lǐng)域內(nèi)都表現(xiàn)出低成本,高性能的的特點,它的體系結(jié)構(gòu)為產(chǎn)品的開發(fā)節(jié)省了大量時間。此外Freescale提供了多種集成模塊和總線接口,可以在不同的系統(tǒng)中更靈活的發(fā)揮作用!Freescale單片機的特有的特點如下:
1.全系列:從低端到高端,從8位到32位全系列應(yīng)有盡有,其推出的8位/32位管腳兼容的QE128,可以從8位直接移植到32位,彌補單片機業(yè)界8/32 位兼容架構(gòu)中缺失的一環(huán)
2.多種系統(tǒng)時鐘模塊:三種模塊,七種工作模式。多種時鐘源輸入選項,不同的mcu具有不同的時鐘產(chǎn)生機制,可以是RC振蕩器,外部時鐘或晶振,也可以是內(nèi)部時鐘,多數(shù)CPU同時具有上述三種模塊!可以運行在FEI,F(xiàn)EE,F(xiàn)BI,F(xiàn)BILP,F(xiàn)BE,F(xiàn)BELP,STOP這七種工作模式
3.多種通訊模塊接口:Freescale單片機幾乎在內(nèi)部集成各種通信接口模塊:包括串行通信接口模塊SCI,多主I2C總線模塊,串行外圍接口模塊 SPI,MSCAN08控制器模塊,通用串行總線模塊(USB/PS2)
4.具有更多的可選模塊:具有LCD驅(qū)動模塊,帶有溫度傳感器,具有超高頻發(fā)送模塊,含有同步處理器模塊,含有同步處理器的MCU還具有屏幕顯示模塊OSD,還有少數(shù)的MCU具有響鈴檢測模塊RING和雙音多頻/音調(diào)發(fā)生器DMG模塊
5.可靠性高,抗干擾性強,多種引腳數(shù)和封裝選擇
6.低功耗、也許Freescale系列的單片機的功耗沒有MSP430的低,但是他具有全靜態(tài)的“等待”和“停止”兩種模式,從總體上降低您的功耗!新近推出的幾款超低功耗已經(jīng)與MSP430的不相上下!
使用最多的器件:MC9S12G系列
如果真要在這些單片機中分個一二三等,那么如果你想跟隨大眾,無可厚非51單片機還是首選;如果你追求超高性價比,STM32將是你理想選擇;如果你渴望超低功耗,MSP430肯定不會讓你失望;如果你想支持國產(chǎn),STC會讓你興奮
評論