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