專利名稱:用于車載控制單元的存儲(chǔ)數(shù)據(jù)重寫系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于重寫存儲(chǔ)在車載控制單元的存儲(chǔ)器中的數(shù)據(jù)的重寫系統(tǒng)。
背景技術(shù):
車輛提供了指定為ECU的車載控制單元,所述車載控制單元用于控制駕駛狀況,例如發(fā)動(dòng)機(jī)的點(diǎn)火時(shí)間、空氣燃油混合比、噴油量等等,并且用于控制車載設(shè)備的操作,例如電動(dòng)車窗、空調(diào)等等。車載控制單元通常由以下部件構(gòu)成包含CPU(中央處理器)的微型計(jì)算機(jī)和包含ROM(只讀存儲(chǔ)器)的存儲(chǔ)器。例如程序這樣的數(shù)據(jù)被寫入ROM,以便使CPU能夠執(zhí)行控制操作。
存儲(chǔ)在ROM中的數(shù)據(jù)會(huì)被不時(shí)的更新以利于更好的控制。當(dāng)更新數(shù)據(jù)時(shí),將重寫單元連接到車載控制單元,所以能夠在車載控制單元和重寫單元間建立起通信。用于重寫操作的數(shù)據(jù)被傳輸?shù)杰囕d控制單元,由此重寫車載控制單元的ROM中的存儲(chǔ)數(shù)據(jù)(JP-A-2003-122622)。
然而,在常規(guī)的重寫系統(tǒng)中,從重寫單元將重寫數(shù)據(jù)順序地傳輸?shù)杰囕d控制單元,在車載控制單元被接收,然后,將所接收的數(shù)據(jù)寫入ROM。因此,由于根據(jù)重寫數(shù)據(jù)的量,需要重寫時(shí)間,所以希望能縮短重寫時(shí)間。
發(fā)明內(nèi)容
因而,本發(fā)明的目的是提出一種重寫系統(tǒng)、一種車載控制單元和一種重寫單元,從而能夠縮短將數(shù)據(jù)重新寫入車載控制單元的存儲(chǔ)器所需的重寫時(shí)間。
根據(jù)本發(fā)明,提出了一種重寫系統(tǒng),在所述重寫系統(tǒng)中,從外部重寫單元將重寫數(shù)據(jù)傳輸?shù)骄哂蟹且资源鎯?chǔ)器的車載控制單元以便重寫非易失性存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù),所述非易失性存儲(chǔ)器存儲(chǔ)著用于至少對(duì)車輛的發(fā)動(dòng)機(jī)執(zhí)行控制的數(shù)據(jù),其中,重寫單元包括傳輸控制裝置,所述傳輸控制裝置用于按照每個(gè)預(yù)定數(shù)據(jù)傳輸單位傳輸作為數(shù)據(jù)傳輸指令的重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)闹貙憯?shù)據(jù)的、所述非易失性存儲(chǔ)器的將被重寫的部分,所述傳輸控制裝置還用于當(dāng)按照預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)闹貙憯?shù)據(jù)的整體表示預(yù)定的值時(shí),禁止包含重寫數(shù)據(jù)的數(shù)據(jù)傳輸指令的傳輸,并且其中,車載控制單元包括用于接收從重寫單元傳輸來(lái)的數(shù)據(jù)傳輸指令的接收裝置,以及寫控制裝置,用于將包含在由接收裝置接收的數(shù)據(jù)傳輸指令中的重寫數(shù)據(jù)寫到由數(shù)據(jù)傳輸指令中的指定的位置數(shù)據(jù)表示的、非易失存儲(chǔ)器的重寫部分,并且,對(duì)于不能從所述接收裝置接收的所述數(shù)據(jù)傳輸指令獲得所述重寫數(shù)據(jù)的部分,寫控制裝置將表示所述預(yù)定值的數(shù)據(jù)寫入所述非易失性存儲(chǔ)器的、所有這樣的部分。
根據(jù)本發(fā)明,提出了一種具有非易失性存儲(chǔ)器的車載控制單元,所述非易失性存儲(chǔ)器存儲(chǔ)用于至少對(duì)車輛的發(fā)動(dòng)機(jī)執(zhí)行控制的數(shù)據(jù),所述車載控制單元包括用于接收從外部重寫單元傳輸來(lái)的數(shù)據(jù)傳輸指令的接收裝置;以及寫控制裝置,所述寫控制裝置用于將包含在由接收裝置接收的數(shù)據(jù)傳輸指令中的重寫數(shù)據(jù),寫到由接收的數(shù)據(jù)傳輸指令中的指定的位置數(shù)據(jù)表示的、非易失性存儲(chǔ)器的將被重寫的部分,并且,對(duì)于不能從所述接收裝置接收的數(shù)據(jù)傳輸指令獲得重寫數(shù)據(jù)的部分,所述寫控制裝置將表示所述預(yù)定值的數(shù)據(jù)寫入所述非易失性存儲(chǔ)器的、將被重寫的所有這樣的部分。
根據(jù)本發(fā)明,提出了一種重寫單元,所述重寫單元用于將重寫數(shù)據(jù)傳輸?shù)骄哂蟹且资源鎯?chǔ)器的車載控制單元,所述非易失性存儲(chǔ)器存儲(chǔ)用于至少對(duì)車輛的發(fā)動(dòng)機(jī)執(zhí)行控制的數(shù)據(jù),所述重寫數(shù)據(jù)用于重寫非易失性存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù),所述重寫單元包括傳輸控制裝置,所述傳輸控制裝置用于按照每個(gè)預(yù)定數(shù)據(jù)傳輸單位傳輸作為數(shù)據(jù)傳輸指令的重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)闹貙憯?shù)據(jù)的、所述非易失性存儲(chǔ)器的重寫部分,并且,所述傳輸控制裝置還用于,當(dāng)按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)闹貙憯?shù)據(jù)的整體表示預(yù)定值時(shí),禁止包含所述重寫數(shù)據(jù)的數(shù)據(jù)傳輸指令的傳輸。
圖1是示出了本發(fā)明實(shí)施例的框圖;圖2是示出了RAM的存儲(chǔ)區(qū)域的圖;圖3是示出了ROM的存儲(chǔ)區(qū)域的圖;圖4是示出了當(dāng)重寫數(shù)據(jù)時(shí),在重寫單元與ECU間發(fā)生的通信的圖;圖5是示出了數(shù)據(jù)傳輸指令的結(jié)構(gòu)的圖;圖6是示出了數(shù)據(jù)傳輸指令的傳輸過(guò)程的流程圖;圖7是示出了ECU控制操作的流程圖;圖8是示出了ROM刪除請(qǐng)求接收過(guò)程的流程圖;圖9是示出了重寫模式轉(zhuǎn)換(transition)過(guò)程的流程圖;圖10是示出了ECU重寫控制過(guò)程的流程圖;圖11是示出了ROM刪除過(guò)程的流程圖;圖12是示出了ROM寫過(guò)程的流程圖;圖13是示出了傳輸?shù)臄?shù)據(jù)接收過(guò)程的流程圖;圖14是示出了數(shù)據(jù)傳輸完成接收過(guò)程的流程圖;并且圖15A至15C是說(shuō)明重寫操作的圖。
發(fā)明詳述下面,參照附圖描述本發(fā)明的實(shí)施例。
圖1示出了一種應(yīng)用了根據(jù)本發(fā)明的重寫方法的重寫系統(tǒng)。該系統(tǒng)包括用于內(nèi)燃機(jī)控制系統(tǒng)的ECU1和重寫單元2。
ECU1被安裝到車輛中,并且包含CPU(中央處理器)3、I/O接口和存儲(chǔ)器。CPU3從曲柄轉(zhuǎn)角傳感器、進(jìn)氣歧管氣壓傳感器、發(fā)動(dòng)機(jī)冷卻液溫度傳感器等等,經(jīng)由輸入接口接收檢測(cè)信號(hào),計(jì)算控制值,例如噴油量和內(nèi)燃機(jī)點(diǎn)火時(shí)間,并且經(jīng)由輸出接口,將基于計(jì)算結(jié)果的控制信號(hào)提供給噴油嘴和點(diǎn)火系統(tǒng)。存儲(chǔ)器由ROM(只讀存儲(chǔ)器)10和RAM(隨機(jī)存取存儲(chǔ)器)11構(gòu)成。ROM10由閃存ROM構(gòu)成。將控制CPU的程序和數(shù)據(jù)以及ROM10自身的重寫程序?qū)懭隦OM10。在本實(shí)施例中,重寫ROM10中的程序和數(shù)據(jù)。CPU3的操作所需的程序和數(shù)據(jù)被臨時(shí)存儲(chǔ)在ROM10中。另外,如圖2所示,當(dāng)重寫ROM10時(shí),重寫程序被寫入RAM11,此外,RAM11的一部分被用作接收緩沖區(qū)13和寫緩沖區(qū)15,如圖1所示。
圖1僅僅示出了ECU1中的與ROM10的重寫相關(guān)的一部分。除ROM10以外,與重寫相關(guān)的部分還包括傳輸和接收模塊12、接收緩沖區(qū)13、傳輸模塊14、重寫緩沖區(qū)15和寫模塊16。傳輸和接收模塊12是用于經(jīng)由線纜5與重寫單元2進(jìn)行串行通信的I/O接口。接收緩沖區(qū)13連接到傳輸和接收模塊12。當(dāng)在所述傳輸和接收模塊12接收到由重寫單元2發(fā)送的數(shù)據(jù)時(shí),將接收到的數(shù)據(jù)臨時(shí)保存在接收緩沖區(qū)13中。傳輸模塊14被置于接收緩沖區(qū)13和寫緩沖區(qū)15之間,并且將保存于接收緩沖區(qū)13的數(shù)據(jù)寫到寫緩沖區(qū)15。寫緩沖區(qū)15由n個(gè)字節(jié)構(gòu)成,并且具有與ROM10的將被重寫的頁(yè)的大小相同的存儲(chǔ)區(qū)域。將被重寫的頁(yè)構(gòu)成了數(shù)據(jù)重寫單元。寫模塊16將保留在寫緩沖區(qū)15的數(shù)據(jù)寫到ROM10中對(duì)應(yīng)的將被重寫的頁(yè)。
ECU1的CPU用作所述重寫相關(guān)部分中的傳輸模塊14和寫模塊16。
如圖3所示,ROM10的存儲(chǔ)區(qū)域具有引導(dǎo)區(qū)域、程序區(qū)域和校準(zhǔn)區(qū)域,并且包括將被重寫的頁(yè)1至頁(yè)m。ROM10的存儲(chǔ)容量為m×n字節(jié)。引導(dǎo)區(qū)域是用于存儲(chǔ)ROM10自身的重寫程序的區(qū)域。程序區(qū)域是用于存儲(chǔ)發(fā)動(dòng)機(jī)控制程序的區(qū)域。校準(zhǔn)區(qū)域是用于存儲(chǔ)發(fā)動(dòng)機(jī)控制糾正程序的區(qū)域。
重寫單元2包括存儲(chǔ)器21、在存儲(chǔ)器21和ECU1間進(jìn)行串行通信的傳輸和接收模塊(未示出),所述存儲(chǔ)器21能存儲(chǔ)將被寫到ECU1的ROM10的數(shù)據(jù)。
如圖4所示,當(dāng)重寫數(shù)據(jù)時(shí),在重寫單元2和ECU1之間執(zhí)行傳輸和接收。即,根據(jù)來(lái)自重寫單元2的操作模塊(未示出)的輸入操作,將連接請(qǐng)求指令從重寫單元2傳輸?shù)紼CU1(步驟S101)。針對(duì)所述連接請(qǐng)求,將接受應(yīng)答從ECU1傳輸?shù)街貙憜卧?(步驟S102),并且當(dāng)重寫單元2接收到接受應(yīng)答時(shí),將安全保護(hù)取消請(qǐng)求指令從重寫單元2傳輸?shù)紼CU1(步驟S103)。
從ECU1傳輸對(duì)所述安全保護(hù)取消請(qǐng)求指令的接受應(yīng)答(步驟S104),并且當(dāng)重寫單元2接收到該應(yīng)答時(shí),進(jìn)一步將刪除指令從重寫單元2傳輸?shù)紼CU1(步驟S105)。刪除指令指明將執(zhí)行重寫的ROM10的區(qū)域。ECU1將針對(duì)ROM刪除請(qǐng)求接收過(guò)程中的刪除指令的接受應(yīng)答傳輸?shù)街貙憜卧?,該步驟將在稍后描述(步驟S106)。當(dāng)重寫單元2從ECU1接收針對(duì)刪除指令的接受應(yīng)答時(shí),將重寫模式轉(zhuǎn)換指令從重寫單元2傳輸?shù)紼CU1(步驟S107)。ECU1將針對(duì)重寫模式轉(zhuǎn)換過(guò)程中的重寫模式轉(zhuǎn)換指令的接受應(yīng)答傳輸?shù)街貙憜卧?,該步驟將在稍后描述。
當(dāng)重寫單元2從ECU1接收針對(duì)重寫模式轉(zhuǎn)換指令的接受應(yīng)答時(shí)(步驟S108),數(shù)據(jù)傳輸指令從重寫單元2傳輸?shù)紼CU1(步驟S109)。當(dāng)接收數(shù)據(jù)傳輸指令時(shí),ECU1臨時(shí)將所述指令保存在接收緩沖區(qū)13,之后,將包含在數(shù)據(jù)傳輸指令中的數(shù)據(jù)寫到寫緩沖區(qū)15。在ECU1中,當(dāng)在寫緩沖區(qū)15中形成某頁(yè)的數(shù)據(jù)時(shí),由ROM寫過(guò)程執(zhí)行對(duì)ROM10的寫。此外,當(dāng)數(shù)據(jù)被寫入寫緩沖區(qū)15時(shí),將針對(duì)數(shù)據(jù)傳輸指令的接受應(yīng)答從ECU1傳輸?shù)街貙憜卧?(步驟S110)。重復(fù)數(shù)據(jù)傳輸指令和其接受應(yīng)答的通信,直到重寫ROM10中數(shù)據(jù)所需的所有數(shù)據(jù)被傳輸完為止。
當(dāng)為重寫ROM10中數(shù)據(jù)所需的數(shù)據(jù),傳輸最后的數(shù)據(jù)傳輸指令并且從ECU1接收針對(duì)該指令的接受應(yīng)答時(shí),重寫單元2將數(shù)據(jù)傳輸完成指令傳輸?shù)紼CU1(步驟S111)。在ECU1中,響應(yīng)于所述數(shù)據(jù)傳輸完成指令,執(zhí)行數(shù)據(jù)傳輸完成接收過(guò)程,并且,如果ROM10中的數(shù)據(jù)已經(jīng)完全被重寫,那么將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S112)。然后,重寫單元2將ECU復(fù)位指令傳輸?shù)紼CU1(步驟S113),并且,響應(yīng)于該ECU復(fù)位指令,ECU1被恢復(fù)到初始狀態(tài),并且將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S114)。
如圖5所示,由重寫單元2傳輸?shù)紼CU1的數(shù)據(jù)傳輸指令由頭(header)、指定的地址、字節(jié)數(shù)和將被傳輸?shù)臄?shù)據(jù)構(gòu)成,這些數(shù)據(jù)以所述順序排放。所述頭表示所述指令是數(shù)據(jù)傳輸指令。所述指定的地址是表示ROM10的地址的位置數(shù)據(jù),所述ROM10中寫入了將要被傳輸?shù)臄?shù)據(jù)。字節(jié)數(shù)是一個(gè)數(shù)據(jù)傳輸單位,并且表示將被傳輸?shù)臄?shù)據(jù)的字節(jié)數(shù)。將被傳輸?shù)臄?shù)據(jù)是將被寫入ROM10的數(shù)據(jù)。
假定由重寫單元2的數(shù)據(jù)傳輸指令一次傳輸?shù)臄?shù)據(jù)的大小,即字節(jié)數(shù),是A字節(jié),A字節(jié)等于或少于n字節(jié),所述n字節(jié)對(duì)應(yīng)于將被重寫的頁(yè),并且n/A的余數(shù)是0。A字節(jié)不必是常量,但卻可以是完全可變的字節(jié)數(shù)。
如圖6所示,當(dāng)重寫單元傳輸數(shù)據(jù)傳輸指令時(shí),以將被重寫的頁(yè)的順序,首先從存儲(chǔ)器21讀出與所述A字節(jié)對(duì)應(yīng)的數(shù)據(jù)(步驟S121),并且確定如此讀出的與A字節(jié)對(duì)應(yīng)的數(shù)據(jù)的整體是否表示一個(gè)初始值(步驟S122)。也就是說(shuō),確定A字節(jié)的每一條字節(jié)數(shù)據(jù)是否處于其初始值。這里,初始值對(duì)應(yīng)于重寫模式轉(zhuǎn)換過(guò)程中、在步驟S25中,用于初始化寫緩沖區(qū)15的整個(gè)存儲(chǔ)區(qū)域的初始值,這將在稍后描述,或者對(duì)應(yīng)于在ROM寫過(guò)程中、在步驟S56中,用于初始化寫緩沖區(qū)15的整個(gè)存儲(chǔ)區(qū)域的初始值,這兩個(gè)過(guò)程都是在ECU 1中執(zhí)行的,并且對(duì)于每一個(gè)字節(jié),所述初始值例如是十六進(jìn)制數(shù)FF。
如果A字節(jié)數(shù)據(jù)的整體不處于初始值,那么在重寫單元2中創(chuàng)建包括已經(jīng)被讀取的A字節(jié)數(shù)據(jù)的數(shù)據(jù)傳輸指令,以傳輸?shù)紼CU1(步驟S123)。然后,確定存儲(chǔ)于存儲(chǔ)器21中的所有重寫數(shù)據(jù)是否已經(jīng)被讀取(步驟S124)。如果重寫數(shù)據(jù)還沒(méi)有被完全讀取,則該流程返回到步驟S121以讀取接下來(lái)A字節(jié)的數(shù)據(jù)。
另一方面,如果所有已經(jīng)被讀取的A字節(jié)數(shù)據(jù)都處于初始值,那么為了運(yùn)行程序,繞開步驟S123,跳轉(zhuǎn)到步驟S124。也就是說(shuō),所讀取的A字節(jié)初始值序列數(shù)據(jù)不被傳輸?shù)紼CU1。因此,當(dāng)已經(jīng)被讀取的所有A字節(jié)數(shù)據(jù)都處于初始值這種情況出現(xiàn)時(shí),導(dǎo)致將被發(fā)送到ECU1的重寫數(shù)據(jù)的地址不連續(xù)。這個(gè)數(shù)據(jù)傳輸指令傳輸過(guò)程對(duì)應(yīng)于重寫單元2的傳輸控制裝置。
接下來(lái),將描述ECU1對(duì)于重寫單元2的操作,所述操作執(zhí)行上述數(shù)據(jù)傳輸操作。
如圖7所示,ECU1的CPU執(zhí)行對(duì)包含車載設(shè)備的發(fā)動(dòng)機(jī)的控制(步驟S1),從重寫單元2接收指令(步驟S2),之后,響應(yīng)于接收到的指令,執(zhí)行ROM刪除請(qǐng)求接收過(guò)程(步驟S3)和重寫模式轉(zhuǎn)換過(guò)程(步驟S4)。當(dāng)在傳輸和接收模塊12接收到來(lái)自重寫單元2的指令時(shí),將接收到的指令保留在接收緩沖區(qū)13中。要注意重寫模式轉(zhuǎn)換過(guò)程對(duì)應(yīng)于寫控制裝置。
如圖8所示,在ROM刪除請(qǐng)求接收過(guò)程中,CPU3首先確定所接收的指令是否是整個(gè)區(qū)域刪除指令(步驟S11)。因?yàn)閬?lái)自重寫單元2的指令具有一個(gè)表示指令類型的頭,所以可以從指令的頭確定所接收的指令的類型。整個(gè)區(qū)域刪除意味著刪除引導(dǎo)區(qū)域、程序區(qū)域和校準(zhǔn)區(qū)域。如果所接收的指令是整個(gè)區(qū)域刪除指令,那么將整個(gè)區(qū)域刪除請(qǐng)求標(biāo)記設(shè)置為開(即,設(shè)置為1)(步驟S12)。如果所接收的指令不是整個(gè)區(qū)域刪除指令,那么確定所接收的指令是否是程序和校準(zhǔn)區(qū)域兩者的刪除指令(步驟S13)。如果所接收的指令是程序和校準(zhǔn)區(qū)域兩者的刪除指令,那么將程序和校準(zhǔn)刪除請(qǐng)求標(biāo)記設(shè)置為開(步驟S14)。如果所接收的指令不是程序和校準(zhǔn)區(qū)域兩者的刪除指令,那么確定所接收的指令是否是校準(zhǔn)區(qū)域的刪除指令(步驟S15)。如果所接收的指令是校準(zhǔn)區(qū)域的刪除指令,那么將校準(zhǔn)刪除請(qǐng)求標(biāo)記設(shè)置為開(步驟S16)。當(dāng)執(zhí)行步驟S12、S14或者S16時(shí),將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S17)。
如圖9所示,在重寫模式轉(zhuǎn)換過(guò)程中,CPU3首先確定所接收的指令是否是重寫模式轉(zhuǎn)換指令(步驟S21)。如果所接收的指令不是重寫模式轉(zhuǎn)換指令,則立即終止重寫模式轉(zhuǎn)換過(guò)程。另一方面,如果所接收的指令是重寫模式轉(zhuǎn)換指令,那么將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S22)。然后,CPU3從ROM10讀出重寫程序,將該程序?qū)懭隦AM11(步驟S23),并且切換到執(zhí)行RAM11中的重寫程序(步驟S24)。直到步驟S24開始執(zhí)行,所述CPU3都是根據(jù)ROM10的程序運(yùn)行,現(xiàn)在開始,CPU3根據(jù)RAM11中的重寫程序運(yùn)行。此外,初始化寫緩沖區(qū)15(步驟S25)。即,將寫緩沖區(qū)15的整個(gè)存儲(chǔ)區(qū)設(shè)置為初始值(例如,十六進(jìn)制數(shù)FF)。在執(zhí)行完步驟S25之后,CPU3重復(fù)執(zhí)行ECU重寫控制過(guò)程(步驟S26)。
如圖10所示,在ECU重寫控制過(guò)程中,CPU3執(zhí)行ROM刪除過(guò)程(步驟S31)和ROM寫過(guò)程(步驟S32),從重寫單元2接收指令(步驟S33),此外,執(zhí)行傳輸數(shù)據(jù)接收過(guò)程(步驟S34)和數(shù)據(jù)傳輸完成接收過(guò)程(步驟S35)。由寫模塊16執(zhí)行步驟S31中的ROM刪除過(guò)程和步驟S32中的ROM寫過(guò)程。由傳輸模塊14執(zhí)行步驟S34中的傳輸數(shù)據(jù)接收過(guò)程和步驟S35中的數(shù)據(jù)傳輸完成接收過(guò)程。另外,由傳輸模塊14執(zhí)行步驟S32中的部分ROM寫過(guò)程(步驟S59至S62,稍后將對(duì)其進(jìn)行描述)。
如圖11所示,在ROM刪除過(guò)程中,CPU3確定刪除請(qǐng)求標(biāo)記是否為開(步驟S41)。在ROM刪除請(qǐng)求接收過(guò)程中,確定是否有整個(gè)區(qū)域刪除請(qǐng)求標(biāo)記、程序和校準(zhǔn)刪除請(qǐng)求標(biāo)記以及校準(zhǔn)刪除請(qǐng)求標(biāo)記中的任何一個(gè)為開。如果所述刪除請(qǐng)求標(biāo)記中的任何一個(gè)為開,則確定是否已經(jīng)執(zhí)行指定區(qū)域的刪除(步驟S42)。如果關(guān)于指定區(qū)域中的數(shù)據(jù)的刪除操作還未被執(zhí)行,則刪除指定區(qū)域中的數(shù)據(jù),所述指定區(qū)域由ROM10的刪除請(qǐng)求標(biāo)記中的一個(gè)來(lái)表示(步驟S43)。另一方面,如果關(guān)于指定區(qū)域中的數(shù)據(jù)的刪除操作已被執(zhí)行,則確認(rèn)對(duì)指定區(qū)域中數(shù)據(jù)的刪除,所述指定區(qū)域由ROM10的刪除請(qǐng)求標(biāo)記中的一個(gè)來(lái)表示(步驟S44),并且確定是否已經(jīng)完成數(shù)據(jù)刪除(步驟S45)。如果還未完成指定區(qū)域的數(shù)據(jù)刪除,則進(jìn)行到步驟S43以刪除指定區(qū)域中的數(shù)據(jù)。如果已經(jīng)完成數(shù)據(jù)刪除,則將刪除請(qǐng)求標(biāo)記中的這一個(gè)標(biāo)記設(shè)置為開(或者,設(shè)置為0)(步驟S46)。
如圖12所示,在ROM寫過(guò)程中,CPU3確定頁(yè)寫請(qǐng)求標(biāo)記是否為開(步驟S51)。如果該頁(yè)寫請(qǐng)求標(biāo)記為關(guān),則立即終止ROM寫過(guò)程,并且在步驟33,從重寫單元2接收指令并且該過(guò)程轉(zhuǎn)移到對(duì)應(yīng)于所接收指令的傳輸數(shù)據(jù)接收過(guò)程。
如圖13所示,在傳輸數(shù)據(jù)接收過(guò)程中,CPU3確定接收的指令是否是數(shù)據(jù)傳輸指令(步驟S71)。如果接收的指令是數(shù)據(jù)傳輸指令,則確定頁(yè)寫請(qǐng)求標(biāo)記是否為開(步驟S72)。如果頁(yè)寫請(qǐng)求標(biāo)記為開,由于對(duì)應(yīng)于在寫緩沖區(qū)15中形成的頁(yè)的數(shù)據(jù)還未被寫到ROM10,所以將拒絕響應(yīng)傳輸?shù)街貙憜卧?(步驟S83)。當(dāng)接收到拒絕響應(yīng)時(shí),重寫單元2保持于排隊(duì)狀態(tài),直到其接收到接受應(yīng)答。
另一方面,如果頁(yè)寫請(qǐng)求標(biāo)記為關(guān),則確定是否已經(jīng)更新了頁(yè)開始地址(步驟S73)。如果頁(yè)開始地址還未被更新,則分別更新頁(yè)開始地址和頁(yè)結(jié)束地址(步驟S74、S75)。根據(jù)數(shù)據(jù)傳輸指令中的指定地址,計(jì)算并更新頁(yè)開始地址和頁(yè)結(jié)束地址。另一方面,如果頁(yè)開始地址已經(jīng)被更新,則繞過(guò)步驟S74和S75,跳轉(zhuǎn)到步驟S76。
在步驟S76,確定在接收的數(shù)據(jù)傳輸指令中的指定地址是否在正在執(zhí)行寫操作的頁(yè)中。如果指定地址是正在執(zhí)行寫操作的頁(yè)中的地址,則將傳輸數(shù)據(jù)寫到由指定地址指定的、寫緩沖區(qū)15的一個(gè)位置(步驟S77)。然后,確定寫操作是否進(jìn)行到頁(yè)末(步驟S78)。如果寫操作進(jìn)行到頁(yè)末,則將頁(yè)寫請(qǐng)求標(biāo)記設(shè)置為開(步驟S79)。如果寫操作未進(jìn)行到頁(yè)末,則繞過(guò)步驟S79,跳轉(zhuǎn)到步驟S82。
如果在步驟S76中確定的結(jié)果指明所述指定地址不是正在執(zhí)行寫操作的頁(yè)中的地址,則接收的數(shù)據(jù)傳輸指令中的指定地址作為預(yù)取地址保留(步驟S80),并且,接收的數(shù)據(jù)傳輸指令中的傳輸數(shù)據(jù)作為預(yù)取數(shù)據(jù)保留(步驟S81)。預(yù)取地址和預(yù)取數(shù)據(jù)可以保留在接收緩沖區(qū)13中。然后,該流程進(jìn)行到步驟S79,以將頁(yè)寫請(qǐng)求標(biāo)記設(shè)置為開。
在執(zhí)行完步驟S79之后,將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S82)。
在這個(gè)傳輸數(shù)據(jù)接收過(guò)程中,未被寫到寫緩沖區(qū)15的地址部分是這樣一個(gè)部分,對(duì)于該部分,沒(méi)有數(shù)據(jù)從重寫單元2傳輸?shù)紼CU1,并且在那個(gè)部分中的數(shù)據(jù)仍保持為其初始值。由于未被傳輸?shù)臄?shù)據(jù)保持為初始值,所以作為步驟S77的結(jié)果被寫到寫緩沖區(qū)15的數(shù)據(jù)與存儲(chǔ)在存儲(chǔ)器21中的重寫數(shù)據(jù)相等。
此外,如果執(zhí)行了步驟S79,在執(zhí)行下一個(gè)ROM寫過(guò)程的步驟S51中,CPU3確定頁(yè)寫請(qǐng)求標(biāo)記為開。因此,在那種情況下,確定是否已經(jīng)執(zhí)行了對(duì)ROM10的指定頁(yè)的數(shù)據(jù)寫操作(步驟S52)。如果對(duì)ROM10的指定頁(yè)的數(shù)據(jù)寫操作還未被執(zhí)行,則將寫緩沖區(qū)15中的傳輸數(shù)據(jù)寫到ROM10的指定頁(yè)(步驟S53)。當(dāng)在步驟S53寫入傳輸數(shù)據(jù)時(shí),ROM寫過(guò)程結(jié)束。
如果已經(jīng)執(zhí)行了對(duì)ROM10的指定頁(yè)的數(shù)據(jù)寫操作,則確認(rèn)ROM10的指定頁(yè)(步驟S54),并且確定是否已經(jīng)完成對(duì)于指定頁(yè)的數(shù)據(jù)寫操作(步驟S55)。如果由于寫操作錯(cuò)誤等等原因而導(dǎo)致數(shù)據(jù)寫操作未被完成,則轉(zhuǎn)移到步驟S53,將寫緩沖區(qū)15中的傳輸數(shù)據(jù)寫到ROM10的指定頁(yè)。另一方面,如果數(shù)據(jù)寫操作已經(jīng)完成,則初始化寫緩沖區(qū)15(步驟S56)。在步驟S56,如同在步驟S25,進(jìn)行將寫緩沖區(qū)15的整個(gè)存儲(chǔ)區(qū)域設(shè)置到初始值的操作。
在執(zhí)行步驟S56之后,確定是否保留了預(yù)取數(shù)據(jù)(步驟S57)。如果還未保留預(yù)取數(shù)據(jù),則頁(yè)寫請(qǐng)求標(biāo)記被重置為關(guān)(步驟S58)。如果保留了預(yù)取數(shù)據(jù),則分別更新頁(yè)開始地址和頁(yè)結(jié)束地址(步驟S59、S60),將預(yù)取數(shù)據(jù)寫到寫緩沖區(qū)15中的指定地址的位置(步驟S61)。然后,確定寫操作是否進(jìn)行到頁(yè)末(步驟S62)。如果寫操作還未進(jìn)行到頁(yè)末,則執(zhí)行步驟S58,將頁(yè)寫請(qǐng)求標(biāo)記重置為關(guān)。
如圖14所示,在數(shù)據(jù)傳輸完成過(guò)程中,CPU3確定所接收的指令是否是數(shù)據(jù)傳輸完成指令(步驟S91)。如果所接收的指令是數(shù)據(jù)傳輸完成指令,則確定頁(yè)寫請(qǐng)求標(biāo)記是否為開(步驟S92)。如果頁(yè)寫請(qǐng)求標(biāo)記為開,因?yàn)閷⒃趯懢彌_區(qū)15中形成的、對(duì)應(yīng)于一頁(yè)的數(shù)據(jù)寫入ROM10的操作還未完成,所以將拒絕應(yīng)答傳輸?shù)街貙憜卧?步驟S93)。
如果在步驟S92確定頁(yè)寫請(qǐng)求標(biāo)記為關(guān),則確定還未被寫到ROM10的數(shù)據(jù)是否仍保留在寫緩沖區(qū)15中(步驟S94)。如果未被寫的數(shù)據(jù)保留在寫緩沖區(qū)15中,則將頁(yè)寫請(qǐng)求標(biāo)記設(shè)置為開(步驟S95),并且,將接受應(yīng)答傳輸?shù)街貙憜卧?(步驟S96)。如果未被寫的數(shù)據(jù)不再保留在寫緩沖區(qū)15中,則繞過(guò)步驟S95,跳轉(zhuǎn)到步驟S96,并且將接受應(yīng)答傳輸?shù)街貙憜卧?。
假定將被之前所述的ECU1的操作重寫的ROM10的頁(yè)X的內(nèi)容或者重寫前的數(shù)據(jù)內(nèi)容是如圖15A所示。數(shù)據(jù)內(nèi)容用十六進(jìn)制數(shù)表示。此外,一行組成A字節(jié),所述A字節(jié)是數(shù)據(jù)傳輸單位。通過(guò)寫緩沖區(qū)15的初始化,頁(yè)X的內(nèi)容都變成了圖15B的左側(cè)所示的初始值FF的序列。假定以對(duì)應(yīng)于頁(yè)X的方式存儲(chǔ)于重寫單元2的存儲(chǔ)器21中的數(shù)據(jù)是例如圖15B的右側(cè)所示的數(shù)據(jù),在第一行的A字節(jié)數(shù)據(jù)被傳輸,接著,在第二行的A字節(jié)數(shù)據(jù)也被傳輸。如圖15C所示,用傳輸數(shù)據(jù)重寫寫緩沖區(qū)15的頁(yè)X中的第一行和第二行的內(nèi)容。因?yàn)榈谌猩系腁字節(jié)數(shù)據(jù)都是FF,并且與初始值相等,所以不被傳輸。因此,寫緩沖區(qū)15的頁(yè)X中的第三行的內(nèi)容不被重寫并且仍為初始值FF的序列。此外,類似地,第四行的A字節(jié)數(shù)據(jù)被傳輸,并且用它們重寫寫緩沖區(qū)15的頁(yè)X中的第四行的內(nèi)容。因?yàn)樵诖鎯?chǔ)器21的第五行的A字節(jié)數(shù)據(jù)都是FF,并且與初始值相等,不被傳輸,所以,寫緩沖區(qū)15的頁(yè)X中的第五行的內(nèi)容不被重寫并且仍為初始值FF的序列。結(jié)果,寫緩沖區(qū)15的頁(yè)X中的數(shù)據(jù)變?yōu)榕c存儲(chǔ)在存儲(chǔ)器21中的數(shù)據(jù)相等,然后,將該數(shù)據(jù)寫到ROM10。
應(yīng)注意到,雖然在本實(shí)施例中,將被重寫的ROM10的所有部分都被初始化,但是可以用初始值僅僅替代那些沒(méi)有數(shù)據(jù)從重寫單元傳輸?shù)狡涞牟糠帧?br>
此外,雖然在本實(shí)施例中,使用ROM作為其中進(jìn)行存儲(chǔ)數(shù)據(jù)的重寫操作的非易失性存儲(chǔ)器,但是也可以使用非易失性RAM或硬盤裝置。
因此,如同在這之前已經(jīng)描述的,根據(jù)本發(fā)明,重寫單元以數(shù)據(jù)傳輸指令的方式,通過(guò)預(yù)定的傳輸單元,傳輸重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于由所述預(yù)定的傳輸單元傳輸?shù)闹貙憯?shù)據(jù)的、所述非易失性存儲(chǔ)器的將被重寫的部分,并且,當(dāng)由所述預(yù)定的傳輸單元傳輸?shù)闹貙憯?shù)據(jù)的整體表示初始值時(shí),禁止包含所述重寫數(shù)據(jù)的數(shù)據(jù)傳輸指令的傳輸,并且車載控制單元接收從重寫單元傳送的數(shù)據(jù)傳輸指令,將所接收的每個(gè)數(shù)據(jù)傳輸指令中的重寫數(shù)據(jù)寫到由數(shù)據(jù)傳輸指令中的指定的位置數(shù)據(jù)表示的、非易失性存儲(chǔ)器的將被重寫的部分,并且,對(duì)于不能從數(shù)據(jù)傳輸指令獲得重寫數(shù)據(jù)的部分,將初始值寫到所述非易失性存儲(chǔ)器的、將被重寫的所有這樣的部分。從而,因?yàn)槟軠p少?gòu)闹貙憜卧獋鬏數(shù)杰囕d控制單元的數(shù)據(jù)量,所以,能夠?qū)崿F(xiàn)縮短重寫時(shí)間。
權(quán)利要求
1.一種重寫系統(tǒng),在該重寫系統(tǒng)中,將重寫數(shù)據(jù)從外部重寫單元傳輸?shù)骄哂蟹且资源鎯?chǔ)器的車載控制單元,以便重寫所述非易失性存儲(chǔ)器中的存儲(chǔ)數(shù)據(jù),所述非易失性存儲(chǔ)器存儲(chǔ)用于至少執(zhí)行對(duì)車輛發(fā)動(dòng)機(jī)的控制的數(shù)據(jù),其中所述重寫單元包括傳輸控制裝置,所述傳輸控制裝置用于按照每個(gè)預(yù)定數(shù)據(jù)傳輸單位傳輸作為數(shù)據(jù)傳輸指令的所述重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)乃鲋貙憯?shù)據(jù)的、所述非易失性存儲(chǔ)器的將被重寫的部分,并且,所述傳輸控制裝置還用于當(dāng)按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)乃鲋貙憯?shù)據(jù)的整體表示預(yù)定值時(shí),禁止包含所述重寫數(shù)據(jù)的所述數(shù)據(jù)傳輸指令的傳輸,并且其中所述車載控制單元包括用于從所述重寫單元接收所述數(shù)據(jù)傳輸指令的接收裝置,和寫控制裝置,用于將包含在由所述接收裝置接收的數(shù)據(jù)傳輸指令中的所述重寫數(shù)據(jù)寫到由所述數(shù)據(jù)傳輸指令中的所述指定的位置數(shù)據(jù)表示的、所述非易失性存儲(chǔ)器的重寫部分,并且,對(duì)于不能從所述接收裝置接收的數(shù)據(jù)傳輸指令獲得所述重寫數(shù)據(jù)的部分,所述寫控制裝置將表示所述預(yù)定值的數(shù)據(jù)寫入所述非易失性存儲(chǔ)器的、將被重寫的所有這樣的部分。
2.如權(quán)利要求1所述的重寫系統(tǒng),其中所述寫控制裝置包括具有數(shù)據(jù)存儲(chǔ)區(qū)域的寫緩沖區(qū),所述數(shù)據(jù)存儲(chǔ)區(qū)域?qū)?yīng)于所述非易失性存儲(chǔ)器的數(shù)據(jù)重寫單元;初始化裝置,用于將表示所述預(yù)定值的所述數(shù)據(jù)寫到所述寫緩沖區(qū)的整個(gè)存儲(chǔ)區(qū)域,以便初始化所述寫緩沖區(qū);緩沖區(qū)寫裝置,用于在由所述初始化裝置對(duì)所述寫緩沖區(qū)的初始化之后,將由所述接收裝置接收的數(shù)據(jù)傳輸指令中的所述重寫數(shù)據(jù)寫到由所述接收的數(shù)據(jù)傳輸指令中的所述指定的位置數(shù)據(jù)表示的、所述寫緩沖區(qū)的存儲(chǔ)部分;和存儲(chǔ)器寫裝置,當(dāng)通過(guò)所述緩沖區(qū)寫裝置,將對(duì)應(yīng)于所述非易失性存儲(chǔ)器的數(shù)據(jù)重寫單元的重寫數(shù)據(jù)寫到所述寫緩沖區(qū)的寫操作完成時(shí),所述存儲(chǔ)器寫裝置用于將存儲(chǔ)在所述寫緩沖區(qū)中的所述數(shù)據(jù)寫到對(duì)應(yīng)于所述數(shù)據(jù)重寫單元的所述非易失性存儲(chǔ)器的一個(gè)區(qū)域。
3.如權(quán)利要求2所述的重寫系統(tǒng),其中,當(dāng)由所述緩沖區(qū)寫裝置對(duì)所述寫緩沖區(qū)的末端執(zhí)行數(shù)據(jù)寫操作時(shí),或者當(dāng)由所述接收裝置接收的數(shù)據(jù)傳輸指令中的所述指定的位置數(shù)據(jù)不對(duì)應(yīng)到所述寫緩沖區(qū)的當(dāng)前數(shù)據(jù)存儲(chǔ)區(qū)域時(shí),所述存儲(chǔ)器寫裝置確定對(duì)所述寫緩沖區(qū)進(jìn)行的重寫數(shù)據(jù)的寫操作已完成。
4.如權(quán)利要求1所述的重寫系統(tǒng),其中,所述預(yù)定值是以十六進(jìn)制表示的FF。
5.具有非易失性存儲(chǔ)器的車載控制單元,所述非易失性存儲(chǔ)器存儲(chǔ)用于至少對(duì)車輛的發(fā)動(dòng)機(jī)執(zhí)行控制的數(shù)據(jù),所述車載控制單元包括接收裝置,用于接收從外部重寫單元傳輸來(lái)的數(shù)據(jù)傳輸指令;和寫控制裝置,用于將包含在由所述接收裝置接收的數(shù)據(jù)傳輸指令中的重寫數(shù)據(jù)寫到由接收到的所述數(shù)據(jù)傳輸指令中的指定的位置數(shù)據(jù)表示的、所述非易失性存儲(chǔ)器的將被重寫的部分,并且,對(duì)于不能從所述接收裝置接收的所述數(shù)據(jù)傳輸指令獲得所述重寫數(shù)據(jù)的部分,所述寫控制裝置將表示預(yù)定值的數(shù)據(jù)寫入所述非易失性存儲(chǔ)器的、將被重寫的所有這樣的部分。
6.一種重寫單元,用于將重寫數(shù)據(jù)傳輸?shù)骄哂蟹且资源鎯?chǔ)器的車載控制單元,所述非易失性存儲(chǔ)器存儲(chǔ)用于至少對(duì)車輛的發(fā)動(dòng)機(jī)執(zhí)行控制的數(shù)據(jù),所述重寫數(shù)據(jù)用于重寫所述非易失性存儲(chǔ)器中的所述存儲(chǔ)數(shù)據(jù),所述重寫單元包括傳輸控制裝置,用于按照每個(gè)預(yù)定數(shù)據(jù)傳輸單位傳輸作為數(shù)據(jù)傳輸指令的重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)乃鲋貙憯?shù)據(jù)的、所述非易失性存儲(chǔ)器的重寫部分,并且,所述傳輸控制裝置還用于當(dāng)按照所述預(yù)定的傳輸單位傳輸?shù)乃鲋貙憯?shù)據(jù)的整體表示預(yù)定值時(shí),禁止包含所述重寫數(shù)據(jù)的所述數(shù)據(jù)傳輸指令的傳輸。
全文摘要
一種重寫系統(tǒng),在所述重寫系統(tǒng)中,重寫單元按照每個(gè)預(yù)定數(shù)據(jù)傳輸單位傳輸作為數(shù)據(jù)傳輸指令的重寫數(shù)據(jù)和指定的位置數(shù)據(jù),所述指定的位置數(shù)據(jù)表示對(duì)應(yīng)于所述重寫數(shù)據(jù)的將被重寫的部分,并且,當(dāng)按照所述預(yù)定的數(shù)據(jù)傳輸單位傳輸?shù)闹貙憯?shù)據(jù)的整體表示預(yù)定值時(shí),禁止包含所述重寫數(shù)據(jù)的數(shù)據(jù)傳輸指令的傳輸,并且,車載控制單元將包含在接收的數(shù)據(jù)傳輸指令中的重寫數(shù)據(jù)寫到由所述接收的數(shù)據(jù)傳輸指令中的指定的位置數(shù)據(jù)表示的、非易失性存儲(chǔ)器的重寫部分,并且,對(duì)于不能從所述數(shù)據(jù)傳輸指令獲得所述重寫數(shù)據(jù)的部分,車載控制單元將表示所述預(yù)定值的數(shù)據(jù)寫入所述非易失性存儲(chǔ)器的所有這樣的部分。
文檔編號(hào)B60R16/02GK1700190SQ200510073958
公開日2005年11月23日 申請(qǐng)日期2005年5月19日 優(yōu)先權(quán)日2004年5月19日
發(fā)明者渡邊英樹, 奧山史彥 申請(qǐng)人:株式會(huì)社京浜