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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于CAN總線的軟件IAP技術(shù)

          基于CAN總線的軟件IAP技術(shù)

          作者: 時間:2012-08-24 來源:網(wǎng)絡(luò) 收藏

          摘要:是一種使用協(xié)議的串行通信網(wǎng)絡(luò)。Silicon Laboratories公司的單片機C8051F040是完全集成的混合信號系統(tǒng)級芯片,而且內(nèi)部集成了控制器。文中詳述了如何通過CAN實現(xiàn)對的升級,并給出具體的設(shè)計方案。
          關(guān)鍵詞:C8051F040;CAN;

          CAN是低成本、高利用率的工業(yè)控制總線,在工業(yè)控制、汽車電子等方面有十分廣泛的用途。
          C8051F040單片機內(nèi)部集成的CAN控制器是Bosch全功能CAN模塊的完全實現(xiàn),完全符合CAN規(guī)范2.0 B,其內(nèi)部還集成了64 kB系統(tǒng)編程用FLASH存儲器,這就為的更新、升級提供了可能。當產(chǎn)品安裝位置不方便拆卸或需要一次更新大量產(chǎn)品軟件的時候,使用單片機JTAG接口來實現(xiàn)幾乎是不可能的事情。本文提出一種系統(tǒng)升級的方法,也對單片機的產(chǎn)品設(shè)計具有重要的參考價值。

          1 總體思路
          將C8051F040的64KB存儲器分為三個區(qū)域:0x0000~0x5fff作為正常運行的程序存儲區(qū),0x6000~0xbfff作為從CAN總線接收到的需要更新程序的存儲區(qū),0xc000以上作為bootloader程序的存儲區(qū)。
          正常運行的程序在接收到上位機的程序更新命令后(用戶自定義通訊協(xié)議來實現(xiàn)),接收數(shù)據(jù),且將其按接收順序?qū)懭氲揭?x6000開始的區(qū)域中,直到接收完畢,然后主程序判斷接收數(shù)據(jù)是否完整、有效,如完整且有效則跳轉(zhuǎn)到bootloader程序中,由bootloader程序完成更新程序的工作。

          2 程序軟件框圖
          (1)bootloader程序
          新建立一個proiect,其中包含程序初始化、端口配置、FLASH讀/寫等函數(shù)。
          ①FLASH寫框圖(見圖1)
          ②編譯控制項
          在linker中,使用“CODE(0c000h,MAINRUN_3s(0c000h))”將程序編譯完成后的代碼放置到以0xc000開始的地址空間。

          本文引用地址:http://www.ex-cimer.com/article/154083.htm

          a.JPG


          (2)主程序
          主程序在確認更新程序的有效性后,需要跳轉(zhuǎn)到bootloader程序中運行。由于主程序和bootloader程序是采用不用的項目進行編譯的,故不能直接調(diào)用,必須采用絕對調(diào)用的方法。采用函數(shù)指針是一種可行的方式,如:
          void(*update_flash) 0=0xc000;
          //定義函數(shù)指針指向0Xc000
          (3)上位機軟件
          由于本文中節(jié)點采用CAN總線連接到同一網(wǎng)絡(luò)上,且采用CAN通訊的方式來更新程序內(nèi)容,所以,上位機也必須帶CAN控制器。
          將需要更新的程序的hex文件通過HEXBTN.EXE文件轉(zhuǎn)換成BIN文件,然后再用BIN2C.EXE將生成的BIN文件轉(zhuǎn)換成一字節(jié)數(shù)組,將其拷貝到上位機軟件中,這就是需要更新的源程序。按自定義通訊協(xié)議,將其發(fā)送到目標CPU即可。

          3 需要注意的事項
          (1)程序有效性的判斷由自定義通訊協(xié)議完成
          (2)在寫FLASH的過程中,需要關(guān)中斷
          (3)在寫FLASH的過程中,需要關(guān)中斷

          4 結(jié)束語
          文中的通過CAN總線實王見軟件的方法,完全可以使用,而且抗干擾能力較強,已成功應(yīng)用于蓄電池檢測系統(tǒng)中各個檢測模塊的程序更新。



          關(guān)鍵詞: IAP 技術(shù) 軟件 總線 CAN 基于

          評論


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