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

发布者:Xingfu6666最新更新时间:2020-08-12 来源: elecfans关键字: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元的编程器,具有非常广阔的应用前景和推广价值。

关键字:MSP430  单片机  加密熔断器 引用地址:MSP430单片机的加密熔断器设计

上一篇:基于MSP430单片机的PID参数整定仪
下一篇:利用捕获比较功能实现MSP430与微机串行通信的研究

推荐阅读最新更新时间:2024-11-06 04:03

单片机疑似烧坏
做语音识别(LD3320的芯片)的时候,单片机烧程序的时候特别困难,坏了3个单片机的开发板,换了几条USB转串口线,重装了几次驱动,依然烧不进去,重启电脑可以解决问题,重装驱动也OK,不过要看人品,有时候重装一次可以烧得进去,很多时候确要弄很久。这样效率超级低,怎么进行开发工作啊? 后来搞了我一天,试一试加一个复位电路看能否解决问题。 果然,是复位电路的问题,加了之后烧程序完全没有压力的。 其实,单片机出问题,莫急,先从三个方面检查一下: 1、电源 看单片机VCC和GND管脚有没有虚焊,或者找一下有一些管脚通电后会输出稳定电压的,验证一下电源有没有接上。 2、晶振 我用的单片机是贴片式的,因此管脚特别小,晶振不排除有虚焊现
[单片机]
<font color='red'>单片机</font>疑似烧坏
基于单片机的智能家居安防系统设计方案
   1 引言   现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。而把DTMF 技术应用于安防系统, 不需要专门的布线, 不占用无线电频率资源, 没有电磁污染。文中设计了一种基于CAN 总线和DTMF技术的以AT89S52单片机为核心的新型智能 家居安防 系统, 使原来小区安防系统的实时性和可靠性有了一个新层次的提高。本系统可以对整个家居的安全环境进行实时监控, 监控的范围包括室内防盗、火灾报警、煤气泄露等一系列不安全因素。一旦有上述事故发生, 该报警系统就会发出相应的报警信息, 用语音播出警情类别, 向远方用户和相关部门提供警情语音。  
[单片机]
基于<font color='red'>单片机</font>的智能家居安防系统设计方案
一种基于51单片机的可控成像系统设计
0 引言 光学成像系统是将光学信息转化为人们更易处理的电子信息的重要工具,特别对于智能监控、医学诊断及消费电子领域,其重要性就更大。随着成像系统功能的复杂化,摄像机的便携易控性成了设计中需考虑的重要要素。自从1969年Willard S.Boyle和George E.Smith发明电荷耦合器(CCD)以来,它一直就是光学成像系统的首选传感器。相对于目前发展快速CMOS图像传感器,它仍然具备噪声低,动态范围高的优点。而CCD的模拟前端决定了采集信号的质量,对整个系统信噪比有着决定性的影响,因此对它的噪声抑制是设计中的重点。完成各种图像处理功能的模块是成像系统的核心,针对低照度视频信号成像的设计要求,采用专业信号处理芯片进行各种处理
[单片机]
一种基于51<font color='red'>单片机</font>的可控成像系统设计
PIC系列单片机应用设计与实例
   一.引言      在微 控制器 (Microcontroller)应用领域日益广泛的今天,各个领域的应用也向微控制器厂商提出了更高要求,希望速度更快、功耗更低、体积更小、价格更廉以及组成系统时所需要的外围器件更少;随着越来越多的各种非电子工程技术人员的应用需求,他们想把微控制器作为嵌入式部件应用到自己熟悉的领域中,还提出简单易学易用的要求。用户的需求就是厂商的市场和动力,老的半导体厂商顺应潮流不断推出新品种,新的半导体厂商则后来居上,把越来越多的外围接口器件集成到片内,功能越来越强、性能越来越高。迄今至少也有35家国外半导体厂商的微控制器进入中国市场。在这众多的五彩缤纷的微控制器中,美国Microchip技术公司的PIC系
[单片机]
51单片机PID算法程序(三)增量式PID控制算法
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的 增量算法 。 增量式PID控制算法可以通过(2-4)式推导出。由(2-4)可以得到控制器的第k-1个采样时刻的输出值为: (2-5) 将(2-4)与(2-5)相减并整理,就可以得到增量式PID控制算法公式为: (2-6) 其中 由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(2-6)求出控制量。 增量式PID控制算法与位置式PID算法(2-4)相比,计算量小得多,因此在实际中得到广泛的应用。
[单片机]
51<font color='red'>单片机</font>PID算法程序(三)增量式PID控制算法
单片机定时器设置的门铃
这是一个单片机定时器设置的门铃程序,附带源代码及文档,用定时器设计的门铃说明:按下按键时蜂鸣器发出叮咚的门铃声。 程序 /* 下载程序后按键K1按下就会触发蜂鸣器门铃“叮咚”响 */ #include reg52.h typedef unsigned char u8; typedef unsigned int u16; sbit beep=P1^5; sbit k1=P3^1; u8 ding,dong,flag,stop; u16 n; void delay(u16 i) { while(i--); } void time0init() //定时器0初始化 { TMOD=0X01; //
[单片机]
单片机动太扫描接口及程序设计
单片机动太扫描接口及程序设计 什么叫动态扫描显示 在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并
[单片机]
争霸32位MCU市场,巨头上演巅峰对决
  就在一些市场调研机构纷纷传来8位MCU市场增长放缓消息的同时,32位MCU却丝毫没有受到任何影响,依然保持着强劲的增长势头。WSTS的统计数据显示,2007年32位MCU市场较2006年增长了13.6%,市场份额达31.9亿美元,与过去五年相比,市场增幅超过一倍,2007年出货量更是占到了全球MCU市场的30.8%。与此同时,受应用需求推动,市场对能实现系统整体低功耗化的产品需求日益加强。提供灵活、高成本效益以及低功耗的解决方案日渐成为一种趋势,而Microchip携其基于MIPS32内核的产品进军32位MCU领域,无疑又引发了一场MCU内核的争夺战,新一轮的酣战正在上演。   在32位MCU内核市场,ARM仍然一枝独秀。
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved