CN120215992A 基于spi通訊的制動(dòng)系統(tǒng)雙mcu固件升級(jí)方法和系統(tǒng)_第1頁(yè)
CN120215992A 基于spi通訊的制動(dòng)系統(tǒng)雙mcu固件升級(jí)方法和系統(tǒng)_第2頁(yè)
CN120215992A 基于spi通訊的制動(dòng)系統(tǒng)雙mcu固件升級(jí)方法和系統(tǒng)_第3頁(yè)
CN120215992A 基于spi通訊的制動(dòng)系統(tǒng)雙mcu固件升級(jí)方法和系統(tǒng)_第4頁(yè)
CN120215992A 基于spi通訊的制動(dòng)系統(tǒng)雙mcu固件升級(jí)方法和系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

(19)國(guó)家知識(shí)產(chǎn)權(quán)局(10)申請(qǐng)公布號(hào)CN120215992A(71)申請(qǐng)人格陸博科技有限公司地址226000江蘇省南通市崇川區(qū)新安路33號(hào)(72)發(fā)明人曹禮軒劉兆勇顧勤冬余子祥張莉莉張浩楠沈曉雨(74)專利代理機(jī)構(gòu)北京圣州專利代理事務(wù)所(普通合伙)11818專利代理師劉巖(54)發(fā)明名稱基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法和系統(tǒng)本發(fā)明涉及車輛制動(dòng)系統(tǒng)技術(shù)領(lǐng)域,尤其是涉及基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方B1,A分區(qū)和B分區(qū)分別作為主MCU的A分區(qū)和區(qū),A1和B1分區(qū)分別作為輔MCU的A1分區(qū)和B1分區(qū);依托車輛CAN總線,采用一套上位機(jī)和診斷ID,依托主輔MCU之間的SPI通訊進(jìn)行輔MCU的軟件更新,同時(shí)使用主MCU的Flash區(qū)域進(jìn)行輔MCU的應(yīng)用程序備份,實(shí)現(xiàn)輔MCU應(yīng)用程序回滾的操作,保證上位機(jī)刷寫失敗時(shí)的車輛安全,高效精2S2、用刷寫器在主MCU和輔MCU的對(duì)應(yīng)Flash區(qū)域刷寫初始應(yīng)用程序,在主MCU的A分區(qū)刷寫初始的主MCU應(yīng)用程序,在主MCU的A1分區(qū)和輔MCU自身的Flash區(qū)域刷寫初始的輔MCU應(yīng)用程序;S4、將主MCU和輔MCU的應(yīng)用軟件融合成一個(gè)更新包,通過(guò)地址區(qū)別主MCU和輔MCU的固S5、擦除主MCU當(dāng)前B區(qū)域的應(yīng)用程序、輔MCU備份B1區(qū)域的應(yīng)用程序以及輔MCU自身Flash區(qū)域的應(yīng)用程序;S7、將輔MCU的應(yīng)用軟件傳輸至主MCU的B1區(qū)域,在傳輸至B1區(qū)域的同時(shí),利用SPI通訊S9、主MCU重啟跳轉(zhuǎn)至自身B區(qū)域運(yùn)行應(yīng)用程序,輔MCU重啟運(yùn)行自身Flash區(qū)域應(yīng)用程2.根據(jù)權(quán)利要求1所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:在步驟S2中,主MCU運(yùn)行時(shí)通過(guò)自身引導(dǎo)加載程序Bootloader跳轉(zhuǎn)至A分區(qū)的應(yīng)用程序運(yùn)行,輔MCU運(yùn)行自身Flash區(qū)域的應(yīng)3.根據(jù)權(quán)利要求1所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:所述SPI通訊機(jī)制用于傳輸FlashDriver和輔MCU應(yīng)用程序,當(dāng)SPI數(shù)據(jù)傳輸時(shí),將所述SPI數(shù)據(jù)封裝成更大的封裝數(shù)據(jù),所述封裝數(shù)據(jù)由標(biāo)識(shí)組、CRC校驗(yàn)碼和SPI數(shù)據(jù)構(gòu)成,所述標(biāo)識(shí)組用來(lái)確保數(shù)據(jù)傳輸?shù)倪B續(xù)性,所述CRC校驗(yàn)碼用來(lái)確保數(shù)據(jù)傳輸?shù)耐暾?,若干次SPI通訊組成一個(gè)數(shù)據(jù)包,接受或發(fā)送一個(gè)完整的所述數(shù)據(jù)包為一次數(shù)據(jù)交換。4.根據(jù)權(quán)利要求3所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:所述標(biāo)識(shí)組包括正常應(yīng)用程序交互標(biāo)識(shí)符和程序刷寫標(biāo)識(shí)符,分別用于區(qū)分SPI通信幀類別和確保數(shù)據(jù)的連續(xù)性識(shí)別。5.根據(jù)權(quán)利要求3所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:所個(gè)數(shù)組,使用接收到的所述SPI數(shù)據(jù)與所述預(yù)先定義的數(shù)組中與所述標(biāo)識(shí)符位置對(duì)應(yīng)的數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算,并確保輸出與所述CRC校驗(yàn)碼長(zhǎng)度相同的計(jì)算所得校驗(yàn)碼,將計(jì)算所得校6.根據(jù)權(quán)利要求3所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:所述數(shù)據(jù)包傳輸刷寫數(shù)據(jù),在刷寫傳輸時(shí),所述數(shù)據(jù)包分為指令字節(jié)和預(yù)留字節(jié),所述指令字節(jié)將主MCU收到的上位機(jī)的刷寫指令完整地傳遞給輔MCU,所述指令字節(jié)負(fù)責(zé)傳輸診斷ID和據(jù)包的形式將符合主機(jī)廠刷寫規(guī)范的CAN診斷幀反饋給主MCU,主MCU解析完成后,再通過(guò)3CAN總線反饋給上位機(jī),完成一次刷寫過(guò)程中的診斷請(qǐng)求一反饋操作,重復(fù)上述過(guò)程,直至整個(gè)刷寫流程完畢。7.根據(jù)權(quán)利要1所述的基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,其特征在于:所述滾刷寫,主MCU的BootLoader中設(shè)置輔MCU刷寫失敗標(biāo)志位,在傳輸數(shù)據(jù)時(shí)發(fā)生上位機(jī)意外刷新,此時(shí)SPI通訊機(jī)制和刷寫流程與正常使用上位機(jī)刷寫通訊時(shí)相同,等待回滾刷新完畢8.基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)系統(tǒng),采用上述權(quán)利要求1-7任一項(xiàng)所述的刷寫器,用于在主MCU和輔MCU的對(duì)應(yīng)Flash區(qū)域刷寫初始應(yīng)用程序;主MCU,用于刷寫自身Flash區(qū)域的應(yīng)用程序、備份輔MCU的Flash區(qū)域的應(yīng)用程序以及4基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法和系統(tǒng)技術(shù)領(lǐng)域[0001]本發(fā)明涉及車輛制動(dòng)系統(tǒng)技術(shù)領(lǐng)域,尤其是涉及基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法和系統(tǒng)。背景技術(shù)[0002]微控制器(以下簡(jiǎn)稱MCU)是嵌入式系統(tǒng)的核心,隨著嵌入式系統(tǒng)在汽車電子等領(lǐng)域的廣泛應(yīng)用,多微控制器單元(Multi-MCU)架構(gòu)因其高可靠性成為關(guān)鍵系統(tǒng)的首選方案。在汽車電子領(lǐng)域的制動(dòng)系統(tǒng)中,集成式制動(dòng)系統(tǒng)因其多功能、小體積、高性能得到越來(lái)越廣了滿足功能安全的要求,目前集成式制動(dòng)系統(tǒng)的電子駐車功能依托雙MCU控制單元,從而具有冗余備份功能。雙MCU控制單元包含兩路MCU(以下稱為主MCU和輔MCU),主MCU具有電子駐車功能和其他制動(dòng)功能,而輔MCU只具備電子駐車功能。后期主輔MCU任意有一路失效,也能保證電子駐車功能不失效。[0003]因?yàn)榧墒街苿?dòng)系統(tǒng)具有主、輔MCU,在軟件更新時(shí)一般需對(duì)雙MCU固件進(jìn)行更新。傳統(tǒng)的做法是依托車輛CAN總線,規(guī)定兩套診斷ID,分別對(duì)主、輔MCU進(jìn)行更新。這種做法一般需要車輛主機(jī)廠針對(duì)制動(dòng)系統(tǒng)開(kāi)發(fā)兩套上位機(jī)軟件,繁瑣耗時(shí);同時(shí)因?yàn)檩oMCU的Flash區(qū)域(非易失性存儲(chǔ)區(qū)域)一般較小,不支持A、B分區(qū)。一旦刷寫中途上位機(jī)斷電,則不支持應(yīng)用程序回滾,需要上位機(jī)重新刷寫才能工作。發(fā)明內(nèi)容[0004]本發(fā)明的目的是提供基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法和系統(tǒng),依托車輛CAN總線,采用一套上位機(jī)和診斷ID,依托主輔MCU之間的SPI通訊進(jìn)行輔MCU的軟件更新,同時(shí)使用主MCU的Flash區(qū)域進(jìn)行輔MCU的應(yīng)用程序備份,實(shí)現(xiàn)輔MCU應(yīng)用程序回滾的操作,保證上位機(jī)刷寫失敗時(shí)的車輛安全,高效精簡(jiǎn),并且兼容單MCU的診斷刷寫系統(tǒng)。[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供了基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法,包括以下步驟:S2、用刷寫器在主MCU和輔MCU的對(duì)應(yīng)Flash區(qū)域刷寫初始應(yīng)用程序,在主MCU的A分區(qū)刷寫初始的主MCU應(yīng)用程序,在主MCU的A1分區(qū)和輔MCU自身的Flash區(qū)域刷寫初始的輔S4、將主MCU和輔MCU的應(yīng)用軟件融合成一個(gè)更新包,通過(guò)地址區(qū)別主MCU和輔MCUS5、擦除主MCU當(dāng)前B區(qū)域的應(yīng)用程序、輔MCU備份B1區(qū)域的應(yīng)用程序以及輔MCU自5身Flash區(qū)域的應(yīng)用程序;通訊同步傳輸輔MCU應(yīng)用軟件至輔MCU自身的Flash區(qū)域;用程序,主MCU的B1區(qū)域同樣更新完畢,用于下次刷寫失敗時(shí)輔MCU的回滾刷寫。[0006]優(yōu)選的,在步驟S輸時(shí),將所述SPI數(shù)據(jù)封裝成更大的封裝數(shù)據(jù),所述封裝數(shù)據(jù)由標(biāo)識(shí)組、據(jù)構(gòu)成,所述標(biāo)識(shí)組用來(lái)確保數(shù)據(jù)傳輸?shù)倪B續(xù)性,所述CRC校驗(yàn)碼用來(lái)確保數(shù)據(jù)傳輸?shù)耐暾?,若干次SPI通訊組成一個(gè)數(shù)據(jù)包,接受或發(fā)送一個(gè)完整的所述數(shù)據(jù)包為一次數(shù)據(jù)交換。[0008]優(yōu)選的,所述標(biāo)識(shí)組包括正常應(yīng)用程序交互標(biāo)識(shí)符和程序刷寫標(biāo)識(shí)符,分別用于區(qū)分SPI通信幀類別和確保數(shù)據(jù)的連續(xù)性識(shí)別。驗(yàn)算法預(yù)先定義一個(gè)數(shù)組,使用接收到的所述SPI數(shù)據(jù)與所述預(yù)先定義的數(shù)組中與所述標(biāo)識(shí)符位置對(duì)應(yīng)的數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算,并確保輸出與所述CRC校驗(yàn)碼長(zhǎng)度相同的計(jì)算所得校否則判定為無(wú)效。[0010]優(yōu)選的,所述數(shù)據(jù)包傳輸刷寫數(shù)據(jù),在刷寫傳輸時(shí),所述數(shù)據(jù)包分為指令字節(jié)和預(yù)留字節(jié),所述指令字節(jié)將主MCU收到的上位機(jī)的刷寫指令完整地傳遞給輔MCU,所述指令字節(jié)負(fù)責(zé)傳輸診斷ID和CAN標(biāo)準(zhǔn)幀的數(shù)據(jù)場(chǎng)內(nèi)容,輔MCU接收到所述數(shù)據(jù)包,內(nèi)部解析完成處復(fù)上述過(guò)程,直至整個(gè)刷寫流程完畢。[0011]優(yōu)選的,所述回滾刷寫用于在刷寫過(guò)程中上位機(jī)交互因意外突然中斷情況下,利用主MCU進(jìn)行的輔MCU回滾刷寫,主MCU的BootLoader中設(shè)置輔MCU刷寫失敗標(biāo)志位,在傳輸數(shù)據(jù)時(shí)發(fā)生上位機(jī)意外斷電等情況時(shí),此時(shí)制動(dòng)系統(tǒng)仍在通電,尚未進(jìn)行重啟操作,將輔MCU刷寫失敗標(biāo)志位置位,此時(shí)主MCU的Bootloader自主使用被封存在主MCU的Flash區(qū)域的輔MCU應(yīng)用程序進(jìn)行回滾刷新,此時(shí)SPI通訊機(jī)制和刷寫流程與正常使用上位機(jī)刷寫通訊時(shí)刷寫器,用于在主MCU和輔MCU的對(duì)應(yīng)Flash區(qū)域刷寫初始應(yīng)用程序;主MCU,用于刷寫自身Flash區(qū)域的應(yīng)用程序、備份輔MCU的Flash區(qū)域的應(yīng)用程序6[0013]因此,本發(fā)明采用上述基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法和系統(tǒng),實(shí)現(xiàn)軟件更新,同時(shí)使用主MCU的Flash區(qū)域進(jìn)行輔MCU的應(yīng)用程序備份,實(shí)現(xiàn)輔MCU應(yīng)用程序回滾的操作,保證上位機(jī)刷寫失敗時(shí)的車輛安全,高效精簡(jiǎn),并且兼容單MCU的診斷刷寫系統(tǒng)。[0014]本發(fā)明具有以下有益效果:1、只需要一套上位機(jī)和診斷ID,相比于傳統(tǒng)的雙MCU診斷刷寫系統(tǒng)需要兩套上位附圖說(shuō)明[0016]圖1為本發(fā)明基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法流程圖;圖2為本發(fā)明基于SPI通訊的制動(dòng)系統(tǒng)雙MCU固件升級(jí)方法提供的刷寫通信下SPI單次傳輸與數(shù)據(jù)包結(jié)構(gòu)圖。具體實(shí)施方式[0017]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他S2、用刷寫器在主MCU和輔MCU的對(duì)應(yīng)Flash區(qū)域刷寫初始應(yīng)用程序,在主MCU的A分MCU應(yīng)用程序;S4、將主MCU和輔MCU的應(yīng)用軟件融合成一個(gè)更新包,通過(guò)地址區(qū)別主MCU和輔MCU的固件區(qū)域,上位機(jī)將閃存驅(qū)動(dòng)FlashDriver傳輸至主MCU的RAM區(qū)域,同時(shí)利用SPI通訊同身Flash區(qū)域的應(yīng)用程序;S6、將主MCU應(yīng)用軟件傳輸至主MCU的B區(qū)域;S7、將輔MCU的應(yīng)用軟件傳輸至主MCU的B1區(qū)域,在傳輸至B1區(qū)域的同時(shí),利用SPI7[0019]在步驟S2中,主MCU運(yùn)行時(shí)通過(guò)自身引導(dǎo)加載程序Bootloader跳轉(zhuǎn)至A分區(qū)的應(yīng)用程序運(yùn)行,輔MCU運(yùn)行自身Flash區(qū)域的應(yīng)用程序。[0020]主MCU和輔MCU的SPI通信在應(yīng)用程序正常工作情況下傳輸應(yīng)用數(shù)據(jù),所以需要在刷寫傳輸時(shí)建立一種新的SPI通訊形式,用于傳輸FlashDriver和輔MCU應(yīng)用程序。當(dāng)每次SPI數(shù)據(jù)通訊傳輸8bit時(shí),為了數(shù)據(jù)的完整性和連續(xù)性,封裝成16bit的封裝數(shù)據(jù)進(jìn)行傳輸,結(jié)構(gòu)圖如圖2中的單次傳輸幀結(jié)構(gòu)所示。前8bit由標(biāo)識(shí)組(5bit)和CRC校驗(yàn)碼(3bit)構(gòu)成,后8bit為需要傳輸?shù)腟PI數(shù)據(jù)。標(biāo)識(shí)組用來(lái)確保數(shù)據(jù)傳輸?shù)倪B續(xù)性,CRC校驗(yàn)碼用來(lái)確保數(shù)據(jù)傳輸?shù)耐暾?。若干次SPI通訊組成一個(gè)數(shù)據(jù)包,接受或發(fā)送一個(gè)完整的數(shù)據(jù)包為一次數(shù)一個(gè)數(shù)據(jù)包含有20個(gè)16bit封裝數(shù)據(jù)時(shí),一個(gè)數(shù)據(jù)包含有20個(gè)字節(jié)的刷寫數(shù)據(jù),將標(biāo)識(shí)組的前20(范圍0-19)列為正常應(yīng)用程序交互標(biāo)識(shí)符,后10(范圍20-29)列為程序刷寫標(biāo)識(shí)符,這樣既能區(qū)別SPI通信幀類別,又能做到數(shù)據(jù)的連續(xù)性識(shí)別。刷寫數(shù)據(jù)共用SPI通訊傳輸通道和CRC校驗(yàn)算法,所以定義大小為20的8bit數(shù)組來(lái)對(duì)應(yīng)一個(gè)數(shù)據(jù)包的20個(gè)字節(jié)的刷寫數(shù)據(jù),用于CRC校驗(yàn)。使用接收的8bit數(shù)據(jù)與預(yù)先定義的8bit數(shù)組中與標(biāo)識(shí)符位置對(duì)應(yīng)的數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算(如標(biāo)識(shí)符為29,則為數(shù)組中第10個(gè)數(shù)據(jù),因?yàn)槌绦蛩憳?biāo)識(shí)符范圍為20-29,所以標(biāo)識(shí)符為29對(duì)應(yīng)數(shù)組的第10個(gè)數(shù)據(jù);因?yàn)檎?yīng)用程序交互標(biāo)識(shí)符范圍為0-19,所以標(biāo)識(shí)符為9也對(duì)應(yīng)數(shù)組的第10個(gè)數(shù)據(jù)),并確保輸出長(zhǎng)度為3bit的計(jì)算所得校驗(yàn)碼,最終使用該校驗(yàn)碼與接受的CRC校驗(yàn)碼進(jìn)行比較,只有當(dāng)接收方使用8bit數(shù)據(jù)區(qū)計(jì)算出的計(jì)算所得校驗(yàn)碼與傳輸?shù)腃RC校驗(yàn)碼相同,才能使用此幀傳輸?shù)臄?shù)據(jù),否則判定為無(wú)效。[0022]另一方面刷寫傳輸時(shí),一個(gè)數(shù)據(jù)包傳輸20個(gè)字節(jié)的刷寫數(shù)據(jù)。在刷寫傳輸時(shí),使用刷寫數(shù)據(jù)包的前10個(gè)字節(jié)作為指令字節(jié),后10個(gè)字節(jié)預(yù)留。刷寫數(shù)據(jù)包的前10個(gè)字節(jié)應(yīng)將主MCU收到的上位機(jī)的刷寫指令完整地傳遞給輔MCU。將前2個(gè)字節(jié)傳輸診斷ID,后8個(gè)字節(jié)傳輸CAN標(biāo)準(zhǔn)幀的數(shù)據(jù)場(chǎng)內(nèi)容。刷寫通信下的SPI單次傳輸與數(shù)據(jù)包結(jié)構(gòu)圖如圖2所示。輔MCU接收到刷寫傳輸?shù)腟PI數(shù)據(jù)包,內(nèi)部解析完成處理后,再次通過(guò)SPI數(shù)據(jù)包的形式將符合主機(jī)廠刷寫規(guī)范的CAN診斷幀反饋給主MCU,主MCU解析完成后,再通過(guò)CAN總線反饋給刷寫上位機(jī),完成一次刷寫過(guò)程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論