MSP430編程器仿真器以及JTAG、SBW、BSL接口的區(qū)別
對(duì)于51系統(tǒng)來(lái)說(shuō),很容易理解編程器和仿真器。
本文引用地址:http://www.ex-cimer.com/article/201608/295110.htm通俗的說(shuō),仿真器是用來(lái)調(diào)試仿真的,編程器是用來(lái)批量生產(chǎn)時(shí)對(duì)MCU進(jìn)行燒寫(xiě)目標(biāo)代碼的。
對(duì)于MSP430來(lái)說(shuō),無(wú)論仿真還是燒寫(xiě)程序一般可以通過(guò):JTAG、SBW、BSL接口進(jìn)行。JTAG、SBW接口可以用于仿真接口,BSL接口不能用于仿真。而編程器則三種接口都支持。
所以并不能說(shuō)JTAG只支持仿真不支持編程,這是概念錯(cuò)誤,JTAG僅僅是一種接口協(xié)議而已。
下面簡(jiǎn)單描述一下三種接口的區(qū)別:
1、 JTAG是邊界掃描技術(shù),其在430內(nèi)部有邏輯接口給JTAG使用,內(nèi)部有若干個(gè)寄存器連接到了430的內(nèi)部數(shù)據(jù)地址總線上,所以可以用JTAG訪問(wèn) 430內(nèi)部的所有資源,包括對(duì)FLASH的讀寫(xiě)操作。所以可以用于對(duì)MSP430的仿真及編程。主要連接線有TMS、TCK、TDI、TDO、RST、 TEST。
2、SBW是SPY-BI-WIRE,可以簡(jiǎn)稱兩線制JTAG,主要用SBWTCK(連接到JTAG仿真器的7腳TCK)與 SBWTDIO(連接到JTAG仿真器的1腳TDO/TDI),該接口主要用于小于28腳的2系列的430單片機(jī),因?yàn)?8腳以內(nèi)的2系列單片機(jī)的 JTAG接口一般與IO口復(fù)用,為了給用戶預(yù)留更多的IO口,才推出了SBW接口。同樣SBW接口可以用于仿真器及編程器。
3、 BSL是TI在對(duì)MSP430出廠時(shí)預(yù)先固化到MCU內(nèi)部的一段代碼,有點(diǎn)類似于DSP的bootloader,但又與bootloader有明顯的區(qū) 別,BSL只能用于對(duì)MCU內(nèi)部的FLASH訪問(wèn),不能對(duì)其他的資源訪問(wèn),所以只能用作編程器接口。BSL通過(guò)UART協(xié)議與編程器連接通信。編程器可以 發(fā)送不同的通信命令來(lái)對(duì)MCU的存儲(chǔ)器做不同的操作。BSL的啟動(dòng)有些特殊,一般430復(fù)位啟動(dòng)時(shí)PC指針指向FFFE復(fù)位向量,但可以通過(guò)特殊的啟動(dòng)方 式可以使MCU在啟動(dòng)是讓PC指向BSL內(nèi)部固化的程序。啟動(dòng)方式一般是由RST引腳與TEST(或TCK)引腳做一個(gè)稍復(fù)雜的啟動(dòng)邏輯后產(chǎn)生。BSL啟 動(dòng)后,就可以對(duì)MCU進(jìn)行訪問(wèn)了。
一般的MCU都有代碼加密功能,430是如何實(shí)現(xiàn)的呢?外部對(duì)430內(nèi)部的代碼讀寫(xiě)只能通過(guò)上述的三種方式,所以又引入了熔絲位,熔絲位只存在于 JTAG、SBW接口邏輯內(nèi)。BSL內(nèi)部沒(méi)有熔絲。當(dāng)熔絲燒斷時(shí)(物理破壞,且不可恢復(fù))JTAG與SBW的訪問(wèn)將被禁止,此時(shí)只有BSL可以訪問(wèn)。而通 過(guò)BSL對(duì)MCU的訪問(wèn)是需要32個(gè)字節(jié)的密碼,該密碼就是用戶代碼的中斷向量表。所以430的加密系統(tǒng)到目前為止尚無(wú)被解密的報(bào)告。
仿真器的型號(hào)一般有UIF(USB接口,支持JTAG、SBW)、PIF(并口,只支持JTAG)、EZ430(USB接口的,只支持SBW模式)
專業(yè)編程器有GANG430(串口、一拖8個(gè),支持JTAG、SBW,不支持BSL);多功能編程器(JTAG、SBW、BSL)。這些編程器都可以做離線燒寫(xiě),即脫離計(jì)算機(jī)來(lái)對(duì)目標(biāo)板燒寫(xiě)。
也可以用仿真器配專業(yè)的軟件來(lái)做編程器,這類軟件有MSPFET、FET-PRO430等。
評(píng)論