ISP 是In-System Programming(在系統(tǒng)編程)的縮寫,ICP 是In-Circuit Programming(在電路編程)的縮寫。這兩種編程方法使得用戶可以在軟件控制下更新應(yīng)用程序代碼而不從實際終產(chǎn)品上取下MCU。下圖的“Megawin 8051 ISP-ICP Programmer”工具,將這兩個功能集成在一個U 棒體中。它既可以作為ISP 編程器,也可以作為ICP 編程器。另外,由于即將要用于編程的代碼可以存儲在編程器的非易失性存儲器中,因此本編程器也可以在沒有主機(PC)干預(yù)的情況下工作。這個特性在沒有PC 的場合尤其有用
ISP 編程器
當(dāng)做為ISP 編程器的時候,它的功能像主機和目標(biāo)MCU 之間的一座橋梁,主機提供新的編程數(shù)據(jù),而MCU 已寫入引導(dǎo)程序。引導(dǎo)程序就是所謂的“ISP 代碼”,它須預(yù)先寫入目標(biāo)MCU 的ISP 程序區(qū)。當(dāng)上電時,目標(biāo)MCU 從ISP 程序區(qū)啟動并且執(zhí)行ISP 代碼來檢測是否需要進(jìn)行ISP 操作。如果需要,目標(biāo)MCU 將從編程器接收編程數(shù)據(jù)并且使用在系統(tǒng)編程的方法寫入到應(yīng)用程序區(qū)。在ISP 過程完成后,目標(biāo)MCU將會從應(yīng)用程序區(qū)重新引導(dǎo)來運行新的應(yīng)用程序代碼,當(dāng)編程器已經(jīng)從目標(biāo)MCU 拔下的時候。如果不需要ISP 操作,目標(biāo)MCU 將會直接從應(yīng)用程序區(qū)重新引導(dǎo)并以標(biāo)準(zhǔn)模式來運行應(yīng)用程序代碼