找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3562|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

ISP、IAP、ICP、JTAG、SWD的編程特點!種編程方式區(qū)別總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:456718 發(fā)表于 2018-12-28 17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   電子工程師都知道,半導(dǎo)體技術(shù)發(fā)展迅猛,帶動了各種芯片技術(shù)的不斷升級。在數(shù)據(jù)存儲方面,從最初的掩膜ROM,發(fā)展到現(xiàn)在的Flash技術(shù),存儲技術(shù)的不斷改進,相對應(yīng)的編程技術(shù)也在不斷發(fā)展。
記得老一輩工程師在燒寫51單片機的時候還是用一臺碩大的編程器進行程序下載,而且還是一次性的(OTP),每次都小心謹慎的把代碼調(diào)試了又調(diào)試后才下載看效果。現(xiàn)在簡單到只需一個串口下載器即可實現(xiàn)程序下載,基本不需要考慮編程次數(shù)的問題,一有想法隨時編譯下載更新。
在這個發(fā)展過程中,也誕生了很多編程技術(shù),比如ISP、IAP、ICP,另外還有JTAG編程、SWD編程、UART編程等等。玩單片機的對這些詞應(yīng)該都不陌生,但他們之間有什么區(qū)別呢?首先看下他們的定義:
ISP:InSystem Programing,在系統(tǒng)編程
ICP:InCircuit Programing,在電路編程
IAP:InApplication Programing,在應(yīng)用編程
JTAG編程:通過JTAG協(xié)議進行編程
SWD編程:通過SWD協(xié)議進行編程
UART編程:通過UART進行編程
看似很亂,其實捋清楚他們之間的層次關(guān)系就不會亂了。用個圖來形象表示一下:
從圖上看,ISP和ICP是處于最頂層的技術(shù)。描述的是一種編程結(jié)構(gòu),所用使用到的協(xié)議、通信端口等,不同芯片有不同的定義。
IAP在第二層,是一種編程方式。實現(xiàn)方式是將一段目標(biāo)芯片可執(zhí)行的代碼通過某種通信協(xié)議下載到芯片RAM中并由芯片執(zhí)行,由該代碼實現(xiàn)具體操作以達到編程的目的。這種方式需要芯片支持通過某種通信協(xié)議對芯片的RAM進行讀寫并能控制其CPU。這是在編程結(jié)構(gòu)下的一種編程方式,像AK100Pro、SmartPRO5000U-Plus等燒錄器,都用到了這種編程方式。
最下面的是硬件通信協(xié)議,UART是最早應(yīng)用在單片機里面的串行通信技術(shù)。JTAG和SWD是ARM內(nèi)核芯片興起之后,逐漸流行起來的,這三種技術(shù)描述的是編程過程中硬件層使用的通信協(xié)議,是最底層的一些技術(shù)規(guī)范。
用一個表格來對比這幾種通信協(xié)議的特性:
綜合上面的內(nèi)容,只要UART、JTAG、SWD這些硬件通信協(xié)議能保證電氣連接的規(guī)范性和穩(wěn)定性,那么ISP、IAP就能對芯片正確地編程。

最近在整理客戶的一些疑問,給自己充充電,也跟大家一起學(xué)習(xí)下。
ISP、ICP、IAP三種編程方式區(qū)別:
ISP:In SYSTEM Programing,在系統(tǒng)編程
ICP:In CIRCUIT Programing,在電路編程
IAP:Inapplicating Programing,在應(yīng)用編程
新唐M0提供2種編程模式:ISP和ICP
ISP與ICP的差別
For ISP
(1)MCU必須處于可執(zhí)行程序的狀態(tài) (除了上電,還要接XTAL),且必須預(yù)燒ISP-code(即ISP LDROM固件)在LDROM里面
(2)燒錄范圍只限于APROM,DataFlash或CONFIG (但對使用者來說,應(yīng)該夠了!)
(3)chip在LOCK的狀態(tài)下,仍然可以只更新某一區(qū)塊 (APROM, DataFlash或CONFIG)
(4)因為燒錄的動作取決于ISP-code的寫法,所以給系統(tǒng)設(shè)計者的彈性較大
(5)不需要額外硬件
For ICP
(1)MCU只要處于上電狀態(tài)即可,不必預(yù)燒任何code在MCU里面
(2)燒錄范圍涵蓋整顆MCU,包括APROM, DataFlash, CONFIG, LDROM和 ROMMAP
(3)chip在LOCK的狀態(tài)下,無法只更新某一區(qū)塊,只能在erase-ALL之后,更新某一區(qū)塊,再逐一燒回其它區(qū)塊(因為ICP的本質(zhì)就是走串行接口的WriterMode, chip被LOCK之后,除了erase-ALL,所有燒錄動作皆會被禁止)
(4)因為燒錄純粹是ICP硬件的行為,MCU無法自己更新自己,所以給系統(tǒng)設(shè)計者的彈性較小(例如:無法藉由ICP去實現(xiàn)IAP的功能)
(5)需要其他硬件支持(如NU-LINK等)
什么是 IAP(In-Application PROGRAMMING)
IAP指的是,MCU在運行的狀態(tài)下,利用ISP的機制,不透過外接工具 (例如: ISP Programmer) 的幫忙,去更新APROM, DataFlash或CONFIG.要實現(xiàn)這種功能,
系統(tǒng)必須有取得更新數(shù)據(jù)的能力,例如:處于某一種聯(lián)機的狀態(tài).
(注:有時候,ISP/IAP的分別并不是那么清楚!我之前做得一個系統(tǒng)式通過網(wǎng)絡(luò)服務(wù)器去IAP的)
形象點得描述是:
1、ISP是把房子拆了再重造一間,但是地基保留,那么在造好之前當(dāng)然是不能住人的啦!
2、ICP是對房子地基與房子的整體重構(gòu);
2、IAP是在造好的房子里邊進行一些裝修,當(dāng)然人可以繼續(xù)住啦!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表