新聞中心

ISP和JTAG

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
JTAG是Joint Test Action Group(聯(lián)合測(cè)試行動(dòng)小組)的縮寫,是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE 1149.1兼容),主要用于芯片內(nèi)部測(cè)試。JTAG用來(lái)對(duì)芯片進(jìn)行測(cè)試的基本原理是在器件內(nèi)部定義一個(gè)TAP(Test Access Port;測(cè)試訪問口)通過(guò)專用的JTAG測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、 TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。

TMS:測(cè)試模式選擇。此引腳用來(lái)實(shí)現(xiàn)TAP 控制器各個(gè)狀態(tài)之間的切換。
TCK: 測(cè)試時(shí)鐘。JTAG操作是與TCK 同步的。
TDI:測(cè)試數(shù)據(jù)輸入--需要移位到指令寄存器或數(shù)據(jù)寄存器(掃描鏈)的串行輸入數(shù)據(jù)。
TDO:測(cè)試數(shù)據(jù)輸出-- 自指令寄存器或數(shù)據(jù)寄存器串行移出的數(shù)據(jù)。
現(xiàn)在,JTAG接口還常用于實(shí)現(xiàn)ISP(In-System Programmable;在線編程),對(duì)EEPROM、FLASH等器件進(jìn)行編程和在線調(diào)試。JTAG編程方式是在線編程,傳統(tǒng)開發(fā)流程中先對(duì)芯片進(jìn)行預(yù)編程再裝到板上的模式因此而改變,簡(jiǎn)化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進(jìn)度。
AVR 的JTAG功能(只有部分型號(hào)才有)使得AVR的調(diào)試工作非常簡(jiǎn)單,可以通過(guò)JTAG 接口對(duì)Flash、EEPROM、熔絲位和鎖定位進(jìn)行編程。使用AVR studio軟件和JTAG硬件( AVR JTAG編程器,AVR JTAG仿真器)可以進(jìn)行程序下載(亦即編程)和程序在線調(diào)試。通過(guò)JTAG功能,工程師可以方便的觀察各個(gè)寄存器的變化和程序的運(yùn)行情況,十分適合單片機(jī)的學(xué)習(xí)與系統(tǒng)開發(fā)。
什么是ISP?
ISP是一種通用的程序下載方式,所有AVR單片機(jī)都有ISP下載接口??梢酝ㄟ^(guò)ISP下載線或者STK500把程序下載到單片機(jī)中。ISP下載線成本低廉,制作簡(jiǎn)單,一個(gè)并口ISP下載線只需幾十元即可得到。但是通過(guò)ISP的方式下載程序速度慢并且不能實(shí)現(xiàn)在線的仿真調(diào)試,所以這種編程方式并不適合于單片機(jī)的學(xué)習(xí)與系統(tǒng)開發(fā)。
什么是Debugwire?
為了降低成本和調(diào)試引腳的開銷,ATMEL公司在AVR器件上使用的新的調(diào)試接口——Debugwire。通過(guò)Debugwire的方式,用戶可以實(shí)現(xiàn)程序的在線調(diào)試,調(diào)試方面Debugwire與JTAG相比其主要區(qū)別在于僅使用一根信號(hào)線(RESET),即可完成調(diào)試信息的交互,達(dá)到控制程序流向,執(zhí)行指令以及編程熔絲位的功能,但是在使用中尚需接電源信號(hào):VTref(VCC)、GND。要注意的是,Debugwire不同于JTAG,它只是一種調(diào)試接口,而不是編程接口,也就是說(shuō)不能通過(guò)Debugwire下載程序。
JTAG,ISP,Debugwire的區(qū)別。
JTAG:可以進(jìn)行程序的下載和在線仿真調(diào)試,程序下載速度快。只有部分器件支持。在JTAG使能的前提下程序的下載和仿真無(wú)需進(jìn)行其他設(shè)定即可。
ISP:只能進(jìn)行程序的下載,程序下載速度慢。所有AVR單片機(jī)均支持ISP程序下載。
Debugwire:只能進(jìn)行程序的在線仿真調(diào)試不能進(jìn)行程序的下載。只有比較少的器件支持Debugwire方式仿真。目標(biāo)MCU的ISP功能和debug WIRE功能是互斥的,使能了目標(biāo)MCU的 debug WIRE 功能后ISP功能就無(wú)法使用,使能了ISP功能后debug WIRE功能就無(wú)法使用。

細(xì)說(shuō)ISP和IAP的區(qū)別
ISP:in system programming,
IAP: in applicatin programming 但兩者的操作方式,結(jié)果和應(yīng)用場(chǎng)合有區(qū)別
ISP: 用寫入器將code燒入,不過(guò),芯片可以在目標(biāo)板上,不用取出來(lái),在設(shè)計(jì)目標(biāo)板的時(shí)候就將接口設(shè)計(jì)在上面,所以叫"在系統(tǒng)編程",即不用脫離系統(tǒng);
IAP: 在應(yīng)用編程,有芯片本身(或通過(guò)外圍的芯片)可以通過(guò)一系列操作將code寫入,比如一款支持Iap的單片機(jī),內(nèi)分3個(gè)程序區(qū),1作引導(dǎo)程序區(qū),2作運(yùn)行程序區(qū),3作下載區(qū),芯片通過(guò)串口接收到下載命令,進(jìn)入引導(dǎo)區(qū)運(yùn)行引導(dǎo)程序,在引導(dǎo)程序下將new code內(nèi)容下載到下載區(qū),下載完畢并校驗(yàn)通過(guò)后再將下載區(qū)內(nèi)容復(fù)制到2區(qū),運(yùn)行復(fù)位程序,則Iap完成;
應(yīng)用場(chǎng)合: 1,ISP 程序升級(jí)需要到現(xiàn)場(chǎng)解決,不過(guò)好一點(diǎn)的是不必拆機(jī)器了; 2,IAP 如果有網(wǎng)管系統(tǒng)的話,用網(wǎng)管下載一切搞定,人不用跑來(lái)跑去, 這可能是他們的優(yōu)點(diǎn)或應(yīng)用吧。 典型IAP:IC卡電話機(jī)內(nèi)含V.xx MODEM芯片,MCU自帶引導(dǎo)區(qū),可遠(yuǎn)程下載更新程序。
在線編程目前有兩種實(shí)現(xiàn)方法:在系統(tǒng)編程(ISP)和在應(yīng)用編程(IAP)。ISP一般是通過(guò)單片機(jī)專用的串行編程接口對(duì)單片機(jī)內(nèi)部的Flash存儲(chǔ)器進(jìn)行編程,而IAP技術(shù)是從結(jié)構(gòu)上將Flash存儲(chǔ)器映射為兩個(gè)存儲(chǔ)體,當(dāng)運(yùn)行一個(gè)存儲(chǔ)體上的用戶程序時(shí),可對(duì)另一個(gè)存儲(chǔ)體重新編程,之后將控制從一個(gè)存儲(chǔ)體轉(zhuǎn)向另一個(gè)。ISP的實(shí)現(xiàn)一般需要很少的外部電路輔助實(shí)現(xiàn),而IAP的實(shí)現(xiàn)更加靈活,通??衫脝纹瑱C(jī)的串行口接到計(jì)算機(jī)的RS232口,通過(guò)專門設(shè)計(jì)的固件程序來(lái)編程內(nèi)部存儲(chǔ)器。

ISP,In System Programing
主要是指代芯片的燒寫方式,以往寫片子需要把片子拿下來(lái),離開電路,用 編程器燒,換句話說(shuō),芯片不能不脫離應(yīng)用系統(tǒng)進(jìn)行寫入。
ISP 主要針對(duì)這個(gè)問題,使用JTAG或者串行口(MCU 內(nèi)部有Boot Loader,通過(guò)指定的方式激活之,它可以和PC或其它上位機(jī)通過(guò)串口聯(lián)系,不用使單片機(jī)離開應(yīng)用系統(tǒng)而更新內(nèi)部的程序/設(shè)置)進(jìn)行程序的燒寫操作。
因此,具有ISP 功能的MCU 可以不使用編程器進(jìn)行編程。當(dāng)然,實(shí)現(xiàn)ISP 可能需要一些硬件電路支持,具體的在數(shù)據(jù)手冊(cè)中有說(shuō)明。
IAP,In Application Programing
單片機(jī)內(nèi)部具有一些可擦寫的非易失存儲(chǔ)器,如Flash。在單片機(jī)獨(dú)立運(yùn)行時(shí),不具備IAP 功能的單片機(jī)并不能對(duì)Flash的數(shù)據(jù)進(jìn)行修改,比如,對(duì)自身的某一個(gè)模塊的代碼,數(shù)據(jù)進(jìn)行修改。具備了IAP 功能的MCU ,能夠通過(guò)使用各自公司開發(fā)的技術(shù),對(duì)于自身進(jìn)行修改。
簡(jiǎn)言之:ISP=>修改MCU 內(nèi)部數(shù)據(jù)需要有外部介入;
IAP=>修改MCU 內(nèi)部數(shù)據(jù)可以不用外部介入。
二者可以說(shuō)是數(shù)據(jù)更新的一種實(shí)現(xiàn)機(jī)制。
一般具備ISP 功能后,就不要編程器了,而是使用下載線進(jìn)行編程工作。但是不是說(shuō)他們就一定不支持編程器了,具體型號(hào)具體分析。是否需要仿真器進(jìn)行仿真和是否具備ISP和IAP沒有必然的聯(lián)系。只不過(guò)具備了IAP功能,可以在MCU內(nèi)寫入監(jiān)控程序,模擬一個(gè)仿真器,當(dāng)然,這個(gè)監(jiān)控程序是要消耗資源的,和使用硬件的仿真器還有一定的差異。


1、JTAG是一個(gè)通信標(biāo)準(zhǔn),用于計(jì)算機(jī)和單片機(jī)進(jìn)行實(shí)時(shí)快速通訊。
AVR 的JTAG功能(只有部分型號(hào)才有)使得AVR的調(diào)試工作非常簡(jiǎn)單,可以通過(guò)JTAG 接口對(duì)Flash、EEPROM、熔絲位和鎖定位進(jìn)行編程。
使用AVR studio軟件和JTAG硬件( AVR JTAG編程器,AVR JTAG仿真器)可以進(jìn)行程序下載(編程)和程序在線調(diào)試。
JTAG接口有四個(gè)引腳。以JTAG的術(shù)語(yǔ)來(lái)說(shuō),這些引腳組成了測(cè)試訪問端口TAP。這些引腳是:
TMS:測(cè)試模式選擇。此引腳用來(lái)實(shí)現(xiàn)TAP 控制器各個(gè)狀態(tài)之間的切換。
TCK:測(cè)試時(shí)鐘。JTAG 操作是與TCK 同步的。
TDI: 測(cè)試數(shù)據(jù)輸入--需要移位到指令寄存器或數(shù)據(jù)寄存器(掃描鏈)的串行輸入數(shù)據(jù)。
TDO:測(cè)試數(shù)據(jù)輸出-- 自指令寄存器或數(shù)據(jù)寄存器串行移出的數(shù)據(jù)。

本文引用地址:http://m.butianyuan.cn/article/201611/322862.htm


2、ISP是一種通用的程序下載方式,AVR單片機(jī)都有ISP下載接口??梢酝ㄟ^(guò)ISP下載線或者STK500把程序下載到單片機(jī)中。

ISP下載線成本低廉,制作簡(jiǎn)單,一個(gè)并口ISP下載線只需幾十元即可得到。開發(fā)工具成本低也是AVR單片機(jī)的優(yōu)勢(shì)之一。

JTAG與ISP的區(qū)別和聯(lián)系

區(qū)別:JTAG可以調(diào)試程序,而ISP只能下載程序。

聯(lián)系:同作為AVR程序下載工具,都能把程序從電腦下載到單片機(jī)中。都能對(duì)芯片的熔絲位和鎖定位進(jìn)行編程。

JTAG調(diào)試與普通軟件仿真的區(qū)別和聯(lián)系

聯(lián)系:都可以在計(jì)算機(jī)調(diào)試程序終端看到程序的運(yùn)行效果,都可以設(shè)置斷點(diǎn),單步運(yùn)行,進(jìn)入循環(huán),跳出循環(huán),連續(xù)運(yùn)行等操作。還能實(shí)時(shí)觀察各寄存器的值,IO口狀態(tài)等。



關(guān)鍵詞: ISPJTA

評(píng)論


技術(shù)專區(qū)

關(guān)閉