最近看到一個小伙伴問了一個比較基礎的問題,大概就是問:單片機燒錄程序常見方法有哪些?
下面就來說下常見的三種燒錄程序的方法:ISP、IAP和ICP,以及它們的區別。
ISP
ISP:In System Programing,在系統編程。
ISP 是指可以在板級上進行編程,也就是不用拆芯片下來,寫的是整個程序,一般是通過 ISP 接口線來寫。
支持ISP的芯片一般在芯片內部固化了一段(用ISP升級的)boot程序。
比如:使用STC-ISP對STC芯片編程,利用Flash loader對STM32編程等。
ICP
ICP:In Circuit Programing,在電路編程。
ICSP:In-Circuit Serial Programming,在電路串行編程。如:對EEPROM編程等。
ICP編程方式網上各有說法,從字面含義(在電路)來說,所有處于編程的芯片都需要上電,都處于電路中。不嚴格來說利用J-Link、ST-Link、e-Link32等工具進行編程也屬于在電路編程(ICP)。
在維基百科中,ISP(在系統編程),也稱為在電路串行編程(ICSP)。
IAP
IAP:In applicaTIng Programing,在應用編程。在程序運行的過程中進行編程(升級程序,更新固件)。
IAP是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是為了在產品發布后可以方便地通過預留的通信口對產品中的固件程序進行更新升級。 [來自:百度百科]
IAP通信口IAP的通信口有許多種:UART串口、ETH以太網、I2C、SPI......等。按理說只要能傳輸數據的通信口都能實現IAP的功能。
IAP的應該非常廣泛,可以參考我之前分享的一篇文章:STM32官方IAP例程詳細說明,以及Demo演示
ISP 與 IAP 的區別
1.打個比喻吧
1、ISP 是把房子拆了再重造一間,那么在造好之前當然是不能住人的啦!
2、IAP 是在造好的房子里邊進行一些裝修,當然人可以繼續住啦!
2.應用場合
1,ISP 程序升級需要到現場解決,不過好一點的是不必拆機器了;
2,IAP 如果有網管系統的話,用網管下載一切搞定,人不用跑來跑去,
3.ISP 和 IAP 的工作原理
ISP 的實現相對要簡單一些,一般通用做法是內部的存儲器可以由上位機的軟件通過串口來進行改寫。對于單片機來講可以通過 SPI 或其它的串行接口接收上位機傳來的數據并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機接口的這個串口,就可以實現芯片內部存儲器的改寫,而無須再取下芯片。
IAP 的實現相對要復雜一些,在實現 IAP 功能時,單片機內部一定要有兩塊存儲區,一般一塊被稱為 BOOT 區,另外一塊被稱為存儲區。單片機上電運行在 BOOT 區,如果有外部改寫程序的條件滿足,則對存儲區的程序進行改寫操作。如果外部改寫程序的條件不滿足,程序指針跳到存儲區,開始執行放在存儲區的程序,這樣便實現了 IAP 功能。
4.ISP 和 IAP 的優點
ISP 技術的優勢是不需要編程器就可以進行單片機的實驗和開發,單片機芯片可以直接焊接到電路板上,調試結束即成成品,免去了調試時由于頻繁地插入取出芯片對芯片和電路板帶來的不便。
IAP 技術是從結構上將 Flash 存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之后將程序從一個存儲體轉向另一個。
ISP 的實現一般需要很少的外部電路輔助實現,而 IAP 的實現更加靈活,通常可利用單片機的串行口接到計算機的 RS232 口,通過專門設計的固件程序來編程內部存儲器,可以通過現有的 INTERNET 或其它通訊方式很方便地實現遠程升級和維護。
審核編輯 :李倩
-
單片機
+關注
關注
6042文章
44617瀏覽量
637512 -
ISP
+關注
關注
6文章
478瀏覽量
51935 -
IAP
+關注
關注
2文章
164瀏覽量
24348 -
ICP
+關注
關注
0文章
71瀏覽量
12816 -
燒錄
+關注
關注
8文章
266瀏覽量
35683
原文標題:單片機燒錄程序的幾種常見方法
文章出處:【微信號:玩點嵌入式,微信公眾號:玩點嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論