MSP下载方式

时间:2022-10-20 05:41:19

MSP430无论是仿真还是烧写程序,一般可以通过:JTAG、SBW、BSL接口进行。

1、JTAG是利用边界扫描技术,在430内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到了430内部数据地址总线上,所以可以访问到430的所有资源,包括全地址

FLASH、RAM及各种寄存器。可以用于对430的仿真和编程,主要连接线有TMS、TCK、TDI、TDO,430还需要另两条线路RST、TEST来启动JTAG命令序列。

2、SBW是SPY-BI-WIRE,可以简称为两线制JTAG,主要有SBWTCK(连接到JTAG接口的7脚TCK)与SBWTDIO(连接到JTAG接口的1脚TDO/TDI),该接口主要用于小于28脚的2系列单片机,因为28脚以内单片机的JTAG一般与IO口复用,为了给用于留有更多的IO资源,才推出SBW接口。SBW同JTAG一样可以访问到430内部的所有资源。

注:目前MSP430F5XX系列中也有SBW接口,原理同2系列的SBW。

3、BSL是TI在430出厂时预先固化到MCU内部的一段代码,该代码用户不可读写,这有点类似与DSP的bootloader,但又与bootloader有明显的区别,BSL只能用于对MCU内部的FLASH访问,不能对其他的资源访问,所以只能用作编程器接口。BSL通过UART协议与编程器连接通信。编程器可以发送不同的通信命令来对MCU的存储器做不同的操作,可以把这种方式称为BSL接口。

BSL代码的启动有些特殊,一般430复位启动时PC指针指向FFFE复位向量,但可以通过特殊的启动方式可以使MCU在启动时让PC指向BSL内部固化的程序。这种特殊的启动方式一般是由RST引脚与TEST(或TCK)引脚做一个稍复杂的启动逻辑后产生。BSL启动后,就可以通过预先定义好的UART协议命令对MCU进行读写访问了。

4、一般的MCU都有代码加密功能,430是如何实现的呢?外部对430内部的代码读写只能通过上述的三种方式,只要把这三种方式都堵上,430的程序不就安全了吗?所以又引入

了熔丝位,熔丝位只存在于JTAG、SBW接口逻辑内。当熔丝烧断时(物理破坏,且不可恢复)JTAG与SBW的访问将被禁止,此时只有BSL可以访问。而通过BSL对MCU的访问是需要32个字节的密码,该密码就是用户代码的中断向量表。现在国内有些解密厂商宣传能够解密430,原理是通过切片剥离的方法把熔丝位连接上,再通过JTAG或SBW接口读出目标代码。而BSL则无破解的报告。

仿真器的型号一般支持JTAG、SBW接口,按照其与主机的连接方式分为UIF(USB接口,支持JTAG、SBW),PIF(并口,只支持JTAG),EZ430(只支持SBW模式,目前还不支持F5XX系列)