MSP430開發(fā)工具介紹
在MCU項(xiàng)目開發(fā)過(guò)程中,始終有兩個(gè)設(shè)備緊密的聯(lián)系在一起,一個(gè)是仿真器,一個(gè)是編程器。仿真器,顧名思義就是模仿單片機(jī)的功能;編程器就是把程序編寫到單片機(jī)內(nèi)部。
目前公司在MSP430開發(fā)工具方面主要有仿真器、編程器、各類學(xué)習(xí)板、轉(zhuǎn)接板、適配器等。本文將主要介紹這些MSP430工具其特性。
一:仿真器、編程器
IAR和JTAG無(wú)法連接,是怎么回事?這是客戶問(wèn)的問(wèn)題,在論壇中也很常見(jiàn),F(xiàn)AE也有在問(wèn)。我們就從這個(gè)問(wèn)題開始講解吧。
MSP430無(wú)論是仿真還是燒寫程序,一般可以通過(guò):JTAG、SBW、BSL接口進(jìn)行。
1、JTAG是利用邊界掃描技術(shù),在430內(nèi)部有邏輯接口給JTAG使用,內(nèi)部有若干個(gè)寄存器連接到了430內(nèi)部數(shù)據(jù)地址總線上,所以可以訪問(wèn)到430的所有資源,包括全地址FLASH、RAM及各種寄存器。可以用于對(duì)430的仿真和編程,主要連接線有TMS、TCK、TDI、TDO,430還需要另兩條線路RST、TEST來(lái)啟動(dòng)JTAG命令序列。
2、SBW是SPY-BI-WIRE,可以簡(jiǎn)稱為兩線制JTAG,主要有SBWTCK(連接到JTAG接口的7腳TCK)與SBWTDIO(連接到JTAG接口的1腳TDO/TDI),該接口主要用于小于28腳的2系列單片機(jī),因?yàn)?8腳以內(nèi)單片機(jī)的JTAG一般與IO口復(fù)用,為了給用于留有更多的IO資源,才推出SBW接口。SBW同JTAG一樣可以訪問(wèn)到430內(nèi)部的所有資源。
注:目前MSP430F5XX系列中也有SBW接口,原理同2系列的SBW。
3、BSL是TI在430出廠時(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接口。
BSL代碼的啟動(dòng)有些特殊,一般430復(fù)位啟動(dòng)時(shí)PC指針指向FFFE復(fù)位向量,但可以通過(guò)特殊的啟動(dòng)方式可以使MCU在啟動(dòng)時(shí)讓PC指向BSL內(nèi)部固化的程序。這種特殊的啟動(dòng)方式一般是由RST引腳與TEST(或TCK)引腳做一個(gè)稍復(fù)雜的啟動(dòng)邏輯后產(chǎn)生。BSL啟動(dòng)后,就可以通過(guò)預(yù)先定義好的UART協(xié)議命令對(duì)MCU進(jìn)行讀寫訪問(wèn)了。
4、一般的MCU都有代碼加密功能,430是如何實(shí)現(xiàn)的呢?外部對(duì)430內(nèi)部的代碼讀寫只能通過(guò)上述的三種方式,只要把這三種方式都堵上,430的程序不就安全了嗎?所以又引入了熔絲位,熔絲位只存在于JTAG、SBW接口邏輯內(nèi)。當(dāng)熔絲燒斷時(shí)(物理破壞,且不可恢復(fù))JTAG與SBW的訪問(wèn)將被禁止,此時(shí)只有BSL可以訪問(wèn)。而通過(guò)BSL對(duì)MCU的訪問(wèn)是需要32個(gè)字節(jié)的密碼,該密碼就是用戶代碼的中斷向量表?,F(xiàn)在國(guó)內(nèi)有些解密廠商宣傳能夠解密430,原理是通過(guò)切片剝離的方法把熔絲位連接上,再通過(guò)JTAG或SBW接口讀出目標(biāo)代碼。而BSL則無(wú)破解的報(bào)告。
仿真器的型號(hào)一般支持JTAG、SBW接口,按照其與主機(jī)的連接方式分為UIF(USB接口,支持JTAG、SBW),PIF(并口,只支持JTAG),EZ430(只支持SBW模式,目前還不支持F5XX系列)。
編程器型號(hào)有GANG430(RS232串行接口,串口、1拖8,支持JTAG、SBW,不支持BSL),PRGS430-IIIA多功能編程器(支持JTAG、SBW、BSL),這些編程器都可以做離線燒寫,并且支持燒寫熔絲,即脫離計(jì)算機(jī)來(lái)對(duì)目標(biāo)板燒寫,其中PRGS編程器還支持序列號(hào)燒寫方式。另還有專門的BSL編程器,只支持BSL接口,不支持燒寫熔絲。
仿真器既然可以訪問(wèn)到430內(nèi)部的所有資源,當(dāng)然也可以用做編程器使用,除了使用IAR用源代碼燒寫的方式外,還可以通過(guò)專業(yè)的軟件來(lái)編程,這類軟件有MSPFET、FET-PRO430等。
TI公司在JTAG、SBW、BSL方面提供了API操作函數(shù),可以利用該函數(shù)來(lái)設(shè)計(jì)我們的編程器和仿真器。目前仿真器的技術(shù)較復(fù)雜,而且是由IAR軟件來(lái)負(fù)責(zé)升級(jí)。編程器在出廠時(shí)事先已經(jīng)編程了一段Monitor代碼,利用這段代碼可以實(shí)現(xiàn)在線升級(jí),無(wú)論是GANG430編程器還是PRGS編程器均有此功能。
評(píng)論