<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用ATmega8單片機(jī)設(shè)計(jì)串行編程器

          用ATmega8單片機(jī)設(shè)計(jì)串行編程器

          作者: 時(shí)間:2012-02-13 來源:網(wǎng)絡(luò) 收藏

          (4)軟件

          的軟件分為兩部分,即上層程序和下層程序。上層程序在PC機(jī)上運(yùn)行,用VB編寫,來完成HEX文件的發(fā)送。下層程序用C語言編寫,可通過下載線下載到(主機(jī))中;完成接收HEX文件和寫入、讀及擦除功能。

          寫芯片下層程序?qū)EX文件傳送給。HEX文件的文件結(jié)構(gòu)是由匯編程序的指令并用ASCII碼表示的文本文件,他由若干數(shù)據(jù)幀組成,每幀的結(jié)構(gòu)順序?yàn)椋簲?shù)據(jù)長度、高位地址、低位地址、數(shù)據(jù)屬性、數(shù)據(jù)及校驗(yàn)和。因?yàn)锳SCII碼是一個(gè)4位的二進(jìn)制數(shù),每2個(gè)ASCII碼合起來才能用1 B表示,所以要先把HEX文件轉(zhuǎn)換后,再發(fā)送。發(fā)送過程中對數(shù)據(jù)的校驗(yàn)和是由每一幀的校驗(yàn)和與該幀的最后兩位相比較完成的。下層程序完成接收HEX文件和寫目標(biāo)芯片,其過程為先接收HEX文件存儲(chǔ)于數(shù)據(jù)緩沖區(qū),根據(jù)地址將數(shù)據(jù)寫入目標(biāo)芯片的存儲(chǔ)器中,數(shù)據(jù)存放以高位地址、低位地址和數(shù)據(jù)為順序存放,所以在讀取時(shí)要嚴(yán)格按順序讀取。寫程序的流程圖如圖3所示。

          讀芯片 讀芯片的過程是通過將目標(biāo)芯片中的數(shù)據(jù)送PC機(jī),PC機(jī)收到數(shù)據(jù)后保存在一個(gè)文件里。下層用C編寫控制主機(jī)從從機(jī)讀取數(shù)據(jù),上層用VB實(shí)現(xiàn),調(diào)用MSCOMM和COMMDIAL即可完成對數(shù)據(jù)的接收及存儲(chǔ)。讀芯片的流程圖如圖4所示。

          在數(shù)據(jù)的傳送過程中,要絕對保證數(shù)據(jù)不丟失。通常采用2種方法:一種是延時(shí),即寫入數(shù)據(jù)后等待一段時(shí)間再寫入下一個(gè)數(shù)據(jù);另一種是采用數(shù)據(jù)校驗(yàn)技術(shù),就是在寫入數(shù)據(jù)后再讀數(shù)據(jù)然后判斷是否正確寫入。但是這兩種方法都存在缺陷,第1種時(shí)間太長并且不能保證寫入數(shù)據(jù)的完全正確,第2種方法當(dāng)要寫入的數(shù)據(jù)和程序存儲(chǔ)器的原始數(shù)據(jù)相同時(shí)就判斷失效??梢园堰@兩種方法有機(jī)地結(jié)合起來,從而保證數(shù)據(jù)不丟失。具體的過程如下:

          當(dāng)向Flash的某一地址寫入數(shù)據(jù)時(shí),當(dāng)一個(gè)數(shù)據(jù)寫入完畢,允許寫下一個(gè)數(shù)據(jù)時(shí),讀取這一地址的數(shù)據(jù),如果讀到的數(shù)據(jù)不是0xFF(程序被擦除后,存儲(chǔ)單元里的數(shù)據(jù)都為0xFF),就再繼續(xù)接著向存儲(chǔ)器里寫數(shù)據(jù),如果讀到的數(shù)據(jù)是0xFF,就再重新寫數(shù)據(jù)再校驗(yàn)。但是當(dāng)要向存儲(chǔ)器里寫的數(shù)據(jù)正好是 0xFF時(shí),用這種方法就出錯(cuò),這時(shí)可以通過程序控制在檢驗(yàn)到讀出數(shù)據(jù)為0xFF時(shí),再連續(xù)實(shí)行2次這樣的操作,如果讀出數(shù)據(jù)還是0xFF,就采取延時(shí)的方法處理后,再接著進(jìn)行對Flash的操作。

          10.jpg

          擦除芯片 對芯片擦除就是對芯片重新固化??梢酝ㄟ^控制編程引腳高低電平來實(shí)現(xiàn),但是加控制信號(hào)時(shí)間太短的話,無法擦除干凈,如果過長就容易燒壞芯片。

          其實(shí)擦除的結(jié)果是所有地址里的數(shù)據(jù)都為0xFF,這樣也就是說可以通過向存儲(chǔ)器里寫0xFF操作來實(shí)現(xiàn)擦除,本采取這種方法就避免了因?yàn)檫x擇控制信號(hào)時(shí)間不合適而導(dǎo)致的一些問題。

          3 結(jié) 語

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

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


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();