对于MSP430 来说,无论仿真还是烧写程序一般可以通过:JTAG/SBW/BSL 接口进行,这些并不代表哪个型号的编程器和仿真器,一般JTAG/SBW 接口用于仿真接口,BSL 不能用于仿真,只能用于编程。编程器则三种接口都支持。所以并不能说 JTAG只支持仿真,不支持编程,这是概念错误,JTAG仅仅是一种接口协议而已。下面简单描述一下三种接口的区别:
1、JTAG 是边界扫描技术,其在430内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到430内部的总线上,所以JTAG 可以访问到430的内部所有资源,包括对 FLASH 的读写操作。可以用于编程和仿真接口。主要连接线有TMS/TCK/TDI/TDO/RST/TEST 等。
2、SBW 是SPY-BI-WIRE 的简称。通常称为两线制 JTAG,主要用 SBWTCK 与 SBWTDIO,该接口主要用于小于28脚的430单片机及5系列的单片机。因为28 脚以内的单片机JTAG 接口与通用IO 口复用,为了给用户预留更多的IO,才推出SBW 接口。同样 SBW 接口可以用于仿真器与编程器。
3、BSL 是 TI 在 MSP430 出厂时预先固化到 MCU 内部的一段代码,有点类似与 DSP 的 bootloader,但与bootloader 有明显的区别,BSL 只能用于对MCU 内部的FLASH 访问,不能对访问其他资源。所以只能用作编程器接口。BSL 通过UART协议与编程器连接通信。编程器可以发送不同的通信命令来对 MCU的存储器做不同的操作。BLS 的启动有些特殊,一般430 复位启动时PC 指针指向FFFE 复位向量,但可以通过特殊的启动方式可以使PC 指向BSL 内部固化的程序。启动方式一般由 RST 与TEST(或 TCK)引脚做一个稍复杂的启动逻辑后产生。
4、一般的MCU都有加密功能,430如何实现加密的呢?外部对 430 内部的代码读写只能通过上述的三种方式,所以引入熔丝位,熔丝位只存在与JTAG/SBW 接口逻辑内。BSL 没有熔丝。当熔丝烧断时(物理破坏,且不可恢复)JTAG/SBW 的访问将被禁止,此时只有 BSL 可以访问。而通过 BSL 对 MCU 的访问是需要 32字节的密码,密码就是用户代码的中断向量表。
5、一般的仿真器型号有:UIF(USB 接口,支持JTAG/SBW)、PIF(并口,只支持 JTAG)、EZ430(USB 接口,只支持 SBW 模式)。专业的编程器有 GANG430(串口,一拖 8 个目标板,支持 JTAG/SBW 及烧断熔丝功能);多功能编程器(JTAG/SBW/BSL 及烧断熔丝功能)。这些编程器都可以支持离线烧写,即脱离计算机来对目标板烧写。当然也可以通过特殊的软件用仿真器来烧写,这类软件有 MSPFET、FET-PRO430 等。