專利名稱:嵌入式存儲(chǔ)器保護(hù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子設(shè)備,特別但不排它的是,涉及控制通過JTAG 端口對(duì)微控制器的嵌入式存儲(chǔ)器的訪問。
背景技術(shù):
集成電路的安全性正日益受到關(guān)注,因?yàn)樗鼈冇迷诎踩庾R(shí)越來越強(qiáng)的應(yīng)用中。這種應(yīng)用的一些例子有智能卡、蜂窩電話和其它無 線通信設(shè)備、因特網(wǎng)通信系統(tǒng)等等。通常希望保護(hù)集成電路的一個(gè)或 多個(gè)部分不接受未經(jīng)授權(quán)的訪問。對(duì)這種設(shè)備中的編程或其它存儲(chǔ)器 內(nèi)容的未經(jīng)授權(quán)的訪問已經(jīng)成為許多應(yīng)用/程序開發(fā)者的關(guān)注焦點(diǎn)。同時(shí),人們還關(guān)注對(duì)向集成電路輸入信息和從集成電路輸出信息 的許可。實(shí)際上,通常需要信息輸入/輸出(I/O)來測(cè)試、仿真和調(diào) 試給定的集成電路。 一種用于集成電路調(diào)試、仿真和/或測(cè)試目的的普通標(biāo)準(zhǔn)是JTAG (聯(lián)合測(cè)試行動(dòng)小組)IEEE (電氣電子工程師協(xié)會(huì)) 1194.1測(cè)試訪問端口和邊界掃描結(jié)構(gòu)。除了標(biāo)準(zhǔn)JTAG接口之外,還 有許多用于集成電路的其它調(diào)試、仿真和/或測(cè)試接口。遺憾的是, JTAG的輸入/輸出端或其它所需的接口有時(shí)為對(duì)集成電路的未經(jīng)授權(quán) 的訪問提供了路徑。其結(jié)果是,在期望保護(hù)對(duì)集成電路的訪問和需要 提供調(diào)試、仿真和/或測(cè)試能力之間,通常存在引人關(guān)注的競(jìng)爭(zhēng)。因此, 在這個(gè)技術(shù)領(lǐng)域中一直需要進(jìn)一步的成果。發(fā)明內(nèi)容本發(fā)明的一個(gè)實(shí)施例是一種用于保護(hù)對(duì)集成電路的訪問的獨(dú)特 技術(shù)。本發(fā)明的其它實(shí)施例包括對(duì)集成電路的嵌入式存儲(chǔ)器的訪問進(jìn)行控制的獨(dú)特設(shè)備、方法、系統(tǒng)和裝置。另一實(shí)施例包括復(fù)位微控制器,所述微控制器包括嵌入式存儲(chǔ) 器、可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè)試接口。響應(yīng)于被復(fù)位,禁止(disable)通過測(cè)試接口對(duì)存儲(chǔ)器進(jìn)行訪問,并且利用處理器開始執(zhí)行存儲(chǔ)在存儲(chǔ)器中的代碼(此后稱之為復(fù)位代碼)。稍后,允許(enable)通過測(cè)試接口對(duì)存儲(chǔ)器進(jìn)行訪問,除非復(fù) 位代碼的執(zhí)行針對(duì)隨后的微控制器的操作再次禁止了測(cè)試接口。另一實(shí)施例包括微控制器的啟動(dòng)操作,所述微控制器包括嵌入 式存儲(chǔ)器、可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè) 試接口;響應(yīng)于啟動(dòng),啟動(dòng)計(jì)數(shù)器,將測(cè)試接口設(shè)定為初始禁止?fàn)顟B(tài) 以禁止通過測(cè)試接口訪問存儲(chǔ)器,并利用處理器執(zhí)行初始代碼;并且, 在計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)時(shí),將測(cè)試接口改變?yōu)樵试S狀態(tài)以允許 訪問存儲(chǔ)器,除非在計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)之前初始代碼的執(zhí)行 針對(duì)隨后的微控制器操作設(shè)立了再次禁止?fàn)顟B(tài)。再一實(shí)施例是一種微控制器集成電路,包括處理器、嵌入式存儲(chǔ) 器、和可操作地耦合至所述處理器和存儲(chǔ)器的微控制器測(cè)試接口。所 述微控制器響應(yīng)于復(fù)位信號(hào)以執(zhí)行復(fù)位操作邏輯,該邏輯設(shè)定測(cè)試接 口的初始禁止?fàn)顟B(tài)并啟動(dòng)計(jì)數(shù)器。所述初始禁止?fàn)顟B(tài)防止通過測(cè)試接 口訪問存儲(chǔ)器。在初始禁止?fàn)顟B(tài)期間,所述處理器可以執(zhí)行存儲(chǔ)在存 儲(chǔ)器中的復(fù)位初始代碼,以在復(fù)位之后可選地為隨后的微控制器操作 設(shè)立再次禁止?fàn)顟B(tài)。響應(yīng)于計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài),所述復(fù)位操 作邏輯提供測(cè)試接口的允許狀態(tài),以用于在隨后的微控制器操作過程 中通過測(cè)試接口訪問存儲(chǔ)器,除非在計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)之前 通過處理器的初始代碼的執(zhí)行設(shè)立了再次禁止存儲(chǔ)器訪問的狀態(tài)。又一實(shí)施例包括啟動(dòng)微控制器的初始操作,所述微控制器包括 嵌入式存儲(chǔ)器、可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器 的測(cè)試接口;在所述微控制器的初始操作過程中,設(shè)立測(cè)試接口的初 始禁止?fàn)顟B(tài),以禁止通過測(cè)試接口訪問存儲(chǔ)器;在所述初始禁止?fàn)顟B(tài) 期間,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的至少一部分初始代碼,以可選 地設(shè)立測(cè)試接口的再次禁止?fàn)顟B(tài);以及在初始操作之后允許微控制器操作通過測(cè)試接口訪問存儲(chǔ)器,除非初始代碼的執(zhí)行設(shè)立了再次禁止 狀態(tài)。所述再次禁止?fàn)顟B(tài)拒絕在初始操作之后的微控制器操作期間通 過測(cè)試接口訪問存儲(chǔ)器。在一種形式中,所述初始代碼包括第一部分 和第二部分,所述初始禁止?fàn)顟B(tài)的設(shè)立是通過執(zhí)行所述第一部分而進(jìn) 行的,而在所述初始禁止?fàn)顟B(tài)期間的執(zhí)行則包括執(zhí)行所述第二部分。對(duì)于另一實(shí)施例,復(fù)位微控制器,所述微控制器包括嵌入式存儲(chǔ) 器、可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè)試接口。 響應(yīng)于被復(fù)位,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的復(fù)位代碼。在復(fù)位之 后的微控制器操作過程中,初始代碼禁止通過測(cè)試接口訪問存儲(chǔ)器,以保護(hù)存儲(chǔ)器內(nèi)容;并且,在復(fù)位之后的微控制器操作過程中,改變存儲(chǔ)器的內(nèi)容,以允許通過測(cè)試接口訪問存儲(chǔ)器。在一種形式中,通 過擦除來改變存儲(chǔ)器的內(nèi)容。在另一形式中,通過在存儲(chǔ)器中存儲(chǔ)不 同的內(nèi)容來選擇性地或附加地改變所述內(nèi)容。本發(fā)明的一個(gè)目的是提供一種用于保護(hù)對(duì)集成電路的訪問的獨(dú) 特技術(shù)。本發(fā)明的另一目的是提供一種獨(dú)特設(shè)備、方法、系統(tǒng)或裝置,用 以控制對(duì)集成電路的嵌入式存儲(chǔ)器的內(nèi)容的訪問。本發(fā)明的其它目的、實(shí)施例、形式、特征、益處和優(yōu)點(diǎn)將由這里 所包括的說明和附圖而變得明顯。
圖1是包括耦合至測(cè)試儀器的微控制器的集成電路系統(tǒng)的示意圖。圖2是可以由圖1的系統(tǒng)實(shí)現(xiàn)的一個(gè)過程的流程圖。
具體實(shí)施方式
雖然本發(fā)明可以以許多不同的形式而實(shí)施,但是為了幫助理解本 發(fā)明的原理,現(xiàn)在將參照附圖中所示的實(shí)施例并使用特殊的語言來對(duì) 其進(jìn)行描述。不過,可以理解此舉并非是限制本發(fā)明的范圍。在所述 實(shí)施例中的任何變體和進(jìn)一步修改、以及對(duì)如此所述的發(fā)明原理的進(jìn)一步應(yīng)用都被認(rèn)為是本發(fā)明涉及領(lǐng)域的技術(shù)人員通常能想到的。本發(fā)明的一個(gè)實(shí)施例包括微控制器集成電路,該微控制器集成電 路包括處理器、可操作地耦合至所述處理器的嵌入式存儲(chǔ)器和可操作 地耦合至所述處理器和存儲(chǔ)器的微控制器測(cè)試接口。所述微控制器響 應(yīng)于復(fù)位信號(hào),執(zhí)行復(fù)位初始,包括設(shè)定測(cè)試接口的復(fù)位禁止?fàn)顟B(tài)和 可選地設(shè)立測(cè)試接口的再次禁止?fàn)顟B(tài)。在隨后的操作過程中,所述微 控制器提供測(cè)試接口的允許狀態(tài),允許通過測(cè)試接口訪問存儲(chǔ)器,除 非之前復(fù)位初始代碼的執(zhí)行設(shè)立了再次禁止?fàn)顟B(tài)。圖1示出集成電路系統(tǒng)20形式的另一實(shí)施例。系統(tǒng)20包括可操 作地耦合至集成電路24的測(cè)試儀器22。集成電路24被構(gòu)建為提供微 控制器30。微控制器30包括處理器32和測(cè)試接口 34。如此處所用, "測(cè)試接口"廣泛地指被設(shè)置為根據(jù)一個(gè)或多個(gè)已建立的協(xié)議來提供測(cè) 試、調(diào)試、仿真的任何集成電路接口或其組合。可通過專用端來訪問 給定的測(cè)試接口,或者,通過相應(yīng)集成電路的一個(gè)或多個(gè)其它接口、 設(shè)備等所共享的端子來訪問給定的測(cè)試接口。在一個(gè)實(shí)施例中,接口 34符合JTAG標(biāo)準(zhǔn)。代替地或者附加地,可以采用不同的測(cè)試接口協(xié) 議。菲利普半導(dǎo)體型號(hào)LPC2114和型號(hào)LPC2124是具有JTAG和仿真 跟蹤端口能力的微控制器設(shè)備的非限制性例子。圖1中還示出了微控制器30的二元復(fù)位輸入36。相應(yīng)的復(fù)位信 號(hào)復(fù)位微控制器30的操作,提示某些缺省并指導(dǎo)在預(yù)定啟動(dòng)存儲(chǔ)器位 置開始的程序執(zhí)行。如下文結(jié)合圖2所描述的那樣,響應(yīng)于復(fù)位條件, 微控制器32執(zhí)行復(fù)位初始化。該初始化可以以編程指令、硬件或二者 組合的形式實(shí)現(xiàn)。處理器32還耦合至本地總線40,以提供對(duì)嵌入式靜態(tài)隨機(jī)存取 存儲(chǔ)器(SRAM)存儲(chǔ)器42和嵌入式非易失性閃存44的雙向訪問。 總線40可以經(jīng)由存儲(chǔ)器控制邏輯(未示出)等耦合至SRAM存儲(chǔ)器 42和/或閃存44。典型地,存儲(chǔ)器44用于存儲(chǔ)處理器32在微控制器 操作期間所執(zhí)行的編程指令。存儲(chǔ)器44被構(gòu)建為經(jīng)由一個(gè)或多個(gè)輸入 端口 (例如串行通信端口)而被編程,并且對(duì)塊擦除命令做出響應(yīng)以 擦除它的內(nèi)容。在不同實(shí)施例中,存儲(chǔ)器44的擦除可以響應(yīng)于外部信號(hào)、內(nèi)部信號(hào)或二者。根據(jù)需要,SRAM42被用于數(shù)據(jù)和代碼存儲(chǔ)。 共同地,SRAM 42和存儲(chǔ)器44包括嵌入式微控制器存儲(chǔ)器46。微控制器30包括各種輸入裝置、輸出裝置、輸入/輸出(I/O)裝 置、和/或各種不同的專用內(nèi)部裝置,這些裝置一起由附圖標(biāo)記52標(biāo) 注。高速內(nèi)部總線50耦合至處理器32和裝置52,以提供兩者之間的 選擇性雙向通信。在一個(gè)特殊形式中,裝置52經(jīng)由接口橋(未示出) 耦合至總線50。裝置52可以包括一個(gè)或多個(gè)計(jì)時(shí)器、實(shí)時(shí)時(shí)鐘、模-數(shù)(A/D)轉(zhuǎn)換器、數(shù)-模(D/A)轉(zhuǎn)換器、通用I/0管腳(GPIO)、通 用異步收發(fā)器(UART)接口和/或各種其它的串行通信端口、外部中 斷路徑、脈沖寬度調(diào)制輸出等。中斷控制邏輯54也耦合至總線50。 中斷控制邏輯54管理與微控制器30相關(guān)的內(nèi)部和外部中斷。測(cè)試儀器22是一種被配置為經(jīng)由微控制器30的接口 34提供適 當(dāng)?shù)臏y(cè)試、調(diào)試和/或仿真的儀器。例如,對(duì)于JTAG形式的接口 34, 測(cè)試儀器22可以是多種標(biāo)準(zhǔn)類型的JTAG設(shè)備中的任意一種??梢岳?解的是,雖然在初始制造、測(cè)試和開發(fā)過程中通常期望經(jīng)由測(cè)試儀器 22訪問微控制器30,但是在已編程部分在產(chǎn)品中被提供給相關(guān)消費(fèi)者 時(shí),通常關(guān)心的是對(duì)存儲(chǔ)在存儲(chǔ)器42和/或44中的數(shù)據(jù)(例如編程) 的未經(jīng)授權(quán)的訪問。實(shí)際上,通常期望采取措施來防止對(duì)手讀取或成 功訪問這種部分的編程。因此,微控制器30構(gòu)建有適合的操作邏輯, 以在復(fù)位時(shí)向程序開發(fā)者提供是否禁止訪問存儲(chǔ)器的選擇權(quán)。因?yàn)樵?選擇是通過用戶定義的編程而施行的,所以在已經(jīng)將任何期望的測(cè)試/ 調(diào)試/仿真執(zhí)行到令制造者和/或未編程部分的供應(yīng)者滿意的地步之 前,不需要禁止測(cè)試接口訪問存儲(chǔ)器。結(jié)合圖2的流程圖中所示的過程120,來描述可選地禁止微控制 器30的測(cè)試接口 34的一個(gè)非限制性例子。對(duì)于這個(gè)特殊的實(shí)現(xiàn),測(cè) 試接口 34符合JTAG協(xié)議;但是應(yīng)該理解的是,不同的協(xié)議也可以替 換地或附加地用于其它實(shí)施例中。通過微控制器30的操作邏輯,至少 實(shí)現(xiàn)結(jié)合程序120所談及的操作中的一些操作,該邏輯可以以專用硬 件的形式、硬線或固件微控制器指令的形式、可變的存儲(chǔ)器存儲(chǔ)的微 控制器指令的形式和/或本領(lǐng)域技術(shù)人員能想到的不同形式而提供。程序120開始于操作122,其中,啟動(dòng)復(fù)位條件。在操作122中, 通過復(fù)位輸入36處的狀態(tài)的相應(yīng)改變,二元邏輯復(fù)位信號(hào)被置位或者 變?yōu)橛行?。作為非限制性示例,?fù)位信號(hào)可以因斷電/加電循環(huán)(加電 復(fù)位POR)而獲得,或者因在節(jié)電條件期間可能發(fā)生的電源電壓降至 預(yù)定閾值以下(節(jié)電復(fù)位BOR)而獲得。在操作122啟動(dòng)復(fù)位之后,過程120繼續(xù)操作124,在相應(yīng)的復(fù) 位信號(hào)被"釋放"之前,即在復(fù)位信號(hào)返回它的無效狀態(tài)之前,執(zhí)行操 作124。在操作124中,對(duì)應(yīng)于接口 34的JTAG形式,設(shè)定邏輯JTAG 禁止標(biāo)記DIS一JTAG,使得DIS—JTAG= 1 。由于操作124中設(shè)定了該 標(biāo)記(DIS—JTAG=1),接口 34的JTAG功能最初被禁止。通過禁止 該功能,防止微控制器30的JTAG控制,這包括經(jīng)由接口34訪問存 儲(chǔ)器42或存儲(chǔ)器44的能力。響應(yīng)于復(fù)位條件,通過微控制器30的操 作邏輯,實(shí)現(xiàn)該初始禁止?fàn)顟B(tài),以除去在復(fù)位期間可能產(chǎn)生的任何存 儲(chǔ)器讀取窗口。離開操作124,過程120繼續(xù)條件126。條件126測(cè)試是否已經(jīng) 釋放了復(fù)位信號(hào)。如果復(fù)位信號(hào)還未被釋放,即對(duì)應(yīng)于測(cè)試的否定(否) 結(jié)果,則條件126循環(huán),重復(fù)執(zhí)行,直到產(chǎn)生肯定(是)的結(jié)果。一 旦產(chǎn)生肯定的結(jié)果,過程120就進(jìn)入復(fù)位初始,該復(fù)位初始始于操作 128。在操作128中,啟動(dòng)數(shù)字計(jì)數(shù)器CNTR,其對(duì)微控制器30的初 始復(fù)位周期進(jìn)行定時(shí)。離開操作128,過程120繼續(xù)操作130。在操作130中,處理器 32導(dǎo)引至存儲(chǔ)器44中的保留的復(fù)位初始位置。如果從該保留的位置 開始編程指令(代碼)的可選擇的"引導(dǎo)塊"被適當(dāng)?shù)剌d入存儲(chǔ)器44, 則在操作130中完成該執(zhí)行。該代碼定義由處理器32執(zhí)行的復(fù)位初始。 這樣的復(fù)位初始代碼被存儲(chǔ)作為位置鄰接的存儲(chǔ)器"塊",該位置對(duì)應(yīng) 于所述實(shí)施例的特定存儲(chǔ)器地址范圍?;蛘?,在存儲(chǔ)器42和/或存儲(chǔ) 器44內(nèi),所述代碼可以被存儲(chǔ)在保留或非保留類型的兩個(gè)或更多個(gè)非 鄰接位置。作為非限制性例子,預(yù)定的復(fù)位初始位置可以通過間接尋 址等指向所存儲(chǔ)的復(fù)位例程。典型地,所述復(fù)位初始代碼由微控制器 30的原始設(shè)備生產(chǎn)商(OEM)規(guī)定。在所述復(fù)位初始代碼的執(zhí)行過程中,不時(shí)地(from time-to-time) 執(zhí)行過程120的條件132,以檢測(cè)在操作128中啟動(dòng)的計(jì)數(shù)器CNTR 是否己經(jīng)達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)。該預(yù)定狀態(tài)對(duì)應(yīng)于一時(shí)間段,該時(shí)間 段被選擇以提供復(fù)位延遲,所述延遲至少包括復(fù)位初始代碼(當(dāng)存在 時(shí))的執(zhí)行時(shí)間的初始部分。在一個(gè)形式中,該預(yù)定計(jì)數(shù)器狀態(tài)是數(shù) 字化定義值,在條件132的每次執(zhí)行過程中將該值與計(jì)數(shù)器CNTR的 數(shù)字輸出進(jìn)行比較。計(jì)數(shù)器CNTR可以以硬件設(shè)備或邏輯軟件的形式、 以微控制器30內(nèi)部的計(jì)時(shí)器形式(例如包括在裝置52中的計(jì)時(shí)器或 者用戶無法訪問的專用硬件和/或軟件計(jì)時(shí)器)提供,或者作為提供給 微控制器30的外部計(jì)數(shù)裝置或計(jì)數(shù)器信號(hào),這只是一些例子。在所述 實(shí)施例中,操作128和條件132通過微控制器的操作邏輯而實(shí)現(xiàn)。如果條件132的測(cè)試為否定(否),即計(jì)數(shù)器CNTR還未達(dá)到預(yù) 定計(jì)數(shù)器狀態(tài),則條件132循環(huán),重復(fù)執(zhí)行,直到計(jì)數(shù)器CNTR達(dá)到 預(yù)定計(jì)數(shù)器狀態(tài)。 一旦達(dá)到該狀態(tài),條件132的測(cè)試為肯定(是),并 且過程120繼續(xù)條件134。條件134測(cè)試在計(jì)數(shù)器CNTR達(dá)到預(yù)定計(jì) 數(shù)器狀態(tài)之前,在操作130期間,引導(dǎo)塊代碼(當(dāng)存在時(shí))的執(zhí)行或 復(fù)位初始是否已經(jīng)設(shè)定了安全標(biāo)記EN一SECURITY。安全標(biāo)記 EN—SECURITY的設(shè)定(EN—SECURITY = 1 )是代碼開發(fā)者所定義的 復(fù)位初始代碼的執(zhí)行所設(shè)定的選擇。典型地,該代碼的開發(fā)由微控制 器組件的原始設(shè)備生產(chǎn)商(OEM)實(shí)現(xiàn)。當(dāng)執(zhí)行復(fù)位初始代碼時(shí),可 以通過多種技術(shù)中的任意一個(gè)來設(shè)定安全標(biāo)記EN—SECURITY,例如 外部信號(hào)輸入、特定存儲(chǔ)器位置的內(nèi)容、 一些存儲(chǔ)器位置的內(nèi)容校驗(yàn) 和、或其它的安全性能可接受的操作/功能。如果條件134的測(cè)試為否定(否),即在條件132為是之前,在 執(zhí)行操作130的引導(dǎo)塊過程中未設(shè)定安全標(biāo)記EN_SECURITY (EN—SECURITY-0),則過程120進(jìn)行操作136。在操作136中,允 許接口 34的JTAG功能,包括通過該測(cè)試接口端訪問存儲(chǔ)器42和/或 存儲(chǔ)器44的能力。在操作136中,接口34的這個(gè)允許狀態(tài)有效地去 除了在操作124中設(shè)定的接口 34的初始禁止?fàn)顟B(tài)。然后微控制器30 在步驟138中離開復(fù)位過程120進(jìn)行或返回至正常操作。12另一方面,如果條件134的測(cè)試為肯定(是),即在條件132為 是之前,在執(zhí)行操作130的引導(dǎo)塊執(zhí)行期間允許安全標(biāo)記 EN—SECURITY (EN—SECURITY-1 ),則程序120跳過操作136,直 接進(jìn)行至步驟138。因?yàn)椴僮?36被繞過,所以從步驟138開始,繼 續(xù)保持接口 34對(duì)于隨后的微控制器操作的禁止?fàn)顟B(tài)。因此,程序120 通過設(shè)立接口 34的再次禁止?fàn)顟B(tài)(包括拒絕對(duì)存儲(chǔ)器的訪問),響應(yīng) 安全標(biāo)記EN一SECURITY的肯定設(shè)定。通過所述實(shí)施例的微控制器的 操作邏輯,實(shí)現(xiàn)條件134和操作136。操作138對(duì)應(yīng)于測(cè)試/調(diào)試接口34被禁止的微控制器30的后繼的 指定操作。離幵操作136,程序120也繼續(xù)操作138,返回或開始微控 制器30的正常操作,而相應(yīng)的接口 34處于允許狀態(tài)。如前所述,可以通過采取措施而施加改變以設(shè)定給定狀態(tài),或者 通過借助省略給定的相應(yīng)動(dòng)作而使得狀態(tài)保持或改變,來實(shí)現(xiàn)測(cè)試接 口 34和/或存儲(chǔ)器訪問的禁止?fàn)顟B(tài)或允許狀態(tài)的設(shè)立。應(yīng)該理解的是, 過程120的特征包括在復(fù)位時(shí)禁止通過接口 34的訪問,以防止在復(fù)位 條件期間通過接口 34的未經(jīng)授權(quán)的控制斷言。對(duì)結(jié)合過程120而描述 的實(shí)施例來說,所述初始禁止?fàn)顟B(tài)由微控制器30的操作邏輯提供;但 是,它可以通過用戶代碼(例如用戶規(guī)定的復(fù)位代碼)或以其它形式 的不同方式而提供。通過用計(jì)數(shù)器CNTR設(shè)立延遲周期,用戶定義的 復(fù)位程序塊可以有選擇地啟動(dòng)對(duì)接口 34的再次禁止,缺省地,在計(jì)數(shù) 器延遲之后將允許識(shí)別接口 34,除非采取了這種主動(dòng)。當(dāng)沒有可選擇 的復(fù)位初始代碼時(shí),應(yīng)該理解接口 34的該缺省允許也是存在的。因此, 對(duì)微控制器30的控制和/或訪問可以在制造、測(cè)試和開發(fā)過程中經(jīng)由 接口 34通過JTAG操作獲得,只要沒有復(fù)位初始代碼,和/或在存在 復(fù)位初始代碼時(shí)從設(shè)定安全標(biāo)記EN—SECURITY中退出。在極少情況下,可以期望實(shí)現(xiàn)早已編程的微控制器30的測(cè)試、 調(diào)試、仿真等,對(duì)于所述微控制器30, EN一SECURITY已經(jīng)被設(shè)定 以標(biāo)稱地防止經(jīng)由接口 34的訪問(EN_SECURITY=1)。例如,當(dāng)產(chǎn) 品/代碼開發(fā)者因?yàn)殄e(cuò)誤分析而將一個(gè)或多個(gè)已編程微控制器30返回 至OEM時(shí),會(huì)出現(xiàn)這樣的期望。在這種情況下,經(jīng)由接口34的訪問可以通過變更存儲(chǔ)器內(nèi)容而得以重新設(shè)立,所述存儲(chǔ)器內(nèi)容通過接口34的再次禁止?fàn)顟B(tài)而受到保護(hù)。在一個(gè)非限制性例子中,通過損壞存儲(chǔ)器位置的內(nèi)容的塊擦除命令或輸入信號(hào)而實(shí)現(xiàn)該變更,從而繼續(xù)保 護(hù)這些內(nèi)容不受未經(jīng)授權(quán)的訪問。替換地或附加地,可以通過重寫至 少一部分已存儲(chǔ)的復(fù)位初始代碼和/或任何涉及到的存儲(chǔ)器位置而實(shí)現(xiàn)該變更,以在操作130期間設(shè)定安全標(biāo)記EN一SECURITY。在一種 情況下,包括在裝置52中的串行通信裝置提供對(duì)存儲(chǔ)器42和存儲(chǔ)器 44的只寫訪問,可以通過該訪問進(jìn)行上述變更。以這種方式,存儲(chǔ)器 42和存儲(chǔ)器44的內(nèi)容可以由編程者的選擇而受到保護(hù),直到這樣的 時(shí)刻(如果有的話),即還需要對(duì)裝置進(jìn)行測(cè)試和調(diào)試;并且在此之后 保護(hù)仍然繼續(xù),因?yàn)樵试S測(cè)試接口訪問所需要的變更同時(shí)改變了正受 到保護(hù)的內(nèi)容??梢韵氲奖旧暾?qǐng)的許多其它實(shí)施例。例如,本申請(qǐng)的教導(dǎo)可以應(yīng) 用于除微控制器之外的其它類型的集成電路中。替換地或附加地,可 以采用其它類型的存儲(chǔ)器訪問控制。另一例子是一種裝置,包括微控 制器,微控制器包括嵌入式存儲(chǔ)器、可編程處理器和可操作地耦合至 所述存儲(chǔ)器和處理器的測(cè)試接口。所述微控制器還包括用于設(shè)立測(cè) 試接口的初始禁止?fàn)顟B(tài),以禁止在初始操作期間通過測(cè)試接口對(duì)存儲(chǔ) 器進(jìn)行訪問的裝置;用于通過處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的至少一部 分復(fù)位代碼,以可選地在初始禁止?fàn)顟B(tài)期間設(shè)立測(cè)試接口的再次禁止 狀態(tài)的裝置;以及允許初始操作之后的微處理器操作通過測(cè)試接口來 訪問存儲(chǔ)器,除非復(fù)位代碼的執(zhí)行設(shè)立了再次禁止?fàn)顟B(tài)的裝置。在初 始操作之后的微控制器操作期間再次禁止?fàn)顟B(tài)禁止訪問存儲(chǔ)器。在一 個(gè)形式中,所述復(fù)位代碼包括第一部分和第二部分,所述初始禁止?fàn)?態(tài)的設(shè)立是通過執(zhí)行所述第一部分而實(shí)現(xiàn)的,所述執(zhí)行裝置執(zhí)行所述 第二部分。另一示例是一種裝置,包括微控制器,該微處理器具有嵌入式存 儲(chǔ)器、可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè)試接 口。所述微控制器包括用于響應(yīng)于復(fù)位微控制器而由處理器執(zhí)行存 儲(chǔ)在存儲(chǔ)器中的復(fù)位初始代碼的裝置。所述初始代碼禁止通過測(cè)試接口訪問存儲(chǔ)器,以在復(fù)位之后的微控制器操作期間保護(hù)存儲(chǔ)器內(nèi)容。 所述微控制器還包括用于改變存儲(chǔ)器的內(nèi)容,以在復(fù)位之后的微控制 器操作之后允許通過測(cè)試接口訪問存儲(chǔ)器的裝置。在又一例子中,裝置包括微控制器,微控制器具有嵌入式存儲(chǔ)器、 可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè)試接口。所 述微控制器包括用于復(fù)位微控制器的操作的裝置,用于在微處理器 響應(yīng)于復(fù)位裝置而執(zhí)行初始程序的同時(shí)啟動(dòng)計(jì)數(shù)器并將測(cè)試接口設(shè)定 為復(fù)位禁止?fàn)顟B(tài)的裝置,和用于當(dāng)計(jì)數(shù)器達(dá)到預(yù)定值時(shí),針對(duì)隨后的微控制器操作將測(cè)試接 口改變?yōu)樵试S狀態(tài),除非在達(dá)到預(yù)定值之前微控制器執(zhí)行設(shè)立再次禁 止?fàn)顟B(tài)的編程代碼的裝置。所述再次禁止?fàn)顟B(tài)在隨后的微控制器操作 期間拒絕通過測(cè)試接口訪問存儲(chǔ)器。在再一例子中,裝置包括微控制器,微控制器具有嵌入式存儲(chǔ)器、 可編程處理器和可操作地耦合至所述存儲(chǔ)器和處理器的測(cè)試接口。所 述微控制器包括復(fù)位裝置,用于響應(yīng)于所述復(fù)位裝置而禁止通過測(cè) 試接口訪問存儲(chǔ)器的裝置,用于在由所述禁止裝置禁止測(cè)試接口之后 由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的復(fù)位初始代碼的裝置,和用于允許通 過測(cè)試接口訪問存儲(chǔ)器、除非復(fù)位初始化程序的執(zhí)行為隨后的微控制 器操作設(shè)立了測(cè)試接口的再次禁止的裝置。這里所述的任何原理、操作的機(jī)制、證明或發(fā)現(xiàn)旨在進(jìn)一步增強(qiáng) 對(duì)本發(fā)明的理解,而不試圖以任何方式將本發(fā)明限制于這些原理、操 作的機(jī)制、證明或發(fā)現(xiàn)。雖然在附圖和前面的描述中詳細(xì)地示出和闡 述了本發(fā)明,但是將其視為說明性的,并非限制性的,應(yīng)該理解的是, 只示出和描述了所選擇的實(shí)施例,期望保護(hù)的是落入如此處所限定或 由所附權(quán)利要求所限定的本發(fā)明的精神之內(nèi)的所有等同物、改變和修 改。
權(quán)利要求
1.一種方法,包括對(duì)微控制器(30)復(fù)位,所述微控制器(30)包括嵌入式存儲(chǔ)器(46)、可編程處理器(32)和可操作地耦合至所述存儲(chǔ)器(46)和所述處理器(32)的測(cè)試接口(34);響應(yīng)于所述復(fù)位,禁止通過所述測(cè)試接口(34)訪問所述存儲(chǔ)器(46);在禁止之后,開始由所述處理器(32)執(zhí)行存儲(chǔ)在所述存儲(chǔ)器(46)中的復(fù)位代碼;以及允許通過所述測(cè)試接口(34)訪問所述存儲(chǔ)器(46),除非所述復(fù)位代碼的執(zhí)行設(shè)立了針對(duì)隨后的微控制器操作再次禁止通過所述測(cè)試接口(34)訪問所述存儲(chǔ)器。
2. 如權(quán)利要求1的方法,包括在開始執(zhí)行復(fù)位代碼之前啟動(dòng)計(jì) 數(shù)器。
3. 如權(quán)利要求2的方法,包括將預(yù)定值與所述計(jì)數(shù)器的輸出值 進(jìn)行比較并延遲所述允許,直到所述計(jì)數(shù)器的輸出值達(dá)到所述預(yù)定值。
4. 如權(quán)利要求1的方法,其中通過所述復(fù)位代碼的執(zhí)行而設(shè)立 的再次禁止防止在隨后的微控制器操作期間通過所述測(cè)試接口讀取所 述存儲(chǔ)器(46)的內(nèi)容。
5. 如權(quán)利要求4的方法,包括在隨后的微控制器操作期間變更 所述存儲(chǔ)器(46)的內(nèi)容,以獲得通過所述測(cè)試接口 (34)對(duì)所述存 儲(chǔ)器的訪問。
6. 如權(quán)利要求5的方法,其中所述變更包括下列中的至少一項(xiàng) 擦除存儲(chǔ)器(46),以及通過外部存儲(chǔ)器端口將不同的內(nèi)容存儲(chǔ)在存儲(chǔ) 器(46)中。
7. 如權(quán)利要求1的方法,其中在允許時(shí),所述測(cè)試接口 (34) 用于執(zhí)行JTAG操作。
8. —種方法,包括微控制器(30)的初始操作,所述微控制 器(30)包括嵌入式存儲(chǔ)器(46)、可編程處理器(32)和可操作地耦 合至所述存儲(chǔ)器(46)和所述處理器(32)的測(cè)試接口 (34);響應(yīng)于 所述啟動(dòng),啟動(dòng)計(jì)數(shù)器,將所述測(cè)試接口設(shè)定為初始禁止?fàn)顟B(tài),以禁 止通過所述測(cè)試接口 (34)訪問所述存儲(chǔ)器(46),并且由所述處理器(32)執(zhí)行初始代碼;以及,如果所述計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài), 則將所述測(cè)試接口(34)改變?yōu)樵试S狀態(tài),以允許訪問所述存儲(chǔ)器(46), 除非在所述計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)之前初始代碼的執(zhí)行針對(duì)隨后 的微控制器操作設(shè)立了再次禁止的狀態(tài)。
9. 如權(quán)利要求8的方法,其中所述計(jì)數(shù)器是定時(shí)器,并且所述 預(yù)定計(jì)數(shù)器狀態(tài)是預(yù)定時(shí)間量,而初始禁止?fàn)顟B(tài)的設(shè)定是在初始代碼 的執(zhí)行之前由所述微控制器(30)的操作邏輯進(jìn)行的。
10. 如權(quán)利要求8的方法,包括通過根據(jù)JTAG協(xié)議耦合至所述 測(cè)試接口 (34)的外部?jī)x器(22)來訪問所述微控制器(30)。
11. 如權(quán)利要求8的方法,其中通過初始代碼的執(zhí)行設(shè)立所述再 次禁止的狀態(tài),以防止在隨后的微控制器操作期間通過所述測(cè)試接口(34)讀取存儲(chǔ)器(46)的內(nèi)容。
12. 如權(quán)利要求11的方法,包括在隨后的微控制器操作期間變 更所述存儲(chǔ)器(46)的內(nèi)容,以獲得通過所述測(cè)試接口 (34)對(duì)存儲(chǔ) 器的訪問。
13. 如權(quán)利要求12的方法,其中所述變更包括下列中的至少 一項(xiàng)擦除所述存儲(chǔ)器(44),并將不同的內(nèi)容存儲(chǔ)在所述存儲(chǔ)器(44) 中;以及將初始代碼存儲(chǔ)在所述存儲(chǔ)器(44)的預(yù)定部分中,而且所 述存儲(chǔ)器(44)是非易失性的。
14. 如權(quán)利要求13的方法,其中當(dāng)所述存儲(chǔ)器(46)中未存儲(chǔ) 初始代碼時(shí),響應(yīng)于所述計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài),允許訪問所述 存儲(chǔ)器(46)。
15. —種裝置,包括微控制器(30)集成電路(24),所述微 控制器集成電路包括處理器(32)、可操作地耦合至所述處理器(32) 的嵌入式存儲(chǔ)器(46)、和可操作地連接至所述處理器(32)和存儲(chǔ)器(46)的微控制器測(cè)試接口 (34),所述微控制器(30)響應(yīng)于復(fù)位信 號(hào),執(zhí)行復(fù)位操作邏輯,所述復(fù)位操作邏輯用于設(shè)定所述測(cè)試接口(34) 的初始禁止?fàn)顟B(tài)并啟動(dòng)計(jì)數(shù)器,所述初始禁止?fàn)顟B(tài)防止通過所述測(cè)試 接口 (34)訪問存儲(chǔ)器(46),所述處理器(32)用于在初始禁止?fàn)顟B(tài) 期間執(zhí)行存儲(chǔ)在所述存儲(chǔ)器(46)中的復(fù)位代碼,針對(duì)復(fù)位之后隨后的微控制器操作可選地設(shè)立再次禁止的狀態(tài),響應(yīng)于所述計(jì)數(shù)器達(dá)到 預(yù)定計(jì)數(shù)器狀態(tài),所述復(fù)位操作邏輯在隨后的微控制器操作期間提供通過所述測(cè)試接口 (34)訪問存儲(chǔ)器的測(cè)試接口 (34)允許狀態(tài),除 非在所述計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器狀態(tài)之前由所述處理器(32)執(zhí)行的 初始代碼設(shè)立了再次禁止對(duì)存儲(chǔ)器訪問的狀態(tài)。
16. 如權(quán)利要求15的裝置,其中所述復(fù)位操作邏輯在所述處理 器(32)開始執(zhí)行初始代碼之前設(shè)定初始禁止?fàn)顟B(tài)。
17. 如權(quán)利要求15的裝置,其中所述微控制器(30)包括用于 根據(jù)JTAG協(xié)議與外部?jī)x器(22)進(jìn)行輸入和輸出操作的裝置。
18. 如權(quán)利要求15的裝置,其中在設(shè)定再次禁止訪問存儲(chǔ)器的 狀態(tài)之后,所述微控制器(30)響應(yīng)于一個(gè)或多個(gè)外部信號(hào),變更所 述存儲(chǔ)器(46)的內(nèi)容,從而變更所述存儲(chǔ)器(46)的內(nèi)容并允許通 過所述測(cè)試接口 (34)訪問所述存儲(chǔ)器。
19. 如權(quán)利要求15的裝置,其中所述微控制器(30)包括用于 在由初始代碼的執(zhí)行設(shè)定了再次禁止的狀態(tài)之后改變所述存儲(chǔ)器(46) 的內(nèi)容的裝置。
20. 如權(quán)利要求15的裝置,其中所述存儲(chǔ)器(44)是非易失性 閃存類型。
21. —種方法,包括啟動(dòng)微控制器(30)的初始操作,所述微 控制器(30)包括嵌入式存儲(chǔ)器(46)、可編程處理器(32)和可操作 地耦合至所述存儲(chǔ)器(46)和處理器(32)的測(cè)試接口 (34);在微控 制器(30)的初始操作過程中,設(shè)立所述測(cè)試接口的初始禁止?fàn)顟B(tài), 以禁止通過所述測(cè)試接口 (34)訪問所述存儲(chǔ)器(46);在初始禁止?fàn)?態(tài)期間,由所述處理器(32)執(zhí)行存儲(chǔ)在所述存儲(chǔ)器(46)中的至少 一部分初始代碼,以可選地對(duì)所述測(cè)試接口 (34)設(shè)立再次禁止的狀 態(tài);并且對(duì)于初始操作之后的微控制器操作,允許通過所述測(cè)試接口(34)訪問存儲(chǔ)器,除非由初始代碼的執(zhí)行設(shè)立了再次禁止的狀態(tài), 所述再次禁止的狀態(tài)在初始操作之后的微控制器操作過程中禁止通過 所述測(cè)試接口 (34)訪問存儲(chǔ)器。
22. 如權(quán)利要求21的方法,其中由所述微控制器(30)的專用操作邏輯來實(shí)現(xiàn)所述初始禁止?fàn)顟B(tài)。
23. 如權(quán)利要求22的方法,包括在所述微控制器(30)的初始 操作過程中操作計(jì)數(shù)器。
24. 如權(quán)利要求23的方法,其中在所述計(jì)數(shù)器達(dá)到預(yù)定計(jì)數(shù)器 狀態(tài)之前,通過利用執(zhí)行初始代碼而設(shè)立的安全性來設(shè)定禁止所述允 許,以提供所述再次禁止的狀態(tài)。
25. 如權(quán)利要求21的方法,其中所述初始代碼包括第一部分和 第二部分,所述初始禁止?fàn)顟B(tài)的設(shè)立是通過執(zhí)行所述第一部分而進(jìn)行 的,所述執(zhí)行包括執(zhí)行所述第二部分。
26. —種方法,包括復(fù)位微控制器(30),所述微控制器(30) 包括嵌入式存儲(chǔ)器(46)、可編程處理器(32)和可操作地耦合至所述 存儲(chǔ)器(46)和處理器(32)的測(cè)試接口 (34);響應(yīng)于所述復(fù)位,由 所述處理器(32)執(zhí)行存儲(chǔ)在所述存儲(chǔ)器(46)中的復(fù)位代碼,在復(fù) 位之后的微控制器操作期間,初始代碼禁止通過所述測(cè)試接口 (34) 訪問所述存儲(chǔ)器(46)以保護(hù)存儲(chǔ)器內(nèi)容;以及,在復(fù)位之后的微控 制器操作期間,變更所述存儲(chǔ)器(46)的內(nèi)容以允許通過所述測(cè)試接 口 (34)訪問所述存儲(chǔ)器(46)。
27. 如權(quán)利要求26的方法,包括在進(jìn)行所述執(zhí)行之前,響應(yīng)于 所述復(fù)位,設(shè)立所述測(cè)試接口 (34)的初始禁止?fàn)顟B(tài)。
28. 如權(quán)利要求26的方法,包括在進(jìn)行所述執(zhí)行之前,響應(yīng)于 所述復(fù)位,啟動(dòng)計(jì)數(shù)器。
29. 如權(quán)利要求26的方法,其中所述變更包括擦除所述存儲(chǔ)器 (46)的內(nèi)容。
30. 如權(quán)利要求26的方法,其中所述變更包括在所述存儲(chǔ)器(46) 中存儲(chǔ)不同的內(nèi)容。
全文摘要
本應(yīng)用的一個(gè)實(shí)施例包括微控制器(30),所述微控制器(30)包括嵌入式存儲(chǔ)器(46)、可編程處理器(32)和測(cè)試接口(34)。所述存儲(chǔ)器(46)可通過測(cè)試接口(34)訪問。響應(yīng)于復(fù)位所述微控制器(30),在執(zhí)行初始程序的同時(shí),計(jì)數(shù)器被啟動(dòng)并且測(cè)試接口(34)被最初設(shè)定為禁止?fàn)顟B(tài)。當(dāng)計(jì)數(shù)器達(dá)到預(yù)定值時(shí),測(cè)試接口(34)變?yōu)樵试S狀態(tài),即允許通過測(cè)試接口(34)訪問存儲(chǔ)器(46),除非在達(dá)到預(yù)定值之前微控制器(30)執(zhí)行編程代碼,在隨后的微控制器(30)操作過程中提供了禁止?fàn)顟B(tài)。
文檔編號(hào)G06F21/00GK101243451SQ200680030301
公開日2008年8月13日 申請(qǐng)日期2006年8月22日 優(yōu)先權(quán)日2005年8月22日
發(fā)明者巴什·范迪維爾, 普里特維·納加拉杰, 格雷格·古德林, 潘卡吉·什里瓦斯塔瓦, 里克·瓦尼, 阿泰·漢尼 申請(qǐng)人:Nxp股份有限公司