arduino筆記3:AVR微控制器 + 產生背景 + 內部架構 + 存儲器

因爲基於AVR的Arduino其實只是一個AVR微控制器的物理平臺(例如分接板),所以Arduino的電氣特徵本質上就是PCB( Printed Circuit Board)上AVR設備的問題。

當然這裏只需要簡單瞭解即可,我們用arduino做一些小項目並不需要了解這麼深入,因爲這些東邪前人都已經給我們封裝好了,直接就可以使用。

那既然都封裝好了,直接就可以用了,那是不是就不用瞭解了呢?

個人認爲最好是瞭解一下,因爲隨着學習的深入,可能會發現這些也是很重要的一部分。

目錄

(一)AVR微控制器產生背景

(二)內部架構

RISC架構

板載內存

工作電壓

(三)內部存儲器


 

通過在arduino上面編寫程序,再連接上必要的模塊就可以讓arduino動起來。在瞭解arduino語言操作之前有必要了解一下arduino的組成特點,在瞭解整體開發板結構之前,先來看看核心處理器的基本結構。

這裏將簡單介紹主要功能,包括AVR CPU、所謂的“外圍設備”功能,比如定時器、計數器、串行接口邏輯、模數轉換器(A/D)、模擬比較器、離散數字I/O端口。

AVR微控制器廣泛適用於各種配置與封裝類型,但是各種類型的8位AVR設備使用通用的CPU以及模塊化的內部架構,各個組成部件都圍繞着內部數據總線進行搭建。這種模塊化的架構方式允許設計者把不同的組合包含到設計中,並把大量功能模塊加到AVR的內部電路,以迎合特定的設計需求,生產出能夠滿足不同應用場景的產品。

(一)AVR微控制器產生背景

AVR微控制器誕生於20世紀90年代早期,起初只是挪威理工學院的一個學生項目。之後幾經輾轉賣給了Atmel公司。

AVR微控制器是高度可配置的,並且具有非常好的通用性,它們擁有幾種獨特的特性,使其不同於其他8位微控制器,比如8051或68HC05組件。AVR是一種經過改良的哈佛架構的8位RISC(精簡指令集)微控制器。在哈佛架構的只讀程序中,代碼與可修改數據(變量)分別存儲在不同的內存空間中。

AVR系列設備也是首個使用板載flash內存存儲程序的設備之一,它摒棄了其他微控制器中常見的一次性可編程ROM(只讀內存)、EPROM(可擦可編程序只讀存儲器)或EEPROM(帶電可擦寫可編程只讀存儲器)。這使得對AVR微控制器進行重新變得簡單,只需要將新的程序代碼裝入設備內部閃存即可。大部分AVR部件都帶有少量EEPROM,用於存儲操作參數等,它們在閃存發生改變時必須一直存在。

 

(二)內部架構

從內部結構看,AVR ATmega微控制器由AVR CPU、各種輸入/輸出、時序、模數轉換、計數器/定時器、串口功能以及其他各種部件功能組成,Atmel將其稱爲“外圍功能”(peripheral function)。除了I/O功能之外,不同AVR微控制器的主要差別在於板載閃存(flash memory)與I/O功能的數量。所有8位部件基本都是用相同的AVR CPU核心。下main是AVR微控制器的一些基本特性:

RISC架構

  • 131條指令
  • 32個8位通用寄存器
  • 最大時鐘頻率爲20MHz(20個MIPS操作)

板載內存

  • 快速程序存儲器(多達256kB)
  • 板載EEROM(多達4kB)
  • 內部SRAM(Static Random-Access Memory)(多達32kB)

工作電壓

  • VCC = 1.8V ~ 1.5V DC

以下是AVR CPU核心的簡單框圖,AVR CPU核心常用在8位AVR設備中。雖然這是AVR設備的通用高級框圖,但請注意,它並不代表任何特定AVR設備,描述的只是通用的AVR設備。

外圍功能由CPU通過內部高速數據總線進行控制。控制寄存器(獨立於CPU寄存器)用於配置外圍設置的操作。所有外圍共享端口引腳,分別帶有獨立的數字I/O功能。

以下是通用AVR微控制器框圖:

 

AVR製造了許多不同類型的AVR微控制器,硬件設計師可以靈活選用,以便更好地滿足自己的特定需求,並減少未用引腳的數量以及印刷電路板上的空間浪費。一些器件,比如tinyAVR,採用小型表面貼裝封裝,只帶有6個引腳。每個引腳都有一個或多個獨立的數字I/O端口,通過編程可以執行多種功能。

例如,ATTINY13-20SQ採用8引腳DIP(雙列直插式封裝)或SOIC(小外形集成電路)表面貼裝封裝。設備的6個引腳連接到一個8位的內部I/O端口(端口B),其餘兩個引腳是VCC(電源)與地。6個端口B引腳能夠被配置爲模擬輸入、振盪器輸出、中斷輸入、SPI信號或獨立的數字輸入輸出。

AVR系列爲用戶提供了很多種選擇,arduino設備選用的器件並不是唯一可用的AVR器件。還有很多可用的AVR可以選用,至於說爲什麼arduino不採用其他的控制器,還需要我們深入瞭解才能給出解釋。

 

(三)內部存儲器

所有AVR設備都包含不同數量的存儲器,這些存儲器大致可以分爲3種類型:

  • 閃存(flash):存儲程序代碼
  • SRAM(靜態隨機存取存儲器):存儲臨時數據(例如程序變量、棧)
  • EEPROM:存儲軟件變更與開關機過程中需要持續保留的數據

閃存與EEPROM能從外部加載數據,並且當AVR斷電時,它們仍然能夠保留其中的數據。而SRAM是易揮發的,當AVR斷電時,其中保存的內容就會丟失。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章