前言:想要寫出一篇引人入勝的文章?我們特意為您整理了輸送機(jī)控制器在線程序升級(jí)方案設(shè)計(jì)范文,希望能給你帶來靈感和參考,敬請(qǐng)閱讀。
摘要:針對(duì)目前煤礦井下用帶式輸送機(jī)控制器現(xiàn)場(chǎng)程序升級(jí)不方便、操作繁瑣等問題,提出了一種基于IAP和CAN總線的在線遠(yuǎn)程程序升級(jí)方案。建立了基于CAN總線的網(wǎng)絡(luò)結(jié)構(gòu),首先由防爆計(jì)算機(jī)將程序文件通過CAN總線下傳到帶式輸送機(jī)控制器,再通過控制器內(nèi)部的Bootloder啟動(dòng)程序?qū)⒛繕?biāo)代碼寫入指定的存儲(chǔ)器區(qū)域。介紹了升級(jí)網(wǎng)絡(luò)的整體結(jié)構(gòu);分別介紹了升級(jí)程序結(jié)構(gòu)以及流程;通過實(shí)驗(yàn)驗(yàn)證功能完全可行,為礦井同類型控制器的程序更新提供了思路。
關(guān)鍵詞:IAP;帶式輸送機(jī)控制器;CAN
0引言
隨著自動(dòng)控制技術(shù)的不斷發(fā)展,煤礦井下以單片機(jī)為CPU的帶式輸送機(jī)控制器越來越多。隨著礦井下工況的不斷變化或者是使用環(huán)境的不同,需要對(duì)礦井帶式輸送機(jī)控制器進(jìn)行程序改進(jìn)。但是礦井下環(huán)境復(fù)雜,所有的控制器都安裝在防爆外殼內(nèi)。井下設(shè)備在上電時(shí)是不允許開啟外殼的,所以傳統(tǒng)的程序升級(jí)方式例如JTAG和ISP等是無法在井下使用的,因此采用在線的方式對(duì)程序進(jìn)行升級(jí)。針對(duì)此問題本文設(shè)計(jì)了一種利用CAN總線遠(yuǎn)程對(duì)嵌入式處理器進(jìn)行程序升級(jí)的方法。整體的程序更新流程是將程序存儲(chǔ)到U盤中,通過防爆計(jì)算機(jī)將程序讀出然后通過CAN總線遠(yuǎn)程傳輸?shù)侥繕?biāo)CPU上,CPU在接收到程序數(shù)據(jù)后利用自帶的IAP功能程序?qū)⒛繕?biāo)程序存儲(chǔ)到指定位置,然后啟動(dòng)目標(biāo)程序。
1系統(tǒng)結(jié)構(gòu)和IAP實(shí)現(xiàn)原理
1.1控制系統(tǒng)結(jié)構(gòu)
控制系統(tǒng)由兩級(jí)結(jié)構(gòu)構(gòu)成。上層為防爆計(jì)算機(jī),主要功能是遠(yuǎn)程控制、參數(shù)顯示以及程序升級(jí)等;底層是帶式輸送機(jī)控制器,其主要功能是將傳感器采集到的信號(hào)收集處理后上傳,同時(shí)發(fā)出控制命令,或者是接收上位機(jī)發(fā)送的控制命令并執(zhí)行。這兩級(jí)結(jié)構(gòu)之間是通過CAN通信的方式實(shí)現(xiàn)信息交互的。1.2IAP實(shí)現(xiàn)原理在應(yīng)用編程(IAP),其功能特點(diǎn)是能夠利用預(yù)先下載好的啟動(dòng)程序?qū)刂破鞯腇lash區(qū)域進(jìn)行在線編程。帶式輸送機(jī)控制器CPU的Flash區(qū)域是由2部分組成的,分別是RWW(可以同時(shí)讀寫的區(qū)域)以及NRWW(不可以同時(shí)讀寫的區(qū)域)。IAP的工作原理是首先由用戶編寫引導(dǎo)程序,然后利用JTAG或者是ISP方式將其下載到微控制器的BootLoader中。而根據(jù)BootLoader特點(diǎn)可知其位于不可以同時(shí)讀寫的區(qū)域中。在BootLoader區(qū)域中不存在引導(dǎo)程序則系統(tǒng)上電后是按照方式1進(jìn)行啟動(dòng)的。方式2是BootLoader總存在引導(dǎo)程序,并觸發(fā)時(shí)的系統(tǒng)啟動(dòng)過程。對(duì)于產(chǎn)品來說,BootLoader中的引導(dǎo)程序必須在出廠前下載到存儲(chǔ)器中。
2帶式輸送機(jī)控制器硬件結(jié)構(gòu)
帶式輸送機(jī)控制器使用的CPU為NXP公司設(shè)計(jì)生產(chǎn)的LPC1788微控制器。該CPU為32位處理器,主頻120MHz具有優(yōu)秀的處理能力,經(jīng)過多年的工業(yè)應(yīng)用系統(tǒng)級(jí)的BUG基本沒有,微控制器設(shè)計(jì)的最小系統(tǒng)采用JTAG接口作為下載接口。預(yù)留的BootLoader區(qū)域大小為45kB。同時(shí)由于其內(nèi)部集成了IAP和CAN通信接口完全支持CANV2.0B技術(shù)規(guī)范,最高通信速率能夠達(dá)到1Mbps,所以非常適合本設(shè)計(jì)使用。外部使用的CAN總線收發(fā)器芯片為TJA1050T,該芯片是由PHILIP公司研制生產(chǎn)的高性能、高集成度的CAN芯片。該芯片在本系統(tǒng)中的主要作用是協(xié)議控制和物理總線接口,能夠提供差動(dòng)的收發(fā)性能。為了更好地控制程序的升級(jí),在硬件系統(tǒng)中加入了2個(gè)按鍵,1個(gè)用于控制系統(tǒng)復(fù)位,1個(gè)用于控制程序升級(jí)。
3IAP相關(guān)程序設(shè)計(jì)
3.1帶式輸送機(jī)控制器IAP程序設(shè)計(jì)
如前文所述,LPC1788微控制器的內(nèi)核在啟動(dòng)時(shí)可以利用地址的不同實(shí)現(xiàn)從IAP程序到APP程序之間的跳轉(zhuǎn)。IAP升級(jí)流程如圖3所示。程序啟動(dòng)后如果沒有升級(jí)的需求也就是控制程序升級(jí)的按鍵沒有按下,則程序便跳轉(zhuǎn)到APP程序中執(zhí)行;如果有升級(jí)需求,則進(jìn)入到IAP引導(dǎo)程序中,首先是將CAN通信初始化,然后開始程序數(shù)據(jù)的下載也就是Flash的擦除和寫入。完全下載完畢后程序指針PC便跳入到APP程序中執(zhí)行。為了防止程序更新失敗,本設(shè)計(jì)中加入了判別方法,如果程序指針指向的地址是RAM地址,說明程序下載成功,可以繼續(xù)執(zhí)行。具體代碼:if(((*(__IOuint32_t*)ApplicationAddress)&0x2FFE0000)==0x20000000);其中,ApplicationAssress指針變量地址里存放的是用戶APP程序的入口地址。接收初始化程序:intReceive_Init(void){targetInit();/*初始化目標(biāo)板,切勿刪除*/pinInit();/*引腳初始化*/IAP_Init();CAN_Init();/*初始化CAN*/messageSend();/*發(fā)送提示信息*/memset(GucIapTmp,0,4096);/*緩沖區(qū)清零*/}當(dāng)所有的程序初始化完成以后便可以接收目標(biāo)程序,將其存放到指定的Flash區(qū)域里。本文設(shè)計(jì)使用的編程軟件是KeilMDK5。由于MDK5自身編譯生產(chǎn)的是HEX文件,所以需要調(diào)用fromelf.exe程序來使其轉(zhuǎn)化為bin格式的文件。然后下載到U盤中。
3.2程序代碼發(fā)送流程
程序升級(jí)時(shí)首先需要認(rèn)證操作人員的權(quán)限,以免誤操作造成事故的發(fā)生。升級(jí)代碼時(shí)首先要在控制器上操作,使其處于升級(jí)狀態(tài)。然后在防爆計(jì)算機(jī)相應(yīng)軟件中選擇需要下載的bin文件。然后依據(jù)CAN總線的通信協(xié)議進(jìn)行發(fā)送,為了避免發(fā)送錯(cuò)誤,本系統(tǒng)設(shè)計(jì)了校驗(yàn)機(jī)制,每發(fā)送1幀數(shù)據(jù)必須在收到反饋信號(hào)后才發(fā)送第2幀,否則就重新發(fā)送直到發(fā)送成功為止。當(dāng)發(fā)送完畢后將接收標(biāo)志位取消。
4調(diào)試與驗(yàn)證
在實(shí)驗(yàn)室條件下對(duì)帶式輸送機(jī)控制器程序進(jìn)行了調(diào)試。通過“選擇程序”按鈕從電腦硬盤中選中需要的bin文件,然后點(diǎn)擊下載便可以將程序下載到目標(biāo)控制器中?,F(xiàn)場(chǎng)測(cè)試時(shí)升級(jí)1臺(tái)控制器的程序僅需要7s,完全能夠符合礦井生產(chǎn)的需求。
5結(jié)語
本文設(shè)計(jì)了一種基于IAP的礦井帶式輸送機(jī)控制器在線升級(jí)程序的方法。通過此方式可以在不打開防爆外殼的前提下遠(yuǎn)程對(duì)目標(biāo)控制器進(jìn)行程序升級(jí),在提高安全性和可靠性的基礎(chǔ)上降低了維護(hù)成本,為礦井同類型控制器設(shè)計(jì)提供了經(jīng)驗(yàn)。
參考文獻(xiàn):
[1]汪俊,張彥林,張偉先.基于CAN網(wǎng)絡(luò)的IAP在線更新研究與應(yīng)用[J].技術(shù)與市場(chǎng),2014,21(5):33,35.
[2]郭玲.基于STM32的IAP程序更新方式[J].黑龍江科技信息,2016(18):169-170.
[3]孫曉曄,王程,成彬.基于TFTP協(xié)議實(shí)現(xiàn)STM32的IAP[J].微型機(jī)與應(yīng)用,2016,35(7):76-78.
[4]雷衛(wèi)延,敖振浪,周欽強(qiáng).基于STM32的在應(yīng)用編程(IAP)開發(fā)[J].電子測(cè)量技術(shù),2015,38(5):62-66.
[5]于亞運(yùn),宋建成,田慕琴,等.基于IAP的支架控制系統(tǒng)程序在線升級(jí)方案[J].工礦自動(dòng)化,2016,42(2):12-15.
[6]蔣春悅,田慕琴,宋建成,等.自動(dòng)化工作面液壓支架控制器設(shè)計(jì)[J].工礦自動(dòng)化,2014,40(9)1-5.
[7]楊世華,宋建成,田幕琴,等.基于雙RS485總線的液壓支架運(yùn)行狀態(tài)監(jiān)測(cè)系統(tǒng)開發(fā)[J].工礦自動(dòng)化,2014,40(8):1-5.
[8]孫繼平,劉毅,樊京.煤礦井下高頻電磁騷擾工程計(jì)算模型[J].煤炭學(xué)報(bào),2012,37(12):2118-2122.
[9]劉根賢,龔雪容,生擁宏,等.基于高頻RFID的微處理器IAP技術(shù)[J].電子技術(shù)應(yīng)用,2013,39(4):29-31.
作者:武林海 單位:晉中市煤炭規(guī)劃設(shè)計(jì)研究院