中國煤炭科工集團常州自動化研究院 王啟峰
目前,煤礦安全監(jiān)控系統(tǒng)中的設(shè)備較多,一般會有分站、傳感器、電源等,設(shè)備功能的增加、刪除及更改絕大部分通過程序來實現(xiàn)性,即使通過硬件實現(xiàn)的也需要相應(yīng)的進行程序的更改,所以不可避免的需要對系統(tǒng)設(shè)備的程序進行升級更換。傳統(tǒng)的更新方式是由安裝人員下到井下,將需要更新固件軟件的監(jiān)控主板帶到井上進行程序更新,再返回到井下安裝到監(jiān)控點。監(jiān)控分站一般距離井上監(jiān)控中心十幾公里,采用這種傳統(tǒng)方式非常浪費時間,且在更換監(jiān)控主板期間,由于沒有監(jiān)控系統(tǒng)煤礦作業(yè)不得不停止很長一段時間[1][2],實際上可以采取地面升級好主板,直接在進行更換的方式,可以減少監(jiān)控系統(tǒng)停止運行的時間。但是,由于需要更換分站主板,仍然會導(dǎo)致控制設(shè)備的中斷。另外,對傳感器電源等設(shè)備的程序升級存在著同樣的問題。
煤礦安全監(jiān)控系統(tǒng)大部分設(shè)備均以單片機、ARM等微處理器為核心,都有ISP(in system programming)或IAP(in applicatin programming)接口,利用這兩種接口可以對嵌入式設(shè)備靈活的進行程序升級。
隨著科學(xué)技術(shù)的發(fā)展,多數(shù)公司新推出的單片機、ARM等處理器芯片均具有片內(nèi)Flash存儲器,F(xiàn)lash存儲器具有電可擦除、無需后備電源保護數(shù)據(jù)、可在線編程等特點。其中最大的特點就是在線可編程,該特點允許處理器的內(nèi)部程序可以修改Flash存儲器的內(nèi)容,利用這個特點,可以在設(shè)備運行過程中就可以對其內(nèi)部運行參數(shù)進行修改[3]。
在線編程目前有兩種實現(xiàn)方法:在系統(tǒng)編程(ISP)和在應(yīng)用編程(IAP)。ISP一般是通過單片機專用的串行編程接口對單片機內(nèi)部的Flash存儲器進行編程,而IAP技術(shù)是從結(jié)構(gòu)上將Flash存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之后將控制從一個存儲體轉(zhuǎn)向另一個。ISP的實現(xiàn)一般需要很少的外部電路輔助實現(xiàn),而IAP的實現(xiàn)更加靈活,通??衫脝纹瑱C的串行口接到計算機的RS232口,通過專門設(shè)計的固件程序來編程內(nèi)部存儲器。
在沒有應(yīng)用ISP芯片燒寫方法之前,向芯片內(nèi)寫入程序均需要把芯片從電路板上取下來,用專用的編程器寫入,故芯片不能不脫離應(yīng)用系統(tǒng)進行寫入。ISP主要針對這個問題,使用JTAG或者串口(通過特定的方式激活芯片內(nèi)部的Boot Loader,芯片便可以和PC或其它上位機通過串口通訊,在芯片不離開應(yīng)用系統(tǒng)的情況下更新其內(nèi)部的程序或設(shè)置)進行程序的寫入操作。因此,具有ISP功能的微處理器可以不使用復(fù)雜的編程器,只通過簡單的硬件電路便可以進行編程。
圖1 硬件原理框圖
圖2 數(shù)據(jù)存儲原理圖
圖3 按鍵及指示原理圖
圖4 電源及ISP接口原理圖
圖5 USB接口原理圖
IAP是用戶程序在運行過程中可對User Flash的部分區(qū)域進行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通訊接口對產(chǎn)品中的固件程序進行更新升級。通常在用戶需要實現(xiàn)IAP功能時,即用戶程序運行中作自身的更新操作,需要在設(shè)計固件程序時編寫兩個項目代碼,第一部分項目代碼不執(zhí)行正常的功能操作,只是通過某種通訊接口(如USB、UART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更改;第二個項目代碼完成產(chǎn)品的所有正常功能。這兩部分項目代碼都同時燒錄在User Flash中,當芯片上電后,首先是第一部分代碼開始運行,正常運行后作出如下操作:1)檢查是否需要對第二部分代碼進行更新;2)如果不需要更新則轉(zhuǎn)到4),如果需要更新則繼續(xù)3);3)執(zhí)行更新操作;4)跳轉(zhuǎn)到第二部分代碼執(zhí)行。
圖6 下載器主程序流程圖
圖7 軟件基于VC++設(shè)計界面圖
第一部分代碼必須通過JTAG、ISP等手段燒寫到芯片中;第二部分代碼可以使用第一部分代碼IAP功能燒入,也可以和第一部分代碼一起燒入,之后需要更新程序時再通過第一部分IAP代碼更新。
ISP一般是固化到芯片中的,在設(shè)計中只要加入相關(guān)電路,通過某種觸發(fā)方式即可燒寫程序。在生產(chǎn)過程中,ISP功能是不可或缺的。但假如系統(tǒng)或者模塊在一個非常難拆的位置或者是不可接觸的位置(如藏于車身中的車載電子零部件),如果要對其升級,ISP不一定能夠適用。這時需要運用IAP,編寫適合的燒錄程序,如使用CAN網(wǎng)絡(luò)通信的車載電子一般都是通過CAN網(wǎng)絡(luò)燒寫升級程序的。
如果監(jiān)控系統(tǒng)設(shè)備,使用RS-485總線、CAN總線或以太網(wǎng)等通信方式與計算機可以通訊,則可以利用其IAP接口實現(xiàn)設(shè)備程序的遠程升級?!睹旱V安全監(jiān)控分站遠程升級方案》及《礦用監(jiān)控分站程序遠程在線更新設(shè)計》等參考文獻中均對該方法進行了描述與設(shè)計,以下將就該方法使用的場合作以解釋。
正如文獻1中所描述的,在通訊波特率設(shè)置為2400bps時,86KB的程序代碼下載時間在12分鐘左右。第一,該情況為實驗室下的測試結(jié)果;第二,為了保證通訊距離的增加,部分系統(tǒng)的通訊波特率會調(diào)協(xié)到1200bps;第三,隨著功能的增加,程序代碼的大小會越來越大;第四,正常的監(jiān)控系統(tǒng)巡檢時間通訊通道不可能完全用來程序代碼的升級。所以,在復(fù)雜的通訊環(huán)境、更低的波特率、更大的程序代碼以及合理的通道安排的情況下,程序升級所占用的時間會大大增加。按照文獻1的實驗結(jié)果,在波特率為1200bps、代碼86KB大小、10%的帶寬用來升級代碼,則設(shè)備完成程序升級所占用的時間約為12×2×10=240分鐘。如此長的時間內(nèi),存在著設(shè)備由于電源原因而重啟的情況,那么程序升級時間將會更加漫長。
所以,將遠程升級用于具有低速率通訊接口設(shè)備的可行性不高,但是,將其應(yīng)用于具有以太網(wǎng)等高速通訊接口的設(shè)備不失為一個好方案。
對于不具備遠程升級條件的系統(tǒng)設(shè)備,需要在線的就地升級,利用MCU、ARM等芯片提供的ISP功能可以完成程序的升級。此升級方法,除了設(shè)備上的硬件支持外,需要提供用于升級程序的接口設(shè)備,需要安裝了配套軟件的計算機,以上兩點導(dǎo)致了不能對井下現(xiàn)場使用的設(shè)備進行快速靈活的升級。與在線進行程序升級相比,離線的程序下載器在將會更加適合煤礦現(xiàn)場。
處理器,由于ISP使用了設(shè)備的串口,下載器下載程序的過程即為下載通過串口與設(shè)備通訊的過程,為了下載器與設(shè)備的順利通訊,下載器的處理器需要具有UART接口,同時具有連接程序存儲的FLASH的接口,故選用體積小成本較低的51系列單片機C8051F430。由于需要存儲多種設(shè)備的程序代碼,F(xiàn)LASH芯片選用容量相對較大的串行存儲芯片AT45DB321,該芯片具有32M bit的容量、SOIC8的小型 封裝。為了方便、快速的將程序?qū)懭氲诫x線下載器,下載器與計算機的接口選用了USB接口,接口芯片選用 CH372。其硬件原理框圖及各部分原理圖設(shè)計如圖1~圖5所示[4][5]。
為了達到自動下載的目的,下載器需要對目標設(shè)備進行自動識別,以完成設(shè)備對應(yīng)程序的選擇。下載器對設(shè)備的自動識別,可以有效的保證,下載器里的程序不會被下載到抄襲或仿制的設(shè)備里。下載器對設(shè)備的自動識別,通過程序下載前下載器與設(shè)備的通訊驗證完成,當設(shè)備處理器的FLASH里沒有下載過正確的程序時,設(shè)備與下載器無法通訊,即無法完成自動識別,則下載器里的程序?qū)⒉粫螺d到設(shè)備里。為了能夠在特殊情況下,對沒有正確程序的設(shè)備進行升級,下載器同時設(shè)計手動升級程序功能,當上位機軟件配置該下載器具有手動下載功能時,可能通過按鍵及指示燈的配合,手動完成設(shè)備的程序升級。下載器軟件流程圖如圖6所示。
上位機軟件主要通過USB接口與下載器的通訊,對下載器進行查詢及配置,可查詢及配置的內(nèi)容主要包括:下載器是否有手動下載功能,設(shè)備的種類及其對應(yīng)的程序,可下載的次數(shù),ISP下載的波特率,下載器的登錄密碼等。軟件基于VC++設(shè)計,其界面如圖7所示。
本文分析了ISP及IAP兩種芯片F(xiàn)lash燒寫方式的特點以及其使用場合,同時根據(jù)煤礦監(jiān)控系統(tǒng)設(shè)備工作的特點,以及其程序升級常用方法,討論了兩種Flash燒寫方法所適用的設(shè)備,總結(jié)出遠程升級和就地升級兩種升級方法。針對就地升級方法設(shè)計了離線編程器,并設(shè)計了配套的上位機軟件,目前該離線編程器已經(jīng)在現(xiàn)場多處使用,提高了監(jiān)控系統(tǒng)設(shè)備程序升級的效率。
[1]方崇全,郭江濤,湯朝明.礦用監(jiān)控分站程序遠程在線更新設(shè)計[J].礦業(yè)安全與環(huán)保,2009(4):16-18,21.
[2]孫鋼,朱忠常,景振興.煤礦安全監(jiān)控分站遠程升級方案[J].工礦自動化,2012(3):58-60.
[3]梁睿,薛雪,王崇林,張棟梁.ISP技術(shù)在AT89SX單片機中的應(yīng)用[J].工礦自動化,2005(2):47-48.
[4]張志柏,秦益霖.存儲器AT45DB321C在“數(shù)字傾斜讀數(shù)儀”中的應(yīng)用[J].常州信息職業(yè)技術(shù)學(xué)院學(xué)報,2008(3):13-15.
[5]李蘭,寧永海.基于CH372的USB數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機信息,2007(34):76-77,69.