單片機(jī)的發(fā)展相當(dāng)?shù)难杆伲F(xiàn)在各個(gè)廠商們也在速度、內(nèi)存、功能上此起彼伏,競爭激烈,同時(shí)涌現(xiàn)出一大批擁有代表性單片機(jī)的廠商:Atmel、TI、ST、MicroChip、ARM…國內(nèi)的宏晶STC單片機(jī)也是可圈可點(diǎn)。最為初學(xué)者首先要搞清楚他們之間的區(qū)別,掌握avr單片機(jī)選型技巧,才能夠更好的設(shè)計(jì)產(chǎn)品。
一、stm32單片機(jī)介紹
由ST廠商推出的stm32系列單片機(jī),行業(yè)的朋友都知道,這是一款性價(jià)比超高的系列單片機(jī),應(yīng)該沒有之一,功能及其強(qiáng)大。其基于專為要求高性能、低成 本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M內(nèi)核,同時(shí)具有一流的外設(shè):1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表 現(xiàn),當(dāng)然和MSP430的功耗比起來是稍微遜色的一些,但這并不影響工程師們對(duì)它的熱捧程度,由于其簡單的結(jié)構(gòu)和易用的工具再配合其強(qiáng)大的功能在行業(yè)中赫 赫有名…其強(qiáng)大的功能主要表現(xiàn)在:
特性:
1.內(nèi)核:ARM32位Cortex-M3CPU,最高工作頻率72MHz,1.25DMIPS/MHz,單周期乘法和硬件除法
2.存儲(chǔ)器:片上集成32-512KB的Flash存儲(chǔ)器。6-64KB的SRAM存儲(chǔ)器
3.時(shí)鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動(dòng)電壓。POR、PDR和可編程的電壓探測器(PVD)。4-16MHz的晶 振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時(shí)鐘的PLL。帶校準(zhǔn)用于RTC的32kHz的晶振
4、調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。最多高達(dá)112個(gè)的快速I/O端口、最多多達(dá)11個(gè)定時(shí)器、最多多達(dá)13個(gè)通信接口
使用最多的器件:stm32F103系列、stm32 L1系列、stm32W系列
二、avr單片機(jī)介紹
avr單片機(jī)是Atmel公司推出的較為新穎的單片機(jī),其顯著的特點(diǎn)為高性能、高速度、低功耗。它取消機(jī)器周期,以時(shí)鐘周期為指令周期,實(shí)行流水作業(yè)。 avr單片機(jī)指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時(shí)完成下一條指令的讀取。通常時(shí)鐘頻率用4~8MHz,故最短 指令執(zhí)行時(shí)間為250~125ns。avr單片機(jī)能成為最近仍是比較火熱的單片機(jī),主要的特點(diǎn):
特點(diǎn):
1. avr系列沒有類似累加器A的結(jié)構(gòu),它主要是通過R16~R31寄存器來實(shí)現(xiàn)A的功能。在avr中,沒有像51系列的數(shù)據(jù)指針DPTR,而是由X(由 R26、R27組成)、Y(由R28、R29組成)、Z(由R30、R31組成)三個(gè)16位的寄存器來完成數(shù)據(jù)指針的功能(相當(dāng)于有三組DPTR),而且 還能作后增量或先減量等的運(yùn)行,而在51系列中,所有的邏輯運(yùn)算都必須在A中進(jìn)行;而avr卻可以在任兩個(gè)寄存器之間進(jìn)行,省去了在A中的來回折騰,這些 都比51系列出色些
2. avr的專用寄存器集中在00~3F地址區(qū)間,無需像pic那樣得先進(jìn)行選存儲(chǔ)體的過程,使用起來比pic方便。avr的片內(nèi)RAM的地址區(qū)間為 0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它們占用的是數(shù)據(jù)空間的地址,這些片內(nèi)RAM僅僅是用來存儲(chǔ)數(shù)據(jù)的,通常不具備通用寄 存器的功能。當(dāng)程序復(fù)雜時(shí),通用寄存器R0~R31就顯得不夠用;而51系列的通用寄存器多達(dá)128個(gè)(為avr的4倍),編程時(shí)就不會(huì)有這種感覺。
3. avr的I/O腳類似pic,它也有用來控制輸入或輸出的方向寄存器,在輸出狀態(tài)下,高電平輸出的電流在10mA左右,低電平吸入電流20mA。這點(diǎn)雖不如pic,但比51系列還是要優(yōu)秀的…
缺點(diǎn):
1. 是沒有位操作,都是以字節(jié)形式來控制和判斷相關(guān)寄存器位的
2. C語言與51的C語言在寫法上存在很大的差異,這讓從開始學(xué)習(xí)51單片機(jī)的朋友很不習(xí)慣
3. 通用寄存器一共32個(gè)(R0~R31),前16個(gè)寄存器(R0~R15)都不能直接與立即數(shù)打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接與立即數(shù)打交道,顯然要優(yōu)于前者。
使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515
每種MCU都有自身的優(yōu)點(diǎn)與缺點(diǎn),與其它8-bit MCU相比,avr 8-bit MCU最大的特點(diǎn)是:
● 哈佛結(jié)構(gòu),具備1MIPS / MHz的高速運(yùn)行處理能力;
● 超功能精簡指令集(RISC),具有32個(gè)通用工作寄存器,克服了如8051 MCU采用單一ACC進(jìn)行處理造成的瓶頸現(xiàn)象;
● 快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號(hào)FLASH非常大,特別適用于使用高級(jí)語言進(jìn)行開發(fā);
● 作輸出時(shí)與pic的HI/LOW相同,可輸出40mA(單一輸出),作輸入時(shí)可設(shè)置為三態(tài)高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
● 片內(nèi)集成多種頻率的RC振蕩器、上電自動(dòng)復(fù)位、看門狗、啟動(dòng)延時(shí)等功能,外圍電路更加簡單,系統(tǒng)更加穩(wěn)定可靠;
● 大部分avr片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分avr除了有ISP功能外,還有IAP功能,方便升級(jí)或銷毀應(yīng)用程序。
● 性價(jià)比高。
三、avr單片機(jī)典型應(yīng)用電路圖
avr單片機(jī)最常用的是5V與3.3V兩種電壓。本線路以開關(guān)切換兩種電壓,并且以雙色二極管指示(5V時(shí)為綠燈,3.3V時(shí)為紅燈)。JP3輸入電壓為7.5v—9v。
串口使用一個(gè)max232芯片。
使用跳線JMP2—1,不使用串口時(shí),請(qǐng)將其斷開,防止串口電路對(duì)IO口的干擾。
VCC與R2out之間接串上一個(gè)電阻R2和一個(gè)發(fā)光二極管LED1,特別說明,只有當(dāng)此二極管閃的時(shí)候才說明串口在工作,直接接上的時(shí)候,此發(fā)光二極管也可能會(huì)亮。
AD轉(zhuǎn)換濾波線路
為減小AD轉(zhuǎn)換的電源干擾,Mega16芯片有獨(dú)立的AD電源供電。官方文檔推薦在VCC串上一只10uH的電感(L1),然后接一只0.1uF的電容到地(C3)。
Mega16內(nèi)帶2.56V標(biāo)準(zhǔn)參考電壓。也可以從外面輸入?yún)⒖茧妷?,比如在外面使用TL431($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)通信需要比較精確的波特率時(shí),建議使用外部的晶振線路。
早期的90S系列,晶振兩端均需要接22pF左右的電容。Mega系列實(shí)際使用時(shí),這兩只小電容不接也能正常工作。不過為了線路的規(guī)范化,我們?nèi)越ㄗh接上。
四、pic單片機(jī)介紹
pic單片機(jī)系列是美國微芯公司(Microship)的產(chǎn)品,共分三個(gè)級(jí)別,即基本級(jí)、中級(jí)、高級(jí),是當(dāng)前市場份額增長最快的單片機(jī)之一,CPU 采用RISC結(jié)構(gòu),分別有33、35、58條指令,屬精簡指令集,同時(shí)采用Harvard雙總線結(jié)構(gòu),運(yùn)行速度快,它能使程序存儲(chǔ)器的訪問和數(shù)據(jù)存儲(chǔ)器的 訪問并行處理,這種指令流水線結(jié)構(gòu),在一個(gè)周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲(chǔ)器取出下一條指令,這樣總的看來每條指令只需一個(gè)周期,這 也是高效率運(yùn)行的原因之一,此外pic單片機(jī)之所以成為一時(shí)非常熱的單片機(jī)不外乎以下特點(diǎn):
特點(diǎn)
1.具有低工作電壓、低功耗、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。pic系列單片機(jī)的I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時(shí)同為輸入和輸出的狀態(tài)。
2.當(dāng)置位1時(shí)為輸入狀態(tài),且不管該腳呈高電平或低電平,對(duì)外均呈高阻狀態(tài);置位0時(shí)為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動(dòng)能力,低電平吸入電流達(dá)25mA,高電平輸出電流可達(dá)20mA。相對(duì)于51系列而言,這是一個(gè)很大的優(yōu)點(diǎn)
3.它可以直接驅(qū)動(dòng)數(shù)碼管顯示且外電路簡單。它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程(ISP)功能。
不足之處
其專用寄存器(SFR)并不像51系列那樣都集中在一個(gè)固定的地址區(qū)間內(nèi)(80~FFH),而是分散在四個(gè)地址區(qū)間內(nèi)。只有5個(gè)專用寄存器PCL、 STATUS、FSR、PCLATH、INTCON在4個(gè)存儲(chǔ)體內(nèi)同時(shí)出現(xiàn),但是在編程過程中,少不了要與專用寄存器打交道,得反復(fù)地選擇對(duì)應(yīng)的存儲(chǔ)體, 也即對(duì)狀態(tài)寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。數(shù)據(jù)的傳送和邏輯運(yùn)算基本上都得通過工作寄存器W(相當(dāng)于51系列的累加 器A)來進(jìn)行,而51系列的還可以通過寄存器相互之間直接傳送,因而pic單片機(jī)的瓶頸現(xiàn)象比51系列還要嚴(yán)重,這在編程中的朋友應(yīng)該深有體會(huì)。
使用最多的器件pic16F873、pic16F877
五:stm32與pic、avr單片機(jī)的對(duì)比區(qū)別
下表格對(duì)avr、pic和STM32這三種系列的單片機(jī)進(jìn)行比較,對(duì)象都選擇各個(gè)系列的64腳封裝的芯片,其中Mega128和pic18F6680均為其所在系列中高端芯片。通過表格可以看出不管在處理速度,外圍設(shè)備還是價(jià)格上,STM32都具有非常大的優(yōu)勢,唯一不足之處就是stm32暫時(shí)還未集成內(nèi)部EEPROM,但可以使用Flash的IAP功能來替代,在可靠性上應(yīng)該更高點(diǎn)。
在使用C語言編程方面,pic的體系結(jié)構(gòu)是最不適合的,且編譯軟件無法與GCC,keilc相比。
在抗干擾方面,主要還是和開發(fā)者的水平有關(guān),而一定要說哪種單片機(jī)的抗干擾強(qiáng),哪種弱,其實(shí)標(biāo)準(zhǔn)不一樣,結(jié)果也不一樣。人們普遍認(rèn)為pic的抗干擾很強(qiáng),但那是C系列,現(xiàn)在集成內(nèi)部Flash的F系列要差許多,特別是早期出廠的幾批。avr系列單片機(jī)普遍被認(rèn)為抗干擾性能是比較差的,曾經(jīng)有人列出了一個(gè)表格,使用日本的測試方法,結(jié)果是avr排在了最后,其實(shí)對(duì)于一般的應(yīng)用也沒什么問題。STM32是由著名的ST公司生產(chǎn)的,該公司一直致力于電機(jī)控制芯片的研發(fā)生產(chǎn),而且做的很出色,我想抗干擾應(yīng)該沒什么問題,至少不會(huì)比前兩種差。
六:avr單片機(jī)的選型技巧
各種單片機(jī)都有各自的優(yōu)缺點(diǎn),應(yīng)根據(jù)需要選擇。選擇單片機(jī)原則如下:
1. 單片機(jī)的基本參數(shù)例如速度,程序存儲(chǔ)器容量,I/O 引腳數(shù)量
2. 單片機(jī)的增強(qiáng)功能,例如看門狗,雙指針,雙串口,RTC(實(shí)時(shí)時(shí)鐘),EEPROM,擴(kuò)展 RAM,CAN 接口,I2C 接口,SPI 接口,USB 接口。
3. Flash 和OTP(一次性可編程)相比較,最好是Flash。
4. 封裝 IP(雙列直插),PLCC(PLCC 有對(duì)應(yīng)插座)還是貼片。DIP 封裝在做實(shí)驗(yàn)時(shí)可能方便一點(diǎn)。
5. 工作溫度范圍,工業(yè)級(jí)還是商業(yè)機(jī)。如果設(shè)計(jì)戶外產(chǎn)品,必須選用工業(yè)級(jí)。
6. 功耗,比如設(shè)計(jì)并口加密狗,信號(hào)線取電只能提供幾個(gè) mA,用pic 就是因?yàn)榈凸模髞沓隽薓SP430 也不錯(cuò)。
7. 工作電壓范圍。例如設(shè)計(jì)電視機(jī)遙控器,2 節(jié)干電池供電,至少應(yīng)該能在 1.8-3.6V電壓范圍內(nèi)工作。
8. 供貨渠道暢通。能申請(qǐng)樣片,小批量購買有現(xiàn)貨。最好像標(biāo)準(zhǔn) 51,中發(fā)里隨便找個(gè)柜臺(tái)就能買到。
9. 價(jià)格低。
10. 有服務(wù)商,像周立功公司推 Philips,雙龍公司推avr,都提供了很多有用的技術(shù)支持,起碼燒寫器有地方買。
11. 燒錄器價(jià)格低,如果是ICP(把單片機(jī)放在燒錄器上編程)能否利用現(xiàn)有的燒錄器,如果是表貼封裝,買一個(gè)轉(zhuǎn)接座也很貴,至少得一二百元。能否 ISP(在系統(tǒng)編程,即把芯片先焊到板子上再通過預(yù)留的 ISP 接口編程),一般 ISP 編程器比較便宜大約一二百元甚至幾十元。
12. 仿真器便宜。對(duì)于 FLASH 型單片機(jī),仿真器不是必備的。但是對(duì)于OTP(一次性可編程)型單片機(jī),必須購買或者租用仿真器。
13. 單片機(jī)匯編語言是自己熟悉的,并且能支持 C 語言。編程環(huán)境要像keil 一樣好用,并且還是免費(fèi)的。 14. 網(wǎng)站速度快,資料豐富。包括芯片手冊(cè),應(yīng)用指南,設(shè)計(jì)方案,范例程序。最好有中文,像Atmel 就不錯(cuò)。
15. 保密性能好,查一下專業(yè)解密網(wǎng)站上的黑名單,再發(fā)個(gè) mail 咨詢一下解密價(jià)格。
16. 抗干擾性能好。我曾經(jīng)把XXC52 改為S52 后發(fā)現(xiàn)抗干擾性能下降,只好改回去。
17. 和其他外設(shè)芯片放在一起的綜合考慮。
評(píng)論
查看更多