<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)Tmega8單片機的串行編程器

一種基于A(yíng)Tmega8單片機的串行編程器

作者: 時(shí)間:2013-12-09 來(lái)源:網(wǎng)絡(luò ) 收藏
通常進(jìn)行實(shí)驗和開(kāi)發(fā),編程器是必不可少的。仿真、調試完的程序要借助編程器寫(xiě)入的存儲器中,隨著(zhù)技術(shù)的發(fā)展出現了MTP(可多次編程)存儲器技術(shù)和ISP(在系統可編程)技術(shù),這樣就可以省去昂貴的仿真器,只要通過(guò)計算機接口和一條串行下載線(xiàn)就可直接在目標芯片上編程。就是一種具有MTP與ISP功能的單片機,他也是AVR單片機中價(jià)格性能比最高的單片機,因此研究他的串行編程特性對利用他的上述功能來(lái)開(kāi)發(fā)應用單片機有很高的實(shí)用價(jià)值。

1 的體系結構與主要性能特點(diǎn)
是ATMEL公司在2002年推出的一款新型的AVR高檔單片機,他的芯片內部集成了較大容量的存儲器和豐富強大的硬件接口電路,具備AVR高檔單片機MEGE系列的全部性能和特點(diǎn)。但由于采用了小引腳封裝(為 DIP28和TQFP/MLF32),所以?xún)r(jià)格僅和低檔單片機相當,再加上AVR單片機的系統內在可編程特性,使得無(wú)需購買(mǎi)昂貴的仿真器,只需要一條具有編程器功能的串行下載線(xiàn)就可以進(jìn)行單片機嵌入式系統的設計和開(kāi)發(fā)。
ATmega8是一款采用低功耗CMOS工藝生產(chǎn)的基于A(yíng)VR RISC(精簡(jiǎn)指令集)結構的8 b單片機。AVR單片機的核心是將32個(gè)工作寄存器和豐富的指令集連接在一起,所有的工作寄存器都與ALU(算術(shù)邏輯單元)直接相連,實(shí)現了在一個(gè)時(shí)鐘周期內執行的一條指令同時(shí)訪(fǎng)問(wèn)(讀寫(xiě))2個(gè)獨立寄存器的操作。這種結構提高了代碼效率,使得大部分指令的執行時(shí)間僅為一個(gè)時(shí)鐘周期。因此,ATmega8可以達到將近1 MIPS/MHz的性能,運行速度比普通的單片機高出10倍。
ATmega8的主要性能特點(diǎn)如下:
(1)高性能、低功耗的8 b AVR微控制器,先進(jìn)的RISC精簡(jiǎn)指令集結構,130條功能強大的指令,大多數為單周期指令,32個(gè)8 b的通用工作寄存器,工作在16 MHz時(shí)具有16 MIPS的性能。
(2)片內集成了較大容量的非易失性程序和數據存儲器
8 kB的Flash程序存儲器,可擦寫(xiě)次數大于10 000次;512 B的E2RROM,擦寫(xiě)次數至少100 000次;支持可在線(xiàn)編程(ISP)和可應用自編程(IAP);可編程的程序加密位。
(3)豐富強大的外部接口性能
3個(gè)PWM通道,可實(shí)現任意16 b以?xún)鹊?、相位和頻率可調的PWM脈寬調制輸出;6通道A/D轉換;一個(gè)I2C的串行接口,一個(gè)可編程的USART接口;一個(gè)支持主/從、收/發(fā)的SPI同步串行接口;2個(gè)帶預分頻的8 b定時(shí)/計數器,1個(gè)帶預分頻的16 b定時(shí)/計數(4)特殊的微控制器性能
可控制的上電復位延時(shí)電路和可編程的欠電壓檢測電路;內部和外部共18個(gè)中斷源;5種休眠模式(空閑,ADC噪聲抑制,省電,掉電,待命)。
2 的設計
從上面的描述我們就對ATmega8有了一個(gè)總體的認識,ATmega8的在線(xiàn)可編程功能為單片機的設計和開(kāi)發(fā)提供了極大的方便,工程人員可以編譯完程序后直接通過(guò)編程器將程序寫(xiě)入Flash存儲器(而無(wú)需昂貴的仿真器)。并且可以自己來(lái)設計編程器,下面就以ATmega8作為處理芯片來(lái)設計一個(gè),也通過(guò)這個(gè)應用的例子來(lái)介紹一下ATmega8的具體應用。
(1)硬件電路,的電路原理圖如圖1所示。
從PC機的串行口通過(guò)RS232引出3條線(xiàn):RXD,TXD,GND用于PC機與ATmega8的通信。最右端的5條線(xiàn)分別與要寫(xiě)入程序的芯片相連。
(2)串行編程器的工作原理
ATmega8的同步串行接口SPI允許在幾個(gè)AVR單片機之間,以與SPI接口協(xié)議兼容的方式進(jìn)行高速的同步數據傳輸。因此可以把串行編程器的處理芯片設計為主機,目標芯片就作為從機,這樣就可以實(shí)現2個(gè)單片機的數據傳輸,從而實(shí)現程序的燒寫(xiě)過(guò)程。數據由主機發(fā)送從機接收。向主機的SPI數據寄存器 SPDR裝入待發(fā)送數據的寫(xiě)操作,自動(dòng)啟動(dòng)SPI時(shí)鐘發(fā)生器,于是該數據便在時(shí)鐘脈沖的控制下開(kāi)始逐位左移或右移。若設定最高位MSB先傳送,主機的 MSB將自MOSI(PB3)引腳輸出,經(jīng)從機的MOSI引腳進(jìn)入其8 b移位寄存器中,占據最低位LSB的位置。同時(shí),從機的MSB由MISO(PB4)引腳移出,通過(guò)主機的MISO引腳進(jìn)入到主機移位寄存器中,作為他的 LSB位。這樣8個(gè)時(shí)鐘脈沖后,主機SPI移位寄存器中的內容就完全送給了從機。圖2為主從機通信流程圖?! ?BR> (3)具體的工作過(guò)程
把圖2的ATmega8設為主機,PB3(MOSI),PB4(MISO),PB6(SCK),PB1管腳用于控制對目標芯片的寫(xiě)入。PB1引腳控制單片機的Reset,只有當Reset被拉為低時(shí)單片機才進(jìn)入串行編程模式。從機的所有I/O引腳都處于輸入狀態(tài)且上拉電阻被禁止。PB6(SCK)引腳用于提供串行編程的時(shí)鐘,他在上電期間必須為低電平,這樣才能保證主機芯片和從機芯片的87時(shí)鐘同步,因此上電期間給Reset一個(gè)正脈沖(至少2個(gè) XTAL1時(shí)鐘周期)以保證SCK的低電平,這可以通過(guò)軟件來(lái)實(shí)現。PB3(MOSI)引腳用于將程序送入從機中。數據在SCK的上升沿被輸入,從機的 Reset被拉低后,總是將他的MOSI設為上拉禁止的輸入狀態(tài),用于從主機接收數據。當從從機中讀取數據時(shí),數據在SCK的下降沿輸出。設計硬件時(shí)要保證從機的Reset,SCK,MOSI,MISO這4根線(xiàn)能被編程器自由地置高置低,否則不可能進(jìn)行在片編程。具體的命令字格格式可參照ATmega8 manual中所給出的串行編程命令表。
(4)軟件設計
編程器的軟件分為兩部分,即上層程序和下層程序。上層程序在PC機上運行,用VB編寫(xiě),來(lái)完成HEX文件的發(fā)送。下層程序用C語(yǔ)言編寫(xiě),可通過(guò)下載線(xiàn)下載到ATmega8(主機)中;完成接收HEX文件和寫(xiě)入、讀及擦除功能。
寫(xiě)芯片 下層程序將HEX文件傳送給ATmega8。HEX文件的文件結構是由匯編程序的指令并用ASCII碼表示的文本文件,他由若干數據幀組成,每幀的結構順序為:數據長(cháng)度、高位地址、低位地址、數據屬性、數據及校驗和。因為ASCII碼是一個(gè)4位的二進(jìn)制數,每2個(gè)ASCII碼合起來(lái)才能用1 B表示,所以要先把HEX文件轉換后,再發(fā)送。發(fā)送過(guò)程中對數據的校驗和是由每一幀的校驗和與該幀的最后兩位相比較完成的。下層程序完成接收HEX文件和寫(xiě)目標芯片,其過(guò)程為先接收HEX文件存儲于數據緩沖區,根據地址將數據寫(xiě)入目標芯片的存儲器中,數據存放以高位地址、低位地址和數據為順序存放,所以在讀取時(shí)要嚴格按順序讀取。寫(xiě)程序的流程圖如圖3所示。
讀芯片 讀芯片的過(guò)程是通過(guò)編程器將目標芯片中的數據送PC機,PC機收到數據后保存在一個(gè)文件里。下層用C編寫(xiě)控制主機從從機讀取數據,上層用VB實(shí)現,調用MSCOMM和COMMDIAL即可完成對數據的接收及存儲。讀芯片的流程圖如圖4所示。
在數據的傳送過(guò)程中,要絕對保證數據不丟失。通常采用2種方法:一種是延時(shí),即寫(xiě)入數據后等待一段時(shí)間再寫(xiě)入下一個(gè)數據;另一種是采用數據校驗技術(shù),就是在寫(xiě)入數據后再讀數據然后判斷是否正確寫(xiě)入。但是這兩種方法都存在缺陷,第1種時(shí)間太長(cháng)并且不能保證寫(xiě)入數據的完全正確,第2種方法當要寫(xiě)入的數據和程序存儲器的原始數據相同時(shí)就判斷失效??梢园堰@兩種方法有機地結合起來(lái),從而保證數據不丟失。具體的過(guò)程如下:
當向Flash的某一地址寫(xiě)入數據時(shí),當一個(gè)數據寫(xiě)入完畢,允許寫(xiě)下一個(gè)數據時(shí),讀取這一地址的數據,如果讀到的數據不是0xFF(程序被擦除后,存儲單元里的數據都為0xFF),就再繼續接著(zhù)向存儲器里寫(xiě)數據,如果讀到的數據是0xFF,就再重新寫(xiě)數據再校驗。但是當要向存儲器里寫(xiě)的數據正好是 0xFF時(shí),用這種方法就出錯,這時(shí)可以通過(guò)程序控制在檢驗到讀出數據為0xFF時(shí),再連續實(shí)行2次這樣的操作,如果讀出數據還是0xFF,就采取延時(shí)的方法處理后,再接著(zhù)進(jìn)行對Flash的操作。

擦除芯片 對芯片擦除就是對芯片重新固化??梢酝ㄟ^(guò)控制編程引腳高低電平來(lái)實(shí)現,但是加控制信號時(shí)間太短的話(huà),無(wú)法擦除干凈,如果過(guò)長(cháng)就容易燒壞芯片。
其實(shí)擦除的結果是所有地址里的數據都為0xFF,這樣也就是說(shuō)可以通過(guò)向存儲器里寫(xiě)0xFF操作來(lái)實(shí)現擦除,本設計采取這種方法就避免了因為選擇控制信號時(shí)間不合適而導致的一些問(wèn)題。

3 結 語(yǔ)
本文介紹了ATmega8這款AVR高檔單片機,并論述了他的串行下載特性和串行編程器的工作原理;同時(shí)提出了新的串行編程數據校驗方法和程序擦除方法。MTP(可多次編程)和ISP(在系統編程)技術(shù)給單片機應用系統開(kāi)發(fā)提供了很大的方便和靈活性,利用這兩種技術(shù)可以直接在電路板上反復進(jìn)行下載調試,甚至可以實(shí)現遠程在線(xiàn)升級,因此對單片機編程特性的研究有很高的實(shí)用價(jià)值。

參考文獻

[1] 馬潮,詹衛前,耿德根.ATmega8原理及應用手冊[M].北京:清華大學(xué)出版社,2003.
[2] 李勛,耿德根.AVR單片機應用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.
[3] 石東海.單片機數據通信技術(shù)從入門(mén)到精通[M].西安:西安電子科技大學(xué)出版社,2002.
[4] 張俊濤.具有ISP功能的單片AT89S8252[J].現代電子技術(shù),2001,(8).
[5] 馬書(shū)雷.AVR單片機編程特性的應用研究[J].微型機與應用,2000,(9).

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


存儲器相關(guān)文章:存儲器原理


負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
脈寬調制相關(guān)文章:脈寬調制原理
上拉電阻相關(guān)文章:上拉電阻原理


關(guān)鍵詞: ATmega8 單片機 串行編程器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>