在系统中编程,英文简称ISP,即In System Programming,这里的”系统”值的是电路系统。是 Lattice 半导体公司首先提出来的一种让我们能在产品设计、制造过程中的每个环节,甚至在产品卖给最终用户以后,具有对其器件、电路板或整个电子系统的逻辑和功能随时进行重组或重新编程的技术。也就是说给芯片编程的时候不必将芯片移出其运行的电路系统。无论在单片机上,还是在CPLD/FPGA上都得到了广泛的应用。
JTAG,即Joint Test Action Group,是 联合测试行为组 提出的一种边界扫描链的结构。是一种国际标准测试协议(IEEE 1149.1兼容),JTAG主要用于边界扫描测试芯片内部信号,但通过某种方式也可以实现编程,采用JTAG编程的方式其实芯片也不需要离开电路系统。
JTAG用来对芯片进行测试的基本原理是在器件内部定义一个TAP(Test Access Port:测试访问口)通过专用的JTAG测试工具对内部节点进行测试。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
TMS:测试模式选择。用来实现TAP控制器各个状态之间的切换。
TCK:测试时钟输入。JTAG操作是与TCK同步的。
TDI:测试数据输入。数据通过TDI输入JTAG口。
TDO:测试数据输出。数据通过TDO从JTAG口输出
TRST:可选引脚,测试复位,输入引脚,低电平有效,如果JTAG电路不用,可以将其连接到GND。
ISP一般指的是通过SPI接口进行在系统中编程(ISP)。
JTAG则是通过JTAG接口进行在系统中编程。
ISP:只能进行程序的下载,程序下载速度慢。是一种通用的程序下载方式,所以AVR单片机均支持ISP程序下载。(并口ISP下载线、串口ISP下载线)
JTAG:可以进行程序的下载和在线仿真调试,程序下载速度快。现在多数的高级器件都支持JTAG,如CPU、DSP、CPLD、FPGA等)
ISP和JTAG都能把程序从电脑下载到单片机中,都能对芯片的熔丝位和锁定位进行编程。
JTAG调试与普通软件仿真的区别和联系
联系:都可以在计算机调试程序终端看到程序的运行效果,都可以设置断点,单步运行,进入循环,跳出循环,连续运行等操作。还能实时观察各寄存器的值,IO口状态等。
区别:软件仿真,用的是计算机来模拟单片机运行,不是全真的环境,很多时候会出现偏差甚至错误。而用JTAG在线调试,程序本身在单片机内运行,完全真实的硬件环境,更准确的反映程序运行的实际情况,有助于大型程序的调试。
LPC2103对应的ISP引脚为P0.14。
硬件部分注意的地方:
JTAG信号比较多非常难调试,而ISP只需要两个信号,串口又是很熟悉的通信,所以ISP比较好调试。所以,在设计时,应该把P0.14引脚像开发板似的接一个跳线器,可以方便的使能ISP功能。
元器件焊接好后,先测下是否短路,然后用示波器测试一下复位信号和时钟信号是否正常。如果复位信号和时钟信号正常,表示LPC2103(ARM7TDMI-S)芯片焊接没有问题,利用串口(RS-232)进行ISP下载应该就没有问题。
ISP下载成功的话,说明LPC2103能够正常工作的条件都满足了,就可以进行JTAG的调试了。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』