国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

電動叉車遠(yuǎn)程升級系統(tǒng)的研究

2019-08-22 02:09孫曉楊伊僑朱浩
科技與創(chuàng)新 2019年15期
關(guān)鍵詞:代碼應(yīng)用程序遠(yuǎn)程

孫曉楊伊僑朱浩

電動叉車遠(yuǎn)程升級系統(tǒng)的研究

孫曉1,楊伊僑1,2,朱浩2

(1.湖南工業(yè)大學(xué) 機械工程學(xué)院,湖南 株洲 412007;2.湖南宏迅億安新能源科技有限公司,湖南 株洲 412007)

針對目前電動叉車系統(tǒng)遠(yuǎn)程升級困難的問題,設(shè)計了一個基于飛思卡爾16位微控制器MC9S12XEP100的遠(yuǎn)程升級系統(tǒng)。該系統(tǒng)由傳統(tǒng)的BootLoader升級程序改進(jìn)而來,利用GPRS模塊進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸,解決了系統(tǒng)升級的距離問題。深入研究了數(shù)據(jù)傳輸可靠性的問題,設(shè)計出基于BCH編碼的數(shù)據(jù)可靠性傳輸機制與代碼分區(qū)機制,制定了數(shù)據(jù)傳輸協(xié)議,解決了系統(tǒng)升級的安全與可靠性問題。將遠(yuǎn)程升級系統(tǒng)實施至電動叉車上運行,實驗證明,該遠(yuǎn)程升級系統(tǒng)具有穩(wěn)定性、安全性、可靠性等優(yōu)點,能很好地完成遠(yuǎn)程升級任務(wù)。

電動叉車;遠(yuǎn)程升級;數(shù)據(jù)通訊;升級流程

近年來,新能源工程機械以其節(jié)能環(huán)保、智慧互聯(lián)等特性得到了迅速的發(fā)展,新型電動叉車的應(yīng)用也越來越廣[1]。如何實現(xiàn)數(shù)量龐大叉車的維護(hù)運營,滿足系統(tǒng)升級需求成為了一個難題。

一種比較傳統(tǒng)的方法是將CAN總線作為通信介質(zhì),利用BootLoader下載應(yīng)用程序。但當(dāng)產(chǎn)品分布于全國各地時,如果繼續(xù)使用BootLoader,每次進(jìn)行應(yīng)用程序升級時都需廠家派遣技術(shù)人員去到現(xiàn)場,維護(hù)成本大大提高,因此使用基于GPRS傳輸?shù)倪h(yuǎn)程升級系統(tǒng)就變得十分有意義。

本文設(shè)計了一個基于GPRS傳輸?shù)倪h(yuǎn)程升級系統(tǒng),實現(xiàn)了在不用去到現(xiàn)場的情況下完成軟件自更新和引導(dǎo)用戶程序運行的功能,有效解決了這個行業(yè)難題。

1 遠(yuǎn)程升級系統(tǒng)概述

BootLoader程序是固化在微控制器里,復(fù)位后最先運行的一段程序。它的主要功能是初始化嵌入式系統(tǒng)的軟、硬件,引導(dǎo)應(yīng)用程序的運行[2]。嵌入式設(shè)備復(fù)位后首先進(jìn)入BootLoader程序,通過判斷關(guān)鍵字標(biāo)志位,選擇進(jìn)行程序升級或跳轉(zhuǎn)進(jìn)入應(yīng)用程序,這個關(guān)鍵字標(biāo)志位存放在Flash中的一個特定位置。如果進(jìn)入程序升級模式,則通過CAN總線從主機端將應(yīng)用程序的S19文件下載到Flash中;否則就將儲存在Flash中的應(yīng)用程序加載到RAM里面運行。

遠(yuǎn)程升級系統(tǒng)由改進(jìn)后的BootLoader程序、上位機軟件和Web端組成,上位機程序運行在服務(wù)器上,主要負(fù)責(zé)接收和發(fā)送數(shù)據(jù),并實時保存信息到數(shù)據(jù)庫。Web端實現(xiàn)監(jiān)控數(shù)據(jù)的顯示,嵌入式設(shè)備的BootLoader程序負(fù)責(zé)啟動升級程序,接收上位機發(fā)來的數(shù)據(jù),并對程序區(qū)域進(jìn)行擦除與寫入操作。

針對現(xiàn)在國內(nèi)外遠(yuǎn)程升級系統(tǒng)升級故障率高、傳輸數(shù)據(jù)不穩(wěn)定的現(xiàn)象,本系統(tǒng)設(shè)計了一個數(shù)據(jù)可靠性傳輸機制。

2 遠(yuǎn)程升級系統(tǒng)方案

2.1 軟件整體設(shè)計

上位機包括數(shù)據(jù)庫模塊、TCP/Socket通信模塊。數(shù)據(jù)庫支持Access及SQlServer連接,通信模塊支持多線程監(jiān)聽,Web端支持HTML5的頁面顯示。

下位機設(shè)計可以分為硬件層和軟件層。硬件層主要完成一些接口函數(shù)的定義,設(shè)置硬件參數(shù)和讀取寄存器狀態(tài)。軟件層主要實現(xiàn)硬件層函數(shù)封裝與任務(wù)調(diào)度等一些系統(tǒng)功能。

2.2 代碼分區(qū)設(shè)計

為了保證升級程序能夠順利執(zhí)行,防止程序升級中途因數(shù)據(jù)鏈路中斷、線路板突然停止供電等意外情況導(dǎo)致原程序也無法使用,需要將單片機的Flash內(nèi)存區(qū)域進(jìn)行劃分,主要分為BootLoader區(qū)域、應(yīng)用程序1區(qū)域、應(yīng)用程序2區(qū)域和控制參數(shù)區(qū)域。應(yīng)用程序存儲區(qū)域分為2個區(qū)域,分別為1區(qū)和2區(qū)。引導(dǎo)程序儲存在Bootloader區(qū)域,其作用是選擇執(zhí)行1區(qū)或2區(qū)的應(yīng)用程序。為了避免核心數(shù)據(jù)的丟失,控制參數(shù)區(qū)域不會在升級過程中被擦除[3],所以用來存儲例如跳轉(zhuǎn)標(biāo)志、應(yīng)用程序配置參數(shù)等內(nèi)容[4]。

代碼分區(qū)控制流程如下:①燒寫程序時,將應(yīng)用程序1區(qū)域代碼與BootLoader合并共同燒寫到單片機中。②程序需要升級時,1區(qū)域與2區(qū)域交替升級。在1區(qū)域代碼執(zhí)行期間,收到遠(yuǎn)程升級指令,在代碼2區(qū)域進(jìn)行升級。同樣在2區(qū)域代碼執(zhí)行期間,收到遠(yuǎn)程升級指令,在代碼1區(qū)域進(jìn)行升級。③當(dāng)上位機發(fā)送啟動命令后,復(fù)位系統(tǒng)。系統(tǒng)復(fù)位后,進(jìn)入引導(dǎo)程序,然后通過引導(dǎo)程序中的關(guān)鍵字判斷進(jìn)入1區(qū)應(yīng)用程序還是2區(qū)應(yīng)用程序。確認(rèn)進(jìn)入相應(yīng)的應(yīng)用程序區(qū)域后,再擦除另一個區(qū)域內(nèi)的代碼。

2.3 整體升級流程

每當(dāng)系統(tǒng)上電時,會通過標(biāo)志位選擇執(zhí)行BootLoader程序或應(yīng)用程序。如果不需要升級,則不進(jìn)入BootLoader程序,再檢查地址區(qū)間標(biāo)志位,如果是0x0A,則進(jìn)入應(yīng)用程序1區(qū)間;如果是0x0B,進(jìn)入應(yīng)用程序2區(qū)間。當(dāng)進(jìn)入應(yīng)用程序后,系統(tǒng)給遠(yuǎn)程升級分配一個任務(wù),之后系統(tǒng)會周期性地去查詢該任務(wù),當(dāng)檢查收到升級命令,確認(rèn)無誤后擦除指定FALSH區(qū)域并回應(yīng)上位機。之后等待接收代碼,當(dāng)在接收代碼過程中檢測到錯誤時,會回應(yīng)NG來請求重新開始升級,否則每接收一行代碼回應(yīng)OK,直至接收所有代碼。代碼接收完畢,不會立即啟動,會輪詢啟動命令,當(dāng)檢測到啟動命令,系統(tǒng)會立即復(fù)位,進(jìn)入新的應(yīng)用程序。升級流程如圖1所示。

圖1 升級流程圖

2.4 數(shù)據(jù)傳輸可靠性設(shè)計

加強數(shù)據(jù)傳輸機制的糾錯能力可有效提高數(shù)據(jù)傳輸?shù)目煽啃院瓦h(yuǎn)程升級的效率。之前版本的遠(yuǎn)程升級系統(tǒng)在數(shù)據(jù)傳輸過程中使用CRC校驗碼,在升級過程中下位機對傳輸數(shù)據(jù)進(jìn)行CRC校驗,如果出錯則重傳,無法糾錯,導(dǎo)致升級過程偶發(fā)性中斷。因此本文進(jìn)行了算法改進(jìn),采用了改良的BCH糾錯碼來代替CRC校驗碼,有效提高了傳輸效率。其設(shè)計內(nèi)容包括數(shù)據(jù)協(xié)議制訂、BCH編碼和無線傳輸后校驗等。

數(shù)據(jù)協(xié)議制訂。數(shù)據(jù)協(xié)議包括起始ID(用“*”作為幀頭起始符)、總包數(shù)、包序號、S19文件、結(jié)束ID(用“#”作為幀頭起始符)等。其中,除了S19文件是64位外,其他都是16位。

BCH編碼。BCH碼是一種有限域中的線性分組碼,糾錯能力強、易實現(xiàn),通常用于通信和存儲領(lǐng)域中[5]。由于本系統(tǒng)所需要傳輸?shù)臄?shù)據(jù)長度不大,所以設(shè)定二進(jìn)制BCH(15,7)編譯糾錯碼,碼長= 15,0~6位為有效數(shù)據(jù)位,7~14位為BCH校驗碼,糾錯能力= 2。BCH生成多項式為()=LCM[1(),2(),…,(2t-1)()],其中,LCM為最小公倍式,為糾錯個數(shù),i()為最小多項式。 BCH編碼方法如下:①查不可約多項式表可得()=1()·3()=8+7+6+4+1,系數(shù)轉(zhuǎn)換成二進(jìn)制代碼為111010001,且由()可得出生成矩陣;②將7~14位的BCH校驗碼位補8位0,與生成多項式的二進(jìn)制碼進(jìn)行邏輯與,得到的結(jié)果邏輯異或,即得到BCH(15,7)的校驗碼。

無線傳輸后校驗。本系統(tǒng)利用GPRS模塊進(jìn)行無線傳輸,下位機與上位機之間的傳輸模式為主從模式,下位機利用中斷來控制GPRS模塊的接收與發(fā)送。因一般叉車工作環(huán)境惡劣,所以通訊干擾大,采用接收端檢驗糾錯后,通訊效率有明顯提高。

3 功能測試

為了測試新版遠(yuǎn)程升級系統(tǒng)的穩(wěn)定性,使用10臺下位機進(jìn)行新老版本的對比實驗:分別使新老程序輪流下載到下位機內(nèi),記錄在升級過程中的升級成功臺數(shù)、代碼重傳次數(shù)、升級時間,對升級結(jié)果進(jìn)行對比,結(jié)果如表1所示。

表 1 對比測試結(jié)果

升級種類成功數(shù)代碼重傳次數(shù) 升級時長/min 新版程序100.5 10.2 老版程序81.7 11.1

從成功數(shù)來看,新版遠(yuǎn)程升級系統(tǒng)在成功率上優(yōu)于老版遠(yuǎn)程升級系統(tǒng),新版遠(yuǎn)程升級系統(tǒng)的代碼重傳次數(shù)也要低于老版,說明在可靠性上,新版程序要高于老版程序,新版升級時長會相較于老版會略短。原因是雖然新版遠(yuǎn)程升級系統(tǒng)在代碼重傳次數(shù)上要低于老版系統(tǒng),但新版遠(yuǎn)程升級系統(tǒng)中加入了具有糾錯功能的BCH碼,相較于老版的CRC校驗碼,在數(shù)據(jù)傳輸?shù)姆€(wěn)定性上提升不少,但BCH碼編碼與譯碼過程復(fù)雜,耗時會有所增加。綜合來說,新版程序的升級速度還是要略快于老版程序。

4 結(jié)論

本文實現(xiàn)了電動叉車的遠(yuǎn)程升級系統(tǒng)的開發(fā),通過制訂自定義傳輸協(xié)議、設(shè)計數(shù)據(jù)可靠性傳輸機制與代碼分區(qū)機制,能夠有效、穩(wěn)定地實現(xiàn)S19文件的傳輸、Flash模塊的擦寫、遠(yuǎn)距離地進(jìn)行應(yīng)用程序的升級。測試結(jié)果表明,本系統(tǒng)有很高的穩(wěn)定性、安全性、可靠性,極大地提高了遠(yuǎn)程升級的成功率。此外,不同信號芯片只需要經(jīng)過微小更改就能直接使用本系統(tǒng),可移植性強。

[1]孫慧,王春利,高耀南.鉛酸蓄電池電動叉車電池改造技術(shù)的研究[J].科技通報,2017,33(12):96-98.

[2]張艷,鮑可進(jìn).整車控制器BootLoader的設(shè)計與實現(xiàn)[J].計算機工程,2011,37(12):233-235.

[3]朱偉斌,張濤,顧海濤,等.基于CDMA網(wǎng)絡(luò)的嵌入式設(shè)備遠(yuǎn)程升級系統(tǒng)[J].電子技術(shù)應(yīng)用,2014(2):135-138.

[4]MENG H,PAN L.Realization of remote update technology for embedded equipment based on μC/OS-II[J].Journal of Measurement Science and Instrumentation,2014(3):69-72.

[5]李璐,周海燕.一種含BCH編解碼器的SLC/MLC NAND FLASH控制器的VLSI設(shè)計[J].現(xiàn)代電子技術(shù),2009,32(7):167-170.

TP273

A

10.15913/j.cnki.kjycx.2019.15.034

2095-6835(2019)15-0087-02

孫曉,男,教授。楊伊僑(1995—),男,湖南岳陽人,碩士研究生,主要從事電動汽車電池管理系的研究。

〔編輯:王霞〕

猜你喜歡
代碼應(yīng)用程序遠(yuǎn)程
遠(yuǎn)程求助
遠(yuǎn)程工作狂綜合征
刪除Win10中自帶的應(yīng)用程序
谷歌禁止加密貨幣應(yīng)用程序
神秘的代碼
一周機構(gòu)凈增(減)倉股前20名
重要股東二級市場增、減持明細(xì)
近期連續(xù)上漲7天以上的股
三星電子將開設(shè)應(yīng)用程序下載商店
微軟軟件商店開始接受應(yīng)用程序
抚远县| 屏东县| 桐庐县| 额尔古纳市| 茶陵县| 山阴县| 扶风县| 永康市| 靖州| 安平县| 汶上县| 景宁| 阳原县| 新巴尔虎右旗| 南丹县| 方正县| 东辽县| 和硕县| 西安市| 米泉市| 鄯善县| 建水县| 凤冈县| 巢湖市| 枞阳县| 伊通| 义乌市| 都兰县| 黔江区| 云梦县| 太仓市| 尖扎县| 垦利县| 长治市| 雷州市| 枣强县| 邵武市| 平原县| 广饶县| 孟州市| 洛宁县|