- 相關(guān)推薦
MSP430串行寫入BOOTSTRAP與加密熔斷功能
摘要:BOOTSTRAP用于在MSP430設(shè)計(jì)開發(fā)及系統(tǒng)更新時(shí)對(duì)Flash存儲(chǔ)器的編程。它可以用經(jīng)串口協(xié)議的命令來激活,使得用戶可以通過PC控制MSP430,并實(shí)現(xiàn)數(shù)據(jù)交換。燒斷Flash的熔絲是用來保護(hù)用戶在Flash中的程序代碼。本文主要介紹我們制作的BOOTSTRAP這一開發(fā)工具的功能、軟硬件結(jié)構(gòu)以及熔斷工具的制作方法。引 言
對(duì)于MSP430單片機(jī)的開發(fā)調(diào)試有多種技術(shù)方案,例如EPROM方式、OTP方式、仿真開發(fā)系統(tǒng)方式、JTAG和BOOTSTRAP方式。BOOTSTRAP(又名BootStrap Loader,簡稱BSL)可與另一種Flash仿真工具JTAG控制器配合使用。對(duì)于Flash型的MSP430單片機(jī)初期開發(fā)進(jìn)行的仿真,只需要1臺(tái)PC機(jī)和1個(gè)FET(Flash Emulator Tool)的JTAG控制器即可實(shí)現(xiàn)。進(jìn)入產(chǎn)品級(jí)開發(fā)階段,為了保護(hù)用戶代碼,燒斷Flash的保護(hù)熔絲以后就無法再通過JTAG口訪問單片機(jī),這時(shí)用戶對(duì)Flash中的程序再進(jìn)行檢查或更新就只能通過BOOTSTRAP進(jìn)行。不用擔(dān)心用戶代碼會(huì)泄露,BOOTSTRAP提供了32字節(jié)256位的密碼保護(hù),能完全確保代碼的安全性。
BOOTSTRAP的硬件制作并不費(fèi)力,只要與調(diào)試環(huán)境軟件配合(TI網(wǎng)站提供免費(fèi)下載限制功能的軟件,不過用戶可以輕松地制作完全功能軟件),就能很方便地構(gòu)建自己的開發(fā)環(huán)境。對(duì)于熔斷的方法,從以前TI公布的資料看,只要在功能引腳上施加一個(gè)6.5V左右的電壓數(shù)ms就可以了。當(dāng)然,各類芯片熔斷的方法也有一些差異。但是,除了11x系列的單片機(jī)有人用這種方法試驗(yàn)成功外,對(duì)其余系列的單片機(jī)無法實(shí)現(xiàn),甚至有毀壞芯片的可能,F(xiàn)在,隨著為TI公司的各類FET仿真器及BOOTSTRAP開發(fā)工具的相繼推出,在一篇TI資料中,給出了MSP430熔斷的方案和指令結(jié)構(gòu),這樣,我們用DIY的完全功能開發(fā)調(diào)試系統(tǒng)就可以構(gòu)建成功了。
圖1和圖2
1 BOOTSTRAP的功能與啟動(dòng)
通過BOOTSTRAP可以訪問單片機(jī)的全部存儲(chǔ)器,包括程序Flash、ROM、RAM,并可對(duì)其進(jìn)行擦除、讀寫。它能用于批量下載程序,監(jiān)測(cè)程序使用情況和各個(gè)變量與寄存器的使用情況,并可對(duì)其進(jìn)行修改。因此,使用BOOTSTRAP能夠方便地進(jìn)行軟件升級(jí)。
用戶燒斷Flash熔絲的目的在于保護(hù)程序代碼,通過BOOTSTRAP讀取MSP430,需要32字節(jié)即256位的密碼口令;但是,BOOTSTRAP又表現(xiàn)了其極大的靈活性,其功能分為需要密碼保護(hù)的功能與不需要密碼保護(hù)的功能。其中,受密碼保護(hù)的操作有從MSP430的存儲(chǔ)器中讀數(shù)據(jù)、寫數(shù)據(jù)、Flash段擦除和讀取程序計(jì)數(shù)器;不受密碼保護(hù)的操作就是接收密碼口令與Flash全擦除,擦除之后32個(gè)字節(jié)的密碼口令全為0xFFH。這樣使得用戶的程序代碼受到完全的保護(hù),而且芯片也能保持應(yīng)用的靈活性。
對(duì)于MSP430系列Flash型單片機(jī),依靠RST/NMI引腳與TCK引腳(有的型號(hào)如MSP430F11x1使用TEST引腳)和一定的時(shí)序就進(jìn)入標(biāo)準(zhǔn)的復(fù)位過程,即使用地址0FFFEH處的RESET向量,然后進(jìn)入正常的程序入口。改變RST/NMI引腳與TCK引腳的時(shí)序配合,就可以啟動(dòng)BOOTSTRAP,即地址0C00H處的BSL RESET向量用做程序入口,單片機(jī)執(zhí)行BOOT ROM里的程序。MSP430F13x/14x的正常復(fù)位時(shí)序如圖1所示,BSL復(fù)位時(shí)序如圖2所示。
如果發(fā)生以下情況,則不能啟動(dòng)BSL:
◇ 在RST/NMI引腳保持為低時(shí),TCK引腳上出現(xiàn)的上升沿少于2個(gè);
◇ 當(dāng)RST/NMI引腳電平從低跳變到高時(shí),TCK引腳還是保持為高;
◇ JTAG接口已控制了MSP430的資源;
◇ 因Vcc下降引起POR(復(fù)位)。
退出BOOTSTRAP時(shí),要釋放單片機(jī)的程序計(jì)數(shù)器PC,有兩種情況:一種是在BSL中使用加載PC命令,從指定的程序地址繼續(xù)執(zhí)行;另一種是用標(biāo)準(zhǔn)的RESET序列強(qiáng)制使MSP430用0FFFEH的向量地址開始執(zhí)行程序。
圖3
2 BOOTSTRAP的軟硬件結(jié)構(gòu)
2.1 BOOTSTRAP的硬件結(jié)構(gòu)
BOOTSTRAP硬件完成PC機(jī)和MSP430單片機(jī)通信的接口功能,主要由電源供電、信號(hào)接口和電平轉(zhuǎn)換幾個(gè)部分構(gòu)成。
MSP430采用的是3.3 V電源,BOOTSTRAP可以采用外部給單片機(jī)供電再將電引到BOOTSTRAP板上,或直接利用PC機(jī)串口的電壓再轉(zhuǎn)換成3.3 V的方案。利用PC機(jī)串口電壓的方案由于不需要外部供電,適用于批量下載、修改程序,使用方便。PC機(jī)通過串口和MSP430通信,串口用的是232電平,MSP430單片機(jī)用的是3.3 V的供電系統(tǒng),因此存在一個(gè)電壓轉(zhuǎn)換的問題。對(duì)于電壓轉(zhuǎn)換,TI公司提供兩個(gè)系列的電壓調(diào)整芯片TPS770xx和TPS760xx系列。這兩款芯片都能滿足輸入從 -0.3~13.5 V,穩(wěn)定輸出50 mA 電流1.2~5 V的要求。
BOOTSTRAP使用的信號(hào)線與串口信號(hào)線的對(duì)應(yīng)情況如表1所列。信號(hào)線與MSP430系列引腳的對(duì)應(yīng)情況如表2所列。
表1
表2
信號(hào)線MSP43011x(1)系列F14x/F13x系列F4xx系列TXDP1.1P1.1P1.0TCK不連TCKTCKRXDP2.2P2.2P1.1RSTRST/NMIRST/NMITST/NMITSTTest【MSP430串行寫入BOOTSTRAP與加密熔斷功能】相關(guān)文章:
MSP430與液晶顯示器的串行接口方案03-18
MSP430單片機(jī)與液晶顯示器的串行接口方案設(shè)計(jì)(一)03-07
非對(duì)稱加密算法03-07
為DSP程序的構(gòu)造的加密體制03-18
數(shù)據(jù)加密標(biāo)準(zhǔn)DES的C++實(shí)現(xiàn)03-07
高級(jí)加密標(biāo)準(zhǔn)Rijndael算法的分析及實(shí)現(xiàn)11-23
基于MSP430的極低功耗系統(tǒng)設(shè)計(jì)12-04
基于PKI機(jī)制的公鑰加密體系研究12-08