丁永康
摘 要 在新能源汽車(chē)當(dāng)中,其極為重要的組成部分之一即為電機(jī),而電機(jī)控制器是實(shí)現(xiàn)對(duì)新能源汽車(chē)進(jìn)行靈活、準(zhǔn)確控制的關(guān)鍵部件。及時(shí)更新升級(jí)電機(jī)控制器的程序,也是保障該控制器能夠具有良好應(yīng)用效能的重要前提。在這一背景下,本文將通過(guò)結(jié)合相關(guān)研究資料,將CAN總線引入其中,對(duì)CAN總線在新能源汽車(chē)電機(jī)控制器程序升級(jí)中的實(shí)際應(yīng)用進(jìn)行簡(jiǎn)要分析研究。
關(guān)鍵詞 CAN總線;新能源汽車(chē);電機(jī)控制器;程序升級(jí)
引言
通常每一輛新能源電動(dòng)汽車(chē)中至少會(huì)有一個(gè)電機(jī)控制器,但由于受到車(chē)內(nèi)空間有限等因素的影響,使得調(diào)試與運(yùn)維電機(jī)控制器的難度相對(duì)較大。而通過(guò)采用CAN總線對(duì)電機(jī)控制器定期進(jìn)行程序升級(jí),則可以在無(wú)須將其拆卸的情況下,實(shí)現(xiàn)對(duì)新能源汽車(chē)電機(jī)的有效控制。本研究可為CAN總線在新能源汽車(chē)電機(jī)控制器程序升級(jí)中的有效運(yùn)用,提供相關(guān)理論參考與實(shí)踐指導(dǎo)幫助。
1在新能源汽車(chē)電機(jī)控制器程序升級(jí)中使用CAN總線的設(shè)計(jì)思路
新能源汽車(chē)電機(jī)控制器的程序升級(jí),實(shí)際上就是在電機(jī)控制器的核心主控芯片的Flash中,寫(xiě)入已經(jīng)完成編譯的目標(biāo)文件。本文在設(shè)計(jì)將CAN總線應(yīng)用其中,以有效實(shí)現(xiàn)新能源汽車(chē)電機(jī)控制器程序升級(jí)時(shí),通過(guò)參考相關(guān)研究資料,設(shè)計(jì)采用用戶應(yīng)用程序,完成電機(jī)控制器主控芯片當(dāng)中Flash編程與代碼升級(jí)的目的[1]。即首先對(duì)所選取的主控芯片中的Flash進(jìn)行區(qū)間劃分,使之具有兩個(gè)獨(dú)立性相對(duì)較高的區(qū)間A與B。分別用于對(duì)用戶bootloader和正常執(zhí)行程序進(jìn)行有效存儲(chǔ)。在掉電復(fù)位之后,芯片只負(fù)責(zé)對(duì)用戶bootloader程序進(jìn)行執(zhí)行。但該程序需要先等待2s,如果經(jīng)由CAN總線發(fā)送的燒寫(xiě)請(qǐng)求在2s內(nèi)被接收,則此時(shí)相應(yīng)的總線數(shù)據(jù)將被一一接收,待其全部接收完成后再燒寫(xiě)程序區(qū)。反之如果燒寫(xiě)請(qǐng)求在2s內(nèi)無(wú)響應(yīng),則將直接跳轉(zhuǎn)至程序區(qū),按相關(guān)要求進(jìn)行用戶執(zhí)行程序的正常運(yùn)行即可。
相較于傳統(tǒng)的新能源汽車(chē)電機(jī)控制器程序升級(jí)方式,通過(guò)將CAN總線引入其中可以有效突破CCS的制約,實(shí)現(xiàn)整體程序遠(yuǎn)程在線升級(jí)。相關(guān)人員可根據(jù)實(shí)際需要,有選擇性地只對(duì)某部分代碼或子函數(shù)進(jìn)行更新升級(jí),例如整體電機(jī)控制器程序不變,至更新電機(jī)控制算法或?qū)ζ渲械牟糠株P(guān)鍵參數(shù)進(jìn)行更新。利用此種方式,在無(wú)須暫停電機(jī)控制器運(yùn)行或是將其拆卸下來(lái)的情況下,即可有效更新與調(diào)試運(yùn)行電機(jī)控制器程序,因此具有較高的操作便捷性和高效性,同時(shí)對(duì)控制程序升級(jí)成本也具有一定的積極效用。
2新能源汽車(chē)電機(jī)控制器程序升級(jí)中CAN總線的實(shí)際應(yīng)用分析
2.1 應(yīng)用要點(diǎn)
(1)程序定位轉(zhuǎn)移
由于在將CAN總線應(yīng)用在新能源汽車(chē)電機(jī)控制器程序升級(jí)中時(shí),需要對(duì)其主控芯片F(xiàn)lash進(jìn)行區(qū)間劃分,劃分出的兩個(gè)區(qū)間各自獨(dú)立。因此為實(shí)現(xiàn)程序準(zhǔn)確定位,需要相關(guān)工作人員依照主控芯片中劃分的具體Flash空間,對(duì)其中各程序分布進(jìn)行統(tǒng)一明確,避免代碼相互越界而干擾整個(gè)程序升級(jí)。例如工作人員可分別在劃分出的FlashA與FlashE中燒寫(xiě)用戶boot程序與用戶程序,并在.cmd文件中映射各Flash空間,以便對(duì)程序起始與終止地址、程序入口地址等進(jìn)行清晰、準(zhǔn)確制定[2]。
在程序轉(zhuǎn)移中時(shí),考慮到絕大多數(shù)電機(jī)控制器主控芯片當(dāng)中的Flash某扇區(qū)的運(yùn)行程序,無(wú)法對(duì)非本扇區(qū)以外的扇區(qū)進(jìn)行擦除、燒寫(xiě),而是需要先將Flash存儲(chǔ)器當(dāng)中存儲(chǔ)的程序,搬移至主控芯片中的SRAM當(dāng)中,才能執(zhí)行擦除、燒寫(xiě)Flash存儲(chǔ)器操作。因此本文認(rèn)為,在運(yùn)用CAN總線更新升級(jí)電機(jī)控制器程序時(shí),還需要使用專門(mén)的while循環(huán),配合使用指針結(jié)構(gòu),使得程序能夠順利轉(zhuǎn)移至主控芯片SRAM當(dāng)中,由此根據(jù)實(shí)際需要靈活擦寫(xiě)Flash存儲(chǔ)器。
(2)解析文件格式
.out文件中涉及的信息內(nèi)容眾多,其中僅有一部分為真正可執(zhí)行代碼。因此在運(yùn)用CAN總線升級(jí)程序時(shí),需要先使用專業(yè)的數(shù)據(jù)轉(zhuǎn)換工具將所需的有用信息如與裝載相關(guān)的代碼、地址信息等,從.out文件中進(jìn)行準(zhǔn)確提取。通過(guò)對(duì).out文件進(jìn)行相應(yīng)轉(zhuǎn)化,使之成為與燒寫(xiě)要求相符合的Hex格式文件。該格式文件中每一行均有相應(yīng)的一條Hex記錄,在確定文件具體格式后,由上位機(jī)對(duì)文件進(jìn)行準(zhǔn)確讀取并根據(jù)具體格式進(jìn)行規(guī)范解析。待解析完畢后,所產(chǎn)生的相關(guān)信息數(shù)據(jù)將統(tǒng)一經(jīng)由CAN總線傳輸至用戶boot程序,其在接收到CAN總線傳輸?shù)慕馕龊蟮臄?shù)據(jù)后,將根據(jù)Hex文件當(dāng)中的地址與數(shù)據(jù)信息,在相應(yīng)地址中準(zhǔn)確寫(xiě)入數(shù)據(jù)。
2.2 應(yīng)用流程
在實(shí)際將CAN總線應(yīng)用在新能源汽車(chē)電機(jī)控制器的程序升級(jí)中時(shí),首先需要上電復(fù)位跳轉(zhuǎn)至用戶boot,隨后對(duì)燒寫(xiě)需求進(jìn)行準(zhǔn)確判斷,如果需要進(jìn)行燒寫(xiě),則需要在保障和上位機(jī)之間實(shí)現(xiàn)正常連接的情況下,對(duì)所有接收數(shù)據(jù)進(jìn)行校驗(yàn)。否則需要重新判斷燒寫(xiě)需求直至其需要燒寫(xiě)。待數(shù)據(jù)校驗(yàn)合格后再集中存儲(chǔ)至SRAM當(dāng)中,如果此時(shí)數(shù)據(jù)未能通過(guò)校驗(yàn),則需要請(qǐng)求上位機(jī)重發(fā)并重新進(jìn)行校驗(yàn)。直至所有數(shù)據(jù)均已完成接收后,需對(duì)Flash API進(jìn)行靈活調(diào)用并在此基礎(chǔ)上進(jìn)行燒寫(xiě)即可,直至燒寫(xiě)完畢。最后重新跳轉(zhuǎn)至用戶程序上即有效完成整體程序升級(jí)。
3結(jié)束語(yǔ)
總之,在新能源汽車(chē)電機(jī)控制器程序升級(jí)中,積極采用CAN總線,可在不拆卸原電機(jī)控制器的前提下,遠(yuǎn)程在線完成程序升級(jí)與控制。因此相關(guān)工作人員在實(shí)際運(yùn)用CAN總線時(shí),還需結(jié)合具體情況,并嚴(yán)格依照相關(guān)規(guī)定要求,對(duì)程序定位與轉(zhuǎn)移、文件格式解析等關(guān)鍵點(diǎn)進(jìn)行嚴(yán)格把控,明確其具體應(yīng)用流程,以便能夠充分發(fā)揮CAN總線優(yōu)勢(shì)效用,順利完成程序更新升級(jí)。
參考文獻(xiàn)
[1] 李騰飛.新能源汽車(chē)電機(jī)控制器硬件在環(huán)測(cè)試系統(tǒng)研究[D].北京:北京交通大學(xué),2019:61-63.
[2] 王健健.新能源電動(dòng)汽車(chē)電機(jī)控制系統(tǒng)設(shè)計(jì)[D].蘇州:蘇州大學(xué),2019:45.