特點
高可靠性、功能強、高速度、低功耗和低價位,一直是衡量單片機性能的重要指標,也是單片機占領市場、賴以生存的必要條件。
早期單片機主要由於工藝及設計水平不高、功耗高和抗干擾性能差等原因,所以採取穩妥方案:即採用較高的分頻係數對時鐘分頻,使得指令周期長,執行速度慢。以後的 CMOS單片機雖然採用提高時鐘頻率和縮小分頻係數等措施,但這種狀態並未被徹底改觀(51以及51兼容)。此間雖有某些精簡指令集單片機(RISC)問世,但依然沿襲對時鐘分頻的作法。
AVR單片機的推出,徹底打破這種舊設計格局,廢除了機器周期,拋棄複雜指令計算機(CISC)追求指令完備的做法;採用精簡指令集,以字作為指令長度單位,將內容豐富的運算元與操作碼安排在一字之中(指令集中占大多數的單周期指令都是如此),取指周期短,又可預取指令,實現流水作業,故可高速執行指令。當然這種速度上的升躍,是以高可靠性為其後盾的。
AVR單片機硬體結構採取8位機與16位機的折中策略,即採用局部暫存器存堆(32個暫存器檔案)和單體高速輸入/輸出的方案(即輸入捕獲暫存器、輸出比較匹配暫存器及相應控制邏輯)。提高了指令執行速度(1Mips/MHz),克服了瓶頸現象,增強了功能;同時又減少了對外設管理的開銷,相對簡化了硬體結構,降低了成本。故AVR單片機在軟/硬體開銷、速度、性能和成本諸多方面取得了最佳化平衡,是高性價比的單片機。
AVR單片機內嵌高質量的Flash程式存儲器,擦寫方便,支持ISP和IAP,便於產品的調試、開發、生產、更新。內嵌長壽命的EEProm可長期保存關鍵數據,避免斷電丟失。片內大容量的RAM不僅能滿足一般場合的使用,同時也更有效的支持使用高級語言開發系統程式,並可像MCS-51單片機那樣擴展外部 RAM。
AVR單片機的I/O線全部帶可設定的上拉電阻、可單獨設定為輸入/輸出、可設定(初始)高阻輸入、驅動能力強(可省去功率驅動器件)等特性,使的得I/O口資源靈活、功能強大、可充分利用。
AVR單片機片內具備多種獨立的時鐘分頻器,分別供UART、I2C、SPI使用。其中與8/16位定時器配合的具有多達10 位的預分頻器,可通過軟體設定分頻係數提供多種檔次的定時時間。AVR單片機獨有的“以定時器/計數器(單)雙向計數形成三角波,再與輸出比較匹配暫存器配合,生成占空比可變、頻率可變、相位可變方波的設計方法(即脈寬調製輸出PWM)”更是令人耳目一新。
增強性的高速同/異步串口,具有硬體產生校驗碼、硬體檢測和校驗偵錯、兩級接收緩衝、波特率自動調整定位(接收時)、禁止數據幀等功能,提高了通信的可靠性,方便程式編寫,更便於組成分散式網路和實現多機通信系統的複雜套用,串口功能大大超過MCS-51/96單片機的串口,加之AVR單片機高速,中斷服務時間短,故可實現高波特率通訊。
面向位元組的高速硬體串列接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號硬體傳送與識別、地址識別、匯流排仲裁等功能,能實現主/從機的收/發全部4種組合的多機通信。SPI支持主/從機等4種組合的多機通信。
AVR單片機有自動上電復位電路、獨立的看門狗電路、低電壓檢測電路BOD,多個復位源(自動上下電復位、外部復位、看門狗復位、BOD復位),可設定的啟動後延時運行程式,增強了嵌入式系統的可靠性。
AVR單片機具有多種省電休眠模式,且可寬電壓運行(5-1.8V),抗干擾能力強,可降低一般8位機中的軟體抗干擾設計工作量和硬體的使用量。
AVR單片機技術體現了單片機集多種器件(包括FLASH程式存儲器、看門狗、EEPROM、同/異步串列口、TWI、SPI、A/D模數轉換器、定時器/計數器等)和多種功能(增強可靠性的復位系統、降低功耗抗干擾的休眠模式、品種多門類全的中斷系統、具輸入捕獲和比較匹配輸出等多樣化功能的定時器/計數器、具替換功能的I/O連線埠…… )於一身,充分體現了單片機技術的從“片自為戰”向“片上系統SoC”過渡的發展方向。
綜上所述,AVR單片機博採眾長,又具獨特技術,不愧為8位機中的佼佼者。
與眾不同
● 哈佛結構,具備1MIPS / MHz的高速運行處理能力;
● 超功能精簡指令集(RISC),具有32個通用工作暫存器,克服了如8051 MCU採用單一ACC進行處理造成的瓶頸現象;
● 快速的存取暫存器組、單周期指令系統,大大最佳化了目標代碼的大小、執行效率,部分型號FLASH非常大,特別適用於使用高級語言進行開發;
● 作輸出時與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設定為三態高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
● 片內集成多種頻率的RC振盪器、上電自動復位、看門狗、啟動延時等功能,外圍電路更加簡單,系統更加穩定可靠;
● 大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,USART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分AVR除了有ISP功能外,還有IAP功能,方便升級或銷毀應用程式
AVR系列單片機的選型
AVR單片機系列齊全,可適用於各種不同場合的要求。AVR單片機有3個檔次:
低檔Tiny系列AVR單片機: 主要有Tiny11/12/13/15/26/28等;
中檔AT90S系列AVR 單片機: 主要有AT90S1200/2313/8515/8535等; (正在淘汰或轉型到Mega中)
高檔ATmega系列AVR單片機: 主要有ATmega8/16/32/64/128( 存儲容量為8/16/32/64/128 KB)以及ATmega8515/8535等。
開發工具
AVR StudioATMEL的AVR單片機的集成環境彙編級開發調試軟體,完全免費。ATMEL AVR Studio集成開發環境(IDE),包括了AVR Assembler編譯器、AVR Studio調試功能、AVR Prog串列、並行下載功能和JTAG ICE仿真等功能。
SL ISP 雙龍公司開發的ISP下載軟體。之前的版本都比較普通,最新版本1.423引入了STK500的熔絲位界面,讓操作比較簡易,並且不容易出錯。是國產的老牌下載器。
PnoyProg 經典的ISP下載軟體。但這個版本有一個缺陷:該軟體讀出的時鐘校正值只有1MHZ的校正,其他頻率的校正值無法讀出。這是一個很好用的免費軟體。一年多沒有更新了,2005.05更新了一個新版本,支持了 tiny2313,mega8515,mega8535,但奇怪的是,仍不支持 M48/88/168.
VMLAB Vmlab是AVR系列單片機的一個純軟體模擬仿真工具。從V3.12開始,它變成了免費的版本。Vmlab還能仿真ST62系列的單片機
GCCAVR(WinAVR) GCC是Linux的唯一開發語言。就嵌入系統套用來說,幾乎所有市面上有一定市場份額的8bit以上MCU都有愛好者移植GCC在其上。
GCC的編譯器最佳化程度可以說是目前世界上民用軟體中做的最好的,完全用ANSI?C規範寫出的超過一萬行代碼的程式,還沒有任何一種編譯器產生的目標代碼能比GCC產生的代碼速度更快,同時它的bug數量卻也可以算作所有民用C編譯器中最少的
就8bit開發而言,GCC還有一個很嚴重的缺陷就是,不支持float數據類型,實際上GCC在所有環境中都把float直接定義為double,這樣,對8bit環境來說,就顯得負擔過重了。
被移植到WINDOWS平台上,整合了各個組件後的Windows版GCCAVR就是WinAVR。不是IDE,自己定製IDE的時候就要用到makefile,makefile重要作用就是:指定所用的單片機類型,指定編譯的檔案,設定編譯最佳化條件等。
ICC ICC是用來給AVR單片機編寫C語言程式的,比較專業,但需要付費。
IARAVR IAR是公認全世界最好的嵌入式開發軟體,IARAVR集成了高效的C編譯器,是目前開發代碼效率最高的開發工具,也是AVR開發工具當中唯一支持64bit數據的的開發工具,其代碼最佳化效率也是最高的,軟體售價比較昂貴,國內使用的人較少。
熱門開發
stk500下載線STK500是 ATmel 官方目前唯一推薦的下載燒錄方式。在 AVR Studio中,它保持不斷的升級與更新,可以支持、AVR晶片。下載速度比並口ISP快,並且更加穩定。
JTAG 仿真器 使用 AVR Studio 打開 *.cof 或 *.elf 仿真檔案後,就能進行仿真操作。方便開發時測試與調試。
支持仿真的晶片:ATmega16、ATmega32、ATmega64、ATmega128、ATmega323、ATmega162 、ATmega165
入門級晶片
ATmega16
推薦原因:
1. 目前的主流AVR,性價比最高的AVR晶片之一,貨源充足。零售價僅為20元,100片以上批量可降至14元。2. 16K的FLASH,滿足絕大部分的實驗需要。3. 內置豐富、強大的功能。幾乎涉及AVR晶片的所有功能。詳情請參考中文數據手冊。4. 支持JTAG仿真,不需要購買較昂貴的仿真器。5. 有直插封裝,方便實驗焊接。AVR晶片分類AVR單片機系列齊全,可適用於各種不同場合的要求。AVR單片機有3個檔次:低檔Tiny系列AVR單片機: 主要有Tiny11/12/13/15/26/28等;中檔AT90S系列AVR 單片機: 主要有AT90S1200/2313/8515/8535等; (正在淘汰或轉型到Mega中,詳情請參考:AVR宣布到期的晶片清單) 高檔ATmega系列AVR單片機: 主要有ATmega8/16/32/64/128( 存儲容量為8/16/32/64/128 KB)以及ATmega8515/8535。新的型號還有 ATmega48/88/168 (存儲容量為4/8/16K) 等。
LGT8F0XA系列
LGT8F0XA
於2012-4-6提及並發布的一種極低成本的8位通用單片機,基於RISC(精簡指令集),其指令集和匯流排結構類似於AVR單片機。
3級流水線設計,131條指令, 大多數指令執行時間為單個時鐘周期,32個8位通用工作暫存器,工作於16MHz時性能高達16MIPS,單周期的硬體乘法器(8×8),晶片可以跑到32MIPS@32Mhz 外部晶振,零售價是1.99元。..............