專利名稱:一種otp單片機(jī)架構(gòu)及實現(xiàn)多次編程的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及單片機(jī)領(lǐng)域,準(zhǔn)確地說是OTP單片機(jī)的內(nèi)部架構(gòu)和多次編程的實現(xiàn)方法。
背景技術(shù):
OTP型單片機(jī),由于性能穩(wěn)定,價格便宜,廣泛應(yīng)用于各種電子產(chǎn)品中。傳統(tǒng)的單片機(jī)架構(gòu)中,如圖1所示,處理器內(nèi)核通過指令地址進(jìn)行程序存儲,每次編程,單片機(jī)工作過程如下。1、系統(tǒng)上電。2、指令地址復(fù)位為0,處理器內(nèi)核開始工作。3、處理器內(nèi)核執(zhí)行O地址所存儲的指令,并產(chǎn)生下一個指令地址。4、處理器執(zhí)行上一個周期所產(chǎn)生的指令地址中存儲的指令,并繼續(xù)產(chǎn)生下一個指令地址。5、重復(fù)4步驟?,F(xiàn)有技術(shù)中單片機(jī)其程序存儲器的地址即指令地址,由處理器內(nèi)核直接產(chǎn)生。因此這類單片機(jī)只能夠進(jìn)行一次編程,即使用戶的程序代碼字節(jié)數(shù)很少,只占用了 OTP存儲器中很小一部分,其余部分也無 法再使用,造成浪費。
發(fā)明內(nèi)容
為解決上述問題,本實用新型的目的在于,設(shè)計一種OTP單片機(jī)架構(gòu)及實現(xiàn)多次編程方法,該單片機(jī)架構(gòu)及實現(xiàn)多次編程方法使得單片機(jī)的程序存儲器可以分次使用,而不影響單片機(jī)的正常工作,且能實現(xiàn)多次編程,提高單片機(jī)的使用效率。本實用新型的另一個目的在于提供一種OTP單片機(jī)架構(gòu)及實現(xiàn)多次編程方法,該單片機(jī)架構(gòu)及實現(xiàn)多次編程方法結(jié)構(gòu)簡單,易于實現(xiàn),能夠提高單片機(jī)的工作效率,降低成本。為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下。一種OTP單片機(jī)架構(gòu),其具有處理器內(nèi)核、指令寄存器和程序存儲器,其特征在于所述程序存儲器設(shè)置有偏移地址存儲區(qū),所述單片機(jī)架構(gòu)還包括有偏移地址寄存器和偏移地址讀取模塊,所述偏移地址寄存器連接于處理器內(nèi)核,所述偏移地址讀取模塊連接于所述偏移地址存儲區(qū),且所述偏移地址讀取模塊又連接于偏移地址寄存器。本發(fā)明公開的單片機(jī)架構(gòu)中。在程序存儲器內(nèi)開辟了一塊偏移地址存儲區(qū)。每次對單片機(jī)進(jìn)行編程后,都要把此次編程的結(jié)束地址加一寫入到這個存儲區(qū)中,單片機(jī)復(fù)位時,從這一存儲區(qū)讀取數(shù)據(jù)。采用本發(fā)明的單片機(jī)架構(gòu),單片機(jī)的程序存儲器只要還沒有使用完,剩余空間足夠存儲新的程序代碼,就可以進(jìn)行下一次編程,而不必像現(xiàn)有技術(shù)那樣重新進(jìn)行編程,能夠大大節(jié)約程序存儲器的資源,提高單片機(jī)的使用效率。所述單片機(jī)架構(gòu),還包括一加法器,加法器設(shè)置于處理器內(nèi)核和偏移地址寄存器之間,對上一個周期所產(chǎn)生的指令地址與偏移地址存儲區(qū)所存儲的偏移地址進(jìn)行運算,得到的指令地址輸入到程序存儲器,執(zhí)行相應(yīng)的指令。一種OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于系統(tǒng)上電啟動后,指令地址復(fù)位,程序存儲器的地址指針的指令不從O地址開始執(zhí)行,而是從預(yù)先加載的偏移地址開始執(zhí)行。所述的預(yù)先加載的偏移地址,為上一次對單片機(jī)進(jìn)行編程時的結(jié)束地址加一,如果是第一次對單片機(jī)進(jìn)行編程,則偏移地址為O。上述一次對單片機(jī)進(jìn)行編程時的結(jié)束地址存儲于程序存儲器中的偏移地址存儲區(qū),偏移地址讀取模塊從偏移地址存儲區(qū)中讀取偏移地址,并發(fā)處理器內(nèi)核開始工作信號。進(jìn)一步,處理器內(nèi)核正常工作過程中,所述程序存儲器的地址指針,不是直接由處理器內(nèi)核產(chǎn)生,而是由處理器內(nèi)核產(chǎn)生的指令地址與預(yù)先加載的偏移地址進(jìn)行運算后產(chǎn)生。具體地說,所述OTP單片機(jī)的詳細(xì)工作過程如下。101、系統(tǒng)上電;
102、指令地址復(fù)位為0,處理器內(nèi)核處于復(fù)位狀態(tài),等待偏移地址讀取模塊的控制信
號;
103、偏移地址讀取模塊從偏移地址存儲區(qū)中讀取偏移地址,并發(fā)處理器內(nèi)核開始工作信號,同時將偏移地址加載到偏移地址寄存器;
104、將O地址與偏移地址寄存器的偏移地址進(jìn)行運算產(chǎn)生的程序存儲器地址,處理器內(nèi)核執(zhí)行該程序存儲器地址的指令,并產(chǎn)生下一個指令地址;
105、上一個周期所產(chǎn)生的指令地址與偏移地址寄存器運算產(chǎn)生的新的程序存儲器地址,處理器內(nèi)核執(zhí)行新的程序存儲器地址的指令,并產(chǎn)生下一個指令地址;
106、重復(fù)步驟105。所述103步驟中,如果偏移地址讀取模塊只讀取到一條數(shù)據(jù)記錄,說明單片機(jī)只進(jìn)行過一次編程,無需加載偏移地址,或者說,偏移地址為O。當(dāng)此處數(shù)據(jù)記錄超過一條時,則讀取最后第二條偏移地址,并加載到偏移地址寄存器中。編程結(jié)束后,編程的結(jié)束地址加一寫入到偏移地址存儲區(qū)中。采用本發(fā)明的結(jié)構(gòu)后,單片機(jī)的存儲器只要還沒有使用完,而且剩余空間足夠存儲新的程序代碼,就可以進(jìn)行下一次編程。能夠把OTP型MCU轉(zhuǎn)為MTP型MCU,使得單片機(jī)的程序存儲器可以分次使用,而不影響單片機(jī)的正常工作,且能實現(xiàn)多次編程,大大提高單片機(jī)的使用效率。且,本發(fā)明結(jié)構(gòu)簡單,易于實現(xiàn),能夠提高單片機(jī)的工作效率,降低成本。
圖1是現(xiàn)有技術(shù)的架構(gòu)示意圖。圖2是本發(fā)明所實施單片機(jī)的架構(gòu)示意圖。圖3是本發(fā)明的軟件控制流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參照圖2所示,本發(fā)明所實現(xiàn)的一種OTP單片機(jī)架構(gòu),其具有處理器內(nèi)核、指令寄存器和程序存儲器,其特征在于所述程序存儲器設(shè)置有偏移地址存儲區(qū),所述單片機(jī)架構(gòu)還包括有偏移地址寄存器和偏移地址讀取模塊,所述偏移地址寄存器連接于處理器內(nèi)核,所述偏移地址讀取模塊連接于所述偏移地址存儲區(qū),且所述偏移地址讀取模塊又連接于偏移地址寄存器。本發(fā)明所實施的OTP單片機(jī)架構(gòu)中,在程序存儲器內(nèi)開辟了一塊偏移地址存儲區(qū)。每次對單片機(jī)進(jìn)行編程后,都要把此次編程的結(jié)束地址加一寫入到這個存儲區(qū)中,單片機(jī)復(fù)位時,從這一存儲區(qū)讀取數(shù)據(jù)。請參照圖3所示,本發(fā)明通過所述OTP單片機(jī)實現(xiàn)多次編程的控制流程如下。101、系統(tǒng)上電。102、指令地址復(fù)位為0,處理器內(nèi)核處于復(fù)位狀態(tài),等待偏移地址讀取模塊的控制信號。103、偏移地址讀取模塊從偏移地址存儲區(qū)中讀取偏移地址,并發(fā)處理器內(nèi)核開始
工作信號。104、處理器內(nèi)核執(zhí)行O地址與偏移地址寄存器值運算產(chǎn)生的地址所存儲的指令,并產(chǎn)生下一個指令地址。105、處理 器執(zhí)行上一個周期所產(chǎn)生的指令地址與偏移地址寄存器運算產(chǎn)生的地址所存儲的指令,并產(chǎn)生下一個指令地址。偏移地址寄存器中的偏移地址是103步驟加載后就不變了,每次系統(tǒng)關(guān)機(jī)后,將最后的結(jié)束地址存儲于偏移地址存儲區(qū),以便于下次開機(jī)時讀取。IO6、重復(fù)步驟 IO5。編程結(jié)束后,編程的結(jié)束地址加一寫入到偏移地址存儲區(qū)中。在103步驟中,如果偏移地址讀取模塊只讀取到一條數(shù)據(jù)記錄,說明單片機(jī)只進(jìn)行過一次編程,無需加載偏移地址,或者說,偏移地址為O。當(dāng)此處數(shù)據(jù)記錄超過一條時,則讀取最后第二條偏移地址,并加載到偏移地址寄存器中。如果只有一條數(shù)據(jù)記錄,說明本單片機(jī)只進(jìn)行過一次編程,無需加載偏移地址,或者說,偏移地址為O。當(dāng)此處數(shù)據(jù)記錄超過一條時,則讀取最后二條偏移地址,并加載到偏移地址寄存器中。加載完成后,偏移地址讀取模塊發(fā)出信號,讓處理器內(nèi)核開始工作(在此之前,處理器內(nèi)核處于復(fù)位狀態(tài))。處理器內(nèi)核正常工作過程中,程序存儲器的地址,由處理器內(nèi)核產(chǎn)生的指令地址與偏移地址寄存器經(jīng)過運算后得到。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種OTP單片機(jī)架構(gòu),其具有處理器內(nèi)核、指令寄存器和程序存儲器,其特征在于所述程序存儲器設(shè)置有偏移地址存儲區(qū),所述單片機(jī)架構(gòu)還包括有偏移地址寄存器和偏移地址讀取模塊,所述偏移地址寄存器連接于處理器內(nèi)核,所述偏移地址讀取模塊連接于所述偏移地址存儲區(qū),且所述偏移地址讀取模塊又連接于偏移地址寄存器。
2.如權(quán)利要求1所述的OTP單片機(jī)架構(gòu),其特征在于所述單片機(jī)架構(gòu),還包括一加法器,加法器設(shè)置于處理器內(nèi)核和偏移地址寄存器之間,對上一個周期所產(chǎn)生的指令地址與偏移地址存儲區(qū)所存儲的偏移地址進(jìn)行運算,得到的指令地址輸入到程序存儲器,執(zhí)行相應(yīng)的指令。
3.—種OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于系統(tǒng)上電啟動后,指令地址復(fù)位,程序存儲器的地址指針的指令不從O地址開始執(zhí)行,而是從預(yù)先加載的偏移地址開始執(zhí)行。
4.如權(quán)利要求3所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于所述的預(yù)先加載的偏移地址,為上一次對單片機(jī)進(jìn)行編程時的結(jié)束地址加一,如果是第一次對單片機(jī)進(jìn)行編程,則偏移地址為O。
5.如權(quán)利要求4所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于上述一次對單片機(jī)進(jìn)行編程時的結(jié)束地址存儲于程序存儲器中的偏移地址存儲區(qū),偏移地址讀取模塊從偏移地址存儲區(qū)中讀取偏移地址,并發(fā)處理器內(nèi)核開始工作信號。
6.如權(quán)利要求3所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于進(jìn)一步,處理器內(nèi)核正常工作過程中,所述程序存儲器的地址指針,是由處理器內(nèi)核產(chǎn)生的指令地址與預(yù)先加載的偏移地址進(jìn)行運算后產(chǎn)生。
7.如權(quán)利要求3所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于具體地說,所述OTP單片機(jī)的詳細(xì)工作過 程為: 101、系統(tǒng)上電; 102、指令地址復(fù)位為0,處理器內(nèi)核處于復(fù)位狀態(tài),等待偏移地址讀取模塊的控制信號; 103、偏移地址讀取模塊從偏移地址存儲區(qū)中讀取偏移地址,并發(fā)處理器內(nèi)核開始工作信號,同時將偏移地址加載到偏移地址寄存器; 104、將O地址與偏移地址寄存器的偏移地址進(jìn)行運算產(chǎn)生的程序存儲器地址,處理器內(nèi)核執(zhí)行該程序存儲器地址的指令,并產(chǎn)生下一個指令地址; 105、上一個周期所產(chǎn)生的指令地址與偏移地址寄存器運算產(chǎn)生的新的程序存儲器地址,處理器內(nèi)核執(zhí)行新的程序存儲器地址的指令,并產(chǎn)生下一個指令地址; 106、重復(fù)步驟105。
8.如權(quán)利要求7所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于所述103步驟中,如果偏移地址讀取模塊只讀取到一條數(shù)據(jù)記錄,說明單片機(jī)只進(jìn)行過一次編程,無需加載偏移地址,當(dāng)此處數(shù)據(jù)記錄超過一條時,則讀取最后第二條偏移地址,并加載到偏移地址寄存器中。
9.如權(quán)利要求8所述的OTP單片機(jī)實現(xiàn)多次編程的方法,其特征在于編程結(jié)束后,編程的結(jié)束地址加一寫入到偏移地址存儲區(qū)中。
全文摘要
本發(fā)明公開了一種OTP單片機(jī)架構(gòu)及實現(xiàn)多次編程方法,在該OTP單片機(jī)架構(gòu)中,程序存儲器內(nèi)開辟了一塊偏移地址存儲區(qū)。每次對單片機(jī)進(jìn)行編程后,都要把此次編程的結(jié)束地址加一寫入到這個存儲區(qū)中。單片機(jī)復(fù)位時,偏移地址讀取模塊從這一區(qū)域讀取數(shù)據(jù)。該單片機(jī)架構(gòu)及實現(xiàn)多次編程方法使得單片機(jī)的程序存儲器可以分次使用,而不影響單片機(jī)的正常工作,且能實現(xiàn)多次編程,提高單片機(jī)的使用效率。
文檔編號G05B19/042GK103235534SQ20131010723
公開日2013年8月7日 申請日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者劉小靈 申請人:深圳市芯??萍加邢薰?br>