複製鏈接
請複製以下鏈接發送給好友

AVR單片機

鎖定
AVR單片機是1997年由ATMEL公司研發出的增強型內置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機。可以廣泛應用於計算機外部設備、工業實時控制、儀器儀表、通訊設備、家用電器等各個領域。AVR單片機是 Atmel 公司 1997 年推出的 RISC 單片機。RISC(精簡指令系統計算機)是相對於CISC(複雜指令系統計算機)而言的。RISC 並非只是簡單地去減少指令,而是通過使計算機的結構更加簡單合理而提高運算速度的。 [1] 
中文名
AVR單片機
別    名
高速嵌入式單片機
特    點
高可靠性、功能強、低功耗
起源時間
1997年
種    類
3
結    構
哈佛結構
應用範圍
計算機設備、通訊設備、家用電器

AVR單片機發展起源

AVR單片機名字由來

1997年,由ATMEL公司挪威設計中心的A先生與V先生利用ATMEL公司的Flash新技術,共同研發出RISC精簡指令集的高速8位單片機,簡稱AVR。 [2] 

AVR單片機功能特點

RISC 優先選取使用頻率最高的簡單指令,避免複雜指令:並固定指令寬度,減少指令格式和尋址方式的種類,從而縮短指令週期,提高運行速度。由於 AVR 採用了 RISC 的這種結構,使AVR系列單片機都具備了1MIPS/MHz(百萬條指令每秒/兆赫茲)的高速處理能力。 [3] 
早期單片機主要由於工藝及設計水平不高、功耗高和抗干擾性能差等原因,所以採取穩妥方案:即採用較高的分頻係數對時鐘分頻,使得指令週期長,執行速度慢。以後的CMOS單片機雖然採用提高時鐘頻率和縮小分頻係數等措施,但這種狀態並未被徹底改觀(51以及51兼容)。此間雖有某些精簡指令集單片機(RISC)問世,但依然沿襲對時鐘分頻的作法。
AVR單片機的推出,徹底打破這種舊設計格局,廢除了機器週期,拋棄複雜指令計算機(CISC)追求指令完備的做法;採用精簡指令集,以字作為指令長度單位,將內容豐富的操作數與操作碼安排在一字之中(指令集中佔大多數的單週期指令都是如此),取指週期短,又可預取指令,實現流水作業,故可高速執行指令。當然這種速度上的升躍,是以高可靠性為其後盾的。
AVR單片機 AVR單片機
AVR單片機硬件結構採取8位機與16位機的折中策略,即採用局部寄存器存堆(32個寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相應控制邏輯)。提高了指令執行速度(1Mips/MHz),克服了瓶頸現象,增強了功能;同時又減少了對外設管理的開銷,相對簡化了硬件結構,降低了成本。故AVR單片機在軟/硬件開銷、速度、性能和成本諸多方面取得了優化平衡,是高性價比的單片機。
AVR單片機內嵌高質量的Flash程序存儲器,擦寫方便,支持ISP和IAP,便於產品的調試、開發、生產、更新。內嵌長壽命的EEProm可長期保存關鍵數據,避免斷電丟失。片內大容量的RAM不僅能滿足一般場合的使用,同時也更有效的支持使用高級語言開發系統程序,並可像MCS-51單片機那樣擴展外部RAM
AVR單片機的I/O線全部帶可設置的上拉電阻、可單獨設定為輸入/輸出、可設定(初始)高阻輸入、驅動能力強(可省去功率驅動器件)等特性,使的得I/O口資源靈活、功能強大、可充分利用。
AVR單片機片內具備多種獨立的時鐘分頻器,分別供URAT、I2C、SPI使用。其中與8/16位定時器配合的具有多達10位的預分頻器,可通過軟件設定分頻係數提供多種檔次的定時時間。
AVR單片機獨有的“以定時器/計數器(單)雙向計數形成三角波,再與輸出比較匹配寄存器配合,生成佔空比可變、頻率可變、相位可變方波的設計方法(即脈寬調製輸出PWM)更是令人耳目一新。 [4] 
增強性的高速同/異步串口,具有硬件產生校驗碼、硬件檢測和校驗偵錯、兩級接收緩衝、波特率自動調整定位(接收時)、屏蔽數據幀等功能,提高了通信的可靠性,方便程序編寫,更便於組成分佈式網絡和實現多機通信系統的複雜應用,串口功能大大超過MCS-51/96單片機的串口,加之AVR單片機高速,中斷服務時間短,故可實現高波特率通訊。
面向字節的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號硬件發送與識別、地址識別、總線仲裁等功能,能實現主/從機的收/發全部4種組合的多機通信。SPI支持主/從機等4種組合的多機通信。
AVR單片機有自動上電復位電路、獨立的看門狗電路、低電壓檢測電路BOD,多個復位源(自動上下電覆位、外部復位、看門狗復位、BOD復位),可設置的啓動後延時運行程序,增強了嵌入式系統的可靠性。
AVR單片機具有多種省電休眠模式,且可寬電壓運行(5-2.7V),抗干擾能力強,可降低一般8位機中的軟件抗干擾設計工作量和硬件的使用量。 [5] 
AVR系列單片機的選型
AVR單片機系列齊全,可適用於各種不同場合的要求。
AVR單片機 AVR單片機
AVR單片機有3個檔次:
低檔Tiny系列:主要有Tiny11/12/13/15/26/28等;
中檔AT90S系列:主要有AT90S1200/2313/8515/8535等;(正在淘汰或轉型到Mega中)
高檔ATmega:主要有ATmega8/16/32/64/128(存儲容量為8/16/32/64/128KB)以及ATmega8515/8535等。
AVR器件引腳從8腳到64腳,還有各種不同封裝供選擇。 [5] 

AVR單片機優勢特徵

高可靠性、功能強、高速度、低功耗和低價位,一直是衡量單片機性能的重要指標,也是單片機佔領市場、賴以生存的必要條件。 [5] 

AVR單片機最大特點

與其它8-Bit MCU相比,AVR 8-Bit MCU最大的特點是: [5] 
  1. 哈佛結構,具備1MIPS / MHz的高速運行處理能力;
  2. 超功能精簡指令集(RISC),具有32個通用工作寄存器,克服瞭如8051 MCU採用單一ACC進行處理造成的瓶頸現象;
  3. 快速的存取寄存器組、單週期指令系統,大大優化了目標代碼的大小、執行效率,部分型號FLASH非常大,特別適用於使用高級語言進行開發;
  4. 作輸出時與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設置為三態高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
  5. 片內集成多種頻率的RC振盪器、上電自動復位、看門狗、啓動延時等功能,外圍電路更加簡單,系統更加穩定可靠;
  6. 大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
  7. 大部分AVR除了有ISP功能外,還有IAP功能,方便升級或銷燬應用程序。 [2] 

AVR單片機結構分類

AVR單片機型號標識

⒈型號緊跟的字母,表示電壓工作範圍。帶“V”:1.8-5.5V;若缺省,不帶“V”:2.7-5.5V。
例:ATmega48-20AU,不帶“V”表示工作電壓為2.7-5.5V。
⒉後綴的數字部分,表示支持的最高系統時鐘
例:ATmega48-20AU,“20”表示可支持最高為20MHZ的系統時鐘。
⒊後綴第一(第二)個字母,表示封裝。“P”:DIP封裝,“A”:TQFP封裝,“M”:MLF封裝
例:ATmega48-20AU,“A”表示TQFP封裝
⒋後綴最後一個字母,表示應用級別。“C”:商業級,“I”:工業級(有鉛)、“U”工業級(無鉛)。
例:ATmega48-20AU,“U”表示無鉛工業級。ATmega48-20AI,“I”表示有鉛工業級。

AVR單片機接口設計

USB接口以其數據傳輸快、連接簡單、易於擴展、支持熱插拔等特點已成為外設與PC通信的主要方式之一。隨着嵌入式系統的發展,嵌入式微處理器需增加通用的USB接口,以便實現與PC等USB主機系統的通信。針對這樣的需求,這裏採用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的AVR系列單片機ATmega8設計一種通用的USB接口模塊。該模塊可方便為各種嵌入式微處理器增加USB接口,從而實現與USB主機系統的高速通信。

AVR單片機系統硬件設計

該系統模塊的控制核心是AVR高速單片機ATmega8。AVR單片機是新一代基於哈佛結構的高速RISC微控制器,具有速度快、價格低、可靠性高,I/O口線驅動能力強和片內集成外設資源豐富等特點,其內部集成有可進行ISP下載編程的Flash,EEPROM、熔絲位和鎖定位。AVR單片機的ISP下載電纜製作簡單、成本低廉,還有免費的下載軟件(例如PonyProg)支持。PDIUSBD12是一款高性價比USB接口器件,完全符合USB1.l規範,易於與各種微處理器接口。
由於AVR單片機具有高速性,可利用I/O端口線以軟件方式模擬PDIUSBD12的時序,對其讀寫。這種方式可根據不同的微處理器速度靈活控制PDIUSBD12的時序和地址,無需譯碼電路,從而簡化硬件設計,降低成本。
由於ATmega8片內集成了UART,SPI,I2C等接口,該接口模塊可利用這些接口與其他系統通信,使得該接口模塊成為通用的接口轉換器。

AVR單片機USB固件程序

USB固件程序設計
本系統模塊的USB固件程序採用符合ANSI C標準的GCC編譯器設計,結合分層次的模塊化結構,可移植性強,只需稍微修改硬件接口層即可將其移植到別的硬件平台,可重複利用代碼。USB固件程序設計是基於狀態機和標準的前後台式程序架構。首先編寫硬件接口層hal.c和PDIUSBD12器件的命令接口層,以供上層模塊調用。硬件接口層含有對PDIUSBD12寫指令和讀寫數據的函數,以供上層模塊調用。當CPU不同時,只需修改這些函數即可。由於CPU訪問PDIUS-BD12與普通存儲器一樣,只需根據硬件連接關係,在硬件抽象層中編寫對PDIUSBD12寫指令、寫讀數據的函數,供上層調用即可。實現PDIUSBD12的命令接口層需調用硬件抽象層函數,供上層模塊調用。再設計前後台程序及標準設備請求程序模塊

AVR單片機用途應用

AVR單片機市場角度

  • 性價比:AVR大部分型號的性價比較高,性價比表現突出的型號有:atmega48、atmega8、atmega16、atmega169P。
  • 供貨方面:通用型號的AVR供貨較為穩定,非常規型號的AVR樣品及供貨仍存在問題。
  • 市場佔有率:AVR的市場佔有率還是不如PIC與51,但AVR的優點使得AVR的市場佔有一直在擴展,AVR的年用量也一直在上漲。

AVR單片機應用區域

AVR已被廣泛用於:
  • 空調控制板
  • 打印機控制板
  • 智能電錶
  • LED控制屏
  • 醫療設備
  • GPS [2] 

AVR單片機注意問題

寫用PORTx,讀取用PINx
實驗時,儘量不要把管腳直接接到GND/VCC,當設定不當,IO口將會輸出/灌入 80mA(Vcc=5V)的大電流,導致器件損壞。
作輸入時:
1通常要使能內部上拉電阻,懸空(高阻態)將會很容易受干擾。(表面看好像是51的抗干擾能力強,是因為51永遠有內部電阻上拉,)
2儘量不要讓輸入懸空或模擬輸入電平接近VCC/2,將會消耗太多的電流,特別是低功耗應用場合------CMOS電路的特點
3讀取軟件賦予的引腳電平時需要在賦值指令out 和讀取指令in 之間有一個時鐘週期的間隔,如nop 指令。
4功能模塊(中斷,定時器)的輸入可以是低電平觸發,也可以是上升沿觸發或下降沿觸發。
5用於高阻模擬信號輸入,切記不要使能內部上拉電阻,影響精確度。例如ADC數模轉換器輸入,模擬比較器輸入
作輸出時:
採用必要的限流措施,例如驅動LED要串入限流電阻
復位時:
復位時內部上拉電阻將被禁用。如果應用中(例如電機控制)需要嚴格的電平控制,請使用外接電阻固定電平
休眠時:
作輸出的,依然維持狀態不變
作輸入的,一般無效,但如果使能了第二功能(中斷使能),其輸入功能有效。例如 外部中斷的喚醒功能。
參考資料