Atmel ATtiny87/ATtiny167:高性能8位AVR微控制器的技術(shù)剖析
一、引言
在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,對(duì)于高性能、低功耗微控制器的需求日益增長(zhǎng)。Atmel的ATtiny87/ATtiny167 8位AVR微控制器憑借其先進(jìn)的架構(gòu)和豐富的功能,成為了眾多嵌入式控制應(yīng)用的理想選擇。本文將深入剖析這款微控制器的各項(xiàng)特性、架構(gòu)以及應(yīng)用要點(diǎn),為電子工程師們提供全面的技術(shù)參考。
文件下載:ATTINY167-15XZ.pdf
二、產(chǎn)品概述
2.1 器件對(duì)比
ATtiny87和ATtiny167在硬件和軟件上相互兼容,主要區(qū)別在于內(nèi)存大小。ATtiny167擁有16K字節(jié)的閃存、512字節(jié)的EEPROM和512字節(jié)的SRAM;而ATtiny87的閃存為8K字節(jié),EEPROM和SRAM與ATtiny167相同,兩者的中斷向量大小均為2指令字/向量。
2.2 器件特性
ATtiny87/167是基于AVR增強(qiáng)型RISC架構(gòu)的低功耗CMOS 8位微控制器。它能夠在單個(gè)時(shí)鐘周期內(nèi)執(zhí)行強(qiáng)大的指令,每MHz可實(shí)現(xiàn)接近1MIPS的吞吐量,使系統(tǒng)設(shè)計(jì)師能夠在功耗和處理速度之間進(jìn)行優(yōu)化。該器件具備8K/16K字節(jié)的系統(tǒng)內(nèi)可編程閃存、512字節(jié)的EEPROM、512字節(jié)的SRAM、16個(gè)通用I/O線、32個(gè)通用工作寄存器等豐富資源,還擁有多種定時(shí)器/計(jì)數(shù)器、通用串行接口、LIN控制器、內(nèi)部和外部中斷、11通道10位ADC、可編程看門(mén)狗定時(shí)器以及三種軟件可選的節(jié)能模式。
2.3 汽車(chē)質(zhì)量等級(jí)
ATtiny87/167按照國(guó)際標(biāo)準(zhǔn)ISO - TS - 16949的最嚴(yán)格要求進(jìn)行開(kāi)發(fā)和制造。其質(zhì)量和可靠性已通過(guò)AEC - Q100 1級(jí)的常規(guī)產(chǎn)品認(rèn)證,數(shù)據(jù)手冊(cè)中包含了從廣泛特性化(溫度和電壓)結(jié)果中提取的極限值。
三、AVR CPU核心
3.1 架構(gòu)概述
AVR采用哈佛架構(gòu),擁有獨(dú)立的程序和數(shù)據(jù)存儲(chǔ)器及總線。指令執(zhí)行采用單級(jí)流水線,在執(zhí)行一條指令的同時(shí),從程序存儲(chǔ)器預(yù)取下一條指令,實(shí)現(xiàn)每個(gè)時(shí)鐘周期執(zhí)行一條指令。程序存儲(chǔ)器為系統(tǒng)內(nèi)可重編程閃存,快速訪問(wèn)寄存器文件包含32個(gè)8位通用工作寄存器,可實(shí)現(xiàn)單周期算術(shù)邏輯單元(ALU)操作。
3.2 ALU算術(shù)邏輯單元
高性能AVR ALU與32個(gè)通用工作寄存器直接連接,能在單個(gè)時(shí)鐘周期內(nèi)執(zhí)行通用寄存器之間或寄存器與立即數(shù)之間的算術(shù)運(yùn)算。ALU操作分為算術(shù)、邏輯和位功能三大類(lèi),部分架構(gòu)實(shí)現(xiàn)還提供支持有符號(hào)/無(wú)符號(hào)乘法和分?jǐn)?shù)格式的強(qiáng)大乘法器。
3.3 狀態(tài)寄存器
狀態(tài)寄存器包含最近執(zhí)行的算術(shù)指令的結(jié)果信息,可用于改變程序流程以執(zhí)行條件操作。狀態(tài)寄存器在所有ALU操作后更新,許多情況下可避免使用專(zhuān)用比較指令,從而生成更快速、更緊湊的代碼。需要注意的是,進(jìn)入中斷例程時(shí)狀態(tài)寄存器不會(huì)自動(dòng)存儲(chǔ),從中斷返回時(shí)也不會(huì)自動(dòng)恢復(fù),這需要軟件進(jìn)行處理。
3.4 通用寄存器文件
寄存器文件針對(duì)AVR增強(qiáng)型RISC指令集進(jìn)行了優(yōu)化,支持多種輸入/輸出方案。32個(gè)通用工作寄存器中的R26 - R31還可作為16位間接地址寄存器指針,用于數(shù)據(jù)空間尋址,實(shí)現(xiàn)高效的地址計(jì)算。
3.5 堆棧指針
堆棧主要用于存儲(chǔ)臨時(shí)數(shù)據(jù)、局部變量以及中斷和子程序調(diào)用后的返回地址。堆棧指針寄存器始終指向堆棧頂部,堆棧從高內(nèi)存地址向低內(nèi)存地址增長(zhǎng)。在執(zhí)行子程序調(diào)用或啟用中斷之前,程序必須定義數(shù)據(jù)SRAM中的堆棧空間,并將堆棧指針設(shè)置為指向0x60以上的位置。
3.6 指令執(zhí)行時(shí)序
AVR CPU由CPU時(shí)鐘驅(qū)動(dòng),采用哈佛架構(gòu)和快速訪問(wèn)寄存器文件概念,實(shí)現(xiàn)并行指令預(yù)取和執(zhí)行,每MHz可達(dá)到1MIPS的吞吐量。在單個(gè)時(shí)鐘周期內(nèi),可執(zhí)行使用兩個(gè)寄存器操作數(shù)的ALU操作,并將結(jié)果存儲(chǔ)回目標(biāo)寄存器。
3.7 復(fù)位和中斷處理
AVR提供多種中斷源,每個(gè)中斷和復(fù)位向量在程序內(nèi)存空間中都有單獨(dú)的程序向量。所有中斷都有單獨(dú)的使能位,必須與狀態(tài)寄存器中的全局中斷使能位一起設(shè)置為邏輯1才能啟用中斷。中斷發(fā)生時(shí),全局中斷使能I位被清除,所有中斷被禁用。中斷執(zhí)行響應(yīng)時(shí)間至少為四個(gè)時(shí)鐘周期,從中斷處理例程返回也需要四個(gè)時(shí)鐘周期。
四、AVR存儲(chǔ)器
4.1 系統(tǒng)內(nèi)可重編程閃存程序存儲(chǔ)器
ATtiny87/ATtiny167包含片上系統(tǒng)內(nèi)可重編程閃存用于程序存儲(chǔ),閃存組織為16位寬。該閃存在汽車(chē)范圍內(nèi)至少有10,000次寫(xiě)/擦除循環(huán)的耐久性,程序計(jì)數(shù)器(PC)用于尋址程序存儲(chǔ)器位置。
4.2 SRAM數(shù)據(jù)存儲(chǔ)器
ATtiny87/ATtiny167的SRAM內(nèi)存組織較為復(fù)雜,數(shù)據(jù)內(nèi)存位置可尋址寄存器文件、I/O內(nèi)存、擴(kuò)展I/O內(nèi)存和內(nèi)部數(shù)據(jù)SRAM。數(shù)據(jù)內(nèi)存支持五種不同的尋址模式,包括直接尋址、帶位移的間接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。內(nèi)部數(shù)據(jù)SRAM訪問(wèn)需要兩個(gè)clk CPU周期。
五、應(yīng)用與開(kāi)發(fā)
ATtiny87/ATtiny167支持全套程序和系統(tǒng)開(kāi)發(fā)工具,包括C編譯器、宏匯編器、程序調(diào)試器/模擬器、在線仿真器和評(píng)估套件。文檔中還包含簡(jiǎn)單的代碼示例,展示如何使用器件的各個(gè)部分,但需注意不同C編譯器在頭文件位定義和中斷處理方面可能存在差異。
六、總結(jié)
Atmel ATtiny87/ATtiny167微控制器以其高性能、低功耗、豐富的功能和靈活的架構(gòu),為嵌入式控制應(yīng)用提供了強(qiáng)大而經(jīng)濟(jì)高效的解決方案。電子工程師們?cè)谠O(shè)計(jì)過(guò)程中,可以充分利用其特性,實(shí)現(xiàn)各種復(fù)雜的控制任務(wù)。你在使用這款微控制器時(shí),遇到過(guò)哪些有趣的挑戰(zhàn)呢?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)。
-
AVR微控制器
+關(guān)注
關(guān)注
0文章
19瀏覽量
6965
發(fā)布評(píng)論請(qǐng)先 登錄
Atmel ATtiny87/ATtiny167:高性能8位AVR微控制器的技術(shù)剖析
評(píng)論