一種自動(dòng)校驗(yàn)的編程燒寫方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種可編程電路的燒寫校驗(yàn)方法,具體涉及一種自動(dòng)校驗(yàn)的編程燒寫 方法。
【背景技術(shù)】
[0002] 現(xiàn)有的otp (-次性可編程)、flash等可編程的MCU電路,在程序開發(fā)時(shí),一般會(huì) 有配套的燒寫器,用于flash或otp的編程燒寫。程序燒錄進(jìn)flash或otp后,為了確保程 序燒錄正確,一般還會(huì)通過燒寫器將燒錄的程序回讀校驗(yàn)。如附圖1所示,為了節(jié)省編程燒 寫引腳,燒寫器采用四線制燒錄(電源、地、時(shí)鐘、雙向數(shù)據(jù)口),燒寫器進(jìn)行數(shù)據(jù)燒寫及數(shù)據(jù) 回讀時(shí),都是通過一根數(shù)據(jù)線來實(shí)現(xiàn)的,其數(shù)據(jù)燒寫和數(shù)據(jù)回讀過程是分時(shí)的,如果燒寫的 數(shù)據(jù)需要全部回讀出來,回讀過程就需要花費(fèi)比較長(zhǎng)的時(shí)間。如附圖2所示,是現(xiàn)有燒寫器 和MCU之間的燒寫和校驗(yàn)回讀時(shí)序圖,校驗(yàn)回讀過程中,數(shù)據(jù)是采用串行移位方式,從MCU 的可編程存儲(chǔ)器里面讀出的數(shù)據(jù)給燒寫器校驗(yàn),一般燒寫了多少個(gè)數(shù)據(jù),就需要串行讀出 多少個(gè)數(shù)據(jù)來校驗(yàn),已確保寫入的數(shù)據(jù)都得到正確的編程,因此在編程數(shù)據(jù)回讀校驗(yàn)時(shí),編 程容量越大,串行回讀校驗(yàn)所花費(fèi)的時(shí)間也就越多。
[0003] 采用上述的方式進(jìn)行燒寫校驗(yàn),MCU電路內(nèi)部可編程存儲(chǔ)器和MCU電路接口設(shè)計(jì) 如附圖3所示,MCU電路包括編程控制器、可編程存儲(chǔ)器、數(shù)據(jù)寄存器和地址寄存器。該方 式的校驗(yàn)原理是:(1)編程控制器接收燒寫器發(fā)出的時(shí)鐘和數(shù)據(jù),可以使電路進(jìn)入編程模 式或讀出校驗(yàn)?zāi)J?;?)在編程模式下,編程控制器接收燒寫器發(fā)出的時(shí)鐘和數(shù)據(jù)(包括地 址信息和編程數(shù)據(jù)),地址信息在第三時(shí)鐘(clk3)的控制下通過地址輸入輸出端口(aio) 串行移入地址寄存器,決定編程的地址;編程數(shù)據(jù)在第二時(shí)鐘(clk2)的控制下通過串行數(shù) 據(jù)輸入輸出端口(dio)串行移入數(shù)據(jù)寄存器;(3)完成數(shù)據(jù)串并轉(zhuǎn)換后,燒寫器打入燒寫命 令,編程控制器發(fā)出編程指令(prog)和第一時(shí)鐘(clkl),數(shù)據(jù)寄存器的內(nèi)容寫入到地址寄 存器指定的存儲(chǔ)空間,實(shí)現(xiàn)數(shù)據(jù)的燒錄;(4)完成數(shù)據(jù)燒錄后,為了校驗(yàn)燒錄的正確性,燒 寫器再打入校驗(yàn)命令,編程控制器使電路進(jìn)入校驗(yàn)?zāi)J剑唬?)在校驗(yàn)?zāi)J较?,編程控制器?收燒寫器發(fā)出的地址信息,先指定要校驗(yàn)存儲(chǔ)空間的地址,接著發(fā)出讀取信號(hào)(read)和第 一時(shí)鐘(clkl),將指定地址空間的內(nèi)容讀出到數(shù)據(jù)寄存器,再通過第二時(shí)鐘(clk2),將數(shù) 據(jù)寄存器的內(nèi)容串行移出,通過數(shù)據(jù)端口送給燒寫器校驗(yàn)。
[0004] 現(xiàn)有的燒寫校驗(yàn)方法存在的缺點(diǎn)是:寫入的數(shù)據(jù)越多,串行讀出的時(shí)間越長(zhǎng),這個(gè) 缺點(diǎn)最終會(huì)導(dǎo)致產(chǎn)品的批量編程的生產(chǎn)效率低下。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺陷,提供一種自動(dòng)校驗(yàn)的編程燒寫方法,該方 法在數(shù)據(jù)燒寫的過程中就能夠?qū)崿F(xiàn)對(duì)燒寫成功的數(shù)據(jù)進(jìn)行自動(dòng)校驗(yàn),節(jié)省校驗(yàn)回讀時(shí)間。
[0006] 為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:一種自動(dòng)校驗(yàn)的編程燒寫 方法,基于可編程的MCU電路,該電路包括編程控制器、可編程存儲(chǔ)器、數(shù)據(jù)寄存器和地址 寄存器,其特征在于,所述的燒寫方法的實(shí)現(xiàn)還基于MCU電路中增加了累加校驗(yàn)單元,所述 的累加校驗(yàn)單元分別與可編程存儲(chǔ)器、數(shù)據(jù)寄存器和編程控制器連接,該燒寫方法具體包 括如下步驟:(1)所述編程控制器接收配套的燒寫器發(fā)出的時(shí)鐘信號(hào)和數(shù)據(jù)信號(hào),數(shù)據(jù)信 號(hào)中包括地址信息和編程數(shù)據(jù);(2)所述編程控制器中的地址信息在第三時(shí)鐘的控制下通 過地址輸入輸出總線串行移入地址寄存器,存儲(chǔ)編程的地址,編程數(shù)據(jù)在第二時(shí)鐘的控制 下通過數(shù)據(jù)輸入輸出總線串行移入數(shù)據(jù)存儲(chǔ)器;(3)在完成數(shù)據(jù)串并轉(zhuǎn)換后,燒寫器打入 燒寫命令,編程控制器發(fā)出編程指令和第一時(shí)鐘,數(shù)據(jù)寄存器的內(nèi)容寫入到地址寄存器指 定的存儲(chǔ)空間,實(shí)現(xiàn)數(shù)據(jù)的燒錄,在完成所有數(shù)據(jù)燒錄后,燒寫器發(fā)出一個(gè)校驗(yàn)值,數(shù)據(jù)寄 存器將燒寫器送出的校驗(yàn)值完成串并轉(zhuǎn)換后送入累加校驗(yàn)單元;(4)所述可編程存儲(chǔ)器進(jìn) 行對(duì)數(shù)據(jù)的編程存儲(chǔ),并將存儲(chǔ)的數(shù)據(jù)發(fā)送到累加校驗(yàn)單元,所述累加校驗(yàn)單元對(duì)編程后 的可編程存儲(chǔ)器讀取的數(shù)據(jù)進(jìn)行累加校驗(yàn),得到一個(gè)累加值;(5)通過所述累加校驗(yàn)單元 比較累加值和燒寫器送出的校驗(yàn)值,若校驗(yàn)值和累加值一致,則得到一個(gè)正確標(biāo)志信號(hào),并 將正確標(biāo)志信號(hào)通過編程控制器發(fā)送給燒寫器;若校驗(yàn)值和累加值不一致,則得到一個(gè)錯(cuò) 誤標(biāo)記信號(hào),并將錯(cuò)誤標(biāo)志信號(hào)通過編程控制器發(fā)送給燒寫器,燒寫器根據(jù)返回的標(biāo)志信 號(hào)來判斷寫入的數(shù)據(jù)是否正確,如果接收到正確標(biāo)志信號(hào),則判斷數(shù)據(jù)燒錄正確,如果接收 到錯(cuò)誤標(biāo)志信號(hào),則判斷數(shù)據(jù)燒錄失效。
[0007] 優(yōu)選的:上述步驟(4)中的累加校驗(yàn)單元對(duì)可編程存儲(chǔ)器中的數(shù)據(jù)進(jìn)行讀取累加 校驗(yàn)的方式有兩種。
[0008] 第一種方式是進(jìn)行當(dāng)前地址編程后即讀出給累加校驗(yàn)單元進(jìn)行累加計(jì)算累加值; 當(dāng)字節(jié)或字編程時(shí)間加上讀取時(shí)間小于等于數(shù)據(jù)串行移位時(shí)間時(shí),采用的是此種方式,數(shù) 據(jù)的移位、編程、讀取、地址遞增采用流水線方式進(jìn)行,在進(jìn)行當(dāng)前數(shù)據(jù)移位時(shí),編程控制器 進(jìn)行對(duì)上一次移位數(shù)據(jù)進(jìn)行編程和讀取動(dòng)作,累加校驗(yàn)單元執(zhí)行對(duì)當(dāng)前讀取數(shù)據(jù)進(jìn)行累加 計(jì)算,累加計(jì)算后當(dāng)前地址加1,執(zhí)行下一個(gè)數(shù)據(jù)的串行移位,并將上次移位數(shù)據(jù)寫入到數(shù) 據(jù)緩存中。
[0009] 第二種方式是在所有地址編程結(jié)束后,順序讀取所有地址內(nèi)容給累加校驗(yàn)單元進(jìn) 行累加計(jì)算累加值;當(dāng)字節(jié)或字編程時(shí)間加上讀取時(shí)間大于數(shù)據(jù)串行移位時(shí)間時(shí),采用的 是這種方式,編程控制器先對(duì)電路按地址順序進(jìn)行編程,編程結(jié)束后再按地址順序?qū)⒖删?程存儲(chǔ)器的內(nèi)容讀取進(jìn)行累加,最后得到一個(gè)累加值。
[0010] 本發(fā)明的有益效果是:在現(xiàn)有的MCU電路中增加了累加校驗(yàn)單元,能夠?qū)崿F(xiàn)自動(dòng) 校驗(yàn)功能,校驗(yàn)結(jié)束后送出少量的校驗(yàn)數(shù)據(jù)(即正確標(biāo)志信號(hào)或錯(cuò)誤標(biāo)志信號(hào))給燒寫器做 校驗(yàn)確認(rèn)即可,可以節(jié)省回讀校驗(yàn)時(shí)間,能夠提高產(chǎn)品批量編程生產(chǎn)效率。
【附圖說明】
[0011] 圖1,現(xiàn)有技術(shù)四線制燒寫器與MCU電路的連接示意圖; 圖2,現(xiàn)有技術(shù)燒寫器和MCU之間的燒寫和校驗(yàn)回讀時(shí)序圖; 圖3,現(xiàn)有技術(shù)MCU電路內(nèi)部可編程存儲(chǔ)器和MCU電路接口連接圖; 圖4,本發(fā)明MCU電路內(nèi)部可編程存儲(chǔ)器和MCU電路接口連接圖; 圖5,本發(fā)明實(shí)現(xiàn)實(shí)施例一的時(shí)序圖; 圖6,本發(fā)明實(shí)現(xiàn)實(shí)施例二的時(shí)序圖。
【具體實(shí)施方式】
[0012] 下面結(jié)合附圖4-6來說明本發(fā)明的工作原理以及實(shí)現(xiàn)方式。
[0013] 如圖4所示,是本發(fā)明MCU電路內(nèi)部可編程存儲(chǔ)器和MCU電路接口連接圖,該電路 圖中,包括可編程存儲(chǔ)器、數(shù)據(jù)寄存器、地址寄存器(包括地址遞增)、累加校驗(yàn)單元、編程控 制器。所述的編程控制器通過時(shí)鐘和數(shù)據(jù)端口連接配套的燒寫器;所述的編程控制器通過 第二時(shí)鐘(clk2)、串行數(shù)據(jù)輸入輸出端口(dio)、數(shù)據(jù)傳輸方向(dir)端口分別與數(shù)據(jù)寄存 器的時(shí)鐘輸入端口、串行數(shù)據(jù)輸入輸出端口、數(shù)據(jù)傳輸方向輸入端口連接,數(shù)據(jù)寄存器的并 行總線輸入/輸出端連接可編程存儲(chǔ)器的數(shù)據(jù)總線(Data_bus);所述的編程控制器通過第 三時(shí)鐘(clk3)、地址輸入輸出端口(aio)分別連接地址寄存器的時(shí)鐘輸入端、地址輸入端 口,地址寄存器的地址總線輸出端與可編程存儲(chǔ)器的地址總線輸入端連接;所述累加校驗(yàn) 單元的輸入端連接可編程存儲(chǔ)器,其輸出端連接編程控制器,所述數(shù)據(jù)寄存器也與累加校 驗(yàn)單元連接。該電路的工作原理是:所述編程控制器接收配套的燒寫器發(fā)出時(shí)鐘信號(hào)、地址 信息和