AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡(jiǎn)指令集高速8位單片機(jī)??梢詮V泛應(yīng)用于計(jì)算機(jī)外部設(shè)備、工業(yè)實(shí)時(shí)控制、儀器儀表、通訊設(shè)備、家用電器等各個(gè)領(lǐng)域。
AVR單片機(jī)結(jié)構(gòu)分類
型號(hào)標(biāo)識(shí)
⒈型號(hào)緊跟的字母,表示電壓工作范圍。帶“V”:1.8-5.5V;若缺省,不帶“V”:2.7-5.5V。
例:ATmega48-20AU,不帶“V”表示工作電壓為2.7-5.5V。
⒉后綴的數(shù)字部分,表示支持的最高系統(tǒng)時(shí)鐘。
例:ATmega48-20AU,“20”表示可支持最高為20MHZ的系統(tǒng)時(shí)鐘。
⒊后綴第一(第二)個(gè)字母,表示封裝?!癙”:DIP封裝,“A”:TQFP封裝,“M”:MLF封裝。
例:ATmega48-20AU,“A”表示TQFP封裝。
⒋后綴最后一個(gè)字母,表示應(yīng)用級(jí)別?!癈”:商業(yè)級(jí),“I”:工業(yè)級(jí)(有鉛)、“U”工業(yè)級(jí)(無(wú)鉛)。
例:ATmega48-20AU,“U”表示無(wú)鉛工業(yè)級(jí)。ATmega48-20AI,“I”表示有鉛工業(yè)級(jí)。
接口設(shè)計(jì)
USB接口以其數(shù)據(jù)傳輸快、連接簡(jiǎn)單、易于擴(kuò)展、支持熱插拔等特點(diǎn)已成為外設(shè)與PC通信的主要方式之一。隨著嵌入式系統(tǒng)的發(fā)展,嵌入式微處理器需增加通用的USB接口,以便實(shí)現(xiàn)與PC等USB主機(jī)系統(tǒng)的通信。針對(duì)這樣的需求,這里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列單片機(jī)ATmega8設(shè)計(jì)一種通用的USB接口模塊。該模塊可方便為各種嵌入式微處理器增加USB接口,從而實(shí)現(xiàn)與USB主機(jī)系統(tǒng)的高速通信。
系統(tǒng)硬件設(shè)計(jì)
該系統(tǒng)模塊的控制核心是AVR高速單片機(jī)ATmega8。AVR單片機(jī)是新一代基于哈佛結(jié)構(gòu)的高速RISC微控制器,具有速度快、價(jià)格低、可靠性高,I/O口線驅(qū)動(dòng)能力強(qiáng)和片內(nèi)集成外設(shè)資源豐富等特點(diǎn),其內(nèi)部集成有可進(jìn)行ISP下載編程的Flash,EEPROM、熔絲位和鎖定位。AVR單片機(jī)的ISP下載電纜制作簡(jiǎn)單、成本低廉,還有免費(fèi)的下載軟件(例如PonyProg)支持。PDIUSBD12是一款高性價(jià)比USB接口器件,完全符合USB1.l規(guī)范,易于與各種微處理器接口。
系統(tǒng)模塊AVR單片機(jī)與PDIUSBD12的電路連接如圖1所示。
由圖1看出,由于AVR單片機(jī)具有高速性,可利用I/O端口線以軟件方式模擬PDIUSBD12的時(shí)序,對(duì)其讀寫(xiě)。這種方式可根據(jù)不同的微處理器速度靈活控制PDIUSBD12的時(shí)序和地址,無(wú)需譯碼電路,從而簡(jiǎn)化硬件設(shè)計(jì),降低成本。
由于ATmega8片內(nèi)集成了UART,SPI,I2C等接口,該接口模塊可利用這些接口與其他系統(tǒng)通信,使得該接口模塊成為通用的接口轉(zhuǎn)換器。其系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示。
USB固件程序設(shè)計(jì)
本系統(tǒng)模塊的USB固件程序采用符合ANSI C標(biāo)準(zhǔn)的GCC編譯器設(shè)計(jì),結(jié)合分層次的模塊化結(jié)構(gòu),可移植性強(qiáng),只需稍微修改硬件接口層即可將其移植到別的硬件平臺(tái),可重復(fù)利用代碼。USB固件程序設(shè)計(jì)是基于狀態(tài)機(jī)和標(biāo)準(zhǔn)的前后臺(tái)式程序架構(gòu)。整個(gè)同件程序的模塊化層次結(jié)構(gòu)如圖3所示。首先編寫(xiě)硬件接口層hal.c和PDIUSBD12器件的命令接口層,以供上層模塊調(diào)用。硬件接口層含有對(duì)PDIUSBD12寫(xiě)指令和讀寫(xiě)數(shù)據(jù)的函數(shù),以供上層模塊調(diào)用。當(dāng)CPU不同時(shí),只需修改這些函數(shù)即可。由于CPU訪問(wèn)PDIUS-BD12與普通存儲(chǔ)器一樣,只需根據(jù)硬件連接關(guān)系,在硬件抽象層中編寫(xiě)對(duì)PDIUSBD12寫(xiě)指令、寫(xiě)讀數(shù)據(jù)的函數(shù),供上層調(diào)用即可。實(shí)現(xiàn)PDIUSBD12的命令接口層需調(diào)用硬件抽象層函數(shù),供上層模塊調(diào)用。再設(shè)計(jì)前后臺(tái)程序及標(biāo)準(zhǔn)設(shè)備請(qǐng)求程序模塊。
AVR單片機(jī)的應(yīng)用
市場(chǎng)角度
性價(jià)比:AVR大部分型號(hào)的性價(jià)比較高,性價(jià)比表現(xiàn)突出的型號(hào)有:atmega48、atmega8、atmega16、atmega169P。
供貨方面:通用型號(hào)的AVR供貨較為穩(wěn)定,非常規(guī)型號(hào)的AVR樣品及供貨仍存在問(wèn)題。
市場(chǎng)占有率:AVR的市場(chǎng)占有率還是不如PIC與51,但AVR的優(yōu)點(diǎn)使得AVR的市場(chǎng)占有一直在擴(kuò)展,AVR的年用量也一直在上漲。
應(yīng)用區(qū)域
AVR已被廣泛用于:
空調(diào)控制板
打印機(jī)控制板
智能電表
智能手電筒
LED控制屏
醫(yī)療設(shè)備
GPS
AVR單片機(jī)發(fā)展?fàn)顩r
名字由來(lái)
1997年,由ATMEL公司挪威設(shè)計(jì)中心的A先生與V先生利用ATMEL公司的Flash新技術(shù),共同研發(fā)出RISC精簡(jiǎn)指令集的高速8位單片機(jī),簡(jiǎn)稱AVR。
功能特點(diǎn)
AVR單片機(jī)是 Atmel 公司 1997 年推出的 RISC 單片機(jī)。RISC(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))是相對(duì)于CISC(復(fù)雜指令系統(tǒng)計(jì)算機(jī))而言的。RISC 并非只是簡(jiǎn)單地去減少指令,而是通過(guò)使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理而提高運(yùn)算速度的。RISC 優(yōu)先選取使用頻率最高的簡(jiǎn)單指令,避免復(fù)雜指令:并固定指令寬度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運(yùn)行速度。由于 AVR 采用了 RISC 的這種結(jié)構(gòu),使AVR系列單片機(jī)都具備了1MIPS/MHz(百萬(wàn)條指令每秒/兆赫茲)的高速處理能力。
早期單片機(jī)主要由于工藝及設(shè)計(jì)水平不高、功耗高和抗干擾性能差等原因,所以采取穩(wěn)妥方案:即采用較高的分頻系數(shù)對(duì)時(shí)鐘分頻,使得指令周期長(zhǎng),執(zhí)行速度慢。以后的CMOS單片機(jī)雖然采用提高時(shí)鐘頻率和縮小分頻系數(shù)等措施,但這種狀態(tài)并未被徹底改觀(51以及51兼容)。此間雖有某些精簡(jiǎn)指令集單片機(jī)(RISC)問(wèn)世,但依然沿襲對(duì)時(shí)鐘分頻的作法。
AVR單片機(jī)的推出,徹底打破這種舊設(shè)計(jì)格局,廢除了機(jī)器周期,拋棄復(fù)雜指令計(jì)算機(jī)(CISC)追求指令完備的做法;采用精簡(jiǎn)指令集,以字作為指令長(zhǎng)度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。當(dāng)然這種速度上的升躍,是以高可靠性為其后盾的。
AVR單片機(jī)硬件結(jié)構(gòu)采取8位機(jī)與16位機(jī)的折中策略,即采用局部寄存器存堆(32個(gè)寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相應(yīng)控制邏輯)。提高了指令執(zhí)行速度(1Mips/MHz),克服了瓶頸現(xiàn)象,增強(qiáng)了功能;同時(shí)又減少了對(duì)外設(shè)管理的開(kāi)銷,相對(duì)簡(jiǎn)化了硬件結(jié)構(gòu),降低了成本。故AVR單片機(jī)在軟/硬件開(kāi)銷、速度、性能和成本諸多方面取得了優(yōu)化平衡,是高性價(jià)比的單片機(jī)。
AVR單片機(jī)內(nèi)嵌高質(zhì)量的Flash程序存儲(chǔ)器,擦寫(xiě)方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開(kāi)發(fā)、生產(chǎn)、更新。內(nèi)嵌長(zhǎng)壽命的EEProm可長(zhǎng)期保存關(guān)鍵數(shù)據(jù),避免斷電丟失。片內(nèi)大容量的RAM不僅能滿足一般場(chǎng)合的使用,同時(shí)也更有效的支持使用高級(jí)語(yǔ)言開(kāi)發(fā)系統(tǒng)程序,并可像MCS-51單片機(jī)那樣擴(kuò)展外部RAM。
AVR單片機(jī)的I/O線全部帶可設(shè)置的上拉電阻、可單獨(dú)設(shè)定為輸入/輸出、可設(shè)定(初始)高阻輸入、驅(qū)動(dòng)能力強(qiáng)(可省去功率驅(qū)動(dòng)器件)等特性,使的得I/O口資源靈活、功能強(qiáng)大、可充分利用。
AVR單片機(jī)片內(nèi)具備多種獨(dú)立的時(shí)鐘分頻器,分別供URAT、I2C、SPI使用。其中與8/16位定時(shí)器配合的具有多達(dá)10位的預(yù)分頻器,可通過(guò)軟件設(shè)定分頻系數(shù)提供多種檔次的定時(shí)時(shí)間。
AVR單片機(jī)獨(dú)有的“以定時(shí)器/計(jì)數(shù)器(單)雙向計(jì)數(shù)形成三角波,再與輸出比較匹配寄存器配合,生成占空比可變、頻率可變、相位可變方波的設(shè)計(jì)方法(即脈寬調(diào)制輸出PWM)更是令人耳目一新。
增強(qiáng)性的高速同/異步串口,具有硬件產(chǎn)生校驗(yàn)碼、硬件檢測(cè)和校驗(yàn)偵錯(cuò)、兩級(jí)接收緩沖、波特率自動(dòng)調(diào)整定位(接收時(shí))、屏蔽數(shù)據(jù)幀等功能,提高了通信的可靠性,方便程序編寫(xiě),更便于組成分布式網(wǎng)絡(luò)和實(shí)現(xiàn)多機(jī)通信系統(tǒng)的復(fù)雜應(yīng)用,串口功能大大超過(guò)MCS-51/96單片機(jī)的串口,加之AVR單片機(jī)高速,中斷服務(wù)時(shí)間短,故可實(shí)現(xiàn)高波特率通訊。
面向字節(jié)的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號(hào)硬件發(fā)送與識(shí)別、地址識(shí)別、總線仲裁等功能,能實(shí)現(xiàn)主/從機(jī)的收/發(fā)全部4種組合的多機(jī)通信。SPI支持主/從機(jī)等4種組合的多機(jī)通信。
AVR單片機(jī)有自動(dòng)上電復(fù)位電路、獨(dú)立的看門(mén)狗電路、低電壓檢測(cè)電路BOD,多個(gè)復(fù)位源(自動(dòng)上下電復(fù)位、外部復(fù)位、看門(mén)狗復(fù)位、BOD復(fù)位),可設(shè)置的啟動(dòng)后延時(shí)運(yùn)行程序,增強(qiáng)了嵌入式系統(tǒng)的可靠性。
AVR單片機(jī)具有多種省電休眠模式,且可寬電壓運(yùn)行(5-2.7V),抗干擾能力強(qiáng),可降低一般8位機(jī)中的軟件抗干擾設(shè)計(jì)工作量和硬件的使用量。
AVR系列單片機(jī)的選型
AVR單片機(jī)系列齊全,可適用于各種不同場(chǎng)合的要求。
AVR單片機(jī)有3個(gè)檔次:
低檔Tiny系列:主要有Tiny11/12/13/15/26/28等;
中檔AT90S系列:主要有AT90S1200/2313/8515/8535等;(正在淘汰或轉(zhuǎn)型到Mega中)
高檔ATmega:主要有ATmega8/16/32/64/128(存儲(chǔ)容量為8/16/32/64/128KB)以及ATmega8515/8535等。
AVR器件引腳從8腳到64腳,還有各種不同封裝供選擇。
優(yōu)勢(shì)特征
高可靠性、功能強(qiáng)、高速度、低功耗和低價(jià)位,一直是衡量單片機(jī)性能的重要指標(biāo),也是單片機(jī)占領(lǐng)市場(chǎng)、賴以生存的必要條件。
最大特點(diǎn)
與其它8-Bit MCU相比,AVR 8-Bit MCU最大的特點(diǎn)是:
哈佛結(jié)構(gòu),具備1MIPS / MHz的高速運(yùn)行處理能力;
超功能精簡(jiǎn)指令集(RISC),具有32個(gè)通用工作寄存器,克服了如8051 MCU采用單一ACC進(jìn)行處理造成的瓶頸現(xiàn)象;
快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號(hào)FLASH非常大,特別適用于使用高級(jí)語(yǔ)言進(jìn)行開(kāi)發(fā);
作輸出時(shí)與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時(shí)可設(shè)置為三態(tài)高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
片內(nèi)集成多種頻率的RC振蕩器、上電自動(dòng)復(fù)位、看門(mén)狗、啟動(dòng)延時(shí)等功能,外圍電路更加簡(jiǎn)單,系統(tǒng)更加穩(wěn)定可靠;
大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
大部分AVR除了有ISP功能外,還有IAP功能,方便升級(jí)或銷毀應(yīng)用程序。
AVR單片機(jī)注意問(wèn)題
寫(xiě)用PORTx,讀取用PINx
實(shí)驗(yàn)時(shí),盡量不要把管腳直接接到GND/VCC,當(dāng)設(shè)定不當(dāng),IO口將會(huì)輸出/灌入 80mA(Vcc=5V)的大電流,導(dǎo)致器件損壞。
作輸入時(shí):
1通常要使能內(nèi)部上拉電阻,懸空(高阻態(tài))將會(huì)很容易受干擾。(表面看好像是51的抗干擾能力強(qiáng),是因?yàn)?1永遠(yuǎn)有內(nèi)部電阻上拉,)
2盡量不要讓輸入懸空或模擬輸入電平接近VCC/2,將會(huì)消耗太多的電流,特別是低功耗應(yīng)用場(chǎng)合------CMOS電路的特點(diǎn)
3讀取軟件賦予的引腳電平時(shí)需要在賦值指令out 和讀取指令in 之間有一個(gè)時(shí)鐘周期的間隔,如nop 指令。
4功能模塊(中斷,定時(shí)器)的輸入可以是低電平觸發(fā),也可以是上升沿觸發(fā)或下降沿觸發(fā)。
5用于高阻模擬信號(hào)輸入,切記不要使能內(nèi)部上拉電阻,影響精確度。例如ADC數(shù)模轉(zhuǎn)換器輸入,模擬比較器輸入
作輸出時(shí):
采用必要的限流措施,例如驅(qū)動(dòng)LED要串入限流電阻
復(fù)位時(shí):
復(fù)位時(shí)內(nèi)部上拉電阻將被禁用。如果應(yīng)用中(例如電機(jī)控制)需要嚴(yán)格的電平控制,請(qǐng)使用外接電阻固定電平
休眠時(shí):
作輸出的,依然維持狀態(tài)不變
作輸入的,一般無(wú)效,但如果使能了第二功能(中斷使能),其輸入功能有效。例如 外部中斷的喚醒功能。
各大手機(jī)應(yīng)用商城搜索“拍明芯城”
下載客戶端,隨時(shí)隨地買賣元器件!