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