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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ATMEGA128單片機的軟件遠(yuǎn)程升級

          ATMEGA128單片機的軟件遠(yuǎn)程升級

          作者: 時間:2013-12-28 來源:網(wǎng)絡(luò) 收藏

          ATMEGA128單片機的軟件遠(yuǎn)程升級

            圖3給出了代碼寫入主程序流程圖.當(dāng)代碼幀下載到基站1的控制后,當(dāng)檢測到幀類型為升級代碼幀“Y”時,觸發(fā)代碼升級程序,程序由應(yīng)用程序區(qū)段跳轉(zhuǎn)至bootloader程序區(qū)段.在此區(qū)段可以對應(yīng)用程序區(qū)段進(jìn)行讀、寫等操作,同時接收通過USART串口不斷傳來的代碼幀.

            在代碼開始寫入前,首先將存于EEPROM中的寫入操作開始標(biāo)志位置位,然后判斷操作控制字以檢測是要進(jìn)行哪一種操作.若是進(jìn)行寫入操作,則調(diào)用寫入操作子程序.圖4給出了代碼寫入子程序流程圖.首先將代碼寫入緩沖區(qū),將要寫入的程序代碼的頭兩個字節(jié)讀入專用于IAP操作的數(shù)據(jù)存儲寄存器R0:R1,同時Z寄存器指針的低8位指向代碼將要寫到的指定緩沖區(qū)的位置.然后將SPMCR控制寄存器的SPMEN位置1,這樣這兩個字節(jié)的代碼就被寫入到緩沖區(qū)中指定位置.寫下兩個字節(jié)時將Z寄存器指針加2,重復(fù)上述操作;依次進(jìn)行直到將代碼幀中的代碼數(shù)據(jù)全部寫入緩沖區(qū).然后判斷寫入緩沖區(qū)的代碼是否寫滿代碼計數(shù)器是否為128.緩沖區(qū)寫滿后要執(zhí)行頁擦除操作.執(zhí)行頁擦除每次可擦除1頁(128words),將要擦除的頁地址存入Z寄存器高8位,將SPMCR控制寄存器的SPMEN和PGERES位置1,擦除完畢后這兩位會被硬件清0.

            執(zhí)行頁寫操作時每次只可寫入1頁,將Z寄存器指針指向要寫入的應(yīng)用程序區(qū)段代碼頁,將SPMCR控制寄存器的SPMEN和PGWRT位置1.當(dāng)寫完后這兩位會被硬件清0同時頁緩沖區(qū)中內(nèi)容被清除.

            升級代碼傳送全部完成后,監(jiān)控終端會發(fā)出一幀操作控制字為FF的代碼幀,升級節(jié)點收到后將存于EEPROM中的寫入操作開始標(biāo)志位置位清0.退出升級操作,并由bootloader區(qū)段返回應(yīng)用程序區(qū)段,完成對該節(jié)點軟件的升級.

            2 IAP升級可靠性和保密性的考慮

            系統(tǒng)在進(jìn)行IAP升級過程中不免受到外界干擾,如系統(tǒng)突然掉電或線路故障等意外事故而導(dǎo)致代碼傳輸失敗的情況,此時要有一套可靠的軟硬件機制來保障IAP升級的正常運作,以下介紹本系統(tǒng)所采取的一些措施.

            (1)消除傳輸過程中產(chǎn)生的誤碼

            下載代碼的準(zhǔn)確性直接關(guān)系到系統(tǒng)能否正常運行.本系統(tǒng)采用大回路比對的方式.這種方式雖然使升級過程時間加長,但可以保證代碼準(zhǔn)確無誤,并且回傳的代碼幀同時可作為IAP升級的握手信號.當(dāng)然也可以采用CRC等其它方式解決.

          ATMEGA128單片機的軟件遠(yuǎn)程升級

            (2)IAP升級過程中系統(tǒng)掉電情況分析

            系統(tǒng)設(shè)計必須要避免系統(tǒng)掉電等類似情況所造成的系統(tǒng)運行故障的發(fā)生,即使發(fā)生了也應(yīng)將損失降低到最低限度.在IAP升級過程中,可通過軟件方式解決.在應(yīng)用程序區(qū)段,用第一條語句跳轉(zhuǎn)至bootloader區(qū)段,并在bootloader區(qū)段的程序中,檢驗寫碼操作開始標(biāo)志位此標(biāo)志位被寫入EEPROM中 .如未被置位,則跳轉(zhuǎn)至應(yīng)用程序區(qū)段繼續(xù)運行應(yīng)用程序區(qū)段中的程序,否則繼續(xù)守候在bootloader區(qū)段直到升級完成.

            (3)下載代碼的保密性

            為防止沒有寫碼權(quán)限的用戶對代碼的操作,實際運用中可對bootloader程序段加入權(quán)限校驗程序.根據(jù)不同的節(jié)點設(shè)置了不同的加密碼,以及特權(quán)碼(供系統(tǒng)設(shè)計或管理人員使用),并將密碼存入EEPROM中,以便隨時更改密碼.

            該方案已成功應(yīng)用于上海地鐵調(diào)度指揮系統(tǒng)中,實現(xiàn)了基于 IAP軟件的升級,并通過上述可靠性和保密性的設(shè)計,使IAP軟件升級的可靠性得到了保證.通過該技術(shù)大大提高了系統(tǒng)的可維護性,減少了產(chǎn)品開發(fā)時間,簡化了產(chǎn)品制造流程,并大大降低了現(xiàn)場升級的困難,實現(xiàn)了在不影響節(jié)點正常工作的情況下對該節(jié)點的軟件升級.


          上一頁 1 2 下一頁

          評論


          相關(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); })();