找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3656|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:456718 發(fā)表于 2018-12-28 17:17 | 顯示全部樓層 |閱讀模式
   電子工程師都知道,半導(dǎo)體技術(shù)發(fā)展迅猛,帶動(dòng)了各種芯片技術(shù)的不斷升級(jí)。在數(shù)據(jù)存儲(chǔ)方面,從最初的掩膜ROM,發(fā)展到現(xiàn)在的Flash技術(shù),存儲(chǔ)技術(shù)的不斷改進(jìn),相對應(yīng)的編程技術(shù)也在不斷發(fā)展。
記得老一輩工程師在燒寫51單片機(jī)的時(shí)候還是用一臺(tái)碩大的編程器進(jìn)行程序下載,而且還是一次性的(OTP),每次都小心謹(jǐn)慎的把代碼調(diào)試了又調(diào)試后才下載看效果,F(xiàn)在簡單到只需一個(gè)串口下載器即可實(shí)現(xiàn)程序下載,基本不需要考慮編程次數(shù)的問題,一有想法隨時(shí)編譯下載更新。
在這個(gè)發(fā)展過程中,也誕生了很多編程技術(shù),比如ISP、IAP、ICP,另外還有JTAG編程、SWD編程、UART編程等等。玩單片機(jī)的對這些詞應(yīng)該都不陌生,但他們之間有什么區(qū)別呢?首先看下他們的定義:
ISP:InSystem Programing,在系統(tǒng)編程
ICP:InCircuit Programing,在電路編程
IAP:InApplication Programing,在應(yīng)用編程
JTAG編程:通過JTAG協(xié)議進(jìn)行編程
SWD編程:通過SWD協(xié)議進(jìn)行編程
UART編程:通過UART進(jìn)行編程
看似很亂,其實(shí)捋清楚他們之間的層次關(guān)系就不會(huì)亂了。用個(gè)圖來形象表示一下:
從圖上看,ISP和ICP是處于最頂層的技術(shù)。描述的是一種編程結(jié)構(gòu),所用使用到的協(xié)議、通信端口等,不同芯片有不同的定義。
IAP在第二層,是一種編程方式。實(shí)現(xiàn)方式是將一段目標(biāo)芯片可執(zhí)行的代碼通過某種通信協(xié)議下載到芯片RAM中并由芯片執(zhí)行,由該代碼實(shí)現(xiàn)具體操作以達(dá)到編程的目的。這種方式需要芯片支持通過某種通信協(xié)議對芯片的RAM進(jìn)行讀寫并能控制其CPU。這是在編程結(jié)構(gòu)下的一種編程方式,像AK100Pro、SmartPRO5000U-Plus等燒錄器,都用到了這種編程方式。
最下面的是硬件通信協(xié)議,UART是最早應(yīng)用在單片機(jī)里面的串行通信技術(shù)。JTAG和SWD是ARM內(nèi)核芯片興起之后,逐漸流行起來的,這三種技術(shù)描述的是編程過程中硬件層使用的通信協(xié)議,是最底層的一些技術(shù)規(guī)范。
用一個(gè)表格來對比這幾種通信協(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)因?yàn)闊浀膭?dòng)作取決于ISP-code的寫法,所以給系統(tǒng)設(shè)計(jì)者的彈性較大
(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ū)塊(因?yàn)镮CP的本質(zhì)就是走串行接口的WriterMode, chip被LOCK之后,除了erase-ALL,所有燒錄動(dòng)作皆會(huì)被禁止)
(4)因?yàn)闊浖兇馐荌CP硬件的行為,MCU無法自己更新自己,所以給系統(tǒng)設(shè)計(jì)者的彈性較小(例如:無法藉由ICP去實(shí)現(xiàn)IAP的功能)
(5)需要其他硬件支持(如NU-LINK等)
什么是 IAP(In-Application PROGRAMMING)
IAP指的是,MCU在運(yùn)行的狀態(tài)下,利用ISP的機(jī)制,不透過外接工具 (例如: ISP Programmer) 的幫忙,去更新APROM, DataFlash或CONFIG.要實(shí)現(xiàn)這種功能,
系統(tǒng)必須有取得更新數(shù)據(jù)的能力,例如:處于某一種聯(lián)機(jī)的狀態(tài).
(注:有時(shí)候,ISP/IAP的分別并不是那么清楚!我之前做得一個(gè)系統(tǒng)式通過網(wǎng)絡(luò)服務(wù)器去IAP的)
形象點(diǎn)得描述是:
1、ISP是把房子拆了再重造一間,但是地基保留,那么在造好之前當(dāng)然是不能住人的啦!
2、ICP是對房子地基與房子的整體重構(gòu);
2、IAP是在造好的房子里邊進(jìn)行一些裝修,當(dāng)然人可以繼續(xù)住啦!

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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