<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 儀表工具產品 > 通用儀表 > 萬用表

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      萬用表

      隨鉆儀器多單片機系統(tǒng)程序在線升級方法實現(xiàn)

      發(fā)布日期:2022-04-18 點擊率:46

      1  引言
      隨鉆測井儀器內部電路由于受到工作環(huán)境中沖擊振動因素的影響,往往采用灌膠注封的方法減震,起到保護電路板的目的。在儀器調試工作中難免需要調整各模塊控制功能和程序更新,由于電路板的編程接口被膠密封,加之隨鉆儀器特定的組裝工藝,每次更新電路程序都要消耗大量人力和時間進行拆卸安裝,效率很低。
      本文以某隨鉆測井儀器中的MSP430F2XX型單片機為例,設計了一種總線式多單片機在線升級方法,該方法利用上位機PC通過RS485總線對系統(tǒng)內多個模塊在系統(tǒng)狀態(tài)實現(xiàn)了程序升級更新,很好的解決了上述問題。

      2  MSP430F2XX在線編程方法
      MSP430F2XX系列單片機是美國TI公司生產的16位超低功耗單片機,內部具有一定容量的閃速存儲器(Flash)[1],該存儲器是一個可獨立操作的物理存儲單元。全部模塊安排在同一個線性地址空間中, 存儲器被分為多個512字節(jié)的段(信息段大小為128/64字節(jié))。各段可單獨擦除,并且在正常工作電壓下程序可對Flash進行擦寫操作,這一特點使得它特別適合在線程序升級。
      MSP430FXXX系列單片機在線升級的基本原理[2]就是對其Flash空間進行自定義劃分,并按程序指定地址順序執(zhí)行。以MSP430F2XX為例,打開Lnk430F2XX.xcl,修改此文件用于重新劃分單片機Flash存儲空間。該型號單片機存儲空間為4KB RAM,120KB+256B Flash[3]。 其原始存儲空間分布和在線編程空間分布如下圖1所示。

       


      圖1中將2100H-FFBEH的Flash空間劃分為了3部分。一小部分用于存放引導程序,一小部分為用戶虛擬中斷地址區(qū),剩下的大部分為用戶的應用程序空間。Flash空間的劃分目的是使程序的存放和程序的執(zhí)行按地址有序進行。在線編程時的底層程序執(zhí)行流程[4]如下圖2所示。

       圖2  單片機底層程序執(zhí)行流程圖

      第一次對單片機進行燒寫時須通過仿真器將包含引導程序的主程序寫入單片機Flash,通過該程序來選擇引導應用程序,引導程序需要固定在Flash的一個位置上,且保證不能被擦除。以后再次更新程序時即可通過引導程序利用串口與上位機進行交互,完成應用程序的在線更新。
      void main(void)  {
      WDTCTL = WDTPW + WDTHOLD;            
      if(ResetVectorValid()==1)  // 判斷是否已經下載過應用程序  
      {

        Application();         // 執(zhí)行應用程序  
      }  
      Update();                  // 執(zhí)行升級程序  
      }
      每次上電執(zhí)行時,單片機從引導程序開始執(zhí)行,首先
      判斷應用程序是否存在。若存在,直接執(zhí)行應用程序;從引導程序進入應用程序只需將PC值轉移到相應的應用程序起始地址位置即可。
      void Application(void)  
      {  
        asm(" mov &0xF9BE, PC;");  // 在C中調用匯編指令實現(xiàn)地址轉移  

      若不存在,則啟動升級程序。在升級程序中,首先初始化串口,然后根據(jù)協(xié)議擦除Flash中指定用于存放應用程序的存儲空間,完成后通過串口向上位機發(fā)送握手指令,通知上位機發(fā)送更新代碼,最后將上位機發(fā)送的應用程序可執(zhí)行文件寫入單片機片內 Flash的應用程序空 間,燒寫完成后執(zhí)行更新后的應用程序。
      void Update(void)  
      {  
      InitUart();                     // 初始化串口
      EraseFlash(unsigned int waddr); // 擦除指定位置Flash
      uart_send("Update Ready !");    // 發(fā)送確認
      while(1)
      {
       /*接受數(shù)據(jù),并將數(shù)據(jù)寫入Flash指定地址空間*/
      }
      }

      3  應用方案設計
      將上述方法擴展,應用于隨鉆測井儀器多模塊電路程序在線升級更新,其總體構架設計如圖3所示。圖3系統(tǒng)中,為實現(xiàn)在系統(tǒng)狀態(tài)升級更新,以MSP430F2XX單片機為核心控制器的各子模塊電路,采用RS485總線方式與外部上位機連通,連接處為一塊RS485轉換電路,該電路將PC機發(fā)出的RS232串行數(shù)據(jù)轉換成RS485數(shù)據(jù)發(fā)送到RS485總線上[5]。工作時,上位機PC軟件將各單片機的應用程序的可執(zhí)行文件通過RS485總線以不同的地址、不同的波特率發(fā)送到相應的模塊電路,實現(xiàn)各模塊的在系統(tǒng)狀態(tài)程序升級更新。

       


      圖3  RS485總線式
      多模塊在線升級更新總體構架

      4  方法實現(xiàn)
      與單單片機系統(tǒng)在線編程不同,多單片機系統(tǒng)由于存在多個子機,為使上位機程序能準確到達指定的子模塊電路,首先要為各子模塊定義各自的地址和通信波特率,并確保地址和波特率各不相同。當上位機以某一波特率發(fā)送地址位時,各子模塊分別以自己的波特率接收,然后對比地址。若接收到的地址與自己地址相同,則該子模塊準備進行程序在線更新;若不相同,則放棄更新,進入各自應用程序。
      4.1  底層程序執(zhí)行流程
      對于處于多單片機系統(tǒng)中的各子模塊,其MSP430F2XX單片機存儲空間的重新劃分與單一系統(tǒng)在線編程時相同,見圖1。但其內部底層程序執(zhí)行流程略有不同,主要體現(xiàn)在引導程序的編寫,如圖4所示。在引導程序中,首先要進行時鐘初始化,串口初始化,設定通信波特率,定時器初始化,然后開啟定時器,等待上位機發(fā)送地址。若在規(guī)定的時間內接收到上位機發(fā)送的地址,且與本子模塊地址相同,則向上位機發(fā)送確認信息,等待接收更新后的程序代碼,將其寫入用戶應用程序空間,完成程序在線升級更新;若在規(guī)定的時間內沒有接收到地址指令或接收到的地址與本機指定的地址不同,則跳過程序更新,運行原有應用程序。

       


      圖4 多單片機系統(tǒng)下
      各子模塊單片機底層程序執(zhí)行流程

      4.2  上位機軟件開發(fā)

       


      圖5  上位機界面

      上位機軟件采用LabVIEW設計開發(fā)[6],LabVIEW是NI公司推出的一種虛擬儀器軟件開發(fā)平臺,采用了編譯圖形化編程語言,軟件開發(fā)快速,靈活。上位機軟件的功能是當隨鉆測井儀器上電復位后,在規(guī)定時間內向指定子模塊發(fā)出更新程序指令(即子模塊地址),在收到該子模塊應答的確認信息后,向該子模塊發(fā)送程序代碼的可執(zhí)行文件。上位機界面如圖5所示。在操作時,首先打開PC機與RS485轉換電路相連的串口,根據(jù)協(xié)議選擇波特率和數(shù)據(jù)比特,在命令欄輸入擬更新子模塊的地址,點擊“發(fā)送”按鈕,發(fā)送子模塊地址,待收到確認信息后,選擇要更新的程序文件,點擊“升級”按鈕,就可

      以進行子模塊程序的升級更新了。更改地址和波特率,選擇相應的更新文件,即可對系統(tǒng)中其他子模塊進行程序在線升級更新。

      5  結束語
      將MSP430F2xx在線編程方法擴展到多單片機系統(tǒng)在線升級更新,并將其應用到隨鉆測井儀器在線程序更新,經實踐驗證表明,該升級方式穩(wěn)定可靠,大大減少了隨鉆測井儀器電路維護的時間成本和人工成本,在實際應用中起到了事半功倍的效果。同時,此種方法同樣適用于采用了MSP430Fxxx系列的其他領域的多單片機系統(tǒng)程序在線更新。

      參考文獻:
      [1] 潘衛(wèi)江等.MSP430單片機Flash存儲器的特性及應用[J]. 單片機與嵌入式系統(tǒng)應用,2001,(4):38-41.
      [2] 袁娟等.MSP430程序升級方式探討 [J].單片機與嵌入式系統(tǒng)應用,2006,(5):65-67.
      [3] MSP430x2xx Family User’s Guide[EB/OL].Literature Number:SLAU144H.
      [4] 張園等.MSP430單片機串口的程序升級方法[J].單片機與嵌入式系統(tǒng)應用,2011,(10):23-24.
      [5] 沈建華,楊艷琴編著.MSP430系列16位超低功耗單片機原理與實踐[M].北京航空航天大學出版社,2008.
      [6] 鄭對元等編著.精通LabVIEW虛擬儀器程序設計[M].清華大學出版社,2012.

       

       

       

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產品

      更多
      主站蜘蛛池模板: 亚洲国产成人久久综合碰 | 亚洲伊人成无码综合网| 色偷偷狠狠色综合网| 老色鬼久久综合第一| 99久久综合精品免费| 亚洲精品第一国产综合精品99 | 国产成人综合在线观看网站| 狠狠综合亚洲综合亚洲色| 狠狠色丁香婷婷综合久久来| 色婷婷六月亚洲综合香蕉| 青青青伊人色综合久久| 五月婷婷开心综合| 天天欲色成人综合网站| 狠狠色狠狠色综合| 狠狠人妻久久久久久综合| 久久久久AV综合网成人| 一本一本久久A久久综合精品| 成人综合久久综合| 久久婷婷五月综合色精品 | 国产成人亚洲综合无码精品| 婷婷综合缴情亚洲狠狠尤物 | 一本久道久久综合中文字幕| 小说区综合区首页| 亚洲色偷偷综合亚洲av78| 亚洲五月综合缴情婷婷| 天天久久影视色香综合网| 亚洲人成伊人成综合网久久| 亚洲欧洲自拍拍偷综合| 国产香蕉久久精品综合网| 久久综合久综合久久鬼色| 六月婷婷缴清综合在线| 亚洲综合久久成人69| 亚洲AV综合色区无码一二三区 | 亚洲色欲啪啪久久WWW综合网| 亚洲综合激情视频| 久久国产综合精品SWAG蓝导航| 亚洲国产成+人+综合| 国产成人综合日韩精品婷婷九月 | 亚洲国产综合在线| 中文字幕亚洲综合久久综合| 天天综合网网欲色|