MSP430系列單片機(jī)的加密熔斷器設(shè)計(jì)
引 言
MSP430系列單片機(jī)是德州儀器(TI)公司推出的一款16位超低功耗單片機(jī)。它能夠在1.8~3.6 V電壓、1 MHz頻率的條件下運(yùn)行,耗電電流在0.1~400μA。在運(yùn)算速度上,MSP430系列單片機(jī)能在8 MHz晶振的驅(qū)動(dòng)下,實(shí)現(xiàn)125 ns的指令周期。16位的數(shù)據(jù)寬度、125 ns的指令周期以及多功能的硬件乘法器相配合,能實(shí)現(xiàn)數(shù)字信號(hào)處理的某些算法(如FFT等)。
在整合方面,MSP430系列單片機(jī)將大量的CPU外圍模塊集成在片內(nèi),有如下一些模塊:看門(mén)狗(WDT)、模擬比較器、串口、硬件乘法器、液晶驅(qū)動(dòng)器、10位/12位/14位ADC、端口0~6、基本定時(shí)器。其中定時(shí)器A、B均帶有多個(gè)捕獲/比較寄存器,同時(shí)可實(shí)現(xiàn)多路PWM輸出;模擬比較器與定時(shí)器配合,可方便地實(shí)現(xiàn)ADC;液晶驅(qū)動(dòng)多達(dá)160筆段;硬件ADC模塊在小于10 μs的速率下實(shí)現(xiàn)10~14位的高速、高精度轉(zhuǎn)換,同時(shí)提供采樣/保持與參考電壓;端口0、1、2能夠接收外部上升沿或下降沿的中斷輸入。
MSP430系列單片機(jī)的開(kāi)發(fā)調(diào)試有多種技術(shù)方案,其中以JTAG和BOOTSTRAP(簡(jiǎn)稱(chēng)“BSL”)方式最為方便。對(duì)于Flash型的MSP430單片機(jī)初期開(kāi)發(fā)進(jìn)行的仿真,只需要1臺(tái)PC機(jī)和1個(gè)JTAG控制器即可實(shí)現(xiàn)。進(jìn)入產(chǎn)品級(jí)開(kāi)發(fā)階段,為了保護(hù)用戶(hù)代碼,燒斷Flash的保護(hù)熔絲以后就無(wú)法再通過(guò)JTAG口訪問(wèn)單片機(jī),這時(shí)用戶(hù)對(duì)Flash中的程序再進(jìn)行檢查或更新就只能通過(guò)BOOT-STRAP進(jìn)行。不用擔(dān)心用戶(hù)代碼會(huì)泄露,BOOTSTRAP提供了32字節(jié)256位的密碼保護(hù),能完全確保代碼的安全性。
1 熔斷加密原理
MSP430系列單片機(jī)采用JTAG(實(shí)際上稱(chēng)為IEEE1149.1或邊界掃描)接口技術(shù),實(shí)現(xiàn)對(duì)單片機(jī)全部存儲(chǔ)器的訪問(wèn),包括程序Flash、ROM、RAM,并可對(duì)其進(jìn)行擦除、讀寫(xiě)。它能用于程序的下載,監(jiān)測(cè)程序使用情況和各個(gè)變量與寄存器的使用情況,并可對(duì)其進(jìn)行修改。JTAG接口需要4根信號(hào)線、地線和電源線。
JTAG接口為程序的調(diào)試、仿真及監(jiān)控帶來(lái)了很大的方便,大大提高了編程效率,縮短了開(kāi)發(fā)周期;但在程序測(cè)試完成轉(zhuǎn)換為產(chǎn)品推向市場(chǎng)時(shí),就必須對(duì)程序代碼進(jìn)行加密處理,防止程序代碼的泄漏。JTAG接口的安全性很差,只要符合JTAG標(biāo)準(zhǔn)的控制器就可以將程序代碼讀出,所以必須禁止JTAG功能。對(duì)于MSP430系列單片機(jī),禁止JTAG功能的途徑是將單片機(jī)內(nèi)部的加密保險(xiǎn)絲熔斷,熔斷后的單片機(jī)就無(wú)法再使用JTAG功能,從而達(dá)到加密程序代碼的目的。
MSP430系列單片機(jī)在上電復(fù)位時(shí)會(huì)通過(guò)TDI/TCLK端對(duì)保險(xiǎn)絲進(jìn)行檢測(cè),當(dāng)保險(xiǎn)絲完好時(shí),在TDI/TCLK和地之間會(huì)有1 mA的電流流過(guò)。保險(xiǎn)絲檢測(cè)出現(xiàn)在上電復(fù)位以后TMS端的第一個(gè)下降沿上,在第二個(gè)下降沿上會(huì)解除保險(xiǎn)絲的檢測(cè),直到下一次的上電復(fù)位再進(jìn)行保險(xiǎn)絲檢測(cè),即在每一次的上電復(fù)位都會(huì)對(duì)保險(xiǎn)絲進(jìn)行檢測(cè)。保險(xiǎn)絲檢測(cè)電流只有在保險(xiǎn)絲檢測(cè)方式時(shí)才會(huì)流過(guò)TDI/TCLK端,當(dāng)檢測(cè)不到保險(xiǎn)絲電流時(shí),JTAG功能就會(huì)失效,且這種加密方式是硬件方式的加密,一旦保險(xiǎn)絲熔斷,JTAG功能就永久失效了,無(wú)法再通過(guò)JTAG口訪問(wèn)單片機(jī),從而保證了單片機(jī)內(nèi)代碼的安全。
評(píng)論