1、MSP430 单片机的加密熔断器设计单片机相关技术:http:/ 言 MSP430 系列单片机是德州仪器(TI) 公司推出的一款 16 位超低功耗单片机。它能够在1.83.6 V 电压、1 MHz 频率的条件下运行,耗电电流在 0.1400A。在运算速度上,MSP430 系列单片机能在 8 MHz 晶振的驱动下,实现 125 ns 的指令周期。16 位的数据宽度、125 ns 的指令周期以及多功能的硬件乘法器相配合,能实现数字信号处理的某些算法(如 FFT 等)。在整合方面,MSP430 系列单片机将大量的 CPU 外围模块集成在片内,有如下一些模块:看门狗(WDT)、模拟比较器、串口、硬件乘
2、法器、液晶驱动器、 10 位12 位14 位ADC、端口 06、基本定时器。其中定时器 A、B 均带有多个捕获比较寄存器,同时可实现多路 PWM 输出;模拟比较器与定时器配合,可方便地实现 ADC;液晶驱动多达 160笔段;硬件 ADC 模块在小于 10 s 的速率下实现 1014 位的高速、高精度转换,同时提供采样保持与参考电压;端口 0、1、2 能够接收外部上升沿或下降沿的中断输入。MSP430 系列单片机的开发调试有多种技术方案,其中以 JTAG 和 BOOTSTRAP(简称“BSL”)方式最为方便。对于 Flash 型的 MSP430 单片机初期开发进行的仿真,只需要 1 台PC 机和
3、 1 个 JTAG 控制器即可实现。进入产品级开发阶段,为了保护用户代码,烧断Flash 的保护熔丝以后就无法再通过 JTAG 口访问单片机,这时用户对 Flash 中的程序再进行检查或更新就只能通过 BOOT-STRAP 进行。不用担心用户代码会泄露,BOOTSTRAP 提供了 32 字节 256 位的密码保护,能完全确保代码的安全性。1 熔断加密原理MSP430 系列单片机采用 JTAG(实际上称为 IEEE1149.1 或边界扫描)接口技术,实现对单片机全部存储器的访问,包括程序 Flash、ROM 、RAM,并可对其进行擦除、读写。它能用于程序的下载,监测程序使用情况和各个变量与寄存器
4、的使用情况,并可对其进行修改。JTAG 接口需要 4 根信号线、地线和电源线。具体信号线的定义如表 1 所列。 JTAG 接口为程序的调试、仿真及监控带来了很大的方便,大大提高了编程效率,缩短了开发周期;但在程序测试完成转换为产品推向市场时,就必须对程序代码进行加密处理,防止程序代码的泄漏。JTAG 接口的安全性很差,只要符合 JTAG 标准的控制器就可以将程序代码读出,所以必须禁止 JTAG 功能。对于 MSP430 系列单片机,禁止 JTAG 功能的途径是将单片机内部的加密保险丝熔断,熔断后的单片机就无法再使用 JTAG 功能,从而达到加密程序代码的目的。具体的 JTAG 及加密保险丝结构
5、框图如图 1 所示。 MSP430 系列单片机在上电复位时会通过 TDITCLK 端对保险丝进行检测,当保险丝完好时,在 TDITCLK 和地之间会有 1 mA 的电流流过。保险丝检测出现在上电复位以后TMS 端的第一个下降沿上,在第二个下降沿上会解除保险丝的检测,直到下一次的上电复位再进行保险丝检测,即在每一次的上电复位都会对保险丝进行检测。保险丝检测电流只有在保险丝检测方式时才会流过 TDITCLK 端,当检测不到保险丝电流时,JTAG 功能就会失效,且这种加密方式是硬件方式的加密,一旦保险丝熔断,JTAG 功能就永久失效了,无法再通过 JTAG 口访问单片机,从而保证了单片机内代码的安全
6、。2 熔断加密的时序及方法MSP430 单片机保险丝的熔断必须在特定的条件下进行。表 2 列出了熔断保险丝所需的条件及具体参数。 在满足表 2 所列的条件下,简单地将 6.5 V 电压加在 TDITCLK 端上时,是无法熔断保险丝的,必须在一定的时序及指令下才可以完成。下面是熔断保险丝所需的指令及时序:IR_SHIFT (“IR_CNTRL_SIG_16BIT”)为切换 JTAG 进入 16 位数据接收模式;DR_SHIFT_IN(0x7201)为将 TDO 信号切换为 TDI 功能,TDI 信号释放,为接入熔断电压 Vpp 作准备;IR_SHIFT(“IR_PREPARE_BLOW”)为设置
7、 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 内的代码。
8、熔断加密器的硬件采用了 MSP430F1111A 作为系统芯片,实现对目标 JTAG 口的通信控制、熔断电压 Vpp 的加载与分离、目标 MSP430 单片机中保险丝熔断指令的控制。在电源部分,熔断电压 Vpp 及 100 mA 的熔断电流是在 7806 三端稳压芯片与地之间串接二极管 IN4001 来实现的;熔断电压 Vpp 的加载与分离通过继电器的通断来实现,并使用了 3个 LED 分别指示目标单片机保险丝未熔断、正在熔断及已熔断的状态。熔断加密器系统控制部分的电路如图 2 所示。 软件部分是通过 C 语言来实现熔丝加密器与目标单片机之间的数据通信及指令控制的。具体软件流程如图 3 所示。 以下为加密熔断器主程序: 本加密熔断器在实际应用中取得了非常理想的效果,可对 MSP430 系列单片机的保险丝进行可靠而有效的熔断,完全保护了 MSP430 单片机中的代码安全。整个系统的成本控制在30 元左右,在实际的使用中达到非常好的经济效益和社会效益。结 语本系统可应用于整个 MSP430 系列单片机,具有功能强大、性能可靠、成本低、体积小等特点。完全可以替代目前市场上售价高达 10002000 元的编程器,具有非常广阔的应用前景和推广价值。