新手必看:?jiǎn)纹瑱C(jī)的燒寫(xiě)原理
今天要說(shuō)的不是如何制作燒寫(xiě)接口,而是電腦在通過(guò)接口向單片機(jī)燒寫(xiě)時(shí)(此時(shí)單片機(jī)內(nèi)沒(méi)有程序),電腦是如何通過(guò)接口訪(fǎng)問(wèn)內(nèi)部rom的?對(duì)應(yīng)p口怎么就會(huì)指向單片機(jī)內(nèi)部rom(就像單片機(jī)是一個(gè)rom)?
下面給大家介紹三種方式:
第一種:把單片機(jī)當(dāng)做一個(gè)ROM芯片,早期的單片機(jī)都是如此。
將單片機(jī)放在通用編程上編程時(shí),就像給28C256這樣的ROM中寫(xiě)程序的過(guò)程一樣。只是不同的單片機(jī)使用的端口,編程用的時(shí)序不一樣。
第二種:像AT89S52或AVR單片機(jī)一樣,在單片機(jī)上有SPI接口,這時(shí)用專(zhuān)用的下載線(xiàn)將程序燒寫(xiě)到單片機(jī)中。
這里不同的是,單片機(jī)的CPU除了執(zhí)行單片機(jī)本身的指令之外,還能執(zhí)行對(duì)ROM進(jìn)行操作的特殊指令,如ROM擦除、燒寫(xiě)和校驗(yàn)指令。在編程ROM時(shí),下載線(xiàn)先通過(guò)傳輸這些指令給CPU執(zhí)行(擦除ROM、讀入數(shù)據(jù)、燒寫(xiě)ROM和校驗(yàn)ROM),這樣完成對(duì)單片機(jī)的ROM的燒寫(xiě)。
此外,現(xiàn)在普遍使用的JTAG仿真器也是這樣,單片機(jī)的CPU能執(zhí)行JTAG的特殊指令,完成對(duì)ROM的燒寫(xiě)操作。
第三種:引導(dǎo)程序,即單片機(jī)中已經(jīng)存在了一個(gè)燒寫(xiě)程序。
啟動(dòng)單片機(jī)時(shí)首先運(yùn)行這程序,程序判斷端口狀態(tài),如果符合“要燒寫(xiě)ROM”的狀態(tài)存在,就從某個(gè)端口(串口、SPI等)讀取數(shù)據(jù),然后寫(xiě)入到單片機(jī)的ROM中。如果沒(méi)有“要燒寫(xiě)ROM”的狀態(tài),就轉(zhuǎn)到用戶(hù)的程序開(kāi)始執(zhí)行。像AVR單片機(jī)的bootloader方式、STC的串口下載方式,還有其他單片機(jī)的串口編程等,都是這樣。
來(lái)源:網(wǎng)絡(luò)版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。