一、ISP是什么
ISP(In-System Programming)在系統(tǒng)可編程,指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。ISP技術(shù)是未來發(fā)展方向。
ISP 的實現(xiàn)相對要簡單一些,一般通用做法是內(nèi)部的存儲器可以由上位機(jī)的軟件通過串口來進(jìn)行改寫。對于單片機(jī)來講可以通過SPI或其它的串行接口接收上位機(jī)傳來的數(shù)據(jù)并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機(jī)接口的這個串口,就可以實現(xiàn)芯片內(nèi)部存儲器的改寫,而無須再取下芯片。
二、ICP是什么
ICP是一種串行編程方式,其通過一根時鐘線和一根數(shù)據(jù)線串行傳輸編程指令及數(shù)據(jù),ICP功能使用芯片的5個管腳()與LCP900連接器上的5個引腳,PCL,PDA,RESET相連(這里V 使用3.3V電壓)。
ICP方式在應(yīng)用中有以下優(yōu)點(diǎn):
在產(chǎn)品發(fā)貨前,可以隨時裝載最新版軟件程序。在開發(fā)過程中,不需將芯片從系統(tǒng)板上取下,即可實現(xiàn)重新編程。不占用程序存儲空間(ISP要占用一定空間駐留ISP服務(wù)程序)。不受串口的影響。三、IAP是什么
IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。
通常在用戶需要實現(xiàn)IAP功能時,即用戶程序運(yùn)行中作自身的更新操作,需要在設(shè)計固件程序時編寫兩個項目代碼,名列前茅個項目程序不執(zhí)行正常的功能操作,而只是通過某種通信管道(如USB、USART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更新;第二個項目代碼才是真正的功能代碼。這兩部分項目代碼都同時燒錄在User Flash中,當(dāng)芯片上電后,首先是名列前茅個項目代碼開始運(yùn)行,它作如下操作:
檢查是否需要對第二部分代碼進(jìn)行更新如果不需要更新則轉(zhuǎn)到執(zhí)行更新操作跳轉(zhuǎn)到第二部分代碼執(zhí)行四、ISP 和 IAP 的工作原理
ISP 的實現(xiàn)相對要簡單一些,一般通用做法是內(nèi)部的存儲器可以由上位機(jī)的軟件通過串口來進(jìn)行改寫。對于單片機(jī)來講可以通過 SPI 或其它的串行接口接收上位機(jī)傳來的數(shù)據(jù)并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機(jī)接口的這個串口,就可以實現(xiàn)芯片內(nèi)部存儲器的改寫,而無須再取下芯片。
IAP 的實現(xiàn)相對要復(fù)雜一些,在實現(xiàn) IAP 功能時,單片機(jī)內(nèi)部一定要有兩塊存儲區(qū),一般一塊被稱為 BOOT 區(qū),另外一塊被稱為存儲區(qū)。單片機(jī)上電運(yùn)行在 BOOT 區(qū),如果有外部改寫程序的條件滿足,則對存儲區(qū)的程序進(jìn)行改寫操作。如果外部改寫程序的條件不滿足,程序指針跳到存儲區(qū),開始執(zhí)行放在存儲區(qū)的程序,這樣便實現(xiàn)了 IAP 功能。
延伸閱讀1:單片機(jī)
單片機(jī)(Single-Chip Microcomputer)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時的4位、8位單片機(jī),發(fā)展到現(xiàn)在的300M的高速單片機(jī)。