機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
AVR單片機(jī)基礎(chǔ)知識
AVR單片機(jī)基礎(chǔ)知識
 更新時間:2009-11-25 16:22:05  點(diǎn)擊數(shù):0
【字體: 字體顏色
AVR單片機(jī)特點(diǎn)

每種MCU都有自身的優(yōu)點(diǎn)與缺點(diǎn),與其它8-bit MCU相比,AVR 8-bit MCU最大的特點(diǎn)是:
● 哈佛結(jié)構(gòu),具備1MIPS / MHz的高速運(yùn)行處理能力;
● 超功能精簡指令集(RISC),具有32個通用工作寄存器,克服了如8051 MCU采用單一ACC進(jìn)行處理造成的瓶頸現(xiàn)象;
● 快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標(biāo)代碼的大小、執(zhí)行效率,部分型號FLASH非常大,特別適用于使用高級語言進(jìn)行開發(fā);
● 作輸出時與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設(shè)置為三態(tài)高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
● 片內(nèi)集成多種頻率的RC振蕩器、上電自動復(fù)位、看門狗、啟動延時等功能,外圍電路更加簡單,系統(tǒng)更加穩(wěn)定可靠;
● 大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分AVR除了有ISP功能外,還有IAP功能,方便升級或銷毀應(yīng)用程序。
● 性價比高。

開發(fā)AVR單片機(jī),需要哪些編譯器、調(diào)試器?


AVR的仿真方式
一般來說,AVR有三種仿真方式:
(1)JTAG仿真方式,適用于具備JTAG仿真接口的AVR。如:Atmega16/32,Atmega64/128等。

JTAG是IEEE的標(biāo)準(zhǔn)規(guī)范, 通過這個標(biāo)準(zhǔn),可對具有JTAG接口的芯片的硬件電路進(jìn)行邊界掃描和故障檢測。部分AVR型號帶JTAG仿真調(diào)試接口,可使用JTAG仿真方式。

(2)debugWIRE仿真方式,適用于具備debugWIRE仿真接口的AVR。如:Attiny13/24/2313,Atmega48/88/168等。

debugWIRE 是用以降低成本和調(diào)試引腳的開銷,ATMEL在AVR器件上使用的新的調(diào)試接口:debugWIRE,與JTAG相比其主要區(qū)別在于僅使用一根信號線(RESET),即可完成調(diào)試信息的交互,達(dá)到控制程序流向,執(zhí)行指令以及編程熔絲位的功能。它的總的連接圖如下:

這里的 RESET 信號被用于傳遞調(diào)試信息。
(3)采用仿真頭替代AVR MCU仿真方式,適用于不帶仿真接口的AVR。如Attiny26,Atmega8,Atmega8515等。

AVR的燒寫方式

一般來說,AVR的編程方式有:
(1)串行編程(即ISP編程)

ISP是In System Program的縮寫,意思是在系統(tǒng)編程。目前的AVR芯片基本上都具備ISP接口,可通過ISP接口進(jìn)行編程。它一共使用了兩條電源線:VCC、GND,三條信號線:SCK、MOSI、MISO,以及復(fù)位線:RESET。由于僅僅使用了幾條數(shù)據(jù)線,所以我們亦常將其稱為串行編程。值得注意的是,雖然下載器端使用的信號線名為SCK、MOSI、MISO,但AVR MCU的信號端不一定是名為SCK、MOSI、MISO。

AVR的串行編程方式有很多種,如:
(1)STK200/STK300:并口下載器多采用該燒寫方式,最早期的一種燒寫方式,支持型號少,燒寫速度低,不支持AVR Studio。
(2)STK500:ATMEL最推薦的編程方式,由于采用ATMEL官方的STK500固件,使得它可燒寫全系列AVR(若對固件進(jìn)行升級亦可支持未來的AVR型號),燒寫速度非?,支持AVR Studio。
(3)AVRISP(準(zhǔn)STK500):由于采用ATMEL官方的STK500固件,使得它可燒寫大部分AVR(若對固件進(jìn)行升級亦可支持未來的AVR型號),燒寫速度非?,支持AVR Studio。
(4)AVRISPmkII:由于采用ATMEL官方的AVRISPmkII固件,使得它可燒寫大部分AVR(若對固件進(jìn)行升級亦可支持未來的AVR型號),燒寫速度非?,支持AVR Studio。
(5)當(dāng)然還有其它的ISP方式,但已經(jīng)那些均不是最為常見的串行編程方式,在此不在作一一介紹。

(2)高壓/并行編程
AVR的高壓編程/并行編程,實(shí)際上是更早出現(xiàn)的編程方法,它功能強(qiáng)大,但需要:

1)連接較多的引腳(故稱“并行編程”)
2)使用12V電壓(故稱“高壓編程”)

聯(lián)合起來一般叫高壓/并行編程。實(shí)際上,有些編程是高壓/串行編程,如Attiny13。(Attiny13端口非常少)高壓/并行編程(理論上)能修復(fù)任何熔絲位,例如:
1)Attiny13/24/2313、Atmega8/48/88/168等AVR的RESET端口與IO端口是共用的,由于這類AVR的引腳一般較少,(如Attiny13僅有6個IO口),經(jīng)常出現(xiàn)IO不夠用的情況,需要將RESET端口設(shè)置為IO端口使用,然而,一旦將RESET設(shè)置為IO,便無法再進(jìn)行ISP編程了,更無法使用ISP恢復(fù)RESET功能,因?yàn)镮SP編程需要RESET功能。然而,這種情況下,使用高壓/并行編程,可以恢復(fù)RESET功能,(注意:RESET端口與   IO端口是共用的AVR,具備debugWIRE功能,“dW”熔絲位必須為啟動狀態(tài))因?yàn)楦邏?并行編程不需要RESET功能。
2)當(dāng)設(shè)置錯了熔絲位導(dǎo)致芯片鎖死,這種情況下,使用高壓/并行編程,可恢復(fù)熔絲位。

(3)JTAG編程

JTAG燒寫方式僅適用于帶JTAG

接口的AVR,另外,JTAG對比ISP燒寫方式主要有個缺點(diǎn):必須占用JTAG對應(yīng)的IO端口。例如,ATMEGA16必須占用PC2-PC5這幾個端口。然而,有時候,缺點(diǎn)也是優(yōu)點(diǎn),因?yàn)閷τ贗O夠用的AVR來說,在產(chǎn)品開發(fā)過程,可以用JTAG接口來仿真調(diào)試,產(chǎn)品量產(chǎn)后,產(chǎn)品板預(yù)留的JTAG接口還可以用來燒寫程序。


(4)IAP編程

AVR MCU的ISP功能和debugWIRE功能是互斥的,也就是說,使能了AVR MCU的 debugWIRE 功能后ISP功能就無法使用,使能了ISP功能后debugWIRE功能就無法使用。
那么,怎樣確定AVR的RESET引腳 為ISP功能使用還是debugWIRE功能使用呢?
在具備debugWIRE 的AVR 器件中,有一個可編程的熔絲位DWEN,如果該熔絲被編程(且lockbits未被編程),則debugWIRE 功能被啟用,AVR的RESET 引腳將被作為debugWIRE 功能使用,可與調(diào)試器進(jìn)行debugWIRE仿真通信(此時,ISP 功能被禁用)。AVR芯片出廠時,DWEN熔絲位是未編程的,也即是說ISP 功能是使能的,debugWIRE 被禁用。使用ISP 功能時,通過調(diào)試器對debugWIRE熔絲進(jìn)行編程使能,可啟用debugWIRE功能;使用debugWIRE功能時,對通過調(diào)試器對 debugWIRE熔絲禁止,可使能ISP 功能。

編程語言建議使用C而不是匯編開發(fā)AVR

首先說說C的優(yōu)點(diǎn)。
1、直觀,可讀性強(qiáng):這點(diǎn)很重要。對于一個產(chǎn)品,周期是很長的,即使出第一臺產(chǎn)品之后,還有很長的維護(hù)時間。這中間維護(hù)人員可能經(jīng)常變動,如果可讀性強(qiáng),將給維護(hù)工作省下很大的成本。即使是在開發(fā),可讀性強(qiáng)的程序也便于查錯。
2、模塊化可以做的很好:這點(diǎn)也是很重要的。模塊化做得好,當(dāng)然程序得重用性就高。對于公司來說,這一點(diǎn)是關(guān)系到公司長遠(yuǎn)發(fā)展的。程序可以重用,說明下一次開發(fā)的投入就可以減少,時間也可以加快,多好的事呀。
還有很多有點(diǎn),當(dāng)然也就是高級語言相對于匯編語言的優(yōu)點(diǎn),這里就不一一列舉了。
再來看看匯編的優(yōu)點(diǎn):應(yīng)該來說,匯編語言操作硬件直觀,對于硬件非常熟悉的人來說,直接操作很方便。另外可能就是很多人說的效率要高了。
針對以上兩點(diǎn)我來說說,首先“匯編語言操作硬件直觀”,這是在代碼編寫階段,對于整個產(chǎn)品周期來說,應(yīng)該是要避免使用匯編語言的,這個在C語言的優(yōu)點(diǎn)中已經(jīng)說明。對于第二點(diǎn),效率問題,目前C語言的編譯器優(yōu)化也做的很好,對于一個匯編不是很熟練的來說,C編出來的程序應(yīng)該不會效率比匯編低。當(dāng)然這樣就對開發(fā)人員的要求降低了很多,人員的限制也就沒有那么嚴(yán)格。另外是否真的是效率問題呢。我覺得應(yīng)該是一個整體效率和局部效率的均衡問題。需要提高的是整體的效率。一個好的軟件架構(gòu),遠(yuǎn)遠(yuǎn)比一個好的函數(shù)效率要高的多。因此主要的精力應(yīng)該放在軟件的架構(gòu)上。另外現(xiàn)在CPU的速度不停的往上提,CPU越來越快,這點(diǎn)應(yīng)該也可以彌補(bǔ)程序的效率吧。
當(dāng)然,我的意思不是不學(xué)習(xí)匯編。匯編對于熟悉硬件有很大的好處,應(yīng)此匯編語言在學(xué)習(xí)初期一定是要學(xué)習(xí)的。在基本的硬件熟悉之后,就可以轉(zhuǎn)向C了。
  • 上一篇: AVR單片機(jī)基本硬件設(shè)計
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1