專利名稱:動(dòng)態(tài)邏輯分區(qū)并控制訪問權(quán)限的ic智能卡及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IC智能卡領(lǐng)域,特別是涉及一種能將IC智能卡中的一個(gè)物理存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū)、并且控制存儲(chǔ)器訪問權(quán)限的IC智能卡及其實(shí)現(xiàn)方法。
背景技術(shù):
在信息社會(huì),人們對(duì)信息載體的安全性、可靠性、易用性等方面提出了更高的要求。具有存儲(chǔ)、加密及數(shù)據(jù)處理能力的IC智能卡,以其嚴(yán)密的數(shù)據(jù)安全性,廣泛的應(yīng)用靈活性和強(qiáng)大的功能擴(kuò)展性,為現(xiàn)代信息的處理和傳遞提供了一種便捷可靠的手段。
在IC智能卡芯片中常用到的存儲(chǔ)器有隨機(jī)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可編程非易失性存儲(chǔ)器(EEPROM或FLASH MEMORY)。RAM一般用于存放運(yùn)算過程中的中間數(shù)據(jù)或變量,具有高速存取數(shù)據(jù)能力,但是掉電后存儲(chǔ)的數(shù)據(jù)會(huì)丟失,而且面積較大;ROM可用于存放IC智能卡的操作系統(tǒng)(COS)、常數(shù)、與安全和認(rèn)證相關(guān)的加密算法或其它通用應(yīng)用程序,它的存儲(chǔ)容量大、集成度高、性能穩(wěn)定可靠,但數(shù)據(jù)只能讀出,無法改寫;EEPROM(或FLASH MOMORY)可用于存放IC智能卡的操作系統(tǒng)、用戶數(shù)據(jù)和管理數(shù)據(jù),能進(jìn)行讀寫操作,面積適中,但寫入速度較慢。
根據(jù)半導(dǎo)體存儲(chǔ)器的存儲(chǔ)容量、存取時(shí)間、功耗、面積和使用壽命等特性,合理分配存儲(chǔ)器空間,采用不同的半導(dǎo)體存儲(chǔ)器組合作為系統(tǒng)存儲(chǔ)器具有極重要的意義,因?yàn)樗鼘?duì)芯片的功耗,工作頻率和成本等方面具有很大影響。
IC智能卡芯片的存儲(chǔ)器分區(qū)結(jié)構(gòu)有兩種一種是物理分區(qū)結(jié)構(gòu);另一種是邏輯分區(qū)結(jié)構(gòu)。對(duì)于物理分區(qū)結(jié)構(gòu)來說,是將幾種不同的存儲(chǔ)器(如ROM,RAM,EEPROM等)集成在一個(gè)IC卡芯片中,由控制電路統(tǒng)一進(jìn)行管理;而對(duì)于邏輯分區(qū)結(jié)構(gòu)來說,是人為規(guī)定存儲(chǔ)器中存儲(chǔ)單元的應(yīng)用屬性,以達(dá)到可控訪問的目的。
傳統(tǒng)的IC智能卡芯片由微處理器、存儲(chǔ)器和I/O接口電路組成,一般采用ROM作為程序存儲(chǔ)區(qū),EEPROM(或FLASH MEMORY)作為數(shù)據(jù)存儲(chǔ)區(qū)使用,這種存儲(chǔ)器結(jié)構(gòu)組合很適合于大批量定型產(chǎn)品,其成本和安全性均能得到有效保證,但它最大的缺陷是它缺乏靈活性,固化在ROM中的COS無法根據(jù)新業(yè)務(wù)需求進(jìn)行修改或補(bǔ)充。在競爭日益激烈的今天,如何提供高質(zhì)量、多樣化、個(gè)性化的增值服務(wù),成為了各服務(wù)商不懈努力的方向,而原有的芯片結(jié)構(gòu)是無法滿足這種需求的。因此出現(xiàn)了EEPROM(或FLASH MEMORY)既作為數(shù)據(jù)存儲(chǔ)器,也作為程序存儲(chǔ)器的IC智能卡(參見中國專利申請(qǐng)00136740.4),使物理地址連續(xù)完整的一個(gè)物理存儲(chǔ)器,在邏輯上能夠按照不同應(yīng)用劃分為不同的存儲(chǔ)區(qū)域,各存儲(chǔ)區(qū)域分別完成不同功能。這種劃分,為服務(wù)商推出新業(yè)務(wù)提供了較強(qiáng)的靈活性,如電子商務(wù)動(dòng)態(tài)菜單下載、增值業(yè)務(wù)空中下載等,但是這種結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器等邏輯分區(qū)的劃分在芯片設(shè)計(jì)完成后,其大小就無法改變,并且只能進(jìn)行應(yīng)用數(shù)據(jù)下載。
另一種IC智能卡存儲(chǔ)器管理是通過在COS中增加存儲(chǔ)器管理功能來實(shí)現(xiàn)的(參見公開號(hào)為WO 01/16759 A1的PCT專利申請(qǐng)),如圖4A所示,是以軟件實(shí)現(xiàn)存儲(chǔ)器管理的IC智能卡的系統(tǒng)框圖。在這種方式下,對(duì)存儲(chǔ)器的管理完全由操作系統(tǒng)(OS)來完成。應(yīng)用程序產(chǎn)生的存儲(chǔ)器訪問請(qǐng)求被傳送到操作系統(tǒng)(OS),操作系統(tǒng)(OS)根據(jù)預(yù)先設(shè)定的訪問權(quán)限來判斷應(yīng)用程序?qū)Υ鎯?chǔ)器的訪問是否合法,以判決是否產(chǎn)生相應(yīng)的操作。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是在硬件電路上提供一種具有動(dòng)態(tài)劃分多邏輯分區(qū)功能和存儲(chǔ)器訪問控制功能的IC智能卡。程序員可以根據(jù)實(shí)際需要,將IC智能卡芯片內(nèi)的物理存儲(chǔ)器動(dòng)態(tài)劃分為多邏輯分區(qū),并且進(jìn)行存儲(chǔ)器訪問控制管理,從而適應(yīng)不同應(yīng)用對(duì)存儲(chǔ)區(qū)大小和訪問權(quán)限的需求。
本發(fā)明的另一目的是提供了一種將上述IC智能卡中的一個(gè)物理存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū)、并對(duì)卡內(nèi)存儲(chǔ)器進(jìn)行訪問權(quán)限控制的方法。
本發(fā)明適用于具有如下體系結(jié)構(gòu)的IC智能卡芯片●程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開編址;●指令由操作碼和地址碼組成;●I/O接口與存儲(chǔ)器的數(shù)據(jù)交換通過微處理器協(xié)助完成。
依據(jù)本發(fā)明的第一個(gè)方面,提供了一種具有動(dòng)態(tài)劃分多邏輯分區(qū)和存儲(chǔ)器訪問控制功能的IC智能卡芯片,它包括微處理器、存儲(chǔ)器組和串行I/O接口電路等,其中存儲(chǔ)器組采用混合存儲(chǔ)器結(jié)構(gòu),包括可編程非易失性存儲(chǔ)器(如EEPROM或FLASH MEMORY)。在微處理器內(nèi)增加存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR(memory allocationregister),在微處理器與存儲(chǔ)器組之間有一個(gè)存儲(chǔ)器管理模塊。如圖4B所示為改進(jìn)了存儲(chǔ)器管理的IC智能卡的系統(tǒng)框圖。存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR是程序員可訪問的特殊功能寄存器,可由程序員根據(jù)需要在其中動(dòng)態(tài)設(shè)置可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的大小。
存儲(chǔ)器管理模塊用于根據(jù)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR中的值,將非易失性存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū),并控制所有微處理器訪問存儲(chǔ)器組的操作。
存儲(chǔ)器管理模塊包含以下模塊可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊,根據(jù)MAR的值,生成可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的地址范圍;地址譯碼模塊,在COS通過微處理器對(duì)存儲(chǔ)器進(jìn)行訪問時(shí)對(duì)系統(tǒng)輸入地址ADDR_IN進(jìn)行譯碼;存儲(chǔ)器選擇模塊,依據(jù)由地址譯碼模塊譯碼后產(chǎn)生的地址選擇微處理器訪問的存儲(chǔ)器;指令譯碼模塊,對(duì)微處理器內(nèi)指令寄存器中存儲(chǔ)的指令進(jìn)行譯碼從而判斷操作類型;讀寫權(quán)限控制模塊,根據(jù)PC指針和存儲(chǔ)器訪問權(quán)限決定是否能對(duì)存儲(chǔ)器選擇模塊選取的存儲(chǔ)器進(jìn)行讀寫操作;存儲(chǔ)器接口控制信號(hào)生成模塊,依據(jù)上述判斷結(jié)果,如果可以對(duì)所選存儲(chǔ)器進(jìn)行訪問操作,則產(chǎn)生相應(yīng)的存儲(chǔ)器控制信號(hào),如果禁止進(jìn)行操作,即使微處理器產(chǎn)生了存儲(chǔ)器訪問控制信號(hào),也將會(huì)被存儲(chǔ)器管理模塊屏蔽,不進(jìn)行讀寫操作,從而硬件實(shí)現(xiàn)了在一個(gè)物理存儲(chǔ)器內(nèi)動(dòng)態(tài)劃分多邏輯分區(qū)及存儲(chǔ)器訪問權(quán)限控制。
依據(jù)本發(fā)明的另一方面,還提供了一種將上述IC智能卡中的一個(gè)物理存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū),并對(duì)卡內(nèi)存儲(chǔ)器進(jìn)行訪問權(quán)限控制的方法。該方法包含以下步驟在微處理器內(nèi)增加存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR,在其中設(shè)置可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的大??;根據(jù)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR中的值,生成可動(dòng)態(tài)劃分存儲(chǔ)器中各邏輯分區(qū)的地址范圍,根據(jù)地址劃分界限將可動(dòng)態(tài)劃分存儲(chǔ)器劃分成不同邏輯分區(qū);根據(jù)邏輯分區(qū)結(jié)果,對(duì)CPU當(dāng)前工作狀態(tài)進(jìn)行判斷,完成對(duì)各個(gè)存儲(chǔ)器模塊的訪問權(quán)限控制。
其中所述完成對(duì)各個(gè)存儲(chǔ)器模塊的訪問權(quán)限控制的步驟包括在COS通過微處理器對(duì)存儲(chǔ)器進(jìn)行訪問時(shí),微處理器將產(chǎn)生系統(tǒng)地址信號(hào)ADDR_IN、以及存儲(chǔ)器訪問控制信號(hào),如果是寫入操作,數(shù)據(jù)總線上還將加載欲寫入數(shù)據(jù)信息;對(duì)系統(tǒng)輸入地址ADDR_IN進(jìn)行譯碼;依據(jù)譯碼后產(chǎn)生的地址選擇微處理器訪問的存儲(chǔ)器;對(duì)微處理器內(nèi)指令寄存器中存儲(chǔ)的指令進(jìn)行譯碼從而判斷操作類型;根據(jù)PC指針和存儲(chǔ)器訪問權(quán)限決定是否能對(duì)存儲(chǔ)器選擇模塊選取的存儲(chǔ)器進(jìn)行讀寫操作;依據(jù)上述判斷結(jié)果,如果可以對(duì)所選存儲(chǔ)器進(jìn)行訪問操作,則產(chǎn)生相應(yīng)的存儲(chǔ)器控制信號(hào),如果禁止進(jìn)行操作,即使微處理器產(chǎn)生了存儲(chǔ)器訪問控制信號(hào),也將會(huì)被存儲(chǔ)器管理模塊屏蔽,不進(jìn)行讀寫操作,從而實(shí)現(xiàn)了在一個(gè)物理存儲(chǔ)器內(nèi)動(dòng)態(tài)劃分多邏輯分區(qū)及存儲(chǔ)器訪問權(quán)限控制。
在微處理器和存儲(chǔ)器組之間設(shè)置存儲(chǔ)器管理模塊,由其控制微處理器對(duì)存儲(chǔ)器組的所有操作,并且該存儲(chǔ)器管理模塊和存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR結(jié)合后,可以動(dòng)態(tài)調(diào)整EEPROM等非易失性存儲(chǔ)器中數(shù)據(jù)存儲(chǔ)區(qū)和程序存儲(chǔ)區(qū)兩個(gè)分區(qū)的大小。邏輯分區(qū)動(dòng)態(tài)調(diào)整后,可以滿足不同應(yīng)用對(duì)存儲(chǔ)區(qū)大小的需求,或是通過修改EEPROM等非易失性存儲(chǔ)器中程序存儲(chǔ)區(qū)的代碼,即可增加新的應(yīng)用或?qū)袒赗OM中的程序進(jìn)行修正,不會(huì)因?yàn)閼?yīng)用的不同,而必須重新進(jìn)行芯片設(shè)計(jì)和芯片制造,節(jié)省了開發(fā)時(shí)間與成本,為基于智能卡的增值業(yè)務(wù)的升級(jí)和擴(kuò)展提供了高效、靈活的硬件平臺(tái)。
圖1為動(dòng)態(tài)邏輯分區(qū)并控制訪問權(quán)限的IC智能卡芯片邏輯框圖;圖2為存儲(chǔ)器動(dòng)態(tài)劃分寄存器示意圖;圖3為存儲(chǔ)器管理模塊邏輯結(jié)構(gòu)框圖;圖4A為現(xiàn)有技術(shù)中以軟件實(shí)現(xiàn)存儲(chǔ)器管理的IC智能卡的系統(tǒng)框圖,圖4B為依據(jù)本發(fā)明改進(jìn)了存儲(chǔ)器管理的IC智能卡系統(tǒng)框圖;圖5為存儲(chǔ)器動(dòng)態(tài)劃分和訪問控制流程6為一個(gè)物理存儲(chǔ)器邏輯劃分前后的存儲(chǔ)區(qū)分布圖;圖7為IC智能卡芯片內(nèi)的存儲(chǔ)器空間分布圖;圖8為ROM存儲(chǔ)器訪問控制流程圖;
圖9為RAM存儲(chǔ)器訪問控制流程圖;圖10為EEPROM存儲(chǔ)器動(dòng)態(tài)劃分及訪問控制流程圖;圖11為IC智能卡芯片內(nèi)存儲(chǔ)器空間動(dòng)態(tài)劃分后的存儲(chǔ)區(qū)分布圖。
具體實(shí)施例方式
下面將結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行進(jìn)一步的詳細(xì)說明。
以INTEL 8051兼容微處理器為例,介紹本發(fā)明的具體實(shí)現(xiàn)。對(duì)于本領(lǐng)域技術(shù)人員來說顯然本發(fā)明也可以適用于其它類型的微處理器。
圖1所示為本發(fā)明采用的在一個(gè)物理存儲(chǔ)器內(nèi)動(dòng)態(tài)劃分多邏輯分區(qū)并實(shí)現(xiàn)存儲(chǔ)器訪問控制的IC智能卡芯片框圖,該IC智能卡芯片由微處理器1及其外圍電路2組成,外圍電路2包括存儲(chǔ)器組3,存儲(chǔ)器管理模塊4和串行I/O接口電路8。
該IC智能卡芯片內(nèi)采用混合存儲(chǔ)器結(jié)構(gòu),存儲(chǔ)器組3包括EEPROM存儲(chǔ)器5、ROM存儲(chǔ)器6和RAM存儲(chǔ)器7。其中ROM存儲(chǔ)器6作為程序存儲(chǔ)器,RAM存儲(chǔ)器7作為數(shù)據(jù)存儲(chǔ)器,而EEPROM存儲(chǔ)器5在邏輯上劃分為兩部分一部分作數(shù)據(jù)存儲(chǔ)區(qū),另一部分作程序存儲(chǔ)區(qū)。
此處所說的EEPROM存儲(chǔ)器5和ROM存儲(chǔ)器6也可用其它非易失存儲(chǔ)器代替。
本發(fā)明是通過在芯片微處理器1中增加存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR,并在微處理器1與存儲(chǔ)器組3之間加入存儲(chǔ)器管理模塊4,來實(shí)現(xiàn)在一個(gè)物理存儲(chǔ)器內(nèi)動(dòng)態(tài)劃分多邏輯分區(qū)以及對(duì)存儲(chǔ)器組3的訪問權(quán)限進(jìn)行控制的。
在圖2中顯示了存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的示意圖,為8比特字節(jié)。它是一個(gè)特殊功能寄存器,可由程序員根據(jù)需要對(duì)其進(jìn)行設(shè)置。在IC智能卡上電復(fù)位后,由COS對(duì)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR賦值,如果不進(jìn)行賦值,則缺省情況下MAR為全0。
可以根據(jù)應(yīng)用特點(diǎn),選取存儲(chǔ)器動(dòng)態(tài)劃分寄存器8位中的n位(1≤n≤8)來決定劃分的顆粒度 例如存儲(chǔ)器可動(dòng)態(tài)劃分區(qū)間容量為31K,取n=5,則存儲(chǔ)器劃分的顆粒度,即劃分的最小區(qū)間為1K。
存儲(chǔ)器管理模塊4位于微處理器1與存儲(chǔ)器組3之間,微處理器1訪問存儲(chǔ)器組3的所有操作均受其控制。存儲(chǔ)器管理模塊4和存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR結(jié)合,可以動(dòng)態(tài)調(diào)整EEPROM存儲(chǔ)器5中數(shù)據(jù)存儲(chǔ)區(qū)和程序存儲(chǔ)區(qū)兩個(gè)分區(qū)的大小,滿足不同應(yīng)用對(duì)存儲(chǔ)區(qū)大小的需求。
圖3為存儲(chǔ)器管理模塊4的結(jié)構(gòu)框圖,它由可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊31、地址譯碼模塊32、存儲(chǔ)器選擇模塊33、讀寫權(quán)限控制模塊34、指令譯碼模塊35、及存儲(chǔ)器接口控制信號(hào)生成模塊36、37、38組成。
現(xiàn)將圖3中的各個(gè)信號(hào)說明如下其中輸入信號(hào)為ADDR_IN系統(tǒng)地址信號(hào),標(biāo)識(shí)微處理器訪問的存儲(chǔ)器地址PC指針程序指針寄存器輸入,標(biāo)識(shí)當(dāng)前程序執(zhí)行的位置MAR輸入存儲(chǔ)器動(dòng)態(tài)劃分寄存器輸入,用于存儲(chǔ)器多邏輯分區(qū)地址生成IR輸入指令寄存器輸入,標(biāo)識(shí)當(dāng)前執(zhí)行的操作ALE系統(tǒng)地址鎖存信號(hào)PSEN程序存儲(chǔ)器訪問選通信號(hào)RD數(shù)據(jù)存儲(chǔ)器讀信號(hào)WR數(shù)據(jù)存儲(chǔ)器寫信號(hào)輸出信號(hào)為可編程非易失存儲(chǔ)器EEPROM讀寫控制信號(hào)控制對(duì)EEPROM進(jìn)行讀寫操作只讀存儲(chǔ)器ROM讀控制信號(hào)控制對(duì)ROM進(jìn)行讀操作隨機(jī)存儲(chǔ)器RAM讀寫控制信號(hào)控制對(duì)RAM進(jìn)行讀寫操作存儲(chǔ)器動(dòng)態(tài)劃分是由程序員通過系統(tǒng)命令修改存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的值來實(shí)現(xiàn)的,存儲(chǔ)器管理模塊4中可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊31根據(jù)MAR值生成可編程非易失性存儲(chǔ)器5中各邏輯分區(qū)的地址范圍,方法為MAR中的n位有效值與地址信號(hào)組合形成新的地址信號(hào),例如將MAR中的低5位與地址信號(hào)ADDR[15],ADDR[9...0]組合,形成′1′& MAR[4...0]&″0000000000″地址劃分界限,高于此地址劃分界限的存儲(chǔ)區(qū)域設(shè)定為程序存儲(chǔ)區(qū),低于此地址劃分界限的存儲(chǔ)區(qū)域設(shè)定為數(shù)據(jù)存儲(chǔ)區(qū),當(dāng)MAR的值變化后,邏輯分區(qū)的地址范圍也會(huì)相應(yīng)變動(dòng),從而在可編程非易失性存儲(chǔ)器5中形成32種可選劃分方案,實(shí)現(xiàn)了存儲(chǔ)器動(dòng)態(tài)劃分。
在INTEL 8051兼容微處理器指令系統(tǒng)中,MOVC和MOVX指令將控制微處理器1對(duì)存儲(chǔ)器組3進(jìn)行訪問操作,存儲(chǔ)器管理模塊4就是要對(duì)MOVC和MOVX指令,以及程序取指令操作進(jìn)行控制。
當(dāng)COS通過微處理器1對(duì)存儲(chǔ)器組3進(jìn)行訪問時(shí),微處理器1將產(chǎn)生系統(tǒng)地址信號(hào)ADDR_IN,存儲(chǔ)器訪問控制信號(hào)ALE,PSEN,RD和WR,如果進(jìn)行寫入操作,數(shù)據(jù)總線上還會(huì)加載欲寫入數(shù)據(jù)信息。
系統(tǒng)輸入地址ADDR_IN通過存儲(chǔ)器管理模塊4中的地址譯碼模塊32譯碼,并結(jié)合可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊31生成的邏輯分區(qū)地址,來選擇微處理器1將訪問的存儲(chǔ)器,同時(shí)微處理器內(nèi)IR寄存器存儲(chǔ)的指令經(jīng)指令譯碼模塊35譯碼判斷操作類型,由讀寫權(quán)限控制模塊34根據(jù)PC指針和存儲(chǔ)器訪問權(quán)限決定是否對(duì)存儲(chǔ)器選擇模塊33選取的存儲(chǔ)器進(jìn)行讀寫操作,其中PC指針用于判斷程序目前在存儲(chǔ)器中所處位置,如是合法的訪問操作,則由存儲(chǔ)器接口控制信號(hào)生成模塊36、37、38產(chǎn)生相應(yīng)的存儲(chǔ)器讀寫控制信號(hào);如果禁止進(jìn)行操作,即使微處理器1產(chǎn)生了存儲(chǔ)器訪問控制信號(hào),也將會(huì)被存儲(chǔ)器管理模塊4屏蔽,無法進(jìn)行讀寫操作。
存儲(chǔ)器動(dòng)態(tài)劃分和訪問控制的流程如圖5所示。
在圖6中顯示了EEPROM 5在邏輯劃分前后的存儲(chǔ)區(qū)分布。EEPROM 5可以劃分為兩個(gè)或兩個(gè)以上的邏輯分區(qū),其劃分前如圖6左側(cè)所示,其中邏輯分區(qū)61用作存儲(chǔ)IC智能卡COS的程序存儲(chǔ)區(qū);邏輯分區(qū)63用作存儲(chǔ)用戶數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū);第三個(gè)分區(qū)62作為程序/數(shù)據(jù)動(dòng)態(tài)劃分區(qū)。EEPROM存儲(chǔ)器5的一種劃分結(jié)果如圖6右側(cè)所示,程序存儲(chǔ)區(qū)64包括邏輯分區(qū)61全部和邏輯分區(qū)62中劃分為程序存儲(chǔ)區(qū)的部分;數(shù)據(jù)存儲(chǔ)區(qū)65包括邏輯分區(qū)63全部和邏輯分區(qū)62中劃分為數(shù)據(jù)存儲(chǔ)區(qū)的部分。
在軟件升級(jí)和新業(yè)務(wù)增加時(shí),可以通過設(shè)置存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的內(nèi)容調(diào)整EEPROM 5的邏輯劃分,重新分配EEPROM 5中程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的容量。例如把空閑的部分?jǐn)?shù)據(jù)存儲(chǔ)區(qū)轉(zhuǎn)變?yōu)槌绦虼鎯?chǔ)區(qū)使用,以增加新的應(yīng)用,或通過修改EEPROM存儲(chǔ)器5中程序存儲(chǔ)區(qū)的代碼,對(duì)固化在ROM中的程序進(jìn)行修正,或反之,把空閑的程序存儲(chǔ)區(qū)轉(zhuǎn)變?yōu)閿?shù)據(jù)存儲(chǔ)區(qū)使用,以提供更大的用戶存儲(chǔ)空間,不會(huì)因?yàn)閼?yīng)用略有不同,而必須重新進(jìn)行芯片設(shè)計(jì)。
為了方便程序員編程,保證程序存儲(chǔ)區(qū)或數(shù)據(jù)存儲(chǔ)區(qū)的起始地址都從0000H開始,存儲(chǔ)器管理模塊4還要對(duì)邏輯地址進(jìn)行變換,以映射到物理存儲(chǔ)器的不同物理地址,從而可以根據(jù)應(yīng)用把物理地址連續(xù)完整的一個(gè)物理存儲(chǔ)器劃分為大小可靈活調(diào)整的多邏輯分區(qū)。
以圖7所示的存儲(chǔ)器劃分結(jié)構(gòu)為例,假如32K ROM存儲(chǔ)器74作為程序存儲(chǔ)器,1K RAM存儲(chǔ)器72作為數(shù)據(jù)存儲(chǔ)器,64K EEPROM存儲(chǔ)器76(邏輯上由EEPROM存儲(chǔ)器71,73,75組成)動(dòng)態(tài)劃分為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器??梢栽O(shè)定存儲(chǔ)器讀寫控制權(quán)限參見表1表1 表1所示存儲(chǔ)器讀寫控制權(quán)限表僅為示例,可以根據(jù)需要設(shè)置為其它權(quán)限。
下面舉例說明如何實(shí)現(xiàn)動(dòng)態(tài)劃分多邏輯分區(qū)以及存儲(chǔ)器訪問控制權(quán)限。
如圖7所示,32K ROM存儲(chǔ)器74作為程序存儲(chǔ)器,1K RAM存儲(chǔ)器72作為數(shù)據(jù)存儲(chǔ)器,64K EEPROM存儲(chǔ)器76分為3個(gè)區(qū),其中1K EEPROM存儲(chǔ)器71固定作為程序存儲(chǔ)器,位于程序區(qū)高端,地址范圍為FC00H-FFFFH,32K EEPROM存儲(chǔ)器75固定作為數(shù)據(jù)存儲(chǔ)器,位于數(shù)據(jù)區(qū)低端,地址范圍為0000H-7FFFH,31KEEPROM存儲(chǔ)器73作為程序/數(shù)據(jù)可動(dòng)態(tài)劃分存儲(chǔ)器,為了保證數(shù)據(jù)區(qū)連續(xù),其低端作為數(shù)據(jù)存儲(chǔ)器,高端作為程序存儲(chǔ)器,劃分界限由存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR決定。
假設(shè)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR有效位設(shè)為5位(在設(shè)計(jì)階段確定),則劃分的最小區(qū)間為1K,由存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的低5位決定程序存儲(chǔ)區(qū)的起始地址,共32種選擇。如要調(diào)整存儲(chǔ)器劃分區(qū)間,可以通過改變存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的值完成。
現(xiàn)假設(shè)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR設(shè)為10000,從而把31K EEPROM存儲(chǔ)器73劃分為兩個(gè)區(qū)間從8000H-BFFFH為數(shù)據(jù)存儲(chǔ)區(qū),C000H-FBFFH為程序存儲(chǔ)區(qū),存儲(chǔ)器空間動(dòng)態(tài)劃分后分布圖如圖11所示程序存儲(chǔ)區(qū)為48K,地址范圍為32K ROM存儲(chǔ)器113(0000H-7FFFH),16KEEPROM存儲(chǔ)器111和115(C000H-FFFFH);數(shù)據(jù)存儲(chǔ)區(qū)為49K,地址范圍為48K EEPROM存儲(chǔ)器114和116(0000H-BFFFH),1K RAM存儲(chǔ)器112(FC00H-FFFFH)。
根據(jù)讀寫控制權(quán)限表1,當(dāng)程序運(yùn)行于ROM存儲(chǔ)器113時(shí),可對(duì)ROM存儲(chǔ)器113和EEPROM存儲(chǔ)器111,115程序區(qū)進(jìn)行MOVC讀操作,對(duì)1K RAM存儲(chǔ)器112和EEPROM存儲(chǔ)器114,116數(shù)據(jù)區(qū)進(jìn)行MOVX讀寫操作;當(dāng)程序運(yùn)行于EEPROM存儲(chǔ)器固定劃分程序區(qū)111時(shí),可讀EEPROM存儲(chǔ)器111,115的內(nèi)容,禁止讀ROM存儲(chǔ)器113,對(duì)1K RAM存儲(chǔ)器112和EEPROM存儲(chǔ)器114,116數(shù)據(jù)區(qū)仍可進(jìn)行MOVX讀寫操作;當(dāng)程序運(yùn)行于EEPROM存儲(chǔ)器動(dòng)態(tài)劃分程序區(qū)115時(shí),可讀EEPROM存儲(chǔ)器動(dòng)態(tài)劃分程序區(qū)115的內(nèi)容,對(duì)EEPROM存儲(chǔ)器動(dòng)態(tài)劃分?jǐn)?shù)據(jù)區(qū)116可進(jìn)行MOVX讀寫操作,禁止訪問其它存儲(chǔ)區(qū)。
以上的EEPROM動(dòng)態(tài)劃分多邏輯分區(qū)僅僅是作為例子給出的,也可以采用其它的劃分方案,例如如果存儲(chǔ)器分配寄存器信號(hào)MAR設(shè)為00000時(shí),31K動(dòng)態(tài)劃分區(qū)間73全部作為程序存儲(chǔ)區(qū),EEPROM存儲(chǔ)器76動(dòng)態(tài)劃分后的分區(qū)情況為程序存儲(chǔ)區(qū)為32K,地址范圍為8000H~FFFFH數(shù)據(jù)存儲(chǔ)區(qū)為32K,地址范圍為0000H~7FFFH
如果存儲(chǔ)器分配寄存器信號(hào)MAR設(shè)為00011時(shí),31K動(dòng)態(tài)劃分區(qū)間73中3K空間作為數(shù)據(jù)存儲(chǔ)區(qū),其它28K空間作為程序存儲(chǔ)區(qū),EEPROM存儲(chǔ)器76動(dòng)態(tài)劃分后的分區(qū)情況為程序存儲(chǔ)區(qū)為29K,地址范圍為8400H~FFFFH數(shù)據(jù)存儲(chǔ)區(qū)為3K,地址范圍為8000H~83FFH上述各個(gè)存儲(chǔ)器的讀寫信號(hào)可通過以下方法產(chǎn)生參照?qǐng)D8 ROM存儲(chǔ)器訪問控制流程圖,32K ROM存儲(chǔ)器74的操作如下當(dāng)系統(tǒng)地址ADDR_IN[15]=′0′,PC指針PC[15]=′0′時(shí),通過讀寫權(quán)限控制模塊32可知道程序位于ROM存儲(chǔ)器74,如此時(shí)IR輸入經(jīng)指令譯碼模塊35判斷為MOVX指令,經(jīng)讀寫權(quán)限控制模塊34判決,屬于非法操作,ROM存儲(chǔ)器74控制信號(hào)無效;否則ROM存儲(chǔ)器74時(shí)鐘信號(hào)由ALE信號(hào)產(chǎn)生,進(jìn)行取指令操作或MOVC指令操作。
其它情況,ROM存儲(chǔ)器74時(shí)鐘信號(hào)無效。
ROM存儲(chǔ)器74片選信號(hào)由上述時(shí)鐘信號(hào)生成。
參照?qǐng)D9 RAM存儲(chǔ)器訪問控制流程圖,1K RAM存儲(chǔ)器72的操作如下如果系統(tǒng)地址ADDR_IN[15...10]=″111111″,通過地址譯碼模塊32,選擇RAM存儲(chǔ)器72,如此時(shí)IR輸入是MOVX指令,且指令運(yùn)行于ROM區(qū)或EEPROM固定程序區(qū)(由PC指針判定),則經(jīng)指令譯碼模塊35和讀寫權(quán)限控制模塊34判決,存儲(chǔ)器讀寫信號(hào)分別由數(shù)據(jù)存儲(chǔ)器讀信號(hào)RD和寫信號(hào)WR產(chǎn)生;否則讀寫控制信號(hào)無效。
參照?qǐng)D10 EEPROM存儲(chǔ)器動(dòng)態(tài)劃分及訪問控制流程圖,64K EEPROM存儲(chǔ)器76的操作如下如前所述,假定邏輯分區(qū)75固定劃分為32K,邏輯分區(qū)71固定劃分為1K,邏輯分區(qū)73為31K可動(dòng)態(tài)劃分區(qū)間?,F(xiàn)取n=5,劃分的顆粒度為1K。
可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊31劃分的邏輯分區(qū)為如果″FBFF″≥ADDR_IN[15...0]≥′1′&MAR[4...0]&″0000000000″,則對(duì)應(yīng)空間為動(dòng)態(tài)劃分程序存儲(chǔ)區(qū)115;如果″7FFF″<ADDR_IN[15...0]<′1′&MAR[4...0]&″0000000000″,則對(duì)應(yīng)空間為動(dòng)態(tài)劃分?jǐn)?shù)據(jù)存儲(chǔ)區(qū)116;當(dāng)系統(tǒng)地址ADDR_IN經(jīng)地址譯碼模塊32判定為數(shù)據(jù)存儲(chǔ)區(qū)114或動(dòng)態(tài)劃分?jǐn)?shù)據(jù)存儲(chǔ)區(qū)116地址后,且IR輸入經(jīng)指令譯碼模塊35發(fā)現(xiàn)是MOVX指令時(shí)●當(dāng)指令運(yùn)行于ROM區(qū)113或EEPROM固定程序區(qū)111時(shí)(由PC指針判定),經(jīng)讀寫權(quán)限控制模塊34判決,EEPROM存儲(chǔ)器76片選信號(hào)有效,讀寫信號(hào)分別由數(shù)據(jù)存儲(chǔ)器讀信號(hào)RD和寫信號(hào)WR產(chǎn)生;●當(dāng)指令運(yùn)行于EEPROM動(dòng)態(tài)劃分程序存儲(chǔ)區(qū)115(由PC指針判定),則只有對(duì)動(dòng)態(tài)劃分?jǐn)?shù)據(jù)存儲(chǔ)區(qū)116進(jìn)行讀寫操作時(shí),EEPROM存儲(chǔ)器76片選信號(hào)有效,讀寫信號(hào)分別由數(shù)據(jù)存儲(chǔ)器讀信號(hào)RD和寫信號(hào)WR產(chǎn)生,對(duì)數(shù)據(jù)存儲(chǔ)區(qū)114禁止進(jìn)行操作。
當(dāng)系統(tǒng)地址線ADDR_IN經(jīng)地址譯碼模塊32判定為固定程序存儲(chǔ)區(qū)111地址,IR輸入經(jīng)指令譯碼模塊35發(fā)現(xiàn)是MOVX指令,經(jīng)讀寫權(quán)限控制模塊34判決,EEPROM存儲(chǔ)器76所有控制信號(hào)無效;如IR輸入經(jīng)指令譯碼模塊35發(fā)現(xiàn)是MOVC指令且程序運(yùn)行于ROM區(qū)113或EEPROM固定程序區(qū)111,或者進(jìn)行加載指令操作,經(jīng)讀寫權(quán)限控制模塊34判決,EEPROM存儲(chǔ)器76片選信號(hào)有效,讀信號(hào)由地址鎖存信號(hào)ALE產(chǎn)生,寫信號(hào)無效。
當(dāng)系統(tǒng)地址線ADDR_IN經(jīng)地址譯碼模塊32判定為動(dòng)態(tài)劃分程序存儲(chǔ)區(qū)115地址,IR輸入經(jīng)指令譯碼模塊35發(fā)現(xiàn)是MOVX指令,經(jīng)讀寫權(quán)限控制模塊34判決,EEPROM存儲(chǔ)器76所有控制信號(hào)無效;如IR輸入經(jīng)指令譯碼模塊35發(fā)現(xiàn)是MOVC指令,或者進(jìn)行加載指令操作,經(jīng)讀寫權(quán)限控制模塊34判決,EEPROM存儲(chǔ)器76片選信號(hào)有效,讀信號(hào)由地址鎖存信號(hào)ALE產(chǎn)生,寫信號(hào)無效。
這樣通過動(dòng)態(tài)設(shè)置存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的值,并結(jié)合存儲(chǔ)器管理模塊4,可以動(dòng)態(tài)調(diào)整非易失性存儲(chǔ)器中各個(gè)邏輯分區(qū)的大小,以適應(yīng)不同應(yīng)用對(duì)存儲(chǔ)區(qū)大小的需求;另外,修改非易失性存儲(chǔ)器中程序存儲(chǔ)區(qū)的代碼,即可增加新的應(yīng)用或是對(duì)固化在ROM中的程序進(jìn)行修正,不會(huì)因?yàn)閼?yīng)用略有不同而必須重新進(jìn)行芯片設(shè)計(jì)和芯片制造,從而節(jié)省了開發(fā)時(shí)間與成本,為基于智能卡的增值業(yè)務(wù)的升級(jí)和擴(kuò)展提供了高效、靈活的硬件平臺(tái)。
以上結(jié)合本發(fā)明的一種實(shí)施方式對(duì)本發(fā)明的實(shí)現(xiàn)原理進(jìn)行了說明,并不用于限制本發(fā)明,本發(fā)明的保護(hù)范圍由附加的權(quán)利要求進(jìn)行限定。對(duì)本領(lǐng)域普通技術(shù)人員來說,可以在不背離本發(fā)明保護(hù)范圍的情況下對(duì)上述實(shí)施方式進(jìn)行各種變化和修改,這些都在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種動(dòng)態(tài)邏輯分區(qū)并控制訪問權(quán)限的IC智能卡芯片,包括微處理器、存儲(chǔ)器組和串行I/O接口電路,其中存儲(chǔ)器組中包括可編程非易失性存儲(chǔ)器,其特征在于所述微處理器包括一個(gè)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR,用于在其中設(shè)置可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的大小;在微處理器與存儲(chǔ)器組之間有一個(gè)存儲(chǔ)器管理模塊,用于根據(jù)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR中的值,將可編程非易失性存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū),并控制所有微處理器訪問存儲(chǔ)器組的操作。
2.如權(quán)利要求1所述的IC智能卡芯片,其特征在于所述的存儲(chǔ)器管理模塊包括可動(dòng)態(tài)劃分存儲(chǔ)器邏輯分區(qū)地址生成模塊,用于根據(jù)存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR的值生成可動(dòng)態(tài)劃分存儲(chǔ)器中各邏輯分區(qū)的地址;地址譯碼模塊,用于在IC智能卡操作系統(tǒng)通過微處理器對(duì)存儲(chǔ)器進(jìn)行訪問時(shí)對(duì)系統(tǒng)輸入地址進(jìn)行譯碼,完成地址映射;存儲(chǔ)器選擇模塊,用于根據(jù)地址譯碼模塊譯碼后產(chǎn)生的映射地址,選擇微處理器要訪問的存儲(chǔ)器。
3.如權(quán)利要求1或2所述的IC智能卡芯片,其特征在于所述的存儲(chǔ)器管理模塊還包括讀/寫權(quán)限控制模塊,用于根據(jù)PC指針和存儲(chǔ)器訪問權(quán)限決定是否對(duì)存儲(chǔ)器選擇模塊所選取的存儲(chǔ)器進(jìn)行讀/寫操作;指令譯碼模塊,用于對(duì)微處理器內(nèi)指令寄存器IR進(jìn)行譯碼,以判斷指令操作的類型;以及存儲(chǔ)器接口控制模塊,用于依據(jù)上述判斷結(jié)果,如果可以對(duì)所選存儲(chǔ)器進(jìn)行訪問操作,則產(chǎn)生相應(yīng)的存儲(chǔ)器控制信號(hào),如果禁止進(jìn)行操作,則不進(jìn)行讀寫操作。
4.如權(quán)利要求1或2所述的IC智能卡芯片,其特征在于所述的微處理器是INTEL8051兼容微處理器。
5.一種在IC智能卡芯片內(nèi)實(shí)現(xiàn)動(dòng)態(tài)劃分多邏輯分區(qū)和存儲(chǔ)器訪問權(quán)限控制的方法,該IC智能卡包括微處理器、存儲(chǔ)器組和串行I/O接口電路等,所述微處理器包括一個(gè)設(shè)置有初始值的寄存器MAR,所述存儲(chǔ)器組包括可編程非易失性存儲(chǔ)器,其特征在于所述方法包括以下步驟修改所述寄存器MAR的所述初始值,以便設(shè)置所述可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的大小;根據(jù)所述寄存器MAR的值,生成可動(dòng)態(tài)劃分存儲(chǔ)器中各邏輯分區(qū)的地址范圍,并根據(jù)地址劃分界限將可動(dòng)態(tài)劃分存儲(chǔ)器劃分成不同的邏輯分區(qū);根據(jù)邏輯分區(qū)結(jié)果,對(duì)CPU當(dāng)前工作狀態(tài)進(jìn)行判斷,完成對(duì)各個(gè)存儲(chǔ)器模塊的訪問權(quán)限控制。
6.如權(quán)利要求5所述的方法,其特征在于所述完成對(duì)各個(gè)存儲(chǔ)器模塊的訪問權(quán)限控制的步驟進(jìn)一步包括在IC智能卡操作系統(tǒng)通過微處理器對(duì)存儲(chǔ)器進(jìn)行訪問時(shí),由微處理器產(chǎn)生系統(tǒng)地址信號(hào),以及存儲(chǔ)器訪問控制信號(hào),如果是寫入操作,數(shù)據(jù)總線上還將加載欲寫入的數(shù)據(jù)信息;對(duì)系統(tǒng)輸入地址進(jìn)行譯碼;依據(jù)譯碼后產(chǎn)生的映射地址選擇微處理器要訪問的存儲(chǔ)器;對(duì)微處理器內(nèi)指令寄存器中存儲(chǔ)的指令進(jìn)行譯碼從而判斷操作類型;根據(jù)PC指針和存儲(chǔ)器訪問權(quán)限確定是否能對(duì)存儲(chǔ)器選擇模塊選取的存儲(chǔ)器進(jìn)行讀/寫操作;依據(jù)上述判斷結(jié)果,如果可以對(duì)所選存儲(chǔ)器進(jìn)行訪問操作,則產(chǎn)生相應(yīng)的存儲(chǔ)器控制信號(hào),如果禁止進(jìn)行操作,則不進(jìn)行讀寫操作。
7.如權(quán)利要求5所述的方法,其特征在于所述的可編程非易失存儲(chǔ)器可以被劃分為程序存儲(chǔ)區(qū)和數(shù)據(jù)存儲(chǔ)區(qū)。
8.如權(quán)利要求5所述的方法,其特征在于所述的微處理器是INTEL8051兼容微處理器。
9.如權(quán)利要求8所述的方法,其特征在于對(duì)MOVC和MOVX指令以及程序取指令操作進(jìn)行控制。
10.如權(quán)利要求5所述的方法,其特征在于可以根據(jù)應(yīng)用的特點(diǎn),選取所述寄存器MAR中的N位來決定劃分的顆粒度。
11.如權(quán)利要求5所述的方法,其特征在于所述的可動(dòng)態(tài)劃分存儲(chǔ)器中各邏輯分區(qū)的地址范圍的生成方法為將所述寄存器MAR中的N位有效值與地址信號(hào)組合形成邏輯分區(qū)劃分界限,此劃分界限決定邏輯分區(qū)的地址范圍,當(dāng)寄存器中的值變化后,各邏輯分區(qū)的地址范圍會(huì)相應(yīng)變動(dòng)。
12.如權(quán)利要求5或6所述的方法,其特征在于所述的控制存儲(chǔ)器讀寫權(quán)限是指在程序運(yùn)行時(shí),根據(jù)設(shè)定的讀寫控制權(quán)限,控制程序能否訪問存儲(chǔ)器組。
13.如權(quán)利要求5所述的方法,其特征在于所述的可動(dòng)態(tài)劃分存儲(chǔ)器可以劃分為兩個(gè)或兩個(gè)以上的邏輯分區(qū)。
全文摘要
公開了一種具有動(dòng)態(tài)劃分多邏輯分區(qū)及存儲(chǔ)器訪問控制功能的IC智能卡及其實(shí)現(xiàn)方法。該IC智能卡包括微處理器、存儲(chǔ)器組和串行I/O接口電路。其中存儲(chǔ)器組采用混合存儲(chǔ)器結(jié)構(gòu),包括可編程非易失性存儲(chǔ)器,其中可編程非易失性存儲(chǔ)器作為動(dòng)態(tài)劃分存儲(chǔ)器,在邏輯上可劃分為多個(gè)邏輯分區(qū)。在微處理器內(nèi)增加存儲(chǔ)器動(dòng)態(tài)劃分寄存器MAR,用于在其中動(dòng)態(tài)設(shè)置可編程非易失性存儲(chǔ)器中各邏輯分區(qū)的大??;在微處理器與存儲(chǔ)器組之間加入存儲(chǔ)器管理模塊,用于將可編程非易失性存儲(chǔ)器動(dòng)態(tài)劃分為多個(gè)邏輯分區(qū)并且進(jìn)行相應(yīng)的存儲(chǔ)器訪問權(quán)限控制。
文檔編號(hào)G06K19/07GK1567362SQ0313751
公開日2005年1月19日 申請(qǐng)日期2003年6月10日 優(yōu)先權(quán)日2003年6月10日
發(fā)明者孫東昱, 龔宗躍 申請(qǐng)人:大唐微電子技術(shù)有限公司