一種電子控制單元中應用程序的更新方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種電子控制單元中應用程序的更新方法及裝置,當主控制器接收到重編程設備的下載流程啟動命令時,使從控制器進入準備編程模式;當接收到重編程設備發(fā)送的第一從控制器的驅動程序時,調用驅動程序中的初始化接口使第一從控制器進入編程模式;當接收到重編程設備發(fā)送的訪問地址信息時,如果通過訪問地址信息確定出待操作的從控制器為第一從控制器,調用第一從控制器的驅動程序的擦除接口擦除第一從控制器的存儲器;當接收到重編程設備發(fā)送的應用程序數據時,通過第一從控制器的驅動程序的寫操作接口將應用程序數據寫入第一從控制器的存儲器。由于重編程設備只與作為主控制器進行通信,因此,降低了重編程成本、節(jié)省了網絡資源。
【專利說明】一種電子控制單元中應用程序的更新方法及裝置
【技術領域】
[0001]本發(fā)明涉及應用程序更新【技術領域】,尤其涉及一種電子控制單元中應用程序的更新方法及裝置。
【背景技術】
[0002]目前,機動車輛上通常安裝有多個電子控制單元,多個電子控制單元用以執(zhí)行不同的功能。電子控制單元之間通常通過車載網絡總線系統(tǒng)連接在一起,用以進行它們之間的協(xié)調工作以及信息共享。電子控制單元至少包括微控制器和存儲器,電子控制單元的存儲器用于存儲電子控制單元的應用程序,應用程序包含可執(zhí)行的應用軟件和應用數據。
[0003]電子控制單元中通常具有一個微控制器,然而,隨著汽車電子技術的發(fā)展,越來越多的電子控制單元中,需要有多個不同的微控制器,這些微控制器中的一個微控制器作為主控制器,控制其它被稱為從控制器的微控制器,這些微控制器協(xié)同工作,完成復雜的功能。由于某些原因,需要對存儲在電子控制單元中的應用程序進行升級和修改,例如,電子控制單元中的應用程序存在缺陷或者要增加新的功能,此時,就需要對應用程序進行重編程。
[0004]現(xiàn)有技術中對具有多個微控制器的電子控制單元進行重編程的方案為:將電子控制單元中所有的微控制器都連接到車載網絡總線上,通過重編程設備對接入車載網絡總線的各個微控制器進行重編程。發(fā)明人在實現(xiàn)本發(fā)明創(chuàng)造的過程發(fā)現(xiàn):現(xiàn)有技術中對具有多個微控制器的電子控制單元進行重編程的方案會導致重編程系統(tǒng)的成本增加,并且會占用較多的網絡總線資源(車載網絡總線資源通常是有限的)。
【發(fā)明內容】
[0005]有鑒于此,本發(fā)明提供了一種電子控制單元中應用程序的更新方法及裝置,用以解決現(xiàn)有技術中現(xiàn)有技術中對具有多個微控制器的電子控制單元進行重編程的方案會導致重編程系統(tǒng)的成本增加,并且會占用較多的網絡總線資源的問題,其技術方案如下:
[0006]一種電子控制單元中應用程序的更新方法,應用于電子控制單元中作為主控制器的微控制器,所述主控制器通過車載網絡總線與重編程設備連接,所述主控制器通過其它總線與作為從控制器的微控制器連接,所述主控制器將各個從控制器虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息,所述方法包括:
[0007]當接收到所述重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,使所述各個從控制器進入準備編程模式;
[0008]當接收到所述重編程設備發(fā)送的第一從控制器的驅動程序時,調用所述驅動程序中的初始化接口使所述第一從控制器進入編程模式;
[0009]當接收到所述重編程設備發(fā)送的訪問地址信息時,如果通過所述訪問地址信息確定出待操作的從控制器為第一從控制器,則調用所述第一從控制器的驅動程序的擦除接口擦除所述第一從控制器的存儲器;[0010]當接收到所述重編程設備發(fā)送的第一應用程序數據時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,所述第一應用程序為所述第一從控制器待更新的應用程序。
[0011]上述方法還包括:
[0012]在通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器之前,比較所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據是否相同;
[0013]通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,具體為:
[0014]當所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據相同時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器。
[0015]上述方法還包括:
[0016]在所述各個從控制器進入準備編程模式之后,向所述重編程設備返回用于指示所述主控制器進入編程模式的指示信息;
[0017]在所述第一從控制器進入編程模式之后,向所述重編程設備返回用于指示所述第一從控制器進入編程模式的指示信息;
[0018]在所述第一從控制器的存儲器擦除完畢之后,向所述重編程設備返回用于指示所述第一從控制器擦除完畢的指示信息;
[0019]在將所述第一應用程序數據寫入所述第一從控制器的存儲器之后,向所述重編程設備返回用于指示所述第一應用程序數據寫入完畢的指示信息。
[0020]在向所述重編程設備返回用于指示所述各個從控制器進入準備編程模式的指示信息之后,上述方法還包括:
[0021]當接收到攜帶有密鑰信息的安全訪問命令時,驗證所述密鑰信息是否正確;
[0022]當所述密鑰信息正確時,向所述重編程設備返回所述安全訪問驗證命令的響應。
[0023]上述方法還包括:
[0024]當接收到所述重編程設備發(fā)送的攜帶有所述第一應用程序的校驗信息的完整性驗證命令時,通過所述校驗信息對所述第一從控制器的第一應用程序進行完整性驗證,在完整性驗證完成之后,向所述重編程設備返回所述完整性驗證命令的響應;
[0025]當接收到所述重編程設備發(fā)送的依賴性檢查命令時,檢查各個從控制器的應用程序是否有效,當所述各個從控制器的應用程序均有效時,向所述重編程設備返回所述依賴性檢查命令的響應,所述依賴性檢查命令中攜帶有依賴性檢查通過的指示信息;
[0026]當接收到重編程設備的結束編程命令時,先使所述各個從控制器進入正常工作模式,再使自身進入正常工作模式,然后向所述重編程設備返回所述結束編程命令的響應。
[0027]—種電子控制單元中應用程序的更新裝置,應用于電子控制單元中作為主控制器的微控制器,所述主控制器通過車載網絡總線與重編程設備連接,所述主控制器通過其它總線與作為從控制器的微控制器連接,所述主控制器將各個從控制器虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息;
[0028]所述裝置包括:[0029]第一模式切換模塊,用于當接收到重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,使所述從控制器進入準備編程模式;
[0030]第二模式切換模塊,用于當接收到所述重編程設備發(fā)送的第一從控制器的驅動程序時,調用所述驅動程序中的初始化接口使所述第一從控制器進入編程模式;
[0031]擦除模塊,用于當接收到所述重編程設備發(fā)送的訪問地址信息時,如果通過所述訪問地址信息確定出待操作的從控制器為所述第一從控制器,則調用所述第一從控制器的驅動程序的擦除接口擦除所述第一從控制器的存儲器;
[0032]寫入模塊,用于當接收到所述重編程設備發(fā)送的第一應用程序數據時,調用所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,所述第一應用程序為所述第一從控制器待更新的應用程序。
[0033]上述裝置還包括:
[0034]比較模塊,用于在通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器之前,比較所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據是否相同;
[0035]所述寫入模塊,具體用于當所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據相同時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器。
[0036]上述裝置還包括:
[0037]第一發(fā)送模塊,用于在所述各個從控制器進入準備編程模式之后,向所述重編程設備返回用于指示所述主控制器進入編程模式的指示信息;
[0038]第二發(fā)送模塊,用于在所述第一從控制器進入編程模式之后,向所述重編程設備返回用于指示所述第一從控制器進入編程模式的指示信息;
[0039]第三發(fā)送模塊,用于在擦除所述第一從控制器之后,向所述重編程設備返回用于指示所述第一從控制器的存儲器擦除完畢的指示信息;
[0040]第四發(fā)送模塊,用于在將所述第一應用程序數據寫入所述第一從控制器的存儲器之后,向所述重編程設備返回用于指示所述第一應用程序數據寫入完畢的指示信息。
[0041]上述裝置還包括:
[0042]安全訪問驗證模塊,用于在向所述重編程設備返回用于指示所述各個從控制器進入準備編程模式的指示信息之后,如果接收到攜帶有密鑰信息的安全訪問命令時,則驗證所述密鑰信息是否正確;
[0043]第五發(fā)送模塊,用于當所述密鑰信息正確時,向所述重編程設備返回所述安全訪問命令的響應。
[0044]上述裝置還包括:
[0045]完整性驗證模塊,用于當接收到所述重編程設備發(fā)送的攜帶有所述第一應用程序的校驗信息的完整性驗證命令時,通過所述校驗信息對所述第一從控制器的第一應用程序進行完整性驗證;
[0046]第六發(fā)送模塊,用于在完整性驗證完成之后,向所述重編程設備返回完整性驗證命令的響應;
[0047]依賴性檢查模塊,用于當接收到所述重編程設備發(fā)送的依賴性檢查命令時,檢查各個從控制器的應用程序是否有效;
[0048]第七發(fā)送模塊,用于當所述各個從控制器的應用程序均有效時,向所述重編程設備返回所述依賴性檢查命令的響應,所述依賴性檢查命令的響應消息中攜帶有依賴性檢查通過的指示信息;
[0049]第三模式切換模塊,用于當接收到重編程設備的結束編程命令時,先使所述各個從控制器進入正常工作模式,再使自身進入正常工作模式;
[0050]第八發(fā)送模塊,用于向所述重編程設備返回所述結束編程命令的響應
[0051]上述技術方案具有如下有益效果:
[0052]本發(fā)明提供的電子控制單元中應用程序的更新方法及裝置,電子控制單元中只有作為主控制器的微控制器連接到車載網絡總線,而作為從控制器的微控制器通過其它總線與主控制器連接,主控制器將從控制器虛擬成外部存儲器,并為從控制器分配唯一的訪問地址信息,基于唯一的訪問地址信息,重編程設備可單獨對每個從控制器進行重編程操作,進行重編程時主控制將從重編程設備獲取到應用程序數據轉交給從控制器,實現(xiàn)從控制器的應用程序更新。本發(fā)明提供的電子控制單元中應用程序的更新方法及裝置,可以同時對電子控制單元中的多個微控制器的應用程序進行更新,由于重編程設備只與作為主控制器的微控制器進行通信,因此,降低了重編程成本、節(jié)省了網絡資源。
【專利附圖】
【附圖說明】
[0053]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0054]圖1為本發(fā)明實施例提供的重編程系統(tǒng)的示意圖;
[0055]圖2為本發(fā)明實施例提供的主控制器的地址分配示意圖;
[0056]圖3為本發(fā)明實施例提供的一種電子控制單元中應用程序的更新方法的流程示意圖;
[0057]圖4為本發(fā)明實施例提供的電子控制單元中應用程序的更新方法的一具體實例的流程示意圖;
[0058]圖5為本發(fā)明實施例提供的一種電子控制單元中應用程序的更新裝置的結構示意圖。
【具體實施方式】
[0059]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0060]請參閱圖1,為本發(fā)明實施例提供的重編程系統(tǒng)的示意圖,其中,重編程設備100通過車載網絡總線101與電子控制單元10中作為主控制器的微控制器102連接,作為主控制器的微控制器102通過其它總線(如GPIO、SP1、IIC、SCI等)分別與作為從控制器的微控制器103、微控制器104和微控制器105連接。其中,重編程設備100中存儲有電子控制單元10中所有微控制器待更新的應用程序和驅動程序。
[0061]在本發(fā)明實施例中,作為主控制器的微控制器102將作為從控制器的微控制器103、微控制器104和微控制器103虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息。唯一的訪問地址信息保證了每個由從控制器虛擬而成的外部存儲器都是相互獨立的,因此能夠保證重編程設備可以單獨對某一個從控制器進行重編程操作,而不影響其它的從控制器。
[0062]其中,訪問地址信息可以包括起始地址和長度。示例性的,請參閱圖2,為主控制器的地址分配表,其中,M102作為主控制器的微控制器102內部的Flash空間,用來保存主控制器的應用程序,M103是主控制器為作為從控制器的微控制器103分配的地址空間,M104是主控制器為作為從控制器的微控制器104分配的地址空間,M105是主控制器為作為從控制器的微控制器105分配的地址空間。地址空間M102、M103、M104和M105唯一且互不重疊。
[0063]基于上述的重編程系統(tǒng),請參閱圖3,為本發(fā)明實施例提供的一種電子控制單元中應用程序的更新方法的流程示意圖,該方法應用于電子控制單元中作為主控制器的微控制器,該方法可以包括:
[0064]步驟S301:當接收到重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,并使各個從控制器進入準備編程模式。
[0065]其中,應用程序下載流程啟動命令用于指示主控制器啟動應用程序下載流程,主控制器在接收到應用程序下載流程啟動命令之后,進入編程模式,然后使各個從控制器進入準備編程模式。
[0066]其中,主控制器使從控制器進入準備編程模式的方式可以但不限定為通過總線命令、操作GPIO管腳等。
[0067]步驟S302:當接收到重編程設備發(fā)送的第一從控制器的驅動程序時,調用驅動程序中的初始化接口使第一從控制器進入編程模式。
[0068]其中,驅動程序使第一從控制器進入編程模式的方式可以但不限定為通過總線命令、操作GPIO管腳等。
[0069]步驟S303:當接收到重編程設備發(fā)送的訪問地址信息時,如果通過訪問地址信息確定出待操作的從控制器為第一從控制器,則調用第一從控制器的驅動程序的擦除接口擦除第一從控制器的存儲器。
[0070]在本實施例中,主控制器預先存儲訪問地址信息與從控制器的對應關系,當接收到重編程設備發(fā)送的訪問地址信息時,通過預先存儲的訪問地址信息與從控制器的對應關系可確定與接收的訪問地址信息對應的從控制器,從而可以進一步使用確定出的從控制器的驅動程序的擦除接口擦除該從控制器的存儲器。
[0071]其中,驅動程序擦除第一從控制器的存儲器的方式可以但不限定為利用從第一從控制器自帶的在系統(tǒng)編程ISP功能或從第一從控制器中的重編程程序提供的在應用編程IAP功能。
[0072]步驟S304:當接收到重編程設備發(fā)送的第一應用程序數據時,調用第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器。[0073]其中,第一應用程序為第一從控制器待更新的應用程序。
[0074]其中,驅動程序將第一應用程序數據寫入第一從控制器的存儲器的方式可以但不限定為利用從第一從控制器自帶的在系統(tǒng)編程ISP功能或從第一從控制器中的重編程程序提供的在應用編程IAP功能。
[0075]本發(fā)明提供的電子控制單元中應用程序的更新方法,電子控制單元中只有作為主控制器的微控制器連接到車載網絡總線,而作為從控制器的微控制器通過其它總線與主控制器連接,主控制器將從控制器虛擬成外部存儲器,并為從控制器分配唯一的訪問地址信息,基于唯一的訪問地址信息,重編程設備可單獨對每個從控制器進行重編程操作,在對從控制器進行重編程時,主控制將從重編程設備獲取到應用程序數據轉交給從控制器,實現(xiàn)從控制器的應用程序更新。本發(fā)明實施例提供的電子控制單元中應用程序的更新方法,可以同時對電子控制單元中的多個微控制器的應用程序進行更新,由于重編程設備只與作為主控制器的微控制器進行通信,因此,降低了重編程成本、節(jié)省了網絡資源。
[0076]在上式本發(fā)明實施例的基礎上,通過一具體實例給出電子控制單元中應用程序的更新方法的具體流程,圖4示出了方法的流程示意圖,可以包括:
[0077]步驟S401:重編程設備向主控制器發(fā)送應用程序下載流程啟動命令。
[0078]步驟S402:主控制器接收到應用程序下載流程啟動命令時,進入編程模式,使各個從控制器進入準備編程模式。
[0079]步驟S403:在使各個從控制器進入準備編程模式之后,主控制器向重編程設備返回應用程序下載流程啟動命令的響應。
[0080]其中,應用程序下載流程啟動命令的響應用于指示主控制器已進入編程模式。
[0081]步驟S404:重編程設備向主控制器發(fā)送攜帶有密鑰信息的安全訪問命令。
[0082]其中,安全訪問命令用于請求主控制器對重編程設備進行安全訪問驗證。
[0083]步驟S405:主控制器在接收到安全訪問命令之后,驗證安全訪問命令中攜帶的密鑰信息是否正確,當密鑰信息正確時,向重編程設備返回安全訪問命令的響應。
[0084]其中,安全訪問命令的響應用于指示重編程設備具有重編程權限。
[0085]步驟S406:重編程設備向主控制器發(fā)送驅動程序下載命令,該驅動程序下載命令攜帶有第一從控制器的驅動程序。
[0086]步驟S407:主控制器在接收到驅動程序下載命令之后,調用該驅動程序下載指令中第一從控制器的驅動程序的初始化接口,使第一從控制器進入編程模式。
[0087]步驟S408:主控制器在使第一從控制器進入編程模式后,向重編程設備返回驅動程序下載命令的響應。
[0088]其中,驅動程序下載命令的響應用于指示第一從控制器已進入編程模式。
[0089]步驟S409:重編程設備向主控制器發(fā)送攜帶有訪問地址信息的擦除命令。
[0090]步驟S410:主控制器在接收到擦除命令之后,通過該擦除命令種的訪問地址信息確定待操作的從控制器,如果待操作的從控制器為第一從控制器,則調用第一從控制器的驅動程序的擦除接口擦除第一從控制器的存儲器。
[0091]步驟S411:當主控制器接收到第一從控制器發(fā)送的成功擦除的指示信息時,向重編程設備返回擦除命令的響應。
[0092]其中,擦除命令的響應用于指示第一從控制器已成功擦除完畢。[0093]步驟S412:重編程設備向主控制器發(fā)送請求下載命令。
[0094]其中,請求下載命令中可攜帶第一從控制器的訪問地址信息。
[0095]步驟S413:主控制器在接收到請求下載命令后,通過請求下載命令中的訪問地址信息可確定要對第一從控制器進行重編程操作,然后向重編程設備返回請求下載命令的響應。
[0096]步驟S414:重編程設備向主控制器發(fā)送攜帶有第一應用數據的數據傳輸命令。
[0097]步驟S415:主控制器在接收到數據傳輸命令后,通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器。
[0098]其中,第一應用程序為第一從控制器待更新的應用程序。
[0099]步驟S416:當主控制器接收到第一從控制器發(fā)送的數據成功寫入的指示信息時,向重編程設備返回數據傳輸命令的響應。
[0100]其中,數據傳輸命令的響應用于指示第一從控制器的第一應用程序數據已寫入完畢。
[0101]步驟S417:重編程設備向主控制器發(fā)送攜帶有第一應用程序的校驗信息的完整性驗證命令。
[0102]其中,完整性驗證命令用于指示主控制器對第一應用程序進行完整性驗證。
[0103]步驟S418:主控制器在接收到完整性驗證命令之后,通過完整性驗證命令中的校驗信息對第一從控制器的第一應用程序進行完整性驗證。
[0104]步驟S419:當主控制接收到第一從控制器發(fā)送的完整性驗證成功的指示信息時,向重編程設備返回完整性驗證命令的響應。
[0105]其中,完整性驗證命令的響應用于指示第一應用程序已驗證完畢。
[0106]步驟S420:重編程設備向主控制器發(fā)送依賴性檢查命令。
[0107]其中,依賴性檢查命令用于指示主控制器檢查各個從控制器的應用程序的有效性。
[0108]步驟S421:主控制器在接收到依賴性檢查命令之后,檢查各個從控制器的應用程序是否有效,當各個從控制器的應用程序均有效時,向重編程設備返回依賴性檢查命令的響應。
[0109]其中,依賴性檢查命令的響應用于指示依賴性檢查通過。依賴性檢查命令的響應中可攜帶依賴性檢查通過的指示信息。
[0110]步驟S422:重編程設備向主控制器發(fā)送結束編程命令。
[0111]步驟S423:主控制器在接收到結束編程命令之后,使各個從控制器進入正常工作模式,然后使自身進入正常工作模式。
[0112]步驟S424:在使各個從控制器進入正常工作模式后,主控制器向重編程設備返回結束編程命令的響應。
[0113]重編程設備接收到主控制器返回的結束編程命令的響應之后,提示主控制器對第一從控制器的重編程工作結束。
[0114]本發(fā)明實施例提供的電子控制單元中應用程序的更新方法,可以同時對電子控制單元中的多個微控制器的應用程序進行更新,由于重編程設備只與作為主控制器的微控制器進行通信,因此,降低了重編程成本、節(jié)省了網絡資源。[0115]需要說明的是,通常情況下,從控制器中的應用程序需要與主控制器中的應用程序配合完成電子控制單元提供的功能。在這種情況下,如果從控制器的應用程序與主控制器中應用程序不匹配,則可能會影響電子控制單元的功能,甚至會影響車輛的安全性。
[0116]在上述本發(fā)明實施例提供的方法中,由于所有從控制器的應用程序數據都通過主控制器轉交的,因此,可以通過主控制器對從控制器的應用程序進行驗證,從而確定從控制器的應用程序與主控制器中的應用程序是否不匹配。
[0117]基于上述考慮,上述本發(fā)明實施例提供的方法還可以包括:
[0118]在接收到第一應用程序數據后,比較第一應用程序數據中的兼容性檢查數據與主控制器中應用程序的兼容性檢查數據是否相同。
[0119]則通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器,具體為:當第一應用程序數據中的兼容性檢查數據與主控制器中應用程序的兼容性檢查數據相同時,通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器。
[0120]需要說明的是,當從控制器的第一應用程序數據中的兼容性檢查數據與主控制器的應用程序的兼容性檢查數據不相同時,表明從控制器的第一應用程序數據與主控制器的應用程序不匹配,則主動放棄重編程。
[0121]本發(fā)明實施例提供的電子控制單元中應用程序的更新方法解決了主從控制器之間應用程序不匹配的問題。
[0122]與上述方法相對應,本發(fā)明實施例還提供了一種電子控制單元中應用程序的更新裝置,請參閱圖5,為該裝置的結構示意圖,該裝置應用于電子控制單元中作為主控制器的微控制器,主控制器通過車載網絡總線與重編程設備連接,主控制器通過其它總線與作為從控制器的微控制器連接,主控制器將各個從控制器虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息,該裝置包括:第一模式切換模塊501、第二模式切換模塊502、擦除模塊503和寫入模塊504。其中:
[0123]第一模式切換模塊501,用于當接收到重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,使從控制器進入準備編程模式。
[0124]第二模式切換模塊502,用于當接收到重編程設備發(fā)送的第一從控制器的驅動程序時,調用第一從控制器的驅動程序中的初始化接口使第一從控制器進入編程模式。
[0125]擦除模塊503,用于當接收到重編程設備發(fā)送的訪問地址信息時,如果通過訪問地址信息確定出待操作的從控制器為第一從控制器,則調用第一從控制器的驅動程序的擦除接口擦除第一從控制器的存儲器。
[0126]寫入模塊504,用于當接收到重編程設備發(fā)送的第一應用程序數據時,通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器,第一應用程序為第一從控制器待更新的應用程序。
[0127]本發(fā)明提供的電子控制單元中應用程序的更新裝置,可以同時對電子控制單元中的多個微控制器的應用程序進行更新,由于重編程設備只與作為主控制器的微控制器進行通信,因此,降低了重編程成本、節(jié)省了網絡資源。
[0128]上述實施例提供的裝置還可以包括:比較模塊。
[0129]比較模塊,用于在通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器之前,比較第一應用程序數據中的兼容性檢查數據與主控制器中應用程序的兼容性檢查數據是否相同。
[0130]則寫入模塊504,具體用于當第一應用程序數據中的兼容性檢查數據與主控制器中應用程序的兼容性檢查數據相同時,通過第一從控制器的驅動程序的寫操作接口將第一應用程序數據寫入第一從控制器的存儲器。
[0131]上述實施例提供的裝置還可以包括:第一發(fā)送模塊、第二發(fā)送模塊、第三發(fā)送模塊和第四發(fā)送模塊。其中:
[0132]第一發(fā)送模塊,用于在各個從控制器進入準備編程模式之后,向重編程設備返回用于指示主控制器進入編程模式的指示信息。
[0133]第二發(fā)送模塊,用于在第一從控制器進入編程模式之后,向重編程設備返回用于指示第一從控制器進入編程模式的指示信息。
[0134]第三發(fā)送模塊,用于在擦除第一從控制器之后,向重編程設備返回用于指示第一從控制器的存儲器擦除完畢的指示信息。
[0135]第四發(fā)送模塊,用于在將第一應用程序數據寫入第一從控制器的存儲器之后,向重編程設備返回用于指示第一應用程序數據寫入完畢的指示信息。
[0136]上述實施例提供的裝置還可以包括:安全訪問驗證模塊和第五發(fā)送模塊。其中:
[0137]安全訪問驗證模塊,用于在向重編程設備返回用于指示各個從控制器進入準備編程模式的指示信息之后,如果接收到攜帶有密鑰信息的安全訪問命令時,則驗證密鑰信息是否正確。
[0138]第五發(fā)送模塊,用于當密鑰信息正確時,表明重編程設備具有重編程權限,則向重編程設備返回安全訪問命令的響應。
[0139]上述實施例提供的裝置還可以包括:完整性驗證模塊、第六發(fā)送模塊、依賴性檢查模塊、第七發(fā)送模塊、第三模式切換模塊和第八發(fā)送模塊。其中:
[0140]完整性驗證模塊,用于當接收到重編程設備發(fā)送的攜帶有第一應用程序的校驗信息的完整性驗證命令時,通過校驗信息對第一從控制器的第一應用程序進行完整性驗證。
[0141]第六發(fā)送模塊,用于在完整性驗證完成之后,向重編程設備返回完整性驗證命令的響應。
[0142]依賴性檢查模塊,用于當接收到所述重編程設備發(fā)送的依賴性檢查命令時,檢查各個從控制器的應用程序是否有效。
[0143]第七發(fā)送模塊,用于當各個從控制器的應用程序均有效時,向重編程設備返回依賴性檢查命令的響應,依賴性檢查命令的響應消息中攜帶有依賴性檢查通過的指示信息。
[0144]第三模式切換模塊,用于當接收到重編程設備的結束編程命令時,先使各個從控制器進入正常工作模式,再使自身進入正常工作模式。
[0145]第八發(fā)送模塊,用于向重編程設備返回結束編程命令的響應。
[0146]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
[0147]在本申請所提供的幾個實施例中,應該理解到,所揭露的方法、裝置和設備,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0148]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0149]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0150]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0151]對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權利要求】
1.一種電子控制單元中應用程序的更新方法,其特征在于,應用于電子控制單元中作為主控制器的微控制器,所述主控制器通過車載網絡總線與重編程設備連接,所述主控制器通過其它總線與作為從控制器的微控制器連接,所述主控制器將各個從控制器虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息,所述方法包括: 當接收到所述重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,使所述各個從控制器進入準備編程模式; 當接收到所述重編程設備發(fā)送的第一從控制器的驅動程序時,調用所述驅動程序中的初始化接口使所述第一從控制器進入編程模式; 當接收到所述重編程設備發(fā)送的訪問地址信息時,如果通過所述訪問地址信息確定出待操作的從控制器為第一從控制器,則調用所述第一從控制器的驅動程序的擦除接口擦除所述第一從控制器的存儲器; 當接收到所述重編程設備發(fā)送的第一應用程序數據時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,所述第一應用程序為所述第一從控制器待更新的應用程序。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 在通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器之前,比較所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據是否相同; 通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,具體為: 當所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據相同時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器。
3.根據權利要求1或2所述的方法,其特征在于,所述方法還包括: 在所述各個從控制器進入準備編程模式之后,向所述重編程設備返回用于指示所述主控制器進入編程模式的指示信息; 在所述第一從控制器進入編程模式之后,向所述重編程設備返回用于指示所述第一從控制器進入編程模式的指示信息; 在所述第一從控制器的存儲器擦除完畢之后,向所述重編程設備返回用于指示所述第一從控制器擦除完畢的指示信息; 在將所述第一應用程序數據寫入所述第一從控制器的存儲器之后,向所述重編程設備返回用于指示所述第一應用程序數據寫入完畢的指示信息。
4.根據權利要求3所述的方法,其特征在于,在向所述重編程設備返回用于指示所述各個從控制器進入準備編程模式的指示信息之后,所述方法還包括: 當接收到攜帶有密鑰信息的安全訪問命令時,驗證所述密鑰信息是否正確; 當所述密鑰信息正確時,向所述重編程設備返回所述安全訪問驗證命令的響應。
5.根據權利要求3所述的方法,其特征在于,所述方法還包括: 當接收到所述重編程設備發(fā)送的攜帶有所述第一應用程序的校驗信息的完整性驗證命令時,通過所述校驗信息對所述第一從控制器的第一應用程序進行完整性驗證,在完整性驗證完成之后,向所述重編程設備返回所述完整性驗證命令的響應; 當接收到所述重編程設備發(fā)送的依賴性檢查命令時,檢查各個從控制器的應用程序是否有效,當所述各個從控制器的應用程序均有效時,向所述重編程設備返回所述依賴性檢查命令的響應,所述依賴性檢查命令中攜帶有依賴性檢查通過的指示信息; 當接收到重編程設備的結束編程命令時,先使所述各個從控制器進入正常工作模式,再使自身進入正常工作模式,然后向所述重編程設備返回所述結束編程命令的響應。
6.一種電子控制單元中應用程序的更新裝置,其特征在于,應用于電子控制單元中作為主控制器的微控制器,所述主控制器通過車載網絡總線與重編程設備連接,所述主控制器通過其它總線與作為從控制器的微控制器連接,所述主控制器將各個從控制器虛擬成外部存儲器,并為各個從控制器分配唯一的訪問地址信息; 所述裝置包括: 第一模式切換模塊,用于當接收到重編程設備發(fā)送的應用程序下載流程啟動命令時,進入編程模式,使所述從控制器進入準備編程模式; 第二模式切換模塊,用于當接收到所述重編程設備發(fā)送的第一從控制器的驅動程序時,調用所述驅動程序中的初始化接口使所述第一從控制器進入編程模式; 擦除模塊,用于當接收到所述重編程設備發(fā)送的訪問地址信息時,如果通過所述訪問地址信息確定出待操作的從控制器為所述第一從控制器,則調用所述第一從控制器的驅動程序的擦除接口擦除所述第一從控制器的存儲器; 寫入模塊,用于當接收到所述重編程設備發(fā)送的第一應用程序數據時,調用所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器,所述第一應用程序為所述第一從控制器待更新的應用程序。
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括: 比較模塊,用于在通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器之前,比較所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據是否相同; 所述寫入模塊,具體用于當所述第一應用程序數據中的兼容性檢查數據與所述主控制器中應用程序的兼容性檢查數據相同時,通過所述第一從控制器的驅動程序的寫操作接口將所述第一應用程序數據寫入所述第一從控制器的存儲器。
8.根據權利要求1或2所述的裝置,其特征在于,所述裝置還包括: 第一發(fā)送模塊,用于在所述各個從控制器進入準備編程模式之后,向所述重編程設備返回用于指示所述主控制器進入編程模式的指示信息; 第二發(fā)送模塊,用于在所述第一從控制器進入編程模式之后,向所述重編程設備返回用于指示所述第一從控制器進入編程模式的指示信息; 第三發(fā)送模塊,用于在擦除所述第一從控制器之后,向所述重編程設備返回用于指示所述第一從控制器的存儲器擦除完畢的指示信息; 第四發(fā)送模塊,用于在將所述第一應用程序數據寫入所述第一從控制器的存儲器之后,向所述重編程設備返回用于指示所述第一應用程序數據寫入完畢的指示信息。
9.根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 安全訪問驗證模塊,用于在向所述重編程設備返回用于指示所述各個從控制器進入準備編程模式的指示信息之后,如果接收到攜帶有密鑰信息的安全訪問命令時,則驗證所述密鑰信息是否正確; 第五發(fā)送模塊,用于當所述密鑰信息正確時,向所述重編程設備返回所述安全訪問命令的響應。
10.根據權利要求9所述的裝置,其特征在于,所述裝置還包括: 完整性驗證模塊,用于當接收到所述重編程設備發(fā)送的攜帶有所述第一應用程序的校驗信息的完整性驗證命令時,通過所述校驗信息對所述第一從控制器的第一應用程序進行完整性驗證; 第六發(fā)送模塊,用于在完整性驗證完成之后,向所述重編程設備返回完整性驗證命令的響應; 依賴性檢查模塊,用于當接收到所述重編程設備發(fā)送的依賴性檢查命令時,檢查各個從控制器的應用程序是否有效; 第七發(fā)送模塊,用于當所述各個從控制器的應用程序均有效時,向所述重編程設備返回所述依賴性檢查命令的響應,所述依賴性檢查命令的響應消息中攜帶有依賴性檢查通過的指示信息; 第三模式切換模塊,用于當接收到重編程設備的結束編程命令時,先使所述各個從控制器進入正常工作模式,再使自身進入正常工作模式; 第八發(fā)送模塊,用于向所述重編程設備返回所述結束編程命令的響應。
【文檔編號】G06F9/445GK103713932SQ201410027192
【公開日】2014年4月9日 申請日期:2014年1月21日 優(yōu)先權日:2014年1月21日
【發(fā)明者】湯銘清, 張賀偉 申請人:北京經緯恒潤科技有限公司