MSP430可通過哪些接口進(jìn)行燒寫程序
1、JTAG是利用邊界掃描技術(shù),在430內(nèi)部有邏輯接口給JTAG使用,內(nèi)部有若干個寄存器連接到了430內(nèi)部數(shù)據(jù)地址總線上,所以可以訪問到430的所有資源,包括全地址FLASH、RAM及各種寄存器。可以用于對430的仿真和編程,主要連接線有TMS、TCK、TDI、TDO,430還需要另兩條線路RST、TEST來啟動JTAG命令序列。
本文引用地址:http://m.butianyuan.cn/article/201611/316516.htm2、SBW是SPY-BI-WIRE,可以簡稱為兩線制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一樣可以訪問到430內(nèi)部的所有資源。
注:目前MSP430F5XX系列中也有SBW接口,原理同2系列的SBW。
3、BSL是TI在430出廠時預(yù)先固化到MCU內(nèi)部的一段代碼,該代碼用戶不可讀寫,這有點(diǎn)類似與DSP的bootloader,但又與bootloader有明顯的區(qū)別,BSL只能用于對MCU內(nèi)部的FLASH訪問,不能對其他的資源訪問,所以只能用作編程器接口。BSL通過UART協(xié)議與編程器連接通信。編程器可以發(fā)送不同的通信命令來對MCU的存儲器做不同的操作,可以把這種方式稱為BSL接口。
BSL代碼的啟動有些特殊,一般430復(fù)位啟動時PC指針指向FFFE復(fù)位向量,但可以通過特殊的啟動方式可以使MCU在啟動時讓PC指向BSL內(nèi)部固化的程序。這種特殊的啟動方式一般是由RST引腳與TEST(或TCK)引腳做一個稍復(fù)雜的啟動邏輯后產(chǎn)生。BSL啟動后,就可以通過預(yù)先定義好的UART協(xié)議命令對MCU進(jìn)行讀寫訪問了。
4、一般的MCU都有代碼加密功能,430是如何實(shí)現(xiàn)的呢?外部對430內(nèi)部的代碼讀寫只能通過上述的三種方式,只要把這三種方式都堵上,430的程序不就安全了嗎?所以又引入了熔絲位,熔絲位只存在于JTAG、SBW接口邏輯內(nèi)。當(dāng)熔絲燒斷時(物理破壞,且不可恢復(fù))JTAG與SBW的訪問將被禁止,此時只有BSL可以訪問。而通過BSL對MCU的訪問是需要32個字節(jié)的密碼,該密碼就是用戶代碼的中斷向量表?,F(xiàn)在國內(nèi)有些解密廠商宣傳能夠解密430,原理是通過切片剝離的方法把熔絲位連接上,再通過JTAG或SBW接口讀出目標(biāo)代碼。而BSL則無破解的報告。
仿真器的型號一般支持JTAG、SBW接口,按照其與主機(jī)的連接方式分為UIF(USB接口,支持JTAG、SBW),PIF(并口,只支持JTAG),EZ430(只支持SBW模式,目前還不支持F5XX系列)。
編程器型號有GANG430(RS232串行接口,串口、1拖8,支持JTAG、SBW,不支持BSL),PRGS430-IIIA多功能編程器(支持JTAG、SBW、BSL),這些編程器都可以做離線燒寫,并且支持燒寫熔絲,即脫離計(jì)算機(jī)來對目標(biāo)板燒寫,其中PRGS編程器還支持序列號燒寫方式。另還有專門的BSL編程器,只支持BSL接口,不支持燒寫熔絲。
仿真器既然可以訪問到430內(nèi)部的所有資源,當(dāng)然也可以用做編程器使用,除了使用IAR用源代碼燒寫的方式外,還可以通過專業(yè)的軟件來編程,這類軟件有MSPFET、FET-PRO430等。
TI公司在JTAG、SBW、BSL方面提供了API操作函數(shù),可以利用該函數(shù)來設(shè)計(jì)我們的編程器和仿真器。目前仿真器的技術(shù)較復(fù)雜,而且是由IAR軟件來負(fù)責(zé)升級。編程器在出廠時事先已經(jīng)編程了一段Monitor代碼,利用這段代碼可以實(shí)現(xiàn)在線升級,無論是GANG430編程器還是PRGS編程器均有此功能。
評論