本發(fā)明涉及汽車領(lǐng)域,特別是涉及一種應(yīng)用程序的更新方法及裝置。
背景技術(shù):
隨著人們對汽車功能的智能化要求越來越高,汽車電子控制單元(electronic control unit,ECU)需要實現(xiàn)的功能越來越復(fù)雜。為了滿足人們的需要,需要頻繁更新汽車上的電子控制單元。
目前,對汽車上的電子控制單元的更新大多是通過更換新的電子控制單元硬件來實現(xiàn)的。然而,由于當(dāng)前的大部分車型每年都會進行一次小改型、五年進行一次大改型,如果仍以更換硬件的方式更新電子控制單元,無疑會大大增加制造商以及消費者的成本。
因此,在不更換硬件的基礎(chǔ)上,實現(xiàn)對電子控制單元的更新成為了本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種應(yīng)用程序的更新方法及裝置,技術(shù)方案如下:
一種應(yīng)用程序的更新方法,應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,所述方法包括:
向所述電子控制單元發(fā)送編程模式命令;
接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息,所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新。
優(yōu)選地,還包括:
向所述電子控制單元發(fā)送請求種子命令;
接收所述電子控制單元依據(jù)所述請求種子命令所發(fā)送的種子,并依據(jù)所述種子,調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的安全訪問算法計算第一密鑰;
通過密鑰解鎖命令將所述密鑰發(fā)送至所述電子控制單元,以使所述電子控制單元判斷所述第一秘鑰與第二秘鑰是否相同,若是,則確定所述重編程設(shè)備的身份合法,所述第二秘鑰為所述電子控制單元依據(jù)所述種子、調(diào)用自身的安全訪問算法計算得到的秘鑰。
優(yōu)選地,還包括:
向所述電子控制單元發(fā)送擦除命令,所述擦除命令攜帶擦除起始地址和擦除長度,所述擦除命令用于使所述電子控制單元,調(diào)用所述驅(qū)動數(shù)據(jù)中的擦除接口,對第一存儲空間中的應(yīng)用程序執(zhí)行擦除操作,所述第一存儲空間為依據(jù)所處擦除起始地址和所述擦除長度構(gòu)成的存儲空間。
優(yōu)選地,還包括:
向所述電子控制單元發(fā)送請求下載命令,所述請求下載命令攜帶數(shù)據(jù)寫入起始地址和寫入長度,所述請求下載命令用于使所述電子控制單元驗證第二存儲空間是否能寫入數(shù)據(jù),所述第二存儲空間為依據(jù)所述寫入起始地址和所述寫入長度構(gòu)成的存儲空間。
優(yōu)選地,還包括:
向所述電子控制單元發(fā)送數(shù)據(jù)傳輸命令;
在確定所述電子控制單元接收到所述數(shù)據(jù)傳輸命令后,向所述電子控制單元發(fā)送用于更新所述應(yīng)用程序的數(shù)據(jù),以使得所述電子控制單元調(diào)用所述驅(qū)動數(shù)據(jù)中的寫入接口對所述第二存儲空間執(zhí)行寫入操作。
優(yōu)選地,還包括:
依據(jù)向所述電子控制單元發(fā)送的所述數(shù)據(jù),調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的校驗算法,獲得第一數(shù)據(jù)校驗和信息;
向所述電子控制單元發(fā)送數(shù)據(jù)完整性校驗命令,所述數(shù)據(jù)完整性校驗命令攜帶所述第一數(shù)據(jù)校驗和信息,以使得所述電子控制單元判斷所述第一數(shù)據(jù)校驗和信息與第二數(shù)據(jù)校驗和信息是否相同,若是,則確定所述數(shù)據(jù)完整,所述第二數(shù)據(jù)校驗和信息為所述電子控制單元依據(jù)所述數(shù)據(jù)、調(diào)用自身的校驗算法計算得到的數(shù)據(jù)校驗和信息。
一種應(yīng)用程序的更新裝置,應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,所述裝置包括:
第一發(fā)送單元,用于向所述電子控制單元發(fā)送編程模式命令;
第一接收單元,用于接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息,所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
第二發(fā)送單元,用于向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
第二接收單元,用于接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
第三發(fā)送單元,用于向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新。
優(yōu)選地,還包括:
第四發(fā)送單元,用于向所述電子控制單元發(fā)送擦除命令,所述擦除命令攜帶擦除起始地址和擦除長度,所述擦除命令用于使所述電子控制單元,調(diào)用所述驅(qū)動數(shù)據(jù)中的擦除接口,對第一存儲空間中的應(yīng)用程序執(zhí)行擦除操作,所述第一存儲空間為依據(jù)所處擦除起始地址和所述擦除長度構(gòu)成的存儲空間。
優(yōu)選地,還包括:
第五發(fā)送單元,用于向所述電子控制單元發(fā)送請求下載命令,所述請求下載命令攜帶數(shù)據(jù)寫入起始地址和寫入長度,所述請求下載命令用于使所述電子控制單元驗證第二存儲空間是否能寫入數(shù)據(jù),所述第二存儲空間為依據(jù)所述寫入起始地址和所述寫入長度構(gòu)成的存儲空間。
優(yōu)選地,還包括:
第六發(fā)送單元,用于向所述電子控制單元發(fā)送數(shù)據(jù)傳輸命令;
第七發(fā)送單元,用于在確定所述電子控制單元接收到所述數(shù)據(jù)傳輸命令后,向所述電子控制單元發(fā)送用于更新所述應(yīng)用程序的數(shù)據(jù),以使得所述電子控制單元調(diào)用所述驅(qū)動數(shù)據(jù)中的寫入接口對所述第二存儲空間執(zhí)行寫入操作。
本發(fā)明實施例所提供的技術(shù)方案,電子控制單元通過CANFD總線與重編程設(shè)備相連,重編程設(shè)備通過設(shè)置電子控制單元的編程模式,并使電子控制單元下載驅(qū)動數(shù)據(jù),從而使電子控制單元可以調(diào)動驅(qū)動數(shù)據(jù)對應(yīng)用程序進行更行,可見,本發(fā)明的方案通過重編程設(shè)備,以軟件方式,實現(xiàn)了對電子控制單元的應(yīng)用程序的更新,以此解決了以更換硬件的方式更新電子控制單元帶來的成本高的問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的一種應(yīng)用程序的更新方法的一種流程示意圖;
圖2為本發(fā)明實施例所提供的一種應(yīng)用程序的更新的另一種流程示意圖;
圖3為本發(fā)明實施例所提供的一種應(yīng)用程序的更新裝置的一種結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例所提供的一種應(yīng)用程序的更新裝置的另一種結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1為本申請實施例提供的應(yīng)用程序的更新方法的一種實現(xiàn)流程圖,該方法應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,所述方法包括:
步驟S101、向所述電子控制單元發(fā)送編程模式命令;
本實施例采用重編程設(shè)備,對通過CANFD(CAN with Flexible Data-Rate,具有靈活數(shù)據(jù)速率的控制器局域網(wǎng)絡(luò)總線)總線與該重編程設(shè)備相連的電子控制單元的應(yīng)用程序進行更新,因此,在使電子控制單元進入重編程模式前,需要預(yù)先設(shè)置重編程設(shè)備和電子控制單元的波特率,且,需要保證設(shè)置的重編程設(shè)備的波特率和電子控制單元的波特率相同,所述波特率包括仲裁場波特率和數(shù)據(jù)場波特率。
另外,由于需要使用驅(qū)動數(shù)據(jù)才能完成對電子控制單元的應(yīng)用程序的更新,所以,在使電子控制單元進入重編程模式前,還需要預(yù)先選擇重編程設(shè)備中與電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),同理地,為了對重編程設(shè)備的身份進行驗證以及對更新電子控制單元的應(yīng)用程序的數(shù)據(jù)進行校驗,還需要預(yù)先選擇重編程設(shè)備中與電子控制單元對應(yīng)的安全訪問算法及校驗算法。
由于重編程設(shè)備不能對處于非編程模式下的電子控制單元的應(yīng)用程序進行更新,所以,在更新之前,重編程設(shè)備向電子控制單元發(fā)送重編程模式命令,當(dāng)電子控制單元接收到該重編程模式命令后,根據(jù)預(yù)設(shè)策略判斷是否能對應(yīng)用程序進行更新,若是,則進入重編程模式,并向重編程設(shè)備發(fā)送第一肯定響應(yīng)。
步驟S102、接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息;
所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
電子控制單元接收重編程設(shè)備發(fā)送的編程模式命令后,響應(yīng)該編程模式命令,進入編程模式,并向重編程設(shè)備發(fā)送第一響應(yīng)信息,以通知重編程設(shè)備電子控制單元已進入重編程模式。
步驟S103、向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
步驟S104、接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
步驟S105、向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新。
由于在對電子控制單元的應(yīng)用程序更新時,需要調(diào)用驅(qū)動數(shù)據(jù)才能完成對應(yīng)用程序的讀寫擦操作,所以,在確定電子控制單元進入重編程模式后,向電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令,并在接收到所述電子控制單元發(fā)送的第二響應(yīng)后,向電子控制單元發(fā)送與之對應(yīng)的驅(qū)動數(shù)據(jù),其中,第二響應(yīng)指示所述重編程設(shè)備接收到所述驅(qū)動數(shù)據(jù)下載命令。
本發(fā)明實施例所提供的技術(shù)方案,電子控制單元通過CANFD總線與重編程設(shè)備相連,重編程設(shè)備通過設(shè)置電子控制單元的編程模式,并使電子控制單元下載驅(qū)動數(shù)據(jù),從而使電子控制單元可以調(diào)動驅(qū)動數(shù)據(jù)對應(yīng)用程序進行更新,可見,本發(fā)明的方案通過重編程設(shè)備,以軟件方式,實現(xiàn)了對電子控制單元的應(yīng)用程序的更新,以此解決了以更換硬件的方式更新電子控制單元帶來的成本高的問題。進一步地,由于CANFD總線不僅帶寬利用率高,且傳輸速率更快,所以,采用CANFD總線對電子控制單元的應(yīng)用程序更新不僅解決了更換硬件電子控制單元所帶來的成本高的問題,同時,對電子控制單元應(yīng)用程序更新的效率也更高。
請參閱圖2,圖2為本申請實施例提供的應(yīng)用程序的更新方法的另一種實現(xiàn)流程圖,該方法應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,所述方法包括:
步驟S201、向所述電子控制單元發(fā)送編程模式命令;
步驟S202、接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息,所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
步驟S203、向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
步驟S204、接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
步驟S205、向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù);
所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新,其中,對所述應(yīng)用程序更新包括對應(yīng)用程序的擦除及擦除后對擦除后的空間的數(shù)據(jù)的再寫入;
步驟S201-S205的執(zhí)行過程與上述實施例提供的步驟S101-S105的執(zhí)行過程相同,有關(guān)步驟S201-S205的詳細過程,請參見上述對步驟S101-S105的描述,在此不做贅述。
步驟S206、向所述電子控制單元發(fā)送請求種子命令;
步驟S207、接收所述電子控制單元依據(jù)所述請求種子命令所發(fā)送的種子,并依據(jù)所述種子,調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的安全訪問算法計算第一密鑰;
步驟S208、通過密鑰解鎖命令將所述密鑰發(fā)送至所述電子控制單元,以使所述電子控制單元判斷所述第一秘鑰與第二秘鑰是否相同,若是,則確定所述重編程設(shè)備的身份合法,所述第二秘鑰為所述電子控制單元依據(jù)所述種子、調(diào)用自身的安全訪問算法計算得到的秘鑰;
為了防止非法設(shè)備對電子控制單元的應(yīng)用程序的篡改,本實施例增加了步驟S206-S208對重編程設(shè)備的身份進行驗證的過程。
當(dāng)電子控制單元接收到重編程設(shè)備發(fā)送的密鑰后,會將該密鑰與通過自身的安全訪問算法計算的密鑰進行比較,若比較結(jié)果一致,則確定重編程設(shè)備的身份合法,并向重編程設(shè)備發(fā)送肯定響應(yīng)。
步驟S209、向所述電子控制單元發(fā)送擦除命令;
所述擦除命令攜帶擦除起始地址和擦除長度,所述擦除命令用于使所述電子控制單元,調(diào)用所述驅(qū)動數(shù)據(jù)中的擦除接口,對第一存儲空間中的應(yīng)用程序執(zhí)行擦除操作,所述第一存儲空間為依據(jù)所處擦除起始地址和所述擦除長度構(gòu)成的存儲空間。
當(dāng)電子控制單元對第一存儲空間中的應(yīng)用程序執(zhí)行擦除操作后,會向重編程設(shè)備發(fā)送肯定響應(yīng)。
步驟S210、向所述電子控制單元發(fā)送請求下載命令;
所述請求下載命令攜帶數(shù)據(jù)寫入起始地址和寫入長度,所述請求下載命令用于使所述電子控制單元驗證第二存儲空間是否能寫入數(shù)據(jù),所述第二存儲空間為依據(jù)所述寫入起始地址和所述寫入長度構(gòu)成的存儲空間。
由于向電子控制單元請求寫入的地址空間與擦除的地址空間并不一定相同,所以,需要在向電子控制單元發(fā)送寫入的數(shù)據(jù)之前驗證請求寫入的地址空間是否能寫入數(shù)據(jù)。如,通過擦除命令所擦除的地址空間的地址為100~200,當(dāng)?shù)诙鎯臻g的地址不為100~200時,說明不能在電子控制單元的第二存儲空間寫入數(shù)據(jù),從而也就不能完成對電子控制單元的應(yīng)用程序的更新。
當(dāng)驗證第二存儲空間能寫入數(shù)據(jù)時,電子控制單元會向重編程設(shè)備發(fā)送肯定響應(yīng)。
步驟S211、向所述電子控制單元發(fā)送數(shù)據(jù)傳輸命令;
步驟S212、在確定所述電子控制單元接收到所述數(shù)據(jù)傳輸命令后,向所述電子控制單元發(fā)送用于更新所述應(yīng)用程序的數(shù)據(jù),以使得所述電子控制單元調(diào)用所述驅(qū)動數(shù)據(jù)中的寫入接口對所述第二存儲空間執(zhí)行寫入操作。
電子控制單元接收到所述數(shù)據(jù)傳輸命令后,會向重編程設(shè)備發(fā)送肯定響應(yīng),以使得重編程設(shè)備向電子控制單元發(fā)送數(shù)據(jù)。
步驟S213、依據(jù)向所述電子控制單元發(fā)送的所述數(shù)據(jù),調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的校驗算法,獲得第一數(shù)據(jù)校驗和信息;
步驟S214、向所述電子控制單元發(fā)送數(shù)據(jù)完整性校驗命令,所述數(shù)據(jù)完整性校驗命令攜帶所述第一數(shù)據(jù)校驗和信息,以使得所述電子控制單元判斷所述第一數(shù)據(jù)校驗和信息與第二數(shù)據(jù)校驗和信息是否相同,若是,則確定所述數(shù)據(jù)完整,所述第二數(shù)據(jù)校驗和信息為所述電子控制單元依據(jù)所述數(shù)據(jù)、調(diào)用自身的校驗算法計算得到的數(shù)據(jù)校驗和信息。
為了驗證電子控制單元所寫入的數(shù)據(jù)與重編程設(shè)備發(fā)送的數(shù)據(jù)一致,即實現(xiàn)數(shù)據(jù)的完整性校驗,當(dāng)在第二存儲空間中寫入數(shù)據(jù)后,電子控制單元重新從第二存儲空間中讀取所寫入的數(shù)據(jù),并調(diào)用自身的校驗算法,計算所讀取的數(shù)據(jù)的數(shù)據(jù)校驗和信息,進而將該數(shù)據(jù)檢驗和信息與重編程設(shè)備發(fā)送來的數(shù)據(jù)校驗和信息進行比較,若比較結(jié)果一致,則向重編程設(shè)備發(fā)送肯定響應(yīng)。
數(shù)據(jù)完整性校驗結(jié)束后,重編程工具可以向電子控制單元發(fā)送結(jié)束編程命令,從而使電子控制單元退出編程模式,并向重編程設(shè)備發(fā)送肯定響應(yīng)。
本發(fā)明實施例所提供的技術(shù)方案,電子控制單元通過CANFD總線與重編程設(shè)備相連,重編程設(shè)備通過設(shè)置電子控制單元的編程模式,并使電子控制單元下載驅(qū)動數(shù)據(jù),從而使電子控制單元可以調(diào)動驅(qū)動數(shù)據(jù)對應(yīng)用程序進行擦寫的操作,可見,本發(fā)明的方案通過重編程設(shè)備,以軟件方式,實現(xiàn)了對電子控制單元的應(yīng)用程序的更新,以此解決了以更換硬件的方式更新電子控制單元帶來的成本高的問題。另外,在進行擦寫操作前對重編程設(shè)備的身份的合法性進行了驗證,保證了操作的合法性,在寫操作后,對寫入的數(shù)據(jù)進也行了完整性校驗,進一步地,由于CANFD總線不僅帶寬利用率高,且傳輸速率更快,所以,采用CANFD總線對電子控制單元的應(yīng)用程序更新不僅解決了更換硬件電子控制單元所帶來的成本高的問題,同時,對電子控制單元應(yīng)用程序更新的效率也更高。
請參閱圖3,圖3為本申請實施例提供的應(yīng)用程序更新裝置的一種結(jié)構(gòu)示意圖,該裝置結(jié)構(gòu)示意圖中的各單元的工作過程參照圖1對應(yīng)的實施例中方法的執(zhí)行過程,該裝置應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,該裝置包括:
第一發(fā)送單元301,用于向所述電子控制單元發(fā)送編程模式命令;
第一接收單元302,用于接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息,所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
第二發(fā)送單元303,用于向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
第二接收單元304,用于接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
第三發(fā)送單元305,用于向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新。
本發(fā)明實施例所提供的技術(shù)方案,電子控制單元通過CANFD總線與重編程設(shè)備相連,重編程設(shè)備通過設(shè)置電子控制單元的編程模式,并使電子控制單元下載驅(qū)動數(shù)據(jù),從而使電子控制單元可以調(diào)動驅(qū)動數(shù)據(jù)對應(yīng)用程序進行更新,可見,本發(fā)明的方案通過重編程設(shè)備,以軟件方式,實現(xiàn)了對電子控制單元的應(yīng)用程序的更新,以此解決了以更換硬件的方式更新電子控制單元帶來的成本高的問題。進一步地,由于CANFD總線不僅帶寬利用率高,且傳輸速率更快,所以,采用CANFD總線對電子控制單元的應(yīng)用程序更新不僅解決了更換硬件電子控制單元所帶來的成本高的問題,同時,對電子控制單元應(yīng)用程序更新的效率也更高。
請參閱圖4,圖4為本申請實施例提供的應(yīng)用程序更新裝置的一種結(jié)構(gòu)示意圖,該裝置結(jié)構(gòu)示意圖中的各單元的工作過程參照圖2對應(yīng)的實施例中方法的執(zhí)行過程,該裝置應(yīng)用于通過CANFD總線與電子控制單元相連的重編程設(shè)備,該裝置包括:
第一發(fā)送單元401,用于向所述電子控制單元發(fā)送編程模式命令;
第一接收單元402,用于接收所述電子控制單元響應(yīng)所述編程模式命令所發(fā)送的第一響應(yīng)信息,所述響應(yīng)信息用于指示所述電子控制單元已經(jīng)進入編程模式;
第二發(fā)送單元403,用于向處于所述編程模式的所述電子控制單元發(fā)送驅(qū)動數(shù)據(jù)下載命令;
第二接收單元404,用于接收所述電子控制單元響應(yīng)所述驅(qū)動數(shù)據(jù)下載命令所發(fā)送的第二響應(yīng)信息,所述第二響應(yīng)信息用于指示所述電子控制單元已經(jīng)接收到所述驅(qū)動數(shù)據(jù)下載命令;
第三發(fā)送單元405,用于向所述電子控制單元發(fā)送與所述電子控制單元對應(yīng)的驅(qū)動數(shù)據(jù),所述驅(qū)動數(shù)據(jù)用于對所述電子控制單元中的應(yīng)用程序進行更新;
第八發(fā)送單元406,用于向所述電子控制單元發(fā)送請求種子命令;
第三接收單元407,用于接收所述電子控制單元依據(jù)所述請求種子命令所發(fā)送的種子,并依據(jù)所述種子,調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的安全訪問算法計算第一密鑰;
第九發(fā)送單元408,用于通過密鑰解鎖命令將所述密鑰發(fā)送至所述電子控制單元,以使所述電子控制單元判斷所述第一秘鑰與第二秘鑰是否相同,若是,則確定所述重編程設(shè)備的身份合法,所述第二秘鑰為所述電子控制單元依據(jù)所述種子、調(diào)用自身的安全訪問算法計算得到的秘鑰;
第四發(fā)送單元409,用于向所述電子控制單元發(fā)送擦除命令,所述擦除命令攜帶擦除起始地址和擦除長度,所述擦除命令用于使所述電子控制單元,調(diào)用所述驅(qū)動數(shù)據(jù)中的擦除接口,對第一存儲空間中的應(yīng)用程序執(zhí)行擦除操作,所述第一存儲空間為依據(jù)所處擦除起始地址和所述擦除長度構(gòu)成的存儲空間;
第五發(fā)送單元410,用于向所述電子控制單元發(fā)送請求下載命令,所述請求下載命令攜帶數(shù)據(jù)寫入起始地址和寫入長度,所述請求下載命令用于使所述電子控制單元驗證第二存儲空間是否能寫入數(shù)據(jù),所述第二存儲空間為依據(jù)所述寫入起始地址和所述寫入長度構(gòu)成的存儲空間;
第六發(fā)送單元411,用于向所述電子控制單元發(fā)送數(shù)據(jù)傳輸命令;
第七發(fā)送單元412,用于在確定所述電子控制單元接收到所述數(shù)據(jù)傳輸命令后,向所述電子控制單元發(fā)送用于更新所述應(yīng)用程序的數(shù)據(jù),以使得所述電子控制單元調(diào)用所述驅(qū)動數(shù)據(jù)中的寫入接口對所述第二存儲空間執(zhí)行寫入操作;
計算單元413,用于依據(jù)向所述電子控制單元發(fā)送的所述數(shù)據(jù),調(diào)用預(yù)設(shè)的與所述電子控制單元對應(yīng)的校驗算法,獲得第一數(shù)據(jù)校驗和信息;
第十發(fā)送單元414,用于向所述電子控制單元發(fā)送數(shù)據(jù)完整性校驗命令,所述數(shù)據(jù)完整性校驗命令攜帶所述第一數(shù)據(jù)校驗和信息,以使得所述電子控制單元判斷所述第一數(shù)據(jù)校驗和信息與第二數(shù)據(jù)校驗和信息是否相同,若是,則確定所述數(shù)據(jù)完整,所述第二數(shù)據(jù)校驗和信息為所述電子控制單元依據(jù)所述數(shù)據(jù)、調(diào)用自身的校驗算法計算得到的數(shù)據(jù)校驗和信息。。
本發(fā)明實施例所提供的技術(shù)方案,電子控制單元通過CANFD總線與重編程設(shè)備相連,重編程設(shè)備通過設(shè)置電子控制單元的編程模式,并使電子控制單元下載驅(qū)動數(shù)據(jù),從而使電子控制單元可以調(diào)動驅(qū)動數(shù)據(jù)對應(yīng)用程序進行擦寫的操作,可見,本發(fā)明的方案通過重編程設(shè)備,以軟件方式,實現(xiàn)了對電子控制單元的應(yīng)用程序的更新,以此解決了以更換硬件的方式更新電子控制單元帶來的成本高的問題。另外,在進行擦寫操作前對重編程設(shè)備的身份的合法性進行了驗證,保證了操作的合法性,在寫操作后,對寫入的數(shù)據(jù)進也行了完整性校驗,進一步地,由于CANFD總線不僅帶寬利用率高,且傳輸速率更快,所以,采用CANFD總線對電子控制單元的應(yīng)用程序更新不僅解決了更換硬件電子控制單元所帶來的成本高的問題,同時,對電子控制單元應(yīng)用程序更新的效率也更高。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。