本發(fā)明涉及汽車功能的刷寫技術(shù)領(lǐng)域,特別涉及一種基于CAN總線多機(jī)刷寫程序的方法及系統(tǒng)。
背景技術(shù):
近年來,車輛召回事件越來越多,在眾多召回事件中,一部分原因是由于電控單元軟件故障所引起的。如何能夠快速、高效地解決軟件故障,是整車廠比較關(guān)注的話題。傳統(tǒng)的解決軟件故障方法是售后人員拆卸壞的電控單元,更換新的電控單元,然后將壞的電控單元返回原廠刷新程序這樣,維修成本上升,維修周期長,且有的電控單元結(jié)構(gòu)很復(fù)雜,拆卸比較困難??偩€技術(shù)的誕生使得快速解決軟件故障成為了可能。在整車網(wǎng)絡(luò)設(shè)計(jì)中,所有電控單元將通過總線連接形成網(wǎng)絡(luò)拓?fù)洌以\斷口也與總線進(jìn)行連接。這樣,維修人員可以通過診斷口使用Bootloader技術(shù)進(jìn)行電控單元軟件升級,無需拆卸它。
基于CAN的單機(jī)刷寫傳統(tǒng)方法存在以下的缺陷:電控單元的廠商雖然不需要拆除產(chǎn)品的外殼和支架,但是在刷寫方式是單對單刷寫,現(xiàn)在電控單元的集成功能比較多,軟件比較大,如果庫存的產(chǎn)品比較多,采用單刷寫模式的方式,效率比較低,耗時(shí)長。
專利號(CN201520084222.6)是一刷多的裝置(實(shí)質(zhì)上對于刷寫器來言還是一刷一),其實(shí)就是多增加一些單刷寫模塊,這種刷寫方式雖然效率得到了提高,但是在大數(shù)量產(chǎn)品刷寫還是存在一些弊端,綁定的很多單刷寫模塊,體積巨大,不方便攜帶,同時(shí)成本很高。
技術(shù)實(shí)現(xiàn)要素:
因此,有必要提供一種成本低、體積小并且方便攜帶的基于CAN總線多機(jī)刷寫程序的方法及系統(tǒng)。
一種基于CAN總線多機(jī)刷寫程序的系統(tǒng),其包括如下組件:
電控模塊和指示模塊、電源、控制器模塊、CAN收發(fā)模塊、USB轉(zhuǎn)CAN工具、計(jì)算機(jī)、多個(gè)開關(guān)、CAN總線;所述電控模塊和指示模塊通過開關(guān)與多個(gè)產(chǎn)品并聯(lián),電控模塊和指示模塊同時(shí)與電源、控制器模塊電連接;電源和控制器模塊電連接;控制器模塊同時(shí)與CAN收發(fā)模塊電連接;CAN收發(fā)模塊同時(shí)與USB轉(zhuǎn)CAN工具電連接;USB轉(zhuǎn)CAN工具同時(shí)與計(jì)算機(jī)電連接;CAN收發(fā)模塊同時(shí)通過CAN總線與多個(gè)產(chǎn)品并聯(lián);
電源用于向電控模塊和指示模塊、控制器模塊供電;
控制器模塊用于控制電控模塊和指示模塊對產(chǎn)品通過開關(guān)進(jìn)行供電或停止供電;
控制電控模塊和指示模塊用于對產(chǎn)品進(jìn)行供電以及指示產(chǎn)品故障類型;
計(jì)算機(jī)用于控制刷寫,接收產(chǎn)品發(fā)送的響應(yīng)數(shù)據(jù),發(fā)送LED指示故障類型數(shù)據(jù);
USB轉(zhuǎn)CAN工具用于將計(jì)算機(jī)發(fā)送的計(jì)算機(jī)可讀數(shù)據(jù)轉(zhuǎn)化為CAN總線數(shù)據(jù),并發(fā)送給CAN收發(fā)模塊;將CAN收發(fā)模塊發(fā)送的CAN總線數(shù)據(jù)轉(zhuǎn)換為計(jì)算機(jī)可讀數(shù)據(jù);
CAN收發(fā)模塊用于將USB轉(zhuǎn)CAN工具發(fā)送的CAN總線可讀數(shù)據(jù)通過CAN總線轉(zhuǎn)發(fā)給控制器模塊以及各個(gè)產(chǎn)品;并將通過CAN總線傳輸?shù)母鱾€(gè)產(chǎn)品反饋的響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給USB轉(zhuǎn)CAN工具;
CAN總線用于傳輸CAN總線數(shù)據(jù)。
本發(fā)明還提供一種基于CAN總線多機(jī)刷寫程序的方法,其通過上述的基于CAN總線多機(jī)刷寫程序的系統(tǒng)實(shí)現(xiàn),包括如下步驟:
S1、對產(chǎn)品進(jìn)行供電,并測試通信是否正常,在通信正常時(shí)對產(chǎn)品進(jìn)行刷寫ID分配;否則對產(chǎn)品停止進(jìn)行供電,并指示產(chǎn)品故障;
S2、對下一個(gè)產(chǎn)品重復(fù)步驟S1直至所有產(chǎn)品刷寫ID分配完畢;
S3、將刷寫程序文件寫入各個(gè)產(chǎn)品中,并判斷刷寫是否成功,并反饋刷寫程序文件的刷寫結(jié)果。
在本發(fā)明所述的基于CAN總線多機(jī)刷寫程序的方法中,
所述步驟S1包括:
S11、通過電源給控制器模塊以及電控模塊和指示模塊供電;控制器模塊通過電控模塊和指示模塊給第一個(gè)產(chǎn)品供電;
S12、計(jì)算機(jī)通過內(nèi)部上位機(jī)向第一個(gè)產(chǎn)品發(fā)送通訊測試數(shù)據(jù);
S13上位機(jī)判斷是否接收到第一個(gè)產(chǎn)品的響應(yīng)數(shù)據(jù),在接收到時(shí),跳轉(zhuǎn)到步驟S14;在未接收到時(shí),接收計(jì)數(shù)器加1并判斷接收計(jì)算器數(shù)值是否超過第一預(yù)設(shè)值;如果超過第一預(yù)設(shè)值,跳轉(zhuǎn)到步驟S110;如果未超過第一預(yù)設(shè)值時(shí),則跳轉(zhuǎn)到步驟S12;
S14、對第一產(chǎn)品進(jìn)行安全訪問,跳轉(zhuǎn)到步驟S15;
S15、判斷是否訪問成功,在訪問成功時(shí),跳轉(zhuǎn)到步驟S16;在訪問未成功時(shí),跳轉(zhuǎn)到步驟S111;
S16、對第一個(gè)產(chǎn)品進(jìn)行刷寫ID分配,跳轉(zhuǎn)到步驟S17;
S17、判斷ID是否分配成功,在分配成功時(shí),跳轉(zhuǎn)到步驟S19,在分配未成功時(shí),跳轉(zhuǎn)步驟S18;
S18、分配計(jì)數(shù)器加1,并判斷分配計(jì)數(shù)器是否超過第三預(yù)設(shè)值,在超過時(shí)跳轉(zhuǎn)到步驟S10;在未超過時(shí),跳轉(zhuǎn)到步驟S16;
S19、等待刷寫程序文件,并跳轉(zhuǎn)到步驟S2;
S110、對第一產(chǎn)品進(jìn)行斷電,并通過電控模塊和指示模塊中LED指示故障,并跳轉(zhuǎn)到步驟S2;
S111、訪問計(jì)數(shù)器加1,并判斷訪問計(jì)數(shù)器是否超過第二預(yù)設(shè)值,在超過時(shí),跳轉(zhuǎn)到步驟S110;在未超過時(shí),跳轉(zhuǎn)到步驟S14。
在本發(fā)明所述的基于CAN總線多機(jī)刷寫程序的方法中,所述步驟S3包括:
S31、計(jì)算機(jī)內(nèi)上位機(jī)讀取刷寫文件,并根據(jù)刷寫協(xié)議,生成相關(guān)的刷寫程序文件;
S32、上位機(jī)統(tǒng)計(jì)刷寫產(chǎn)品的ID和總數(shù)量,發(fā)送通訊控制命令,允許所有產(chǎn)品都能發(fā)送數(shù)據(jù)和接收數(shù)據(jù);
S33、上位機(jī)發(fā)送單條刷寫程序文件,并讀取各產(chǎn)品的返回的反饋數(shù)據(jù);
S34、延遲等待預(yù)設(shè)時(shí)間值,在超過預(yù)設(shè)時(shí)間值后如果未收到反饋數(shù)據(jù),則判斷該產(chǎn)品故障,并對該產(chǎn)品斷電,并通過電控模塊和指示模塊中LED指示故障類型;
S35、重復(fù)步驟S33和S34,直到所有的刷寫程序文件發(fā)送完畢,并通過電控模塊和指示模塊中LED指示刷寫成功的產(chǎn)品。。
實(shí)施本發(fā)明提供的基于CAN總線多機(jī)刷寫程序的方法及系統(tǒng)與現(xiàn)有技術(shù)相比具有以下有益效果:能夠通過一個(gè)基于CAN總線多機(jī)刷寫程序的系統(tǒng)對多個(gè)產(chǎn)品進(jìn)行刷寫,為每個(gè)產(chǎn)品賦予不同的ID,刷寫程序包含了識別的ID,該程序包含了所有要刷產(chǎn)品的ID號。通過CAN總線將含有刷寫的程序的信息逐條發(fā)給各產(chǎn)品,完成燒寫。產(chǎn)品將以刷寫信息通過CAN反饋給上位機(jī)。上位機(jī)將各個(gè)產(chǎn)品的燒寫狀態(tài)(OK,NG)進(jìn)行記錄分析顯示。
附圖說明
圖1是本發(fā)明實(shí)施例的基于CAN總線多機(jī)刷寫程序的結(jié)構(gòu)框圖。
具體實(shí)施方式
如圖1所示,一種基于CAN總線多機(jī)刷寫程序的系統(tǒng),其包括如下組件:
電控模塊和指示模塊、電源、控制器模塊、CAN收發(fā)模塊、USB轉(zhuǎn)CAN工具、計(jì)算機(jī)、多個(gè)開關(guān)、CAN總線;所述電控模塊和指示模塊通過開關(guān)與多個(gè)產(chǎn)品并聯(lián),電控模塊和指示模塊同時(shí)與電源、控制器模塊電連接;電源和控制器模塊電連接;控制器模塊同時(shí)與CAN收發(fā)模塊電連接;CAN收發(fā)模塊同時(shí)與USB轉(zhuǎn)CAN工具電連接;USB轉(zhuǎn)CAN工具同時(shí)與計(jì)算機(jī)電連接;CAN收發(fā)模塊同時(shí)通過CAN總線與多個(gè)產(chǎn)品并聯(lián);
電源用于向電控模塊和指示模塊、控制器模塊供電;
控制器模塊用于控制電控模塊和指示模塊對產(chǎn)品通過開關(guān)進(jìn)行供電或停止供電;
控制電控模塊和指示模塊用于對產(chǎn)品進(jìn)行供電以及指示產(chǎn)品故障類型;
計(jì)算機(jī)用于控制刷寫,接收產(chǎn)品發(fā)送的響應(yīng)數(shù)據(jù),發(fā)送LED指示故障類型數(shù)據(jù);
USB轉(zhuǎn)CAN工具用于將計(jì)算機(jī)發(fā)送的計(jì)算機(jī)可讀數(shù)據(jù)轉(zhuǎn)化為CAN總線數(shù)據(jù),并發(fā)送給CAN收發(fā)模塊;將CAN收發(fā)模塊發(fā)送的CAN總線數(shù)據(jù)轉(zhuǎn)換為計(jì)算機(jī)可讀數(shù)據(jù);
CAN收發(fā)模塊用于將USB轉(zhuǎn)CAN工具發(fā)送的CAN總線可讀數(shù)據(jù)通過CAN總線轉(zhuǎn)發(fā)給控制器模塊以及各個(gè)產(chǎn)品;并將通過CAN總線傳輸?shù)母鱾€(gè)產(chǎn)品反饋的響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給USB轉(zhuǎn)CAN工具;
CAN總線用于傳輸CAN總線數(shù)據(jù)。
本發(fā)明還提供一種基于CAN總線多機(jī)刷寫程序的方法,其通過上述的基于CAN總線多機(jī)刷寫程序的系統(tǒng)實(shí)現(xiàn),計(jì)算機(jī)內(nèi)的上位機(jī)通過CAN總線實(shí)現(xiàn)了對各個(gè)產(chǎn)品的相互通信以及對控制器模塊、電控模塊和指示模塊的控制。
CAN總線多機(jī)刷寫程序的方法包括如下步驟:
S1、對產(chǎn)品進(jìn)行供電,并測試通信是否正常,在通信正常時(shí)對產(chǎn)品進(jìn)行刷寫ID分配;否則對產(chǎn)品停止進(jìn)行供電,并指示產(chǎn)品故障;
S2、對下一個(gè)產(chǎn)品重復(fù)步驟S1直至所有產(chǎn)品刷寫ID分配完畢;
S3、將刷寫程序文件寫入各個(gè)產(chǎn)品中,并判斷刷寫是否成功,并反饋刷寫程序文件的刷寫結(jié)果。
所有產(chǎn)品的刷寫ID都是不同的。
在本發(fā)明所述的基于CAN總線多機(jī)刷寫程序的方法中,
所述步驟S1包括:
S11、通過電源給控制器模塊以及電控模塊和指示模塊供電;控制器模塊通過電控模塊和指示模塊給第一個(gè)產(chǎn)品供電;
S12、計(jì)算機(jī)通過內(nèi)部上位機(jī)向第一個(gè)產(chǎn)品發(fā)送通訊測試數(shù)據(jù);
S13上位機(jī)判斷是否接收到第一個(gè)產(chǎn)品的響應(yīng)數(shù)據(jù),在接收到時(shí),跳轉(zhuǎn)到步驟S14;在未接收到時(shí),接收計(jì)數(shù)器加1并判斷接收計(jì)算器數(shù)值是否超過第一預(yù)設(shè)值;如果超過第一預(yù)設(shè)值,跳轉(zhuǎn)到步驟S110;如果未超過第一預(yù)設(shè)值時(shí),則跳轉(zhuǎn)到步驟S12;可選地,第一預(yù)設(shè)值為5,可以靈活設(shè)置具體值。
S14、對第一產(chǎn)品進(jìn)行安全訪問,跳轉(zhuǎn)到步驟S15;
S15、判斷是否訪問成功,在訪問成功時(shí),跳轉(zhuǎn)到步驟S16;在訪問未成功時(shí),跳轉(zhuǎn)到步驟S111;
S16、對第一個(gè)產(chǎn)品進(jìn)行刷寫ID分配,跳轉(zhuǎn)到步驟S17;
S17、判斷ID是否分配成功,在分配成功時(shí),跳轉(zhuǎn)到步驟S19,在分配未成功時(shí),跳轉(zhuǎn)步驟S18;
S18、分配計(jì)數(shù)器加1,并判斷分配計(jì)數(shù)器是否超過第三預(yù)設(shè)值,在超過時(shí)跳轉(zhuǎn)到步驟S10;在未超過時(shí),跳轉(zhuǎn)到步驟S16;可選地,第三預(yù)設(shè)值為3,可以靈活設(shè)置具體值。
S19、等待刷寫程序文件,并跳轉(zhuǎn)到步驟S2;
S110、對第一產(chǎn)品進(jìn)行斷電,并通過電控模塊和指示模塊中LED指示故障,并跳轉(zhuǎn)到步驟S2;
S111、訪問計(jì)數(shù)器加1,并判斷訪問計(jì)數(shù)器是否超過第二預(yù)設(shè)值,在超過時(shí),跳轉(zhuǎn)到步驟S110;在未超過時(shí),跳轉(zhuǎn)到步驟S14??蛇x地,第二預(yù)設(shè)值為3,可以靈活設(shè)置具體值。
在本發(fā)明所述的基于CAN總線多機(jī)刷寫程序的方法中,所述步驟S3包括:
S31、計(jì)算機(jī)內(nèi)上位機(jī)讀取刷寫文件,并根據(jù)刷寫協(xié)議,生成相關(guān)的刷寫程序文件;
S32、上位機(jī)統(tǒng)計(jì)刷寫產(chǎn)品的ID和總數(shù)量,發(fā)送通訊控制命令,允許所有產(chǎn)品都能發(fā)送數(shù)據(jù)和接收數(shù)據(jù);
S33、上位機(jī)發(fā)送單條刷寫程序文件,并讀取各產(chǎn)品的返回的反饋數(shù)據(jù);
S34、延遲等待預(yù)設(shè)時(shí)間值,在超過預(yù)設(shè)時(shí)間值后如果未收到反饋數(shù)據(jù),則判斷該產(chǎn)品故障,并對該產(chǎn)品斷電,并通過電控模塊和指示模塊中LED指示故障類型;
S35、重復(fù)步驟S33和S34,直到所有的刷寫程序文件發(fā)送完畢,并通過電控模塊和指示模塊中LED指示刷寫成功的產(chǎn)品。
實(shí)施本發(fā)明提供的基于CAN總線多機(jī)刷寫程序的方法及系統(tǒng)與現(xiàn)有技術(shù)相比具有以下有益效果:能夠通過一個(gè)基于CAN總線多機(jī)刷寫程序的系統(tǒng)對多個(gè)產(chǎn)品進(jìn)行刷寫,為每個(gè)產(chǎn)品賦予不同的ID,刷寫程序包含了識別的ID,該程序包含了所有要刷產(chǎn)品的ID號。通過CAN總線將含有刷寫的程序的信息逐條發(fā)給各產(chǎn)品,完成燒寫。產(chǎn)品將以刷寫信息通過CAN反饋給上位機(jī)。上位機(jī)將各個(gè)產(chǎn)品的燒寫狀態(tài)(OK,NG)進(jìn)行記錄分析顯示。
可以理解的是,對于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)構(gòu)思做出其它各種相應(yīng)的改變與變形,而所有這些改變與變形都應(yīng)屬于本發(fā)明權(quán)利要求的保護(hù)范圍。