專利名稱:一種應(yīng)用程序的重編程方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及重編程技術(shù)領(lǐng)域,更具體地說,涉及一種應(yīng)用程序的重編程方法及系統(tǒng)。
背景技術(shù):
在當(dāng)今機(jī)動車輛上,通常安裝有多個電子控制單元,用以執(zhí)行不同的功能。例如車身控制單元,主要用來控制車體中的燈、門、窗以及車身的防盜部分;發(fā)動機(jī)控制單元,主要用以對輸送給發(fā)動機(jī)氣缸的噴射量或進(jìn)氣氣流進(jìn)行控制。這些電子控制單元之間通常通過車載網(wǎng)絡(luò)總線系統(tǒng)(例如CAN總線或LIN總線)連接在一起,用以進(jìn)行它們之間的協(xié)調(diào)工作以及信息共享。其中,電子控制單元包括重編程程序模塊和應(yīng)用程序模塊,應(yīng)用程序模塊中包含有可執(zhí)行的應(yīng)用軟件和應(yīng)用數(shù)據(jù)。電子控制單元啟動后,首先運(yùn)行其重編程程序模塊,當(dāng)重編程程序模塊確定應(yīng)用程序模塊存在后,引導(dǎo)應(yīng)用程序模塊運(yùn)行,中止重編程程序模塊自身程序的運(yùn)行,電子控制單元開始正常工作。當(dāng)電子控制單元中的應(yīng)用程序存在缺陷或者需要增加新的功能時,需要對該應(yīng)用程序進(jìn)行修改和升級,所以需要對該應(yīng)用程序進(jìn)行重編程。但是,當(dāng)電子控制單元安裝在車輛上時,有些情況可能不能重新下載有效的應(yīng)用程序,例如上位機(jī)工具讀取應(yīng)用程序文件錯誤,應(yīng)用程序不匹配,或是因為疏忽下載了功能不完整的應(yīng)用程序。這些情況下,電子控制單元啟動后,會使其重編程程序模塊運(yùn)行,重編程程序模塊確定應(yīng)用程序模塊存在后,引導(dǎo)應(yīng)用程序模塊運(yùn)行,中止重編程程序模塊自身程序的運(yùn)行,此時電子控制單元開始正常工作。因此,在電子控制單元中,重編程程序模塊運(yùn)行的時間較短,應(yīng)用程序模塊運(yùn)行時間較長。而同一電子控制單元中的重編程程序模塊和應(yīng)用程序模塊不能同時運(yùn)行,只能運(yùn)行其一,當(dāng)存在缺陷的應(yīng)用程序模塊運(yùn)行時,重編程程序模塊無法運(yùn)行。而當(dāng)重編程程序模塊運(yùn)行時間較短時,我們無法在短時間內(nèi)完成應(yīng)用程序的重新下載,以對應(yīng)用程序模塊中的應(yīng)用程序進(jìn)行重編程。上述問題仍困擾著本領(lǐng)域的研發(fā)人員。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種應(yīng)用程序的重編程方法及系統(tǒng),以實現(xiàn)無需將電子控制單元拆卸下來,仍可使重編程設(shè)備可以有足夠的時間將保存的應(yīng)用程序通過重編程程序模塊下載到應(yīng)用程序模塊中,實現(xiàn)應(yīng)用程序的在線重編程。一種應(yīng)用程序的重編程方法,應(yīng)用于重編程設(shè)備和電子控制單元中,所述重編程設(shè)備與至少一個所述電子控制單元相連接,所述電子控制單元包括重編程程序模塊和應(yīng)用程序模塊,其中,所述重編程程序模塊用于引導(dǎo)所述應(yīng)用程序模塊,所述方法包括所述重編程設(shè)備向所述電子控制單元發(fā)送請求報文;在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文;當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備向所述電子控制單元再次發(fā)送所述請求報文;當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中含有所述電子控制單元的標(biāo)識符,當(dāng)有與所述電子控制單元匹配的請求報文到達(dá)時,所述電子控制單元的重編程程序模塊接收該請求報文。 優(yōu)選的,在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文的步驟包括在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定其應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。優(yōu)選的,在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文的步驟包括在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定其應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元標(biāo)識符后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。一種應(yīng)用程序的重編程系統(tǒng),包括重編程設(shè)備和與所述重編程設(shè)備相連接的至少一個電子控制單元,所述電子控制單元包括重編程程序模塊和應(yīng)用程序模塊,其中,所述重編程程序模塊用于引導(dǎo)所述應(yīng)用程序模塊,所述重編程設(shè)備包括請求報文發(fā)送模塊、請求報文重發(fā)模塊和程序燒寫模塊,所述重編程程序模塊包括響應(yīng)報文發(fā)送子模塊,所述請求報文發(fā)送模塊,用于所述重編程設(shè)備向所述電子控制單元發(fā)送請求報文;所述響應(yīng)報文發(fā)送子模塊,用于在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文;所述請求報文重發(fā)模塊用于當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備向所述電子控制單元再次發(fā)送所述請求報文;所述程序燒寫模塊,用于當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,所述重編程設(shè)備接收所述響應(yīng)報文,并將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中含有所述電子控制單元的標(biāo)識符,當(dāng)有與所述電子控制單元匹配的請求報文到達(dá)時,所述電子控制單元的重編程程序模塊接收該請求報文。
優(yōu)選的,所述響應(yīng)報文發(fā)送子模塊具體設(shè)置為在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。優(yōu)選的,所述響應(yīng)報文發(fā)送子模塊具體設(shè)置為在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元標(biāo)識符后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。從上述的技術(shù)方案可以看出,本發(fā)明提供了一種應(yīng)用程序的重編程方法及系統(tǒng),本發(fā)明中重編程設(shè)備和至少一個電子控制單元相連接,所述電子控制單元可以包括重編程程序模塊和應(yīng)用程序模塊。在電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,該電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到重編程設(shè)備發(fā)送的請求報文后,該重編程程序模塊向重編程設(shè)備發(fā)送響應(yīng)報文,并中斷重編程程序模塊對應(yīng)用程序模塊的引導(dǎo)過程,以使應(yīng)用程序模塊維持在未啟動狀態(tài)。當(dāng)應(yīng)用程序模塊維持在未啟動狀態(tài)時,重編程程序模塊就可以較長時間處于運(yùn)行狀態(tài),從而保證重編程設(shè)備可以有足夠的時間將保存的應(yīng)用程序通過重編程程序模塊下載到應(yīng)用程序模塊中,實現(xiàn)了應(yīng)用程序的在線重編程。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例公開的一種應(yīng)用程序更新系統(tǒng)示意圖;圖2為本發(fā)明實施例公開的一種應(yīng)用程序的重編程方法流程圖;圖3為本發(fā)明實施例公開的一種應(yīng)用程序的重編程方法中電子控制單元的運(yùn)行過程的流程圖;圖4為本發(fā)明實施例公開的一種應(yīng)用程序的重編程系統(tǒng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例公開的一種應(yīng)用程序的重編程系統(tǒng)中電子控制單元的結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。如圖1所示,本發(fā)明實施例公開的一種應(yīng)用程序更新系統(tǒng)示意圖,可以包括重編程設(shè)備100和與所述重編程設(shè)備100相連接的至少一個電子控制單元200,所述電子控制單元200可以包括重編程程序模塊210和應(yīng)用程序模塊220,其中,所述重編程程序模塊210可以用于引導(dǎo)所述應(yīng)用程序模塊220。優(yōu)選的,在所述電子控制單元200的一側(cè)可以安裝有網(wǎng)絡(luò)接口 300,所述重編程設(shè)備100和所述電子控制單元200可以通過網(wǎng)絡(luò)接口 300連接。如圖2所示,本發(fā)明實施例公開的一種應(yīng)用程序的重編程方法,應(yīng)用于所述重編程設(shè)備100和電子控制單元200中,該方法可以包括S100、所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文;可以理解的是,所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文時,只有其應(yīng)用程序模塊220需要重編程的電子控制單元200,其含有的重編程程序模塊210才有可能收到所述請求報文。因此,為了使所述重編程設(shè)備100通過所述請求報文,找到發(fā)送響應(yīng)報文的電子控制單元200,在所述請求報文中可以含有電子控制單元200的標(biāo)識符,即所述請求報文為所述重編程設(shè)備100與所述電子控制單元200協(xié)商好的報文。例如當(dāng)請求報文為0x040x310x010xFF0xl80x000x000x00時,該請求報文中含有的所述電子控制單元200的標(biāo)識符為0x040x310x010xFF0xl8,其中,0x04可以表示請求報文的長度,0x31可以表示統(tǒng)一診斷服務(wù)中規(guī)定的服務(wù)編號,0x01可以表示統(tǒng)一診斷服務(wù)中規(guī)定的服務(wù)子編號,0xFF0xl8可以為和客戶商定的數(shù)據(jù)編號信息,而請求報文中的后三個字節(jié)0x000x000x00可以作為該請求報文的填位符,起填充請求報文位數(shù)的作用,沒有實質(zhì)的意義。比如,當(dāng)請求報文為0x040x310x010xFF0xl80x550x550x55時,因為請求報文的前五個字節(jié)沒有變化,所以所述電子控制單元中的重編程程序模塊210仍可以收到該請求報文,當(dāng)請求報文為0x050x310x010xFF0xl80x000x000x00時,雖然請求報文中只有第一個字節(jié)由0x04變?yōu)?x05,其他字節(jié)均沒有變化,但是,因為請求報文的前五個字節(jié)發(fā)生變化,其含有的標(biāo)識符與所述電子控制單元200不匹配,所述電子控制單元200中的重編程程序模塊210接收不到該請求報文。因此,只有含有與所述請求報文中標(biāo)識符相匹配的電子控制單元200,其包含有的重編程程序模塊210才可以接收所述請求報文,所述重編程程序模塊210接收所述請求報文后,所述重編程程序模塊210發(fā)送所述響應(yīng)報文,并中斷所述重編程程序模塊210對所述應(yīng)用程序模塊220的引導(dǎo)過程,以使所述應(yīng)用程序模塊220維持在未啟動狀態(tài)。其中,在所述重編程設(shè)備100發(fā)送所述請求報文前,所述電子控制單元200可以處于關(guān)閉狀態(tài),當(dāng)所述重編程設(shè)備100發(fā)送所述請求報文后,所述電子控制單元200可以切換為開啟狀態(tài)。S200、在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文;其中,所述電子控制單元200中的重編程程序模塊210中斷所述重編程程序模塊210對所述應(yīng)用程序模塊220的引導(dǎo)過程,以使所述應(yīng)用程序模塊220維持在未啟動狀態(tài),此時,所述重編程程序模塊210就可以較長時間處于運(yùn)行狀態(tài),從而保證所述重編程設(shè)備100可以有足夠的時間,將保存的應(yīng)用程序通過所述重編程程序模塊210下載到所述應(yīng)用程序模塊220中,實現(xiàn)了應(yīng)用程序的在線重編程。需要說明的是,所述應(yīng)用程序模塊220需要重編程的情況可以為電子控制單元200中的應(yīng)用程序存在缺陷或是需要增加新的功能時,或是因為疏忽下載了功能不完整的應(yīng)用程序,或是因為某些原因?qū)е码娮涌刂茊卧械膽?yīng)用程序損壞的情況等。S300、當(dāng)所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備100向所述電子控制單元200再次發(fā)送所述請求報文;可以理解的是,所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文,以使所述電子控制單元200中接收到所述請求報文重編程程序模塊210處于較長時間的運(yùn)行狀態(tài),從而保證重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過重編程模塊210下載到應(yīng)用程序模塊220中,實現(xiàn)應(yīng)用程序的在線重編程。而判斷所述電子控制單元200是否接收到所述請求報文的依據(jù)為所述重編程設(shè)備100是否在預(yù)設(shè)時間(如Ims)內(nèi)接收到所述響應(yīng)報文。如果所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文,所述重編程設(shè)備100將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的所述電子控制單元200中。如果所述重編程設(shè)備100沒有接收到所述響應(yīng)報文,則繼續(xù)向所述電子控制單元200發(fā)送請求報文。在實際應(yīng)用中,所述重編程設(shè)備100可以多次執(zhí)行步驟S300。當(dāng)然,在另一實施例中,為了避免所述重編程設(shè)備100在未接收到所述響應(yīng)報文前不斷的向所述電子控制單元200發(fā)送請求報文,我們可以設(shè)置另一個時間閾值,如Is。如果在Is內(nèi)的所述預(yù)設(shè)時間內(nèi)(如1ms),所述重編程設(shè)備100沒有接收到所述響應(yīng)報文,則繼續(xù)向所述電子控制單元200發(fā)送所述請求報文,如果超過ls,所述重編程設(shè)備100則停止發(fā)送所述請求報文。S400、當(dāng)所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,所述重編程設(shè)備100接收所述響應(yīng)報文,并將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中可以含有所述電子控制單元200的標(biāo)識符,當(dāng)有與所述電子控制單元200匹配的請求報文到達(dá)時,所述電子控制單元200的重編程程序模塊210接收該請求報文。本發(fā)明提供的一種應(yīng)用程序的重編程方法,針對需要將電子控制單元200拆卸下來以使重編程程序模塊210處于較長時間的運(yùn)行狀態(tài)的情況,在電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,通過重編程程序模塊210接收重編程設(shè)備100發(fā)送的請求報文后,重編程程序模塊210向重編程設(shè)備100發(fā)送響應(yīng)報文,并中斷重編程程序模塊210對應(yīng)用程序模塊220的引導(dǎo)過程,以使應(yīng)用程序模塊220維持在未啟動狀態(tài)。當(dāng)應(yīng)用程序模塊220維持在未啟動狀態(tài)時,重編程程序模塊210就可以較長時間處于運(yùn)行狀態(tài),從而保證重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過重編程模塊210下載到應(yīng)用程序模塊220中,實現(xiàn)了應(yīng)用程序的在線重編程。其中,所述重編程程序模塊210在接收所述請求報文前,還需要確定所述應(yīng)用程序模塊220是否存在。因為當(dāng)所述應(yīng)用程序模塊220不存在時,所述電子控制單元200中的重編程程序模塊210無需接收所述請求報文仍可以處于較長時間的運(yùn)行狀態(tài),所述重編程設(shè)備100就可以通過所述重編程程序模塊210對所述電子控制單元200進(jìn)行應(yīng)用程序下載。當(dāng)所述重編程程序模塊210確定應(yīng)用程序模塊220存在后,就需要通過接收所述請求報文來中斷對所述應(yīng)用程序模塊220的引導(dǎo)過程,從而所述重編程程序模塊210可以處于較長時間的運(yùn)行狀態(tài),所述重編程設(shè)備100就可以通過所述重編程程序模塊210將保存的應(yīng)用程序下載到所述應(yīng)用程序模塊220中,實現(xiàn)應(yīng)用程序的在線重編程。
所以,步驟S200具體可以包括在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在確定其應(yīng)用程序模塊220存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文。其中,所述重編程程序模塊210在接收到所述請求報文后,還需要判斷接收到的所述請求報文是否格式正確且所述請求報文是否含有該電子控制單元200的標(biāo)識符。例如請求報文前五個字節(jié)表示所述電子控制單元200的標(biāo)識符,而該電子控制單元200接收到前四個字節(jié)表示電子控制單元200標(biāo)識符的請求報文,即該電子控制單元200接收到的請求報文的格式不正確,所以該電子控制單元200中的重編程程序模塊210不接收該請求報文。當(dāng)所述電子控制單元200接收到的請求報文的格式正確,但是接收到的請求報文內(nèi)容不正確時,該電子控制單元200中的重編程程序模塊210仍不接收該請求報文。例如與該電子控制單元200匹配的請求報文為0x040x310x010xFF0xl80x000x000x00時,該電子控制單元200接收到的請求報文為0x050x310x010xFF0xl80x000x000x00,雖然請求報文中只有第一個字節(jié)由0x04變?yōu)?x05,其他字節(jié)均沒有變化,但是,接收到的請求報文的內(nèi)容不正確,所以所述電子控制單元200中的重編程程序模塊210不接收該請求報文。所以,步驟S200具體可以包括在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在確定其應(yīng)用程序模塊220存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊210在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元200標(biāo)識符后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文。需要說明的是,當(dāng)所述重編程程序模塊210在預(yù)設(shè)時間超出后仍沒有接收到請求報文,則所述重編程程序模塊210不再接收請求報文。如圖3所示,本發(fā)明實施例公開的一種應(yīng)用程序的重編程方法中電子控制單元的運(yùn)行過程,可以包括S211、所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài);S212、所述重編程程序模塊確定所述應(yīng)用程序模塊220是否存在,如果否,則執(zhí)行S270,如果是,則執(zhí)行S220 ;S220、確定是否在預(yù)設(shè)時間內(nèi)接收到所述請求報文,如果否,則執(zhí)行S231,如果是,則執(zhí)行S240 ;S231、確定是否超出預(yù)設(shè)時間,如果否,則執(zhí)行S220,如果是,則執(zhí)行S232 ;S232、所述應(yīng)用程序模塊220執(zhí)行已有的應(yīng)用程序;S240、確定接收到的請求報文的格式是否正確,內(nèi)容是否含該電子控制單元200的標(biāo)識符,如果是,則執(zhí)行S250,否則,執(zhí)行S231 ;S250、接收所述請求報文;S260、向所述重編程設(shè)備100發(fā)送響應(yīng)報文,中斷對所述應(yīng)用程序模塊220的引導(dǎo)過程;S270、接收所述重編程設(shè)備100燒寫入的應(yīng)用程序,更新所述應(yīng)用程序模塊220中的應(yīng)用程序。與上述方法實施例相對應(yīng),本發(fā)明還提供了一種應(yīng)用程序的重編程系統(tǒng)。如圖1所示,本發(fā)明實施例公開的一種應(yīng)用程序更新系統(tǒng)示意圖,可以包括重編程設(shè)備100和與所述重編程設(shè)備100相連接的至少一個電子控制單元200,所述電子控制單元200可以包括重編程程序模塊210和應(yīng)用程序模塊220,其中,所述重編程程序模塊210可以用于引導(dǎo)所述應(yīng)用程序模塊220,優(yōu)選的,在所述電子控制單元200的一側(cè)可以安裝有網(wǎng)絡(luò)接口 300,所述重編程設(shè)備100和所述電子控制單元200可以通過網(wǎng)絡(luò)接口 300連接。如圖4所示,本發(fā)明實施例公開的一種應(yīng)用程序的重編程系統(tǒng),所述重編程設(shè)備100可以包括請求報文發(fā)送模塊010、請求報文重發(fā)模塊030和程序燒寫模塊040,所述重編程程序模塊210可以包括響應(yīng)報文發(fā)送子模塊020,所述請求報文發(fā)送模塊010,用于所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文;可以理解的是,所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文時,只有其應(yīng)用程序模塊220需要重編程的電子控制單元200,其含有的重編程程序模塊210才有可能收到所述請求報文。因此,為了使所述重編程設(shè)備100通過所述請求報文,找到發(fā)送響應(yīng)報文的電子控制單元200,在所述請求報文中可以含有電子控制單元200的標(biāo)識符,即所述請求報文為所述重編程設(shè)備100與所述電子控制單元200協(xié)商好的報文。例如當(dāng)請求報文為0x040x310x010xFF0xl80x000x000x00時,該請求報文中含有的所述電子控制單元200的標(biāo)識符為0x040x310x010xFF0xl8,其中,0x04可以表示請求報文的長度,0x31可以表示統(tǒng)一診斷服務(wù)中規(guī)定的服務(wù)編號,0x01可以表示統(tǒng)一診斷服務(wù)中規(guī)定的服務(wù)子編號,0xFF0xl8可以為和客戶商定的數(shù)據(jù)編號信息,而請求報文中的后三個字節(jié)0x000x000x00可以作為該請求報文的填位符,起填充請求報文位數(shù)的作用,沒有實質(zhì)的意義。比如,當(dāng)請求報文為0x040x310x010xFF0xl80x550x550x55時,因為請求報文的前五個字節(jié)沒有變化,所以所述電子控制單元中的重編程程序模塊210仍可以收到該請求報文,當(dāng)請求報文為0x050x310x010xFF0xl80x000x000x00時,雖然請求報文中只有第一個字節(jié)由0x04變?yōu)?x05,其他字節(jié)均沒有變化,但是,因為請求報文的前五個字節(jié)發(fā)生變化,其含有的標(biāo)識符與所述電子控制單元200不匹配,所述電子控制單元200中的重編程程序模塊210接收不到該請求報文。因此,只有含有與所述請求報文中標(biāo)識符相匹配的電子控制單元200,其包含有的重編程程序模塊210才可以接收所述請求報文,所述重編程程序模塊210接收所述請求報文后,所述重編程程序模塊210發(fā)送所述響應(yīng)報文,并中斷所述重編程程序模塊210對所述應(yīng)用程序模塊220的引導(dǎo)過程,以使所述應(yīng)用程序模塊220維持在未啟動狀態(tài)。其中,在所述重編程設(shè)備100發(fā)送所述請求報文前,所述電子控制單元200可以處于關(guān)閉狀態(tài),當(dāng)所述重編程設(shè)備100發(fā)送所述請求報文后,所述電子控制單元200可以切換為開啟狀態(tài)。所述響應(yīng)報文發(fā)送子模塊020,用于在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文;
其中,所述電子控制單元200中的重編程程序模塊210中斷所述重編程程序模塊210對所述應(yīng)用程序模塊220的引導(dǎo)過程,可以以使所述應(yīng)用程序模塊220維持在未啟動狀態(tài),此時,所述重編程程序模塊210就可以較長時間處于運(yùn)行狀態(tài),從而保證所述重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過所述重編程程序模塊210下載到所述應(yīng)用程序模塊220中,實現(xiàn)了應(yīng)用程序的在線重編程。需要說明的是,所述應(yīng)用程序模塊220需要重編程的情況可以為電子控制單元200中的應(yīng)用程序存在缺陷或是需要增加新的功能時,或是因為疏忽下載了功能不完整的應(yīng)用程序,或是因為某些原因?qū)е码娮涌刂茊卧械膽?yīng)用程序損壞的情況等。所述請求報文重發(fā)模塊030,用于當(dāng)所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備100向所述電子控制單元200再次發(fā)送所述請求報文;可以理解的是,所述重編程設(shè)備100向所述電子控制單元200發(fā)送請求報文,以使所述電子控制單元200中接收到所述請求報文重編程程序模塊210處于較長時間的運(yùn)行狀態(tài),從而保證重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過重編程模塊210下載到應(yīng)用程序模塊220中,實現(xiàn)應(yīng)用程序的在線重編程。而判斷所述電子控制單元200是否接收到所述請求報文的依據(jù)為所述重編程設(shè)備100是否在預(yù)設(shè)時間(如Ims)內(nèi)接收到所述響應(yīng)報文。如果所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文,所述重編程設(shè)備100將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的所述電子控制單元200中。如果所述重編程設(shè)備100沒有接收到所述響應(yīng)報文,則繼續(xù)向所述電子控制單元200發(fā)送請求報文。在實際應(yīng)用中,所述重編程設(shè)備100可以多次執(zhí)行請求報文重發(fā)模塊030。當(dāng)然,在另一實施例中,為了避免所述重編程設(shè)備100在未接收到所述響應(yīng)報文前不斷的向所述電子控制單元200發(fā)送請求報文,我們可以設(shè)置另一個時間閾值,如Is。如果在Is內(nèi)的所述預(yù)設(shè)時間內(nèi)(如1ms),所述重編程設(shè)備100沒有接收到所述響應(yīng)報文,則繼續(xù)向所述電子控制單元200發(fā)送所述請求報文,如果超過ls,所述重編程設(shè)備100則停止發(fā)送所述請求報文。所述程序燒寫模塊040,用于當(dāng)所述重編程設(shè)備100在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,所述重編程設(shè)備100接收所述響應(yīng)報文,并將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中可以含有所述電子控制單元200的標(biāo)識符,當(dāng)有與所述電子控制單元200匹配的請求報文到達(dá)時,所述電子控制單元200的重編程程序模塊210接收該請求報文。本發(fā)明提供的一種應(yīng)用程序的重編程系統(tǒng),針對需要將電子控制單元200拆卸下來以使重編程程序模塊210處于較長時間的運(yùn)行狀態(tài)的情況,在電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,通過重編程程序模塊210接收重編程設(shè)備100發(fā)送的請求報文后,重編程程序模塊210向重編程設(shè)備100發(fā)送響應(yīng)報文,并中斷重編程程序模塊210對應(yīng)用程序模塊220的引導(dǎo)過程,以使應(yīng)用程序模塊220維持在未啟動狀態(tài)。當(dāng)應(yīng)用程序模塊220維持在未啟動狀態(tài)時,重編程程序模塊210就可以較長時間處于運(yùn)行狀態(tài),從而保證重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過重編程模塊210下載到應(yīng)用程序模塊220中,實現(xiàn)了應(yīng)用程序的在線重編程。
其中,所述重編程程序模塊210在接收所述請求報文前,還需要確定所述應(yīng)用程序模塊220是否存在。因為當(dāng)所述應(yīng)用程序模塊220不存在時,所述電子控制單元200中的重編程程序模塊210無需接收所述請求報文仍可以處于較長時間的運(yùn)行狀態(tài),所述重編程設(shè)備100就可以通過所述重編程程序模塊210對所述電子控制單元200進(jìn)行應(yīng)用程序下載。當(dāng)所述重編程程序模塊210確定應(yīng)用程序模塊220存在后,就需要通過接收所述請求報文來中斷對所述應(yīng)用程序模塊220的引導(dǎo)過程,從而所述重編程程序模塊210可以處于較長時間的運(yùn)行狀態(tài),所述重編程設(shè)備100就可以通過所述重編程程序模塊210將保存的應(yīng)用程序下載到所述應(yīng)用程序模塊220中,實現(xiàn)應(yīng)用程序的在線重編程。所以,所述響應(yīng)報文發(fā)送子模塊020具體設(shè)置可以為在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在確定其應(yīng)用程序模塊220存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文。其中,所述重編程程序模塊210在接收到所述請求報文后,還需要判斷接收到的所述請求報文是否格式正確且所述請求報文是否含有該電子控制單元200的標(biāo)識符。例如請求報文前五個字節(jié)表示所述電子控制單元200的標(biāo)識符,而該電子控制單元200接收到前四個字節(jié)表示電子控制單元200標(biāo)識符的請求報文,即該電子控制單元200接收到的請求報文的格式不正確,所以該電子控制單元200中的重編程程序模塊210不接收該請求報文。當(dāng)所述電子控制單元200接收到的請求報文的格式正確,但是接收到的請求報文內(nèi)容不正確時,該電子控制單元200中的重編程程序模塊210仍不接收該請求報文。例如與該電子控制單元200匹配的請求報文為0x040x310x010xFF0xl80x000x000x00時,該電子控制單元200接收到的請求報文為0x050x310x010xFF0xl80x000x000x00,雖然請求報文中只有第一個字節(jié)由0x04變?yōu)?x05,其他字節(jié)均沒有變化,但是,接收到的請求報文的內(nèi)容不正確,所以所述電子控制單元200中的重編程程序模塊210不接收該請求報文。所以,所述響應(yīng)報文發(fā)送子模塊020具體設(shè)置可以為在所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元200中的重編程程序模塊210在確定其應(yīng)用程序模塊220存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊210在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元200標(biāo)識符后,中斷對該電子控制單元200中應(yīng)用程序模塊220的引導(dǎo)過程,并向所述重編程設(shè)備100發(fā)送響應(yīng)報文。需要說明的是,當(dāng)所述重編程程序模塊210在預(yù)設(shè)時間超出后仍沒有接收到請求報文,則所述重編程程序模塊210不再接收請求報文。如圖5所示,本發(fā)明實施例公開的一種應(yīng)用程序的重編程系統(tǒng)中電子控制單元的結(jié)構(gòu)示意圖,可以包括上電子模塊021,用于所述電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài);應(yīng)用程序確定子模塊022,用于所述重編程程序模塊確定所述應(yīng)用程序模塊220是否存在,如果否,則運(yùn)行應(yīng)用程序更新子模塊029,如果是,則運(yùn)行請求報文接收時間判斷子模塊023 ;請求報文接收時間判斷子模塊023,用于確定是否在預(yù)設(shè)時間內(nèi)接收到所述請求報文,如果否,則運(yùn)行預(yù)設(shè)時間判斷子模塊024,如果是,則運(yùn)行請求報文判斷子模塊026 ;預(yù)設(shè)時間判斷子模塊024,用于確定是否超出預(yù)設(shè)時間,如果否,則運(yùn)行請求報文接收時間判斷子模塊023,如果是,則運(yùn)行應(yīng)用程序執(zhí)行子模塊025 ;應(yīng)用程序執(zhí)行子模塊025,用于所述應(yīng)用程序模塊220執(zhí)行已有的應(yīng)用程序;請求報文判斷子模塊026,用于確定接收到的請求報文的格式是否正確,內(nèi)容是否含該電子控制單元200的標(biāo)識符,如果是,則運(yùn)行請求報文接收子模塊027,否則,運(yùn)行預(yù)設(shè)時間判斷子模塊024;請求報文接收子模塊027,用于接收所述請求報文;發(fā)送響應(yīng)報文子模塊028,用于向所述重編程設(shè)備100發(fā)送響應(yīng)報文,中斷對所述應(yīng)用程序模塊220的引導(dǎo)過程;應(yīng)用程序更新子模塊029,用于接收所述重編程設(shè)備100燒寫入的應(yīng)用程序,更新所述應(yīng)用程序模塊220中的應(yīng)用程序。綜上,本發(fā)明提供的一種應(yīng)用程序的重編程方法及系統(tǒng),重編程設(shè)備100和至少一個電子控制單元200相連接,所述電子控制單元200可以包括重編程程序模塊210和應(yīng)用程序模塊220。在電子控制單元200由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,該電子控制單元200中的重編程程序模塊210在預(yù)設(shè)時間內(nèi)接收到重編程設(shè)備100發(fā)送的請求報文后,該重編程程序模塊210向重編程設(shè)備100發(fā)送響應(yīng)報文,并中斷重編程程序模塊210對應(yīng)用程序模塊220的引導(dǎo)過程,以使應(yīng)用程序模塊220維持在未啟動狀態(tài)。當(dāng)應(yīng)用程序模塊220維持在未啟動狀態(tài)時,重編程程序模塊210就可以較長時間處于運(yùn)行狀態(tài),從而保證重編程設(shè)備100可以有足夠的時間將保存的應(yīng)用程序通過重編程程序模塊210下載到應(yīng)用程序模塊220中,實現(xiàn)了應(yīng)用程序的在線重編程。因為無需將電子控制單元拆卸下來,所以本發(fā)明也有效降低了對電子控制單元的維護(hù)成本。本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點(diǎn)說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
1.一種應(yīng)用程序的重編程方法,其特征在于,應(yīng)用于重編程設(shè)備和電子控制單元中,所述重編程設(shè)備與至少一個所述電子控制單元相連接,所述電子控制單元包括重編程程序模塊和應(yīng)用程序模塊,其中,所述重編程程序模塊用于引導(dǎo)所述應(yīng)用程序模塊,所述方法包括所述重編程設(shè)備向所述電子控制單元發(fā)送請求報文;在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文;當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備向所述電子控制單元再次發(fā)送所述請求報文;當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中含有所述電子控制單元的標(biāo)識符,當(dāng)有與所述電子控制單元匹配的請求報文到達(dá)時,所述電子控制單元的重編程程序模塊接收該請求報文。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文的步驟包括在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定其應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在, 且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文的步驟包括在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定其應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元標(biāo)識符后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。
4.一種應(yīng)用程序的重編程系統(tǒng),其特征在于,包括重編程設(shè)備和與所述重編程設(shè)備相連接的至少一個電子控制單元,所述電子控制單元包括重編程程序模塊和應(yīng)用程序模塊, 其中,所述重編程程序模塊用于引導(dǎo)所述應(yīng)用程序模塊,所述重編程設(shè)備包括請求報文發(fā)送模塊、請求報文重發(fā)模塊和程序燒寫模塊,所述重編程程序模塊包括響應(yīng)報文發(fā)送子模塊,所述請求報文發(fā)送模塊,用于所述重編程設(shè)備向所述電子控制單元發(fā)送請求報文;所述響應(yīng)報文發(fā)送子模塊,用于在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文;所述請求報文重發(fā)模塊用于當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)沒有接收到所述響應(yīng)報文時,所述重編程設(shè)備向所述電子控制單元再次發(fā)送所述請求報文;所述程序燒寫模塊,用于當(dāng)所述重編程設(shè)備在預(yù)設(shè)時間內(nèi)接收到所述響應(yīng)報文時,所述重編程設(shè)備接收所述響應(yīng)報文,并將保存的應(yīng)用程序燒寫入發(fā)送響應(yīng)報文的電子控制單元中;其中,所述請求報文中含有所述電子控制單元的標(biāo)識符,當(dāng)有與所述電子控制單元匹配的請求報文到達(dá)時,所述電子控制單元的重編程程序模塊接收該請求報文。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述響應(yīng)報文發(fā)送子模塊具體設(shè)置為 在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述響應(yīng)報文發(fā)送子模塊具體設(shè)置為 在所述電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,所述電子控制單元中的重編程程序模塊在確定所述應(yīng)用程序模塊存在,且在預(yù)設(shè)時間內(nèi)接收到所述請求報文,所述重編程程序模塊在確定所述請求報文格式正確且所述請求報文內(nèi)容含該電子控制單元標(biāo)識符后,中斷對該電子控制單元中應(yīng)用程序模塊的引導(dǎo)過程,并向所述重編程設(shè)備發(fā)送響應(yīng)報文。
全文摘要
本發(fā)明提供了一種應(yīng)用程序的重編程方法及系統(tǒng),本發(fā)明中重編程設(shè)備和至少一個電子控制單元相連接,所述電子控制單元可以包括重編程程序模塊和應(yīng)用程序模塊。在電子控制單元由斷電狀態(tài)變?yōu)樯想姞顟B(tài)的情況下,該電子控制單元中的重編程程序模塊接收重編程設(shè)備發(fā)送的請求報文后,該重編程程序模塊向重編程設(shè)備發(fā)送響應(yīng)報文,并中斷重編程程序模塊對應(yīng)用程序模塊的引導(dǎo)過程,以使應(yīng)用程序模塊維持在未啟動狀態(tài)。當(dāng)應(yīng)用程序模塊維持在未啟動狀態(tài)時,重編程程序模塊就可以較長時間處于運(yùn)行狀態(tài),從而保證重編程設(shè)備可以有足夠的時間將保存的應(yīng)用程序通過重編程程序模塊下載到應(yīng)用程序模塊中,實現(xiàn)了應(yīng)用程序的在線重編程。
文檔編號G06F9/445GK103019792SQ201210564648
公開日2013年4月3日 申請日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者湯銘清, 張賀偉 申請人:北京經(jīng)緯恒潤科技有限公司