專利名稱:用于嵌入式微控制單元的更新程序碼方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)一種燒錄(writer)程序的方法,特別是有關(guān)一種直接在應(yīng)用系統(tǒng)中進(jìn)行燒錄程序的方法。
一般計(jì)算機(jī)系統(tǒng)依其特性可分為可重新編程式(reprogrammable)及嵌入式(embedded)系統(tǒng)??芍匦戮幊淌较到y(tǒng)就像一般使用的個(gè)人電腦,含有可儲(chǔ)存大量數(shù)據(jù)的硬盤,使用者可通過鍵盤及屏幕顯示器等輸出入元件在硬盤內(nèi)存放各種不同程序,并隨時(shí)叫出來使用或更改。嵌入式系統(tǒng)即一般所稱的單芯片微處理器,是將少量的存儲(chǔ)器及輸出入元件都嵌入在一顆芯片里,一般都是使用燒錄器將將程序機(jī)器碼燒寫到存儲(chǔ)器內(nèi),使其作某一特定工作,例如工業(yè)上的微程序控制等,所以單芯片微處理器也稱為微程序控制器(microcontroller)或嵌入式微控制單元(Embedded MicrocontrollerUnit,Embedded MCU),因此,當(dāng)設(shè)計(jì)一種簡(jiǎn)單的微電腦系統(tǒng),使用此種嵌入式微控制單元,因?yàn)槭÷源鎯?chǔ)器及輸出入元件接口的界接,可簡(jiǎn)化設(shè)計(jì)節(jié)省成本。
參閱
圖1所示的嵌入式微控制單元100的基本方塊圖,內(nèi)含微處理器(micro processor)102、程序存儲(chǔ)器(program memory)104和多個(gè)功能方塊(functlon block)106。數(shù)據(jù)的輸入與輸出、處理與運(yùn)算,都由微處理器102依軟件程序循序執(zhí)行。一般而言,在數(shù)據(jù)載入后,微處理器102利用總線,由程序存儲(chǔ)器104讀取所儲(chǔ)存的數(shù)據(jù)與程序,經(jīng)各種指令運(yùn)算,將處理結(jié)果傳送至微處理器102,再輸出至輸出裝置或驅(qū)動(dòng)多個(gè)功能方塊106。
參閱圖2所示的嵌入式微控制單元應(yīng)用系統(tǒng)200的基本方塊圖,其中周邊輸入裝置202接受輸入數(shù)據(jù)后,輸入的數(shù)據(jù)經(jīng)由嵌入式微控制單元100處理與分析后,將得到的結(jié)果傳輸給功能元件204進(jìn)行操作。由于一些重要數(shù)據(jù)或程序與基本輸入、輸出(Basic Input Output Operating System,BIOS)操作系統(tǒng)等程序碼(Program code),不可隨著電源關(guān)閉而消逝,但在軟件發(fā)展或系統(tǒng)更新功能時(shí),常需修改其中程序存儲(chǔ)器104的程序碼,產(chǎn)業(yè)上一般是使用快閃式可抹除且可編程只讀存儲(chǔ)器(Flash Eraseable andProgrammable Read Only Memory,F(xiàn)lash EPROM)來作為程序的存儲(chǔ)器裝置。
一般將程序碼寫入此快閃式可抹除且可編程只讀存儲(chǔ)器的方法有兩種,一種是將嵌入式微控制單元從系統(tǒng)中拆下并放置于燒錄器(EPROMWriter)上,將程序機(jī)器碼燒錄到此快閃式可抹除且可編程只讀存儲(chǔ)器,如果一切順利,將燒錄好程序碼的嵌入式微控制單元插入硬件線路中即可完成。當(dāng)發(fā)現(xiàn)所燒錄的程序碼有錯(cuò)誤時(shí),必須再重新將新的程序燒寫進(jìn)去,如此地?zé)龑懣扉W式可抹除且可編程只讀存儲(chǔ)器將極為不便,且燒寫過程中,需將嵌入式微控制單元拆下,勢(shì)必要停機(jī)才能進(jìn)行更新程序碼的動(dòng)作,會(huì)造成生產(chǎn)線上困擾。
另外一種是在嵌入式微控制單元的應(yīng)用系統(tǒng)上直接將程序碼寫入快閃式可抹除且可編程只讀存儲(chǔ)器,所以并不需要將嵌入式微控制單元拆下,在燒錄過程中,應(yīng)用系統(tǒng)尚可維持基本功能;但由于在燒錄過程中,嵌入式微控制單元內(nèi)的微處理機(jī)仍繼續(xù)從程序存儲(chǔ)器中讀取數(shù)據(jù),若此時(shí)微處理器所讀取的數(shù)據(jù)恰好正在更新或更新至一半,微處理器所讀取到的這些數(shù)據(jù)將會(huì)造成錯(cuò)誤,所以通常在進(jìn)行程序碼更新動(dòng)作時(shí),微處理機(jī)會(huì)跳出需被更新的程序存儲(chǔ)器,而至另一程序存儲(chǔ)器執(zhí)行程序,并接收燒錄數(shù)據(jù),寫入需更新的程序存儲(chǔ)器。由于在燒錄過程中微處理機(jī)需要參與執(zhí)行,所以會(huì)降低燒錄速度,同時(shí)因?yàn)樾枰硪怀绦虼鎯?chǔ)器供微處理機(jī)跳出時(shí)使用,因此會(huì)增加制造成本。另外一種在應(yīng)用系統(tǒng)上直接將程序碼寫入的方法,是當(dāng)嵌入式微控制單元內(nèi)的微處理器收到更新程序碼的要求后,即將嵌入式微控制單元設(shè)于復(fù)位狀態(tài)下,此時(shí)微處理器的輸出口及功能方塊無(wú)法工作,易造成整個(gè)系統(tǒng)損壞。
為解決上述燒錄過程中所發(fā)生的問題,本發(fā)明的主要目的是提供一種嵌入式微控制單元的更新程序碼方法,也就是提供一種在嵌入式微控制單元應(yīng)用系統(tǒng)上直接將程序碼寫入快閃式可抹除可編程只讀存儲(chǔ)器的燒錄方法。
本發(fā)明的方法是這樣實(shí)現(xiàn)的該方法至少包括下列步驟由一輸出單元輸出燒錄請(qǐng)求信號(hào),通過一接口將該要求信號(hào)傳輸給一微處理器;當(dāng)該微處理器收到該請(qǐng)求信號(hào)后,該微處理器會(huì)進(jìn)入閑置(ldle)或暫停(Halt)狀態(tài),并將控制權(quán)交給該接口;接著,由該輸出單元通過該接口對(duì)一存儲(chǔ)器進(jìn)行數(shù)據(jù)直接燒錄,同時(shí)該接口會(huì)存儲(chǔ)該數(shù)據(jù)的校驗(yàn)碼;當(dāng)燒錄完成后,該輸出單元會(huì)將該接口所存儲(chǔ)的該校驗(yàn)碼與該輸出單元所存儲(chǔ)的校驗(yàn)碼進(jìn)行比較;若檢查無(wú)誤,該輸出單元會(huì)經(jīng)由該接口輸出一復(fù)位(Reset)信號(hào)給該微處理器進(jìn)行復(fù)位;以及若檢查有錯(cuò)誤發(fā)生,該輸出單元會(huì)重新進(jìn)行燒錄工作。
上述的輸出單元為一燒錄控制裝置,為燒錄新程序碼控制主體。上述接口為一個(gè)兩支管腳(2 Pin)的串行接口。上述的存儲(chǔ)器為一可抹除且可編程只讀存儲(chǔ)器。上述的校驗(yàn)碼為一循環(huán)冗余字校驗(yàn)碼,是將所要傳送或儲(chǔ)存的二進(jìn)制數(shù)據(jù)除以一個(gè)固定的二進(jìn)位數(shù),所得到的余數(shù)。
本發(fā)明是在嵌入式微控制單元中加入一個(gè)兩支管腳(2 Pin)的串行接口,并在嵌入式微控制單元應(yīng)用系統(tǒng)上,外接一燒錄控制裝置(ProgramControl Device)直接將程序碼寫入快閃式可抹除且可編程只讀存儲(chǔ)器內(nèi)。本發(fā)明應(yīng)用一串行接口進(jìn)行燒錄工作,無(wú)須經(jīng)由微處理器再將程序碼燒錄至程序存儲(chǔ)器中,而是直接經(jīng)由串行接口燒錄至程序存儲(chǔ)器中,因此燒錄所需花費(fèi)的時(shí)間大大降低。此外,本發(fā)明通過一個(gè)兩支管腳的串行接口,來對(duì)程序存儲(chǔ)器進(jìn)行直接燒錄,由于僅使用兩支管腳,因此,控制方法極為簡(jiǎn)單,且使用上也極為方便。
下面結(jié)合本發(fā)明的較佳實(shí)施例并輔以附圖對(duì)本發(fā)明作更詳細(xì)的闡述,其中為說明方便起見,各圖所示的相同數(shù)字代表相同的裝置。
圖1是傳統(tǒng)的嵌入式微控制單元方塊圖。
圖2是傳統(tǒng)的嵌入式微控制單元應(yīng)用系統(tǒng)方塊圖。
圖3是依據(jù)本發(fā)明的嵌入式微控制單元應(yīng)用系統(tǒng)方塊圖。
圖4是依據(jù)本發(fā)明的嵌入式微控制單元方塊圖。
本發(fā)明提供了一種解決嵌入式微控制單元在燒錄程序過程中,需要復(fù)位或停止系統(tǒng),以避免嵌入式微控制單元內(nèi)的微處理器讀取到錯(cuò)誤信息的方法。本方法使得系統(tǒng)在進(jìn)行更新程序碼的燒錄處理時(shí),仍可以確保系統(tǒng)在新舊程序碼交替更換之間不會(huì)發(fā)生錯(cuò)誤。事實(shí)上,由于本發(fā)明的方法無(wú)須在燒錄處理過程中進(jìn)行復(fù)位或停止系統(tǒng),因此該應(yīng)用系統(tǒng)比較不易發(fā)生損壞。本發(fā)明是利用在嵌入式微控制單元中加入一個(gè)兩支管腳(2 Pin)的串行接口,并在嵌入式微控制單元應(yīng)用系統(tǒng)上,外接一燒錄控制裝置,當(dāng)需要進(jìn)行程序碼更新時(shí),可經(jīng)由此外接的燒錄控制裝置,通過兩支管腳的串行接口,來對(duì)程序存儲(chǔ)器進(jìn)行直接燒錄,由于只使用兩支管腳,因此控制方法極為簡(jiǎn)單,提升了燒錄的方便性。
依據(jù)本發(fā)明的較佳實(shí)施例中,本發(fā)明增加了一個(gè)兩支管腳的串行接口(2Pin Serial Interface),以隨時(shí)在需要進(jìn)行程序存儲(chǔ)器的機(jī)器程序碼燒錄更新工作時(shí),由外接燒錄控制裝置(Program control Device)經(jīng)由此串行接口通知微處理系統(tǒng)即將進(jìn)行燒錄工作,此時(shí)微處理機(jī)會(huì)暫時(shí)進(jìn)入閑置(ldle)或暫停(Halt)狀態(tài),所以可以在進(jìn)行燒錄過程中避免微處理機(jī)繼續(xù)讀取程序存儲(chǔ)器,且由于僅使用兩支管腳,因此控制方法極為簡(jiǎn)單,故本發(fā)明較一般利用傳統(tǒng)的嵌入式微控制單元,在進(jìn)行程序存儲(chǔ)器的機(jī)器程序碼燒錄更新工作時(shí),具有較佳的效率。
依據(jù)本發(fā)明的較佳實(shí)施例,用于傳送并接收更新機(jī)器程序碼以進(jìn)行燒錄的系統(tǒng)架構(gòu)圖如圖3所示,該系統(tǒng)架構(gòu)包括應(yīng)用系統(tǒng)300,和一燒錄控制裝置(Program Control Device)302外接此應(yīng)用系統(tǒng)300,其中應(yīng)用系統(tǒng)300包括一嵌入式微控制單元(Embedded Micro controller Unit)304,一功能元件(Function Device)204,一周邊輸入裝置202。本發(fā)明使用兩支管腳串行接口(圖中未標(biāo)示出)來燒錄嵌入式微控制單元100的新程序碼。其中嵌入式微控制單元304在系統(tǒng)電源開啟后,會(huì)執(zhí)行原有程序存儲(chǔ)器的程序碼,可控制應(yīng)用系統(tǒng)中其他功能元件204的工作模式。應(yīng)用系統(tǒng)300外部有一燒錄控制裝置302,作為燒錄新程序碼的控制主體(Host)。周邊輸入裝置202接受輸入數(shù)據(jù)后,輸入數(shù)據(jù)經(jīng)由嵌入式微控制單元304處理與分析后,將得到的結(jié)果傳輸給功能元件204進(jìn)行運(yùn)作,當(dāng)需要更新程序碼時(shí),燒錄控制裝置302會(huì)輸出一請(qǐng)求(Request)給嵌入式微控制單元304,當(dāng)嵌入式微控制單元304接受后,即可進(jìn)行機(jī)器程序碼的更新動(dòng)作。
嵌入式微控制單元304的系統(tǒng)架構(gòu)圖如圖4所示,包括微處理器(microprocessor)102、程序存儲(chǔ)器(programmemory)104,多個(gè)功能方塊(functionblock)106和串行接口(Serial Interface)402,其中串行接口402使用兩支管腳(2 Pin)與外部的燒錄控制裝置302連接。數(shù)據(jù)的輸入與輸出、處理與運(yùn)算,都由微處理器102依軟件程序循序執(zhí)行。一般而言,在數(shù)據(jù)載入后,微處理器102利用總線,由程序存儲(chǔ)器104讀取所儲(chǔ)存的數(shù)據(jù)與程序,經(jīng)微處理器102各種指令運(yùn)算,將處理結(jié)果傳送至輸出裝置或驅(qū)動(dòng)多個(gè)功能方塊106。當(dāng)串行接口402收到外界燒錄控制裝置302的更新程序碼燒錄請(qǐng)求后,串行接口402會(huì)送一個(gè)請(qǐng)求信號(hào)給微處理器102,微處理器102收到該請(qǐng)求信號(hào)后,會(huì)進(jìn)入閑置(ldle)或暫停(Halt)狀態(tài),并將程序存儲(chǔ)器控制權(quán)交給串行接口402,此時(shí)燒錄裝置302即可將新機(jī)器程序碼經(jīng)由串行接口402直接寫入程序存儲(chǔ)器中,并不需要再經(jīng)由微處理器102,因此燒錄速度可提升;且不像一般系統(tǒng)在查知燒錄請(qǐng)求時(shí),微處理器102會(huì)跳出需被更新的程序存儲(chǔ)器,而至另一程序存儲(chǔ)器執(zhí)行程序,并接收燒錄數(shù)據(jù),寫入需更新的程序存儲(chǔ)器,因?yàn)樵诖讼到y(tǒng)架構(gòu)下需要另一程序存儲(chǔ)器供微處理機(jī)102跳出時(shí)使用,所以會(huì)增加制造成本。
在程序碼數(shù)據(jù)傳輸過程中,串行接口402并計(jì)算接收數(shù)據(jù)的循環(huán)冗余字元校驗(yàn)碼(Cyclic Redundancy Check code),在數(shù)據(jù)傳輸完成后,燒錄控制裝置302只需比較串行接口402中的循環(huán)冗余字元校驗(yàn)碼與燒錄控制裝置302中的循環(huán)冗余字元校驗(yàn)碼,即可獲知傳輸是否成功。在所有機(jī)器程序碼寫入成功后,燒錄控制裝置302即可要求嵌入式微控制單元304進(jìn)行復(fù)位(Reset),復(fù)位完成后即執(zhí)行新機(jī)器程序碼,本發(fā)明是在燒錄完成后,再對(duì)嵌入式微控制單元304進(jìn)行復(fù)位動(dòng)作,不同于一般系統(tǒng)在查知燒錄要求時(shí),即將整個(gè)嵌入式微控制單元304設(shè)于復(fù)位狀態(tài),因此可避免因微處理器102輸出口及功能方塊106無(wú)法工作所造成的損害。其中,循環(huán)冗余字校驗(yàn)碼是將所要傳送或儲(chǔ)存的二進(jìn)位數(shù)據(jù)除以一個(gè)固定的二進(jìn)位數(shù),所得到的余數(shù)稱為循環(huán)冗余字元校驗(yàn)碼;隨著數(shù)據(jù)一起傳送或儲(chǔ)存,在接收或讀出數(shù)據(jù)時(shí),再次形成這種校驗(yàn)碼,并作兩次校驗(yàn)比較,從而檢測(cè)出是否存在誤碼現(xiàn)象。
權(quán)利要求
1.一種嵌入式微控制單元更新程序碼的方法,其特征在于該方法至少包括下列步驟由一輸出單元輸出燒錄請(qǐng)求信號(hào),通過一接口將該請(qǐng)求信號(hào)傳輸給一微處理器;當(dāng)該微處理器收到該請(qǐng)求信號(hào)后,該微處理器會(huì)進(jìn)入閑置(1dle)或暫停(Halt)狀態(tài),并將控制權(quán)交給該接口;接著由該輸出單元通過該接口對(duì)一存儲(chǔ)器進(jìn)行數(shù)據(jù)直接燒錄,同時(shí)該接口會(huì)存儲(chǔ)該數(shù)據(jù)的校驗(yàn)碼;當(dāng)燒錄完成后,該輸出單元會(huì)將該接口所存儲(chǔ)的該校驗(yàn)碼與該輸出單元所存儲(chǔ)的校驗(yàn)碼進(jìn)行比較;若檢查無(wú)誤,該輸出單元會(huì)經(jīng)由該接口輸出一復(fù)位(Reset)信號(hào)給該微處理器進(jìn)行復(fù)位;以及若檢查有錯(cuò)誤發(fā)生,該輸出單元會(huì)重新進(jìn)行燒錄工作。
2.如權(quán)利要求1所述的嵌入式微控制單元更新程序碼的方法,其特征在于上述的輸出單元為一燒錄控制裝置,為燒錄新程序碼控制主體。
3.如權(quán)利要求1所述的嵌入式微控制單元更新程序碼的方法,其特征在于上述接口為一個(gè)兩支管腳(2Pin)的串接接口。
4.如權(quán)利要求1所述的嵌入式微控制單元更新程序碼的方法,其特征在于上述的存儲(chǔ)器為一可抹除且可編程只讀存儲(chǔ)器。
5.如權(quán)利要求1所述的嵌入式微控制單元更新程序碼的方法,其特征在于上述的校驗(yàn)碼為一循環(huán)冗余字校驗(yàn)碼,是將所要傳送或儲(chǔ)存的二進(jìn)制數(shù)據(jù)除以一個(gè)固定的二進(jìn)位數(shù),所得到的余數(shù)。
全文摘要
一種嵌入式微控制單元更新程序碼的方法,是在一嵌入式微控制單元加入一串行接口,在進(jìn)行程序碼更新時(shí),外接一燒錄控制裝置,當(dāng)串行接口會(huì)送一個(gè)請(qǐng)求信號(hào)給嵌入式微控制單元內(nèi)的微處理器,微處理器收到該請(qǐng)求信號(hào)后,會(huì)進(jìn)入閑置或暫停狀態(tài),并將程序存儲(chǔ)器控制權(quán)交給串行接口,此時(shí)燒錄裝置即可將要更新的程序碼經(jīng)由串行接口直接寫入程序存儲(chǔ)器中,同時(shí)該接口會(huì)存儲(chǔ)該程序碼數(shù)據(jù)的校驗(yàn)碼;在燒錄完成后,輸出單元會(huì)將接口所存儲(chǔ)的校驗(yàn)碼與該輸出單元所存儲(chǔ)的校驗(yàn)碼進(jìn)行比較。
文檔編號(hào)G06F9/22GK1346085SQ0012462
公開日2002年4月24日 申請(qǐng)日期2000年9月26日 優(yōu)先權(quán)日2000年9月26日
發(fā)明者袁中平, 陳吉田, 湯炳發(fā) 申請(qǐng)人:民生科技股份有限公司