專利名稱:微處理器系統(tǒng)和用于防止該系統(tǒng)的模塊被更換的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及防止在微處理器系統(tǒng)上、尤其是在車輛的發(fā)動機(jī)控制設(shè)備上進(jìn)行干擾操作。
背景技術(shù):
這種設(shè)備一般被構(gòu)造為具有一個微處理器、用于該微處理器的程序存儲器和工作存儲器以及一個或多個用于與發(fā)動機(jī)上的傳感器和執(zhí)行器相通訊的接口。通過干擾操作處理器控制程序可以影響發(fā)動機(jī)的特性,以便諸如獲得一個較高的發(fā)動機(jī)功率。為防止對發(fā)動機(jī)或傳動繩可能有害的過載狀態(tài)而必需的、或者通過合法的預(yù)給定來進(jìn)行限制的功率限制可能通過上述方式被回避。因此需要采用一些技術(shù),這些技術(shù)使得在這種微處理器系統(tǒng)上不能進(jìn)行非法的干擾操作或者是至少以警告方式防止這種非法的干擾操作。
針對此目的而公開或應(yīng)用的一種技術(shù)是把這種微處理器系統(tǒng)的組件進(jìn)行粘合。然而事實表明以任何方式都不能再次被溶解的粘合劑是不存在的。此外粘合的一個重大缺點在于,由此不僅對于非法的干擾操作,而且同樣對于該微處理器系統(tǒng)的修理也變得困難。
發(fā)明內(nèi)容
本發(fā)明提供了一種微處理器系統(tǒng)以及一種用于防止該系統(tǒng)被更換模塊的方法,其大大增加了非法更換的難度,而不會降低該系統(tǒng)的易修理性。這種難度使得在能夠借助干擾操作來實現(xiàn)利用的絕大多數(shù)情況下,為此所必需的耗費是不合適的,并因此使得這種干擾操作在經(jīng)濟(jì)意義上變得不可能。
本發(fā)明是基于具有多個模塊的一種微處理器系統(tǒng),其中包含一個微處理器和至少一個用于存儲微處理器的代碼和數(shù)據(jù)的存儲器模塊,其中在上述模塊的至少一個被標(biāo)識為被進(jìn)行更換保護(hù)的模塊中,該模塊的序列號以不可更改的方式而被存儲。在微處理器上通常在生產(chǎn)過程中被設(shè)有一個在程序技術(shù)上可查詢的序列號,該序列號清楚地標(biāo)識了每個微處理器并且在制成的微處理器上是不可改變的。具有序列號的非易失存儲器模塊、尤其是閃存同樣是可用的。本發(fā)明規(guī)定在上述微處理器系統(tǒng)中借助至少一個被進(jìn)行更換保護(hù)的模塊的序列號根據(jù)一個預(yù)定的算法而計算出一個數(shù)據(jù)值,并把該值傳輸給控制模塊。該控制模塊把所接收到的數(shù)據(jù)值與一個在該模塊中被編碼的期望數(shù)據(jù)值相比較。如果這兩個值相一致,那么所述的被進(jìn)行更換保護(hù)的模塊的序列號是正確的,并且該微處理器系統(tǒng)才允許進(jìn)入其正常工作。如果這兩個數(shù)據(jù)值不一致,那么這意味著所述的被進(jìn)行更換保護(hù)的模塊已經(jīng)被非法更換,并且該微處理器系統(tǒng)的功能必需至少部分地被禁止,以免使得由于更換而使過程錯誤地進(jìn)行,其中該過程可能導(dǎo)致由微處理器系統(tǒng)控制的裝置、尤其是車輛發(fā)動機(jī)的損壞。
所述控制模塊優(yōu)選地同樣通過一個序列號來標(biāo)識,并且所述的期望數(shù)據(jù)值與該序列號相同,也即,用于計算所述數(shù)據(jù)值的算法尤其借助所述至少一個被進(jìn)行更換保護(hù)的模塊的和所述控制模塊的序列號來確定,使得產(chǎn)生所述控制模塊的序列號作為結(jié)果。
將一種非易失的存儲器模塊考慮作為被進(jìn)行更換保護(hù)的模塊是有益的,其中存儲了比如由所述微處理器執(zhí)行的程序代碼或參數(shù)組,所述的微處理器訪問這些程序代碼或參數(shù)組以執(zhí)行其任務(wù)。
在現(xiàn)代的微處理器系統(tǒng)中尤其經(jīng)常采用所謂的閃存來存儲這類參數(shù)組。如果對存儲器的寫訪問通過一個口令字來保護(hù),那么這些電可擦寫的存儲器按照本發(fā)明就可以有意義地防止被更換。
更換保護(hù)甚至在所述系統(tǒng)的微處理器中也可以是有意義的,如果所述的微處理器連同一個程序存儲器一起作為單片微機(jī)的一部分,那么就尤其有意義。
可以設(shè)置所述的控制模塊以促使所述的微處理器詢問每個被進(jìn)行更換保護(hù)的模塊的序列號,由此計算所述的確定的數(shù)據(jù)值并把把該值傳輸給所述的控制模塊。由此對于非法者來說,將很難通過改變微處理器的控制程序來禁止對被進(jìn)行更換保護(hù)的模塊的序列號的驗證。
需要被所述的微處理器用來計算所述的確定的數(shù)據(jù)值的信息至少部分存放在與該微處理器集成在一起的程序存儲器中,這樣,非法更改控制程序也有效地變得困難,并且與存儲在比如一個外部存儲器中的信息相比,使非法訪問由此更加困難。
所述的信息優(yōu)選地包括在引導(dǎo)過程的框架內(nèi)要執(zhí)行的程序指令,也即在所述微處理器每次啟動時被自動執(zhí)行的程序指令。
另一種可能的保護(hù)措施是設(shè)置所述的控制模塊,使得如果所述的確定的數(shù)據(jù)值在一個給定的時間間隔內(nèi)沒有被接收到,那么它至少部分地禁止所述微處理器系統(tǒng)的功能。也即,盡管非法者成功地通過改變微處理器的程序來防止該微處理器把一個數(shù)據(jù)值傳輸給所述的控制模塊-該控制模塊是借助該數(shù)據(jù)值才能夠識別一個受保護(hù)的模塊被更換的,但是所述微處理器系統(tǒng)的正常工作仍然被禁止。
本發(fā)明的其他特征和優(yōu)點參見后面的實施例說明并參照附圖。
其中附圖1示出了根據(jù)本發(fā)明的微處理器系統(tǒng)的第一方案的框圖;附圖2示出了附圖1的所述微處理器系統(tǒng)中的工作過程流程圖;附圖3示出了根據(jù)本發(fā)明的微處理器系統(tǒng)的第二方案的框圖;以及附圖4示出了附圖3的所述微處理器系統(tǒng)中的工作過程流程圖。
具體實施例方式
附圖1示出了一種發(fā)動機(jī)控制設(shè)備的框圖,其中該發(fā)動機(jī)控制設(shè)備比如應(yīng)當(dāng)適用于根據(jù)本發(fā)明的微處理器系統(tǒng)。在一個印刷電路板的總線1上連接了一個單片微機(jī)2、一個或多個分別有一個獨立的序列號來標(biāo)識的存儲器模塊(其中在該附圖中為了簡單起見僅示出了一個閃存3)、一個諸如可以實施為ASIC的控制模塊4、一個讀寫存儲器模塊5以及一個用于與待控制發(fā)動機(jī)的傳感器和執(zhí)行器(未示出)相通訊的接口6。所述模塊2、3、4、5均由獨立的IC來構(gòu)造。在單片微機(jī)2中集成了一個微處理器10和一個固化的程序存儲器11。使微處理器10與程序存儲器11相通訊的內(nèi)部總線12優(yōu)選地沒有伸展出所述的芯片2,如此使得程序存儲器11的內(nèi)容不能在所述單片微機(jī)芯片外部被非法讀出。所述程序存儲器11尤其含有控制設(shè)備的引導(dǎo)過程的程序指令。
所述的閃存3具有一個通??蓪ぶ返闹鞔鎯ζ鲄^(qū)域7,該主存儲器區(qū)域被發(fā)動機(jī)控制設(shè)備的生產(chǎn)者寫入了微處理器10的程序指令和參數(shù)區(qū),并且該主存儲器區(qū)域的指令在所述引導(dǎo)過程成功實施之后而被處理。所述的主存儲器區(qū)域7通常是可尋址地通過所述總線1來讀出。另外所述閃存還具有輔助存儲器單元8,其中該輔助存儲器單元已經(jīng)由所述閃存3的生產(chǎn)者自己寫入了一個序列號,該序列號標(biāo)識了給定型號的任一存儲器。同樣所述輔助存儲器單元7的內(nèi)容也可以通過所述總線1讀出,然而,用于讀出輔助存儲器單元7所需要的地址信號的格式優(yōu)選地不同于主存儲器區(qū)域7的尋址的。這樣比如為了讀出所述的輔助存儲器單元8就需要首先通過總線1發(fā)送一個特征字給所述閃存3。從而不可能由一個管腳匹配而且無生產(chǎn)者序列號的存儲器模塊來替換所述的閃存3,其中在該存儲器模塊上在正??蓪ぶ返拇鎯ζ鲉卧幸呀?jīng)只被復(fù)制了所述閃存3的序列號。所述的閃存3由此可以僅僅由相同類型的、但具有不同序列號的模塊來替換。
所述微處理器系統(tǒng)的工作方式借助附圖2的流程圖來解釋。在啟動過程中所述的微處理器10每次都執(zhí)行一個引導(dǎo)過程。該引導(dǎo)過程用于諸如所述接口6的以及有時與之相連的傳感器和執(zhí)行器的初始化,并且還用于驗證在該微處理器系統(tǒng)上是否在該系統(tǒng)被關(guān)閉期間已進(jìn)行了干擾操作。用于所述的后一目的的程序指令被存儲在所述的程序存儲器11中,并且該程序指令在開始引導(dǎo)過程時和在首次訪問存儲在所述單片微機(jī)2外部的程序指令之前被執(zhí)行。
為了驗證是否已經(jīng)進(jìn)行了非法的干擾操作,所述微處理器10在附圖2的步驟S1中讀出所有被進(jìn)行更換保護(hù)的模塊的序列號,在本實施例中是所述閃存3的序列號,以及單片微機(jī)2的比如被存儲在程序存儲器11中的專用序列號。所讀出的序列號在步驟S2中由微處理器10通過預(yù)先給定的、同樣被存儲在程序存儲器11中的計算步驟進(jìn)行邏輯連接。該計算步驟確定了(如果所讀出的序列號是正確的)所具有的結(jié)果為存儲在控制模塊4中的編碼數(shù)字。
在所述邏輯連接中所執(zhí)行的程序指令被存儲在程序存儲器11中,并且對于一個產(chǎn)品系列的所有的微處理器系統(tǒng)都是一樣的。所述邏輯連接的結(jié)果與所述編碼數(shù)字相一致在最簡單的情況下是通過以下方式來實現(xiàn)的,即在設(shè)備裝配期間所被裝配的、被進(jìn)行更換保護(hù)的模塊的序列號被讀出,所述邏輯連接的結(jié)果被運(yùn)算出并且作為編碼數(shù)字而被記錄在所述控制模塊中。
然而編碼數(shù)字也可以是一個有意選擇的、在裝配之前已經(jīng)被存儲在所述控制模塊4中的數(shù)據(jù)值,比如控制模塊4的序列號。在這種情況下為了保證使邏輯連接的結(jié)果與所述編碼數(shù)字相一致,必需在所述邏輯連接中至少輸入一個有意選擇的參數(shù),其中該參數(shù)保證了所述邏輯連接的期望結(jié)果。該參數(shù)的值在設(shè)備裝配中通過有關(guān)模塊的序列號來確定,并且被記錄在一個存儲器中,優(yōu)選的是所述閃存3中。
在最簡單的情況下所述的邏輯連接可能是把所述被進(jìn)行更換保護(hù)的模塊的序列號與一個參數(shù)相加,其中該參數(shù)如此來選擇,即所述的編碼數(shù)字作為相加的結(jié)果而得到。當(dāng)然可以預(yù)先確定任意不同的、復(fù)雜的也可能使用更多參數(shù)的邏輯連接。
在步驟S3中所述邏輯連接的結(jié)果被發(fā)送給所述的控制模塊。在步驟S4中來判斷所接收的值是否與所述的編碼數(shù)字相一致。如果一致,那么所述的微處理器在步驟S6中繼續(xù)進(jìn)行其控制程序的處理并最后轉(zhuǎn)向常規(guī)工作;否則所述的控制模塊4發(fā)送一個復(fù)位信號給所述的微處理器10,結(jié)果是,微處理器進(jìn)入步驟S1至S3的死循環(huán)中并且不再進(jìn)行常規(guī)工作。
在附圖3中所示出的微處理器的第二方案與附圖1的不同之處主要在于,所述的微處理器10和所述的程序存儲器11被實施在兩個獨立的芯片上。所述的程序存儲器11象所述的閃存3一樣通過一個由所述存儲器生產(chǎn)者單獨給定的序列號來防止更換。所述的微處理器10在此可以具有一個單獨的序列號并同樣被防止更換,然而這只具有次要的意義,原因在于把微處理器10更換為相同型號的其他微處理器不影響微處理器系統(tǒng)的功能。
所述的程序存儲器11和所述的微處理器10在此通過公共總線1來進(jìn)行通訊,如此使得不能防止非法讀出所述存儲器11的程序代碼。
該方案的工作方式通過附圖4的流程圖來進(jìn)行描述。在所述系統(tǒng)的啟動過程中所述的控制模塊4在步驟S11中產(chǎn)生一個微處理器10的復(fù)位脈沖。接著在步驟S12中所述控制模塊4的內(nèi)部時鐘發(fā)生器被啟動。同時所述的微處理器10開始執(zhí)行復(fù)位例行程序,其中該例行程序的程序指令已存儲在程序存儲器11中。所述的復(fù)位例行程序包括在步驟S21中讀出被進(jìn)行更換保護(hù)的模塊的序列號,在步驟S22中以與前所述的步驟S2相同的方式進(jìn)行邏輯連接,并且在步驟S23中把結(jié)果發(fā)送給所述的控制模塊4。
當(dāng)所述的微處理器10執(zhí)行所述的復(fù)位例行程序時,所述的控制模塊驗證是否存在所述時鐘發(fā)生器的一個信號,該信號表示自從它啟動以來已經(jīng)過去了一個給定的時間段(S13)。該時間段長于所述微處理器用于步驟S21至S23所需要的時間。只要所述的時間段沒有結(jié)束,那么所述的控制模塊4就在步驟S14中驗證微處理器的邏輯連接的結(jié)果是否到達(dá)。如果沒有,那么它就繼續(xù)等待,必要時直至所述給定時間段結(jié)束。在所述時間段結(jié)束之后它就轉(zhuǎn)回到步驟11并再次發(fā)送一個復(fù)位脈沖給所述微處理器。
如果所述的邏輯連接結(jié)果及時出現(xiàn),那么它就在步驟S15中與控制模塊的編碼數(shù)字相比較。在一致的情況下所述的控制模塊4就不再繼續(xù)動作,并且所述微處理器轉(zhuǎn)向常規(guī)工作S24。在不一致的情況下所述的控制模塊4再次轉(zhuǎn)向步驟S11并發(fā)送一個復(fù)位脈沖。這樣,如果所述的控制模塊4因更換了一個被進(jìn)行更換保護(hù)的模塊而收到一個錯誤邏輯連接結(jié)果,那么所述的微處理器10不僅進(jìn)入步驟S21至S23的死循環(huán)中,而且甚至在干擾操作或更換一個模塊時導(dǎo)致所述微處理器10在啟動時就不能再執(zhí)行步驟S21至S23。
權(quán)利要求
1.具有多個模塊的微處理器系統(tǒng),其中有一個微處理器(10)和至少一個用于存儲所述微處理器(10)的代碼和/或數(shù)據(jù)的存儲器模塊(3、11),在所述模塊(3、11)的至少一個被標(biāo)識為被進(jìn)行更換保護(hù)的模塊中以不可更改的方式存儲了該模塊的一個序列號,其特征在于,所述微處理器系統(tǒng)具有一個控制模塊(4),該控制模塊被設(shè)置用來接收一個由所述至少一個的序列號來確定的數(shù)據(jù)值,并且在所接收的數(shù)據(jù)值與一個在所述控制模塊(4)中被編碼的期望數(shù)據(jù)值不一致的情況下,至少部分地禁止所述微處理器系統(tǒng)的功能。
2.根據(jù)權(quán)利要求1的微處理器系統(tǒng),其特征在于,與所述被進(jìn)行更換保護(hù)的模塊(3、11)不同的控制模塊(4)具有一個序列號,所述的期望數(shù)據(jù)值與該序列號相同。
3.根據(jù)前述權(quán)利要求之一的微處理器系統(tǒng),其特征在于,所述的至少一個被進(jìn)行更換保護(hù)的模塊(3、11)為一種非易失的存儲器模塊。
4.根據(jù)權(quán)利要求3的微處理器系統(tǒng),其特征在于,所述的存儲器模塊為一種口令字保護(hù)的閃存。
5.根據(jù)前述權(quán)利要求之一的微處理器系統(tǒng),其特征在于,所述的至少一個被進(jìn)行更換保護(hù)的模塊是一種包括所述微處理器(10)以及一個程序存儲器(11)的單片微機(jī)(2)。
6.根據(jù)前述權(quán)利要求之一的微處理器系統(tǒng),其特征在于,所述的控制模塊(4)被設(shè)置用來促使所述的微處理器(10)詢問每個被進(jìn)行更換保護(hù)的模塊(3、11)的序列號,由此計算所述的確定的數(shù)據(jù)值并把該值傳輸給所述的控制模塊(4)(S3、S23)。
7.根據(jù)權(quán)利要求5和6微處理器系統(tǒng),其特征在于,需要被所述的微處理器(10)用來計算所述的確定的數(shù)據(jù)值的信息至少部分地存放在所述的程序存儲器(11)中。
8.根據(jù)權(quán)利要求7的微處理器系統(tǒng),其特征在于,所述的信息包括在引導(dǎo)過程中要執(zhí)行的程序指令(S1、S2、S3;S21、S22、S23)。
9.根據(jù)前述權(quán)利要求之一的微處理器系統(tǒng),其特征在于,設(shè)置所述的控制模塊(4),使得如果所述的確定的數(shù)據(jù)值在一個給定的時間間隔內(nèi)沒有被接收到,則它至少部分地禁止所述微處理器系統(tǒng)的功能。
10.用于保護(hù)一種微處理器系統(tǒng)以防止更換模塊的方法,具有以下步驟a)讀出(S1、S21)所述微處理器系統(tǒng)的一個或多個被進(jìn)行更換保護(hù)的模塊(3、11)的序列號,b)確定(S2、S22)一個通過所述的一個或多個序列號來確定的數(shù)據(jù)值,c)把在步驟b)中所確定的數(shù)據(jù)值傳輸(S3、S23)給一個控制模塊(4),d)如果所述的控制模塊(4)得到所述的被傳輸?shù)臄?shù)據(jù)值與一個在該控制模塊(4)中編碼的期望數(shù)據(jù)值不同,那么所述微處理器系統(tǒng)的功能就至少部分地被禁止。
11.根據(jù)權(quán)利要求10的方法,其特征在于,所述的數(shù)據(jù)值在步驟b)中借助一種算法來被確定,其中該算法在系統(tǒng)裝配中就已經(jīng)借助一個或多個被進(jìn)行更換保護(hù)的模塊(3、11)的序列號而被確定。
12.根據(jù)權(quán)利要求11的方法,其特征在于,所述的算法此外還借助所述控制模塊(4)的序列號而被確定,使得在步驟b)中所確定的數(shù)據(jù)值為所述控制模塊(4)的序列號。
13.根據(jù)權(quán)利要求11或12的方法,其特征在于,總是在啟動所述微處理器系統(tǒng)時被執(zhí)行,或者周期性地在所述微處理器系統(tǒng)的工作過程中被執(zhí)行。
14.根據(jù)權(quán)利要求10至13之一的方法,其特征在于,所述的步驟b)包括一個或多個數(shù)學(xué)或邏輯操作,并且由所述微處理器系統(tǒng)的微處理器(10)來執(zhí)行。
15.根據(jù)權(quán)利要求10至14之一的方法,其特征在于,如果所述的確定的數(shù)據(jù)值在一個給定的時間間隔內(nèi)沒有被接收到,那么所述微處理器系統(tǒng)的功能至少被部分地禁止。
全文摘要
微處理器系統(tǒng)包括多個模塊,其中有一個微處理器(10)和至少一個用于存儲所述微處理器(10)的代碼和/或數(shù)據(jù)的存儲器模塊(3、11)。在所述模塊(3、11)的至少一個被標(biāo)識為被進(jìn)行更換保護(hù)的模塊中以不可更改的方式存儲了該模塊的一個序列號。一個控制模塊(4)被設(shè)置用來接收一個由所述至少一個的序列號來確定的數(shù)據(jù)值,并且在所接收的數(shù)據(jù)值與一個在所述控制模塊(4)中被編碼的期望數(shù)據(jù)值不一致的情況下,至少部分地禁止所述微處理器系統(tǒng)的功能。
文檔編號G06F21/73GK1530853SQ200410030460
公開日2004年9月22日 申請日期2004年3月15日 優(yōu)先權(quán)日2003年3月14日
發(fā)明者J·韋伯, J 韋伯, K·施奈德爾, 蔚露, A·奧厄 申請人:羅伯特-博希股份公司