历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2020年08月12日 | MSP430单片机的加密熔断器设计

2020-08-12 来源:elecfans

引 言

  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元的编程器,具有非常广阔的应用前景和推广价值。

推荐阅读

史海拾趣

DUBILIER公司的发展小趣事

作为一家领先的电子企业,DUBILIER公司深知其对社会和环境的影响。因此,公司积极履行社会责任,致力于推动可持续发展。公司采取了一系列环保措施,减少生产过程中的废弃物和污染物排放。同时,DUBILIER公司还积极参与公益事业,为社会做出积极贡献。这些努力不仅提升了公司的社会形象,还为公司赢得了更多的尊重和信任。

BILIN公司的发展小趣事

在电子行业的早期,DUBILIER公司以其卓越的技术创新能力脱颖而出。当时,市场上对高可靠性电子元件的需求日益增长,而DUBILIER公司凭借其独特的生产工艺和材料科学,成功研发出了一系列高性能的电阻器和电容器。这些产品不仅满足了市场的需求,还为公司赢得了良好的声誉。通过不断的技术创新,DUBILIER公司逐渐在电子行业中确立了其领导地位。

Fabrimex AG公司的发展小趣事

1995年,Fabrimex GmbH成立,作为电子组装和电源生产的生产公司。这一举措标志着公司进一步向国际化发展迈进。通过设立生产公司,Fabrimex AG能够更好地控制产品质量和生产成本,提高市场竞争力。同时,公司还加强了在全球范围内的销售活动,进一步扩大了市场份额。

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

Fabrimex AG成立于1947年5月19日,总部位于瑞士苏黎世。公司最初进入电子市场是通过收购国际整流器公司(美国)的总代表处,开始涉足半导体产品。随着德州仪器活动的加入,Fabrimex AG逐渐在电子市场中稳固了地位。在这个阶段,公司积极寻求市场机会,通过多元化的产品线和灵活的商业模式,为未来的发展奠定了坚实的基础。

振华(CEC)公司的发展小趣事

为了进一步提升企业的竞争力和市场份额,振华积极实施国际化战略。公司加强与国外企业的合作与交流,积极参与国际市场竞争,通过引进外资、设立海外研发机构等方式,不断拓展海外市场。同时,振华还注重提升产品的国际竞争力,加强与国际标准的对接和认证工作,确保产品能够满足不同国家和地区的市场需求。

明波通信(BWAVE)公司的发展小趣事

随着汽车产业的快速发展,车载电子系统成为了新的增长点。明波通信凭借在通信领域的深厚积累,迅速拓展车载电子系统业务。公司成功开发了车载导航、车载音响系统等项目,并与多家知名汽车厂商建立了合作关系。这一举措不仅为明波通信带来了新的增长点,也进一步巩固了其在电子行业的地位。

问答坊 | AI 解惑

matlab第三课--矩阵的运算!

[size=89%][size=65%]n矩阵与标量运算完成矩阵的每个元素对该标量的运算 [size=89%][size=65%]n运算包含+、-、×、/和乘方等运算 [ 本帖最后由 gaoxiao 于 2009-6-11 21:26 编辑 ]…

查看全部问答>

denis-硬件系统的解析-SPARTAN-6试用报告5

1试用简介 1.1编写目的 本次试用报告主要是针对SPARTAN-6开发板的硬件系统的解析。参与人员:denis22380978 1.2项目背景 本开发板是EEWORLD论坛和赛灵思公司联合提供。这次试用活动主要是针对SPARTAN-6开发板的推广应用。 1.3术语和 ...…

查看全部问答>

紧急求助

谁有用单片机控制GSM模块一短信的方式发送GPS定位数据的设计,或者相似的。。。。紧急需求。。。。不胜感激 有的话请发个人邮箱:huangtao953@163.com…

查看全部问答>

WINCE Activesync 连接问题?

我在用PC机和我的2440开发板做连接的时候,Activesync显示未找到USB设备,请问这是什么原因?…

查看全部问答>

硕士毕业论文选题方向

大家好,我即将开题。现在的环境的是Intel PXA270处理器,平台是wince.net 4.2 或 wince.net6.0。想请大家帮我参考个研究的方向。本来想做SDIO方面的协议驱动编写,可是觉得有点简单。USB和蓝牙方面有个同学做了,所以不便,免得到时冲突。现在想请 ...…

查看全部问答>

请教一个430供电的问题,谢谢!

偶尔看到一个430的电路图,430的VCC和VSS都没接外部电路,用了2个IO口一个用来接电源,一个用来当做GND用,这样的原理是什么?能否有人赐教一下,十分感激。…

查看全部问答>

急招ASIC开发工程师

replyreload += \',\' + 1112477;急招ASIC开发工程师 站内短信,或回复可见 Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

求助:哪位高手有基于lpc2132的ds18b20程序

哪位高手有基于lpc2132的ds18b20程序,我整了好几天,都不成功,哪位高手有这个程序,给我发个,万分感谢!…

查看全部问答>

LC窄带滤波器(LC谐振放大器)

本帖最后由 RF-刘海石 于 2014-8-24 17:22 编辑 大家一看到这个标题想必就不陌生了吧。正是2011年全国大学生电子竞赛的D题,当初本人就是选得这个题目。哪年我记得貌似是唯一的一个队是专科生选择的本科题目(江苏省),全国就不晓得还有没有。那 ...…

查看全部问答>