摘要:avr單片機和stm32單片機是目前使用較廣泛的單片機,那么avr單片機和stm32單片機有什么區(qū)別呢?有什么優(yōu)劣勢呢?
一、AVR單片機介紹
AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機。可以廣泛應(yīng)用于計算機外部設(shè)備、工業(yè)實時控制、儀器儀表、通訊設(shè)備、家用電器等各個領(lǐng)域。
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中進(jìn)行;而avr卻可以在任兩個寄存器之間進(jìn)行,省去了在A中的來回折騰,這些 都比51系列出色些
2. avr的專用寄存器集中在00~3F地址區(qū)間,無需像pic那樣得先進(jìn)行選存儲體的過程,使用起來比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)秀。
AVR單片機優(yōu)點:
AVR單片機是Atmel公司推出的較為新穎的單片機,其顯著的特點為高性能、高速度、低功耗。它取消機器周期,以時鐘周期為指令周期,實行流水作 業(yè)。AVR單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時完成下一條指令的讀取。通常時鐘頻率用4~8MHz,故 最短指令執(zhí)行時間為250~125ns。
avr單片機缺點:
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
每種MCU都有自身的優(yōu)點與缺點,與其它8-bit MCU相比,avr 8-bit MCU最大的特點是:
● 哈佛結(jié)構(gòu),具備1MIPS / MHz的高速運行處理能力;
● 超功能精簡指令集(RISC),具有32個通用工作寄存器,克服了如8051 MCU采用單一ACC進(jìn)行處理造成的瓶頸現(xiàn)象;
● 快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號FLASH非常大,特別適用于使用高級語言進(jìn)行開發(fā);
● 作輸出時與pic的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設(shè)置為三態(tài)高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
● 片內(nèi)集成多種頻率的RC振蕩器、上電自動復(fù)位、看門狗、啟動延時等功能,外圍電路更加簡單,系統(tǒng)更加穩(wěn)定可靠;
● 大部分avr片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分avr除了有ISP功能外,還有IAP功能,方便升級或銷毀應(yīng)用程序。
● 性價比高。
AVR單片機用途應(yīng)用
市場角度
性價比:AVR大部分型號的性價比較高,性價比表現(xiàn)突出的型號有:atmega48、atmega8、atmega16、atmega169P。
供貨方面:通用型號的AVR供貨較為穩(wěn)定,非常規(guī)型號的AVR樣品及供貨仍存在問題。
市場占有率:AVR的市場占有率還是不如PIC與51,但AVR的優(yōu)點使得AVR的市場占有一直在擴(kuò)展,AVR的年用量也一直在上漲。
應(yīng)用區(qū)域
AVR已被廣泛用于:
空調(diào)控制板
打印機控制板
智能電表
智能手電筒
LED控制屏
醫(yī)療設(shè)備
GPS
avr單片機典型應(yīng)用電路圖
avr單片機最常用的是5V與3.3V兩種電壓。本線路以開關(guān)切換兩種電壓,并且以雙色二極管指示(5V時為綠燈,3.3V時為紅燈)。JP3輸入電壓為7.5v—9v。
串口使用一個max232芯片。
使用跳線JMP2—1,不使用串口時,請將其斷開,防止串口電路對IO口的干擾。
VCC與R2out之間接串上一個電阻R2和一個發(fā)光二極管LED1,特別說明,只有當(dāng)此二極管閃的時候才說明串口在工作,直接接上的時候,此發(fā)光二極管也可能會亮。
為減小AD轉(zhuǎn)換的電源干擾,Mega16芯片有獨立的AD電源供電。官方文檔推薦在VCC串上一只10uH的電感(L1),然后接一只0.1uF的電容到地(C3)。
Mega16內(nèi)帶2.56V標(biāo)準(zhǔn)參考電壓。也可以從外面輸入?yún)⒖茧妷海热缭谕饷媸褂肨L431($0.0625)基準(zhǔn)電壓源。不過一般的應(yīng)用使用內(nèi)部自帶的參考電壓已經(jīng)足夠。習(xí)慣上在AREF腳接一只0.1uF的電容到地(C4)。
Mega16已經(jīng)內(nèi)置RC振蕩線路,可以產(chǎn)生1M、2M、4M、8M的振蕩頻率。不過,內(nèi)置的畢竟是RC振蕩,在一些要求較高的場合,比如要與RS232($780.5000)通信需要比較精確的波特率時,建議使用外部的晶振線路。
早期的90S系列,晶振兩端均需要接22pF左右的電容。Mega系列實際使用時,這兩只小電容不接也能正常工作。不過為了線路的規(guī)范化,我們?nèi)越ㄗh接上。
二、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è)中赫赫有名。
特性:
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系列
stm32單片機優(yōu)點:
除新增的功能強化型外設(shè)接口外,STM32互連系列還提供與其它STM32微控制器相同的標(biāo)準(zhǔn)接口,這種外設(shè)共用性提升了整個產(chǎn)品家族的應(yīng)用靈活性,使開發(fā)人員可以在多個設(shè)計中重復(fù)使用同一個軟件。新STM32的標(biāo)準(zhǔn)外設(shè)包括10個定時器、兩個12位1-Msample/s 模數(shù)轉(zhuǎn)換器 (交錯模式下2-Msample/s)、兩個12位數(shù)模轉(zhuǎn)換器、兩個I2C接口、五個USART接口和三個SPI端口。新產(chǎn)品外設(shè)共有12條DMA通道,還有一個CRC計算單元,像其它STM32微控制器一樣,支持96位唯一標(biāo)識碼。
新系列微控制器還沿續(xù)了STM32產(chǎn)品家族的低電壓和節(jié)能兩大優(yōu)點。2.0V到3.6V的工作電壓范圍兼容主流的電池技術(shù),如鋰電池和鎳氫電池,封裝還設(shè)有一個電池工作模式專用引腳Vbat。以72MHz頻率從閃存執(zhí)行代碼,僅消耗 27mA電流。低功耗模式共有四種,可將電流消耗降至兩微安。從低功耗模式快速啟動也同樣節(jié)省電能;啟動電路使用STM32內(nèi)部生成的8MHz信號,將微控制器從停止模式喚醒用時小于6微秒。
STM32由于有各種外設(shè) 操作起來簡單,可以處理模擬以及數(shù)字信號,適用于設(shè)計的控制電路
stm32缺點:
STM32是跑指令的,適合跑算法,但是針對多路的信號處理就需要很多片DSP來并行處理。
三、stm32與pic、avr單片機的對比分析
下表格對avr、pic和STM32這三種系列的單片機進(jìn)行比較,對象都選擇各個系列的64腳封裝的芯片,其中Mega128和pic18F6680均為其所在系列中高端芯片。通過表格可以看出不管在處理速度,外圍設(shè)備還是價格上,STM32都具有非常大的優(yōu)勢,唯一不足之處就是stm32暫時還未集成內(nèi)部EEPROM,但可以使用Flash的IAP功能來替代,在可靠性上應(yīng)該更高點。
在使用C語言編程方面,pic的體系結(jié)構(gòu)是最不適合的,且編譯軟件無法與GCC,keilc相比。
在抗干擾方面,主要還是和開發(fā)者的水平有關(guān),而一定要說哪種單片機的抗干擾強,哪種弱,其實標(biāo)準(zhǔn)不一樣,結(jié)果也不一樣。人們普遍認(rèn)為pic的抗干擾很強,但那是C系列,現(xiàn)在集成內(nèi)部Flash的F系列要差許多,特別是早期出廠的幾批。avr系列單片機普遍被認(rèn)為抗干擾性能是比較差的,曾經(jīng)有人列出了一個表格,使用日本的測試方法,結(jié)果是avr排在了最后,其實對于一般的應(yīng)用也沒什么問題。STM32是由著名的ST公司生產(chǎn)的,該公司一直致力于電機控制芯片的研發(fā)生產(chǎn),而且做的很出色,我想抗干擾應(yīng)該沒什么問題,至少不會比前兩種差。
評論