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