新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用ATmega8單片機設計串行編程器

        用ATmega8單片機設計串行編程器

        作者: 時間:2012-02-13 來源:網絡 收藏

        (4)軟件

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

        寫芯片下層程序將HEX文件傳送給。HEX文件的文件結構是由匯編程序的指令并用ASCII碼表示的文本文件,他由若干數據幀組成,每幀的結構順序為:數據長度、高位地址、低位地址、數據屬性、數據及校驗和。因為ASCII碼是一個4位的二進制數,每2個ASCII碼合起來才能用1 B表示,所以要先把HEX文件轉換后,再發送。發送過程中對數據的校驗和是由每一幀的校驗和與該幀的最后兩位相比較完成的。下層程序完成接收HEX文件和寫目標芯片,其過程為先接收HEX文件存儲于數據緩沖區,根據地址將數據寫入目標芯片的存儲器中,數據存放以高位地址、低位地址和數據為順序存放,所以在讀取時要嚴格按順序讀取。寫程序的流程圖如圖3所示。

        讀芯片 讀芯片的過程是通過將目標芯片中的數據送PC機,PC機收到數據后保存在一個文件里。下層用C編寫控制主機從從機讀取數據,上層用VB實現,調用MSCOMM和COMMDIAL即可完成對數據的接收及存儲。讀芯片的流程圖如圖4所示。

        在數據的傳送過程中,要絕對保證數據不丟失。通常采用2種方法:一種是延時,即寫入數據后等待一段時間再寫入下一個數據;另一種是采用數據校驗技術,就是在寫入數據后再讀數據然后判斷是否正確寫入。但是這兩種方法都存在缺陷,第1種時間太長并且不能保證寫入數據的完全正確,第2種方法當要寫入的數據和程序存儲器的原始數據相同時就判斷失效。可以把這兩種方法有機地結合起來,從而保證數據不丟失。具體的過程如下:

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

        10.jpg

        擦除芯片 對芯片擦除就是對芯片重新固化。可以通過控制編程引腳高低電平來實現,但是加控制信號時間太短的話,無法擦除干凈,如果過長就容易燒壞芯片。

        其實擦除的結果是所有地址里的數據都為0xFF,這樣也就是說可以通過向存儲器里寫0xFF操作來實現擦除,本采取這種方法就避免了因為選擇控制信號時間不合適而導致的一些問題。

        3 結 語

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 墨玉县| 嘉兴市| 黄浦区| 富川| 方正县| 阿拉善右旗| 巴中市| 定日县| 驻马店市| 定结县| 黑河市| 大竹县| 乌拉特前旗| 离岛区| 论坛| 施秉县| 龙里县| 罗平县| 株洲县| 合川市| 德江县| 成都市| 晋江市| 泊头市| 南涧| 兴业县| 遂昌县| 察隅县| 平定县| 泾阳县| 桦南县| 凤庆县| 浮梁县| 定西市| 元阳县| 宾川县| 礼泉县| 财经| 新河县| 遂川县| 新丰县|