<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è) > 嵌入式系統 > 設計應用 > 基于CAN總線(xiàn)連接的MEGA8遠距離在線(xiàn)升級方案

基于CAN總線(xiàn)連接的MEGA8遠距離在線(xiàn)升級方案

作者: 時(shí)間:2012-08-04 來(lái)源:網(wǎng)絡(luò ) 收藏

  ……

  ld temp,y+

  mov zl,temp ; Z指針地址賦值

  ld temp,y+

  mov zh,temp

  ldi temp,(1

  rcall Do_SPM ; 執行頁(yè)寫(xiě)入

  ……

3、BOOT程序介紹及流程圖

  Mega8單片機上電后設置冷啟動(dòng)標志,而熱啟動(dòng)入口則設置熱啟動(dòng)標志。然后初始化堆棧、串口以及必要的I/O狀態(tài)等。初始化完成后,如果BOOT程序檢測到熱啟動(dòng)標志則直接進(jìn)入燒錄狀態(tài);如果為冷啟動(dòng)標志則繼續檢測下載位是否允許(本設計通過(guò)PB0開(kāi)關(guān)選擇),如為高電平則進(jìn)入燒錄狀態(tài),如為低電平則進(jìn)入用戶(hù)程序。

  程序在設計時(shí)提供了兩個(gè)入口,一個(gè)是系統復位時(shí)的冷啟動(dòng)入口,另一個(gè)是用戶(hù)程序在運行時(shí)進(jìn)入升級程序的熱啟動(dòng)入口。BOOT程序主要包括燒錄子程序、串口發(fā)送、串口接收、引導主程序等。

  串口發(fā)送采用了查詢(xún)發(fā)送完成標志。這樣當該標志被設置時(shí),證明串口的停止位已經(jīng)發(fā)送完成,這對于通訊非常有用。燒錄程序主要使用“SPM” 指令,該指令完成對MEGA8的燒錄等功能。而讀取MEGA8的指令則使用“LPM”。由于擦除,頁(yè)填充,寫(xiě)入,讀出等基本命令單片機都已解釋完成,因此所有過(guò)程都可以由計算機端程序進(jìn)行控制。

  程序開(kāi)始時(shí),計算機端發(fā)送命令,先對單片機的頁(yè)進(jìn)行擦除,然后接收一幀數據,接收完畢后執行頁(yè)寫(xiě)入命令,寫(xiě)入完成再進(jìn)行讀出進(jìn)行校驗,如果校驗無(wú)誤再繼續寫(xiě)入下一頁(yè),直到所有頁(yè)都寫(xiě)入完畢,即完成一次下載過(guò)程。如果傳輸或頁(yè)校驗出現錯誤,程序會(huì )連續進(jìn)行5次測試,如再仍不成功,則認為本次下載失敗。主程序流程圖如圖3。

  MEGA8單片機的主程序通過(guò)CAN接口執行計算機發(fā)送的命令,并且定義了一個(gè)更新代碼的特殊命令,當接收到該命令時(shí),主程序首先關(guān)閉中斷,關(guān)閉看門(mén)狗,然后跳轉到BOOT的熱啟動(dòng)入口,再執行BOOT下載燒錄程序。下載完成后再直接跳轉到$0000地址進(jìn)入用戶(hù)程序區,這樣就完成了代碼的。為了保證該命令的可靠性,本程序設計時(shí)規定單片機必須在100ms內同時(shí)接收到兩次該命令才認為正確,超過(guò)100ms則不予認可。

4、結束語(yǔ)

  由于采用了MEGA8單片機的BOOT功能,以及高速遠距離通信,同時(shí)抗干擾性強,使得遠距離,譬如通過(guò)以太網(wǎng)、無(wú)線(xiàn)等方式,成為了可能。這對于系統調試及以后的升級維護都提供了極大的便利,這也是今后單片機和發(fā)展的一個(gè)方向。由于該部分具有通用性,所以可很容易地移植到 AVR其它MEGA系列的設計方案中。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>