專利名稱:可靠地檢驗控制裝置中微控制器存儲區(qū)的方法和帶有受保護微控制器的控制裝置的制作方法
現(xiàn)有技術(shù)本發(fā)明是關(guān)于在一輛汽車中控制一個控制裝置的微控制器的一種方法,汽車帶有一個中央處理器(Rechnerkern)、至少一個只-讀-存儲區(qū)域和至少一個可重寫的存儲區(qū)域,在可重寫的存儲區(qū)域中至少存儲一個控制程序,它是為了用中央處理器進(jìn)行處理而設(shè)置的。
此外,本發(fā)明還涉及用于帶有微控制器的汽車的一種這樣的控制裝置。
在廣義上,這里將汽車?yán)斫鉃榭捎每刂蒲b置控制的內(nèi)燃機車輛。這類控制裝置在車輛技術(shù)上為各種各樣的功能應(yīng)用,例如像作為發(fā)動機控制裝置。在這種情況,例如在發(fā)動機控制裝置的整理調(diào)諧(Chip-Tuning)時,往往要控制非易失的但是可多次重寫的存儲器(例如閃存器)。將在那里存儲的數(shù)據(jù)改變,使達(dá)到一個較高的發(fā)動機功率。由現(xiàn)有技術(shù)還知道一些控制微控制器的方法,這些微控制器在起動時和/或在控制裝置程序的運行期間觸發(fā)檢驗程序。此外,這類控制裝置也用于控制變速箱或ABS-系統(tǒng)。
從德國公開文本DE197 53 730知道控制內(nèi)燃機的一種方法和一種裝置。該裝置包括至少一個微處理器、至少一個可編程的存儲器和一個可重寫的存儲器。在可重寫的存儲器中,放置有由微控制器處理的程序和/或數(shù)據(jù)。這些程序只有在檢驗之后才被執(zhí)行。如果一個可編程的存儲器的內(nèi)容接收第一個數(shù)值,則不用另外的檢驗程序就被執(zhí)行,否則至少進(jìn)行一個另外的檢驗。用該方法要達(dá)到,使一個數(shù)據(jù)組有在一個串聯(lián)控制裝置上運行的能力,該數(shù)據(jù)組包含有改變了的數(shù)據(jù)和/或程序,或不是由控制裝置制造廠公開的數(shù)據(jù)組。同時,汽車制造廠要有使用控制裝置的可能性,就是說,不用具備檢驗的知識就改變各個控制裝置中的數(shù)據(jù)組。此時,成問題的是對可編程存儲器內(nèi)容的保護。
在DE197 23 332A1中,闡述了一種保護微控制器防止操作其程序的方法和一種這類受保護的微計算機。微計算機有一個中央處理器、一個只-讀-存儲器和一個可重寫存儲器。在只讀存儲器中,存儲一檢驗程序,它借助于一個通行字由可重寫存儲器的存儲內(nèi)容形成一個代碼字。然后,將代碼字與一個比較代碼字進(jìn)行比較,比較代碼字同樣是放置在可重寫存儲器中。微計算機的阻斷或觸發(fā)取決于比較的結(jié)果。
在已知的方法中,如果應(yīng)用只需要一個受保護的內(nèi)部閃存區(qū)域(Flashbereich)并不需要外部的存儲器,在采用這個閃存區(qū)域時也可能是個保護。因為該應(yīng)用大多數(shù)是采用一個外部存儲器,在內(nèi)部安裝的操作保護在這些應(yīng)用中不起作用-或者要回避。此外,如果使用的控制器沒有內(nèi)部的、受保護的存儲器,則操作檢驗例行程序才有可能。在最簡單的情況將阻止調(diào)用這些例行程序。
如果相反,在控制器中將這些檢驗例行程序放置在一個不可改變的區(qū)域(例如ROM),則這意味著一方面是費用上升,另一方面是在選擇算法中靈活性較小。除此之外,一個ROM在相應(yīng)控制器技術(shù)中往往也不可實現(xiàn)。甚至如果有一個ROM可供使用的話,留下一些在應(yīng)用一個大的ROM-區(qū)域時從根本上要注意的問題。改變程序代碼是很昂貴的,因為各自要求新的掩碼。如果必須改變代碼,直至新代碼可在項目中使用,至少需要4個月(流水線循環(huán)時間Liniendurchlaufzeit)。對于一個客戶專用的代碼,或是每個客戶要求有他自己的ROM,或是必須將ROM相應(yīng)地放大。兩者都造成費用增高,既不符合客戶利益,也不符合半導(dǎo)體制造廠的利益。如何能促使代碼實施的問題,在此也沒有解決。
因此,本發(fā)明所面對的問題,創(chuàng)立檢驗一控制裝置的微控制器存儲器的一種方法,該方法較好地防止未經(jīng)許可的介入。此外,任務(wù)還在于,在一個控制裝置的微控制器中,完全有效地去阻止未經(jīng)許可的操作(Manipulation)存儲內(nèi)容。
本發(fā)明的優(yōu)點本發(fā)明的方法包括下列步驟在可重寫存儲區(qū)域的一個一次可寫的存儲區(qū)域中存儲一個檢驗程序,在只-讀-存儲區(qū)域存儲一個服務(wù)程序,通過控制程序以有規(guī)則的間隔調(diào)用服務(wù)程序,通過服務(wù)程序調(diào)用檢驗程序,在通過控制程序調(diào)用時通過服務(wù)程序使一個計數(shù)器復(fù)位,通過檢驗程序檢驗至少一部分可重寫存儲區(qū)域,在操作被檢驗的存儲區(qū)域時通過檢驗程序或在計數(shù)器溢出時通過計數(shù)器觸發(fā)一個RESET。
本發(fā)明的方法出眾之處在于,用于檢驗存儲器的代碼序列(檢驗程序),不能在只有一次可寫的存儲器中被操作。這樣一個只一次可寫的存儲區(qū)域,例如能在已存在的、內(nèi)部可重寫的存儲器(閃存Flash)中實現(xiàn)。一些微控制器例如在內(nèi)部閃存的部分上有一個通行字保護。另一方面,在本發(fā)明的方法中,也有效地確保實施這個代碼序列。在控制裝置的各自控制程序中,必須包括以能調(diào)節(jié)的有規(guī)則的間隔調(diào)用檢驗程序。該檢驗程序借助于一個服務(wù)程序調(diào)用,該服務(wù)程序存儲在只-讀-存儲器中。因此,該服務(wù)程序是被保護防止未經(jīng)許可的介入和操作的。
必須有規(guī)則地調(diào)用該服務(wù)程序,因為否則借助于一個節(jié)拍發(fā)出裝置不受影響地連續(xù)運行的計數(shù)器發(fā)出一個溢出信號。計數(shù)器不能停止,只能通過調(diào)用服務(wù)程序復(fù)位。如果計數(shù)器在調(diào)用服務(wù)程序之前達(dá)到溢出,計數(shù)器產(chǎn)生微控制器的一個RESET。
計數(shù)器能作為一個單獨的具有自己節(jié)拍供給的裝置的計數(shù)器模塊來實現(xiàn),它布置在微控制器之內(nèi)一個受保護的區(qū)域或在控制裝置中。在適當(dāng)?shù)奈⒖刂破髦?,程序技術(shù)的實現(xiàn)同樣是可以想象的。計數(shù)器的溢出,例如能通過達(dá)到計數(shù)器終點(Zhlerende)觸發(fā)。溢出達(dá)到的時間點決定時間間隔,在該時間間隔之后必須重新調(diào)用服務(wù)程序,不用計數(shù)器去觸發(fā)RESET。為了調(diào)定一個時間點,選擇一個帶有相應(yīng)計數(shù)器終點的計數(shù)器,或者調(diào)定一個計數(shù)器狀態(tài),在達(dá)到該狀態(tài)時也發(fā)出一個溢出信號。在通過控制程序調(diào)用服務(wù)程序時,一方面調(diào)用檢驗程序,另一方面將計數(shù)器復(fù)位。
RESET例如在于,將控制裝置關(guān)斷或用一個數(shù)據(jù)組運行,該數(shù)據(jù)組還允許有一個受限制的功能。此時,也還能同時將一個相應(yīng)的信號給到另外的控制裝置。尤其有意義的是輸出一個警告信號,它提出將車輛送進(jìn)車間修理的要求。
此外,本發(fā)明的任務(wù)還通過帶有微控制器汽車的一個控制裝置來解決,在這里為了存儲一個檢驗程序設(shè)置有可重寫存儲區(qū)域的一個一次可寫的存儲區(qū)域,設(shè)置只-讀-存儲區(qū)域用于存儲一個服務(wù)程序,中央處理器以有規(guī)則的間隔通過控制程序處理調(diào)用之后的服務(wù)程序,中央處理器通過服務(wù)程序處理調(diào)用之后的檢驗程序,設(shè)置一個計數(shù)器,該計數(shù)器通過控制程序在調(diào)用時可通過服務(wù)程序服位,至少一部分可重寫存儲區(qū)域可通過檢驗程序檢驗,在操作被檢驗的存儲區(qū)域時通過檢驗程序或在計數(shù)器溢出時觸發(fā)一個RESET。
本發(fā)明特別優(yōu)選的擴展在從屬權(quán)利要求中給出。
附圖下面應(yīng)用兩個附圖詳細(xì)闡述本發(fā)明的一個實施例。示出的有
圖1本發(fā)明一個控制裝置的微控制器的方塊圖和圖2本發(fā)明方法的流程圖。
實施例的說明在圖1中示出的是按照本發(fā)明一個控制裝置的微控制器1。它包括一個中央處理器2、一個只-讀-存儲器3、一個只一次可寫的存儲器4和一個可重寫的存儲器5。該控制裝置例如可以是用于節(jié)流閥、需噴射的燃油量或其它量的發(fā)動機控制裝置。然而,也可以想象是控制汽車中變速箱、ABS系統(tǒng)或其它系統(tǒng)的控制裝置。中央處理器1是一個普通的微處理器,用于處理存儲的程序和數(shù)據(jù)。只-讀-存儲器或ROM3包含有一個固定存儲的程序,該程序只能通過更換ROM3改變。在這個存儲器中,一般放置一個最小型程序,它能將中央處理器1置于能處理來自其它存儲器的程序和數(shù)據(jù)的狀態(tài)。
可重寫存儲器5大多作為EPROM或快閃EPROM來實施,且包含控制裝置的可改變的程序和數(shù)據(jù)。只一次可寫存儲器4是可重寫存儲器5(閃存器Flash)的一個存儲區(qū)域,它是受一個通行字保護的。在這個存儲區(qū)域4中,存儲一個代碼序列,它的任務(wù)是檢驗微控制器1的代碼-和數(shù)據(jù)區(qū)域。這個檢驗程序在識別到操作時采取一個反措施,大多數(shù)是引起觸發(fā)一個RESET。此時,RESET的規(guī)模能與各自希望的反措施相匹配。控制裝置例如能被整個關(guān)斷,這在一個發(fā)動機控制裝置的情況造成汽車立即停車?;蛘吣苡米钚∨渲锰峁┙o控制裝置,使控制裝置保留功能準(zhǔn)備狀態(tài),但是為了完全的功能能力要求送車間去修理。
各種存儲區(qū)域分別示于圖1,由此只要標(biāo)識它們的不同功能。在維護不同功能性的情況下,有可能使存儲區(qū)域通過分離的組件或以公共組件形式去實現(xiàn)。這樣,尤其是閃存器5既能在微控制器組件之內(nèi)實現(xiàn),也能作為外部存儲組件實現(xiàn)。
在圖2中示意性示出的是本發(fā)明方法的流程。區(qū)域A,B,C和D標(biāo)識功能不同的存儲區(qū)域,在這些區(qū)域中放置的是有關(guān)的程序和數(shù)據(jù)。在示出的實施例中,A說明微控制器中的一個硬件區(qū)域,B說明微控制器中的一個ROM-區(qū)域和C說明微控制器中的一個閃存一區(qū)域,而D表示的是一個外部閃存-區(qū)域。
在外部閃存-區(qū)域D中,作為應(yīng)用代碼存儲的是控制裝置的一個控制程序。該程序在代碼中包括一個`CALL′-指令,用它調(diào)用一個放置在微控制器的ROM-存儲區(qū)域B中的服務(wù)程序。在一個相應(yīng)的入口代碼(Entry-Code)時,觸發(fā)服務(wù)程序中的一個`SERVICE′(`服務(wù)′)。該服務(wù)程序觸發(fā)兩件事,一方面,將一個在微控制器A中作為計數(shù)器組件實現(xiàn)的計數(shù)器`COUNTER′復(fù)位。該計數(shù)器組件與一個節(jié)拍線路連在一起,致使它獨立地連續(xù)運行。在達(dá)到最大的計數(shù)器位置時,發(fā)出溢出信號。另一方面,同時在一個檢驗程序中觸發(fā)一個轉(zhuǎn)移`JUMP′。該檢驗程序是作為代碼序列存儲在內(nèi)部閃存器中的只一次可寫存儲區(qū)域中。微控制器的內(nèi)部閃存器為此有個區(qū)域,該區(qū)域通過一個通行字保護,從而只一次可寫。
檢驗程序借助于已知的諸如校驗和形成(Checksummenbildung)那樣的檢驗方法,檢驗至少一部分由微控制器應(yīng)用的存儲器。如果用檢驗確定出在存儲的數(shù)據(jù)和/或程序上的操作,則觸發(fā)一個RESET。如果確定出沒有未經(jīng)允許的改變,則借助于一個`RETURN′-指令又返回到控制程序。
如果計數(shù)器發(fā)出溢出信號,就是說一個規(guī)定的時間到期,則同樣觸發(fā)一個RESET。該RESET可以有選擇地意味著,將控制裝置完全關(guān)斷,或使控制裝置在應(yīng)用以前規(guī)定的參數(shù)情況下運行。此時關(guān)系到還能確保控制裝置功能性的一種最小配置,但是即刻要求送車間去修理。RESET一直保持激活狀態(tài),直至該裝置關(guān)斷和再接通(所謂的Power-On RESET)。
因為計數(shù)器不受影響地連續(xù)運行,所以如果將計數(shù)器有規(guī)則地進(jìn)行復(fù)位,就能避免出現(xiàn)溢出,和能避免該從而強制地連在一起的控制裝置的RESET。因為這只能在同樣不是可操作的ROM-區(qū)域B內(nèi)由服務(wù)程序觸發(fā),又必須由控制程序有規(guī)則地調(diào)用服務(wù)程序。因此,該必須包括CALL-指令的控制程序能存儲在相對沒有保護的閃存-區(qū)域D中。因為即使通過操作,也不能因此用這個方法去阻止對微控制器存儲器進(jìn)行檢驗。只有在沒有操作的微控制器的存儲器時,才確??刂蒲b置持續(xù)的功能性。
與已知方法相比,本發(fā)明方法有一些優(yōu)點。為控制器-芯片只產(chǎn)生很少的或沒有額外費用,因為只需要最小的額外花費。此外,檢驗程序能單獨與要求或需求匹配,因為這個代碼序列沒有包括在ROM-掩碼中。因此,它也能保持客戶專用。除此之外,控制器制造廠也能給其他客戶提供這種功能。
對于沒有控制器-內(nèi)部閃存的系統(tǒng),能應(yīng)用同樣的方法。該方法從而消除了對具有內(nèi)部和外部閃存的系統(tǒng)保護較小的缺點,而且在與器件配對的組合中是個很可靠的方法。雖然可重寫存儲區(qū)域在上面的實施例中位于微控制器之內(nèi),當(dāng)然它也能位于外部。
參考符號一覽表
權(quán)利要求
1.在汽車中控制一控制裝置的微控制器(1)的方法,該微控制器帶有一個中央處理器(2)、至少一個只-讀-存儲區(qū)域(3)和至少一個可重寫存儲區(qū)域(5),其中在可重寫存儲區(qū)域(5)中至少存儲了一個控制程序,它是為了用中央處理器(2)進(jìn)行處理而設(shè)置的,包括至少下列步驟,-在可重寫存儲區(qū)域(5)的一個一次可寫的存儲區(qū)域(4)中存儲一個檢驗程序,-在只-讀-存儲區(qū)域(3)中存儲一個服務(wù)程序,-通過控制程序以有規(guī)則的間隔調(diào)用服務(wù)程序,-通過服務(wù)程序調(diào)用檢驗程序,-在通過控制程序調(diào)用時通過服務(wù)程序使一個計數(shù)器復(fù)位,-通過檢驗程序檢驗至少一部分可重寫存儲區(qū)域,-在操作被檢驗的存儲區(qū)域時通過檢驗程序或在計數(shù)器溢出時通過計數(shù)器觸發(fā)一個RESET。
2.如權(quán)利要求1的方法,其特征在于,控制程序存儲在微控制器(1)的一個內(nèi)部存儲區(qū)域。
3.如權(quán)利要求1的方法,其特征在于,控制程序存儲在微控制器(1)之外的一個外部存儲區(qū)域。
4.如權(quán)利要求1的方法,其特征在于,檢驗程序存儲在微控制器(1)的一個內(nèi)部存儲區(qū)域。
5.如權(quán)利要求4的方法,其特征在于,檢驗程序存儲在微控制器(1)的一個內(nèi)部存儲區(qū)域,該存儲區(qū)域受一個通行字保護。
6.帶有微控制器(1)的汽車控制裝置,微控制器帶有一個中央處理器(2)、至少一個只-讀-存儲區(qū)域(3)和至少一個可重寫的存儲區(qū)域(5),其中在可重寫存儲區(qū)域(5)中存儲至少一個控制程序,它是為了用中央處理器(2)進(jìn)行處理而設(shè)置的,其中-為了存儲檢驗程序設(shè)置可重寫存儲區(qū)域(5)的一個一次可寫的存儲區(qū)域(4),-為了存儲服務(wù)程序設(shè)置一個只-讀-存儲區(qū)域(3),-服務(wù)程序通過控制程序以有規(guī)則的間隔調(diào)用之后,被中央處理器(2)處理,-檢驗程序通過服務(wù)程序調(diào)用之后,被中央處理器(2)處理,-設(shè)置一個計數(shù)器,它在通過控制程序調(diào)用時可由服務(wù)程序復(fù)位,-至少一部分可重寫存儲區(qū)域(5)可通過檢驗程序檢驗,-在操作被檢驗的存儲區(qū)域時通過檢驗程序或在計數(shù)器溢出時可觸發(fā)一個RESET。
7.如權(quán)利要求6的控制裝置,其特征在于,一次可寫存儲區(qū)域(4)布置在微控制器(1)之內(nèi)。
8.如權(quán)利要求6的控制裝置,其特征在于,可重寫的存儲區(qū)域(5)是作為閃存器構(gòu)成的。
全文摘要
本發(fā)明是關(guān)于在一輛汽車中控制一個控制裝置中的微控制器的一種方法,汽車帶有一個中央處理器、至少一個只-讀-存儲區(qū)域和至少一個可重寫的存儲區(qū)域,其中在可重寫的存儲區(qū)域中至少存儲一個控制程序,它是為了用中央處理器進(jìn)行處理而設(shè)置的。為了創(chuàng)立一種方法用于控制一個控制裝置中的微控制器,而它較好地保護檢驗微控制器的存儲器不受未經(jīng)允許的入侵,建議將一個檢驗程序存儲在可重寫存儲區(qū)域的一個一次可寫的存儲區(qū)域中,并將一個服務(wù)程序存儲在只-讀-存儲區(qū)域中。檢驗程序借助于服務(wù)程序被控制程序以有規(guī)則的間隔調(diào)用,并檢驗至少一部分可重寫存儲區(qū)域。此外,服務(wù)程序?qū)⒂嫈?shù)器復(fù)位。檢驗程序在識別出操作被檢驗的存儲區(qū)域時或計數(shù)器在計數(shù)器溢出時,觸發(fā)控制裝置的一個RESET。
文檔編號G06F21/71GK1692322SQ200380100458
公開日2005年11月2日 申請日期2003年11月5日 優(yōu)先權(quán)日2002年11月7日
發(fā)明者K·施奈德爾, A·奧埃 申請人:羅伯特-博希股份公司