書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三” “第四”等(如果存在)是用于區別類似的部分,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本申請的實施例能夠以除了在這里圖示的以外的順序實施。
【具體實施方式】
[0054]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0055]請參閱圖1,圖1為本發明實施例提供的多個相同的電子控制單元重編程系統的示意圖,該系統中,多個相同的電子控制單元構成一個網段,重編程設備通過網絡總線與網段中的各個電子控制單元進行連接。
[0056]本發明實施例中,重編程設備具有組播地址,當重編程設備通過組播地址向網段發送指令或信息時,網段中的各個電子控制單元都可以接收。
[0057]本發明實施例提供的電子控制單元中應用程序的更新方法及裝置應用于上述重編程設備。
[0058]本發明實施例提供的電子控制單元中應用程序的更新方法的一種實現流程圖如圖2所示,可以包括:
[0059]步驟S21:依據所述網段中電子控制單元的程序更新步驟確定目標更新命令;
[0060]網段中的電子控制單元進行程序更新時,可以有多種更新方式,不同的更新方式具有不同的更新步驟。
[0061]步驟S22:通過所述組播地址向所述網段發送當前確定的目標更新命令;
[0062]通過組播地址向網段發送目標更新命令,在網絡正常且電子控制單元在線的情況下,網段中的各個電子控制單元均可以收到目標更新命令。
[0063]步驟S23:等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息;
[0064]重編程設備每發送一條目標更新命令,都會等待電子控制單元針對該目標更新命令進行響應。
[0065]步驟S24:在等待時長達到預設時長時,若當前發送的目標更新命令不是與電子控制單元的程序更新步驟的最后一步對應的更新命令,則返回執行所述依據所述網段中電子控制單元的程序更新步驟確定目標更新命令的步驟;
[0066]步驟S25:在等待時長達到所述預設時長時,若當前發送的目標更新命令是與電子控制單元的程序更新步驟的最后一步對應的更新命令,則結束更新。
[0067]也就是說,重編程設備在等待時長達到預設時長時,如果當前發送的目標更新命令不是與電子控制單元的程序更新步驟的最后一步對應的更新命令,則重新確定目標更新命令以進行下一更新步驟的更新。如果當前發送的目標更新命令是與電子控制單元的程序更新步驟的最后一步對應的更新命令,則對網段中電子控制單元的一次更新結束。
[0068]可選的,可以通過如下方法判斷等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息的時長是否達到預設時長:
[0069]初始化定時參數;
[0070]若在定時時長達到預設時長前接收到網段中的一個電子控制單元發送的響應信息,則對定時參數重置(即初始化),若在定時時長達到預設時長時,為收到網段中電子控制單元發送的響應信息,則確定等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息的時長達到預設時長;也就是說,在定時時長達到預設前,每接收到一個電子控制單元發送的響應信息,就對定時參數重置,否則確定等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息的時長達到預設時長。
[0071]例如,若所述預設時長為ls,則,在發送目標更新命令后開始計時,若在計時時長達到Is前接收到一個電子控制單元發送的響應信息,則在接收到該電子控制單元發送的響應信息時重新開始計時,等待下一個電子控制單元發送的響應信息,若在計時時長達到Is前接收到另一個電子控制單元發送的響應信息,則在接收到該另一個電子控制單元發送的響應信息時,再次重新開始計時,以此類推,直到在計時時長達到Is時還未接收到網段中電子控制單元發送的響應信息,若在計時時長達到Is時還未接收到網段中電子控制單元發送的響應信息,說明網段中的電子控制單元發送與所述當前發送的更新命令對應的響應信息的時長達到預設時長。
[0072]本發明實施例中,通過組播地址向網段發送更新命令,這樣,網段中的各個電子控制單元都能接收到該更新命令,且網段中的所有電子控制單元相同,從而多個電子控制單元可以并行對重編程設備發送的同一更新命令進行響應,也就是說,多個電子控制單元并行進行應用程序的更新,而不是一個電子控制單元更新完成再對另一個電子控制單元進行更新,從而縮短了對多個相同的電子控制單元中的應用程序進行更新所耗費的時間。
[0073]可選的,所述依據所述網段中電子控制單元的程序更新邏輯確定目標更新命令可以包括:
[0074]若電子控制單元的程序更新步驟為初始更新步驟,則確定與所述初始更新步驟對應的更新命令為目標更新命令;
[0075]初始更新步驟即為電子控制單元的程序更新步驟中的第一步。
[0076]若電子控制單元的程序更新步驟不是初始更新步驟,則確定當前更新步驟的下一更新步驟對應的更新命令為目標更新命令。
[0077]可選的,若電子控制單元的程序更新步驟為初始更新步驟,則在確定與所述初始更新步驟對應的更新命令為目標更新命令之前還可以包括:
[0078]通過所述組播地址向所述網段發送在線節點檢測命令;
[0079]等待所述網段中的電子控制單元發送與所述在線節點檢測命令對應的響應信息;
[0080]確定發送與所述在線節點檢測命令對應的響應信息的電子控制單元為在線電子控制單元;
[0081]由于網段中的電子控制單元可能會由于某些原因離線,離線的設備不能接收到重編程設備發送的更新命令,因此,在對電子控制單元進行更新時,可能會存在部分電子控制單元不能更新應用程序的情況。因此,本發明實施例中,在通過所述組播地址向所述網段發送與所述初始更新步驟對應的更新命令之前,對網段中的電子控制單元進行在線檢測,以判斷哪些電子控制單元在線,哪些電子控制單元離線,從而可以確定本次應用程序更新過程中都對哪些電子控制單元(即在線電子控制單元)進行應用程序的更新了。
[0082]相應的,所述確定與所述初始更新步驟對應的更新命令為目標更新命令包括:
[0083]在等待所述網段中的電子控制單元發送與所述在線節點檢測命令對應的響應信息的時長達到預設時長時,確定與所述初始更新步驟對應的更新命令為目標更新命令。
[0084]其中,判斷等待所述網段中的電子控制單元發送與所述在線節點檢測命令對應的響應信息的時長是否達到預設時長的方法可以參看前述判斷等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息的時長是否達到預設時長,這里不再贅述。
[0085]當等待所述網段中的電子控制單元發送與所述在線節點檢測命令對應的響應信息的時長達到第一預設時長后,即使接收到所述網段中的電子控制單元發送與所述在線節點檢測命令對應的響應信息,也不再確定發送與所述在線節點檢測命令對應的響應信息的電子控制單元為在線電子控制單元。
[0086]可選的,在等待所述網段中的電子控制單元發送與當前目標更新命令對應的響應信息的等待時長達到預設時長時,若未接收到第一電子控制單元發送的與當前目標更新命令對應響應信息,則將所述第一電子控制單元標記為更新異常;所述第一電子控制單元為被確定為在線電子控制單元中的任意一個。
[0087]進一步的,若當前發送的目標更新命令是與電子控制單元的程序更新步驟的最后一步對應的更新命令,則在等待時長達到所述預設時長時,本發明實施例提供的電子控制單元中應用程序的更新方法還可以包括:
[0088]確定被標記為更新異常的電子控制單元在所述網段中所占的比例;
[0089]若所述比例大于預設閾值,則執行所述依據所述網段中電子控制單元的程序更新步驟確定目標更新命令的步驟。
[0090]也就是說,在完成一次更新過程后,如果被標記為更新異常的電子控制單元的數量占網段中電子控制單元總數的百分比超過預設閾值時,重新對網段中的電子控制單元進行應用程序更新。
[0091]此時,已經更新成功的電子控制單元會向重編程設備發送否定響應,以說明其已更新成功,不再重新進行更新。
[0092]可選的,本發明實施例中,重編程設備還具有單播地址。相應的,在完成一次更新過程后,如果被標記為更新異常的電子控制單元的數量占網段中電子控制單元總數的百分比小于或等于預設閾值,則通過所述單播地址逐個對標記為更新異常的電子控制單元進行應用程序的更新。
[0093]具體的,可以包括:
[0094]依據所述網段中電子控制單元的程序更新步驟確定目標更新命令;
[0095]通過所述單播地址向第一被標記為更新異常的電子控制單元發送當前確定的目標更新命令;第一被標記為更新異常的電子控制單元為被標記為更新異常的電子控制單元中的任意一個電子控制單元。
[0096]等待所述第一被標記為更新異常的電子控制單元發送與當前目標更新命令對應的響應信息;
[0097]若當前發送的目標更新命令不是與電子控制單元的程序更新步驟的最后