MSP430单片机的加密熔断器设计

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系列单片机的开发调试有多种技术方案,其中以jtag和bootstrap(简称“bsl”)方式最为方便。对于flash型的msp430单片机初期开发进行的仿真,只需要1台pc机和1个jtag控制器即可实现。进入产品级开发阶段,为了保护用户代码,烧断flash的保护熔丝以后就无法再通过jtag口访问单片机,这时用户对flash中的程序再进行检查或更新就只能通过boot-strap进行。不用担心用户代码会泄露,bootstrap提供了32字节256位的密码保护,能完全确保代码的安全性。
1 熔断加密原理
msp430系列单片机采用jtag(实际上称为ieee1149.1或边界扫描)接口技术,实现对单片机全部存储器的访问,包括程序flash、rom、ram,并可对其进行擦除、读写。它能用于程序的下载,监测程序使用情况和各个变量与寄存器的使用情况,并可对其进行修改。jtag接口需要4根信号线、地线和电源线。
jtag接口为程序的调试、仿真及监控带来了很大的方便,大大提高了编程效率,缩短了开发周期;但在程序测试完成转换为产品推向市场时,就必须对程序代码进行加密处理,防止程序代码的泄漏。jtag接口的安全性很差,只要符合jtag标准的控制器就可以将程序代码读出,所以必须禁止jtag功能。对于msp430系列单片机,禁止jtag功能的途径是将单片机内部的加密保险丝熔断,熔断后的单片机就无法再使用jtag功能,从而达到加密程序代码的目的。
msp430系列单片机在上电复位时会通过tdi/tclk端对保险丝进行检测,当保险丝完好时,在tdi/tclk和地之间会有1 ma的电流流过。保险丝检测出现在上电复位以后tms端的第一个下降沿上,在第二个下降沿上会解除保险丝的检测,直到下一次的上电复位再进行保险丝检测,即在每一次的上电复位都会对保险丝进行检测。保险丝检测电流只有在保险丝检测方式时才会流过tdi/tclk端,当检测不到保险丝电流时,jtag功能就会失效,且这种加密方式是硬件方式的加密,一旦保险丝熔断,jtag功能就永久失效了,无法再通过jtag口访问单片机,从而保证了单片机内代码的安全。
2 熔断加密的时序及方法
msp430单片机保险丝的熔断必须在特定的条件下进行。
简单地将6.5 v电压加在tdi/tclk端上时,是无法熔断保险丝的,必须在一定的时序及指令下才可以完成。下面是熔断保险丝所需的指令及时序:
ir_shift(“ir_cntrl_sig_16bit”)为切换jtag进入16位数据接收模式;dr_shift_in(0x7201)为将tdo信号切换为tdi功能,tdi信号释放,为接入熔断电压vpp作准备;ir_shift(“ir_prepare_blow”)为设置msp430进入保险丝熔断方式;msdelay(1)为延时1 ms,同时连接熔断电压vpp至tdi信号端;tr_shift(“ir_bx_blow”)为执行保险丝熔断;medelay(1)为延时1ms,同时断开tdi端的熔断电压vpp,tdi信号端切换回tdi功能,jatg状态机复位。保险丝加密熔断完成。
3 熔断加密器的设计与实现
熔断加密器可以实现对msp430 flash单片机的编程、烧熔丝和bsl下载。可以选择编程后是否熔断芯片内熔丝,进行加密;可自行设置密码,彻底保护芯片内容;可进行完全擦除编程和保留编程,通过bsl方式读出目标cpu内的代码。
熔断加密器的硬件采用了msp430f1111a作为系统芯片,实现对目标jtag口的通信控制、熔断电压vpp的加载与分离、目标msp430单片机中保险丝熔断指令的控制。在电源部分,熔断电压vpp及100 ma的熔断电流是在7806三端稳压芯片与地之间串接二极管in4001来实现的;熔断电压vpp的加载与分离通过继电器的通断来实现,并使用了3个led分别指示目标单片机保险丝未熔断、正在熔断及已熔断的状态。
软件部分是通过c语言来实现熔丝加密器与目标单片机之间的数据通信及指令控制的。
 以下为加密熔断器主程序:
本加密熔断器在实际应用中取得了非常理想的效果,可对msp430系列单片机的保险丝进行可靠而有效的熔断,完全保护了msp430单片机中的代码安全。整个系统的成本控制在30元左右,在实际的使用中达到非常好的经济效益和社会效益。
结 语
本系统可应用于整个msp430系列单片机,具有功能强大、性能可靠、成本低、体积小等特点。完全可以替代目前市场上售价高达1000~2000元的编程器,具有非常广阔的应用前景和推广价值。

无人多旋翼飞行器如何应用于公路桥梁检测、线路巡检中
针对华为的禁令,导澳大利亚运营商放弃进一步建设旗下的移动网络建设
LED显示屏“触”之可及可以实现吗
TFT LCD、OLED和Micro LED 的区别
RECOM全新的微型封装稳压型DC/DC转换器
MSP430单片机的加密熔断器设计
iOS11.1 beta2下周将带来表情热潮,苹果又给你找了一个升级iOS11的理由
小米6真的来了,小米6最新消息:金色版小米6售价3999元,现身京东
RISC-V架构“冲击”,ARM面临增长瓶颈
即将揭幕的GTC看点有哪些?最近半导体股票大涨的背后原因是什么?
Android apk三大瘦身步骤
昆明机场发生多起无人机事件 公安部介入调查
如何使用运算放大器设计一个简单的12V电池电量指示器
4月智能音箱继续增长,品牌突围效果明显
引流系统组件泄漏测试仪检测原理有哪些?
美国西南航空计划将波音737MAX客机的复飞计划推迟一个月
维控人机界面LEVI-430T,LX3V-1212MR系列PLC主机在研磨机上的应用
意法半导体提供全球首款开放式通信标准智能电表IC
一文解析硬件软件接口(HSI)
MAX16068 6通道、闪存可配置系统管理器,提供非易失故