in-system programming 在线系统编程
一种无需将存储芯片(如EPROM)从嵌入式设备上取出就能对其进行编程的过程,缩略为ISP。在系统编程需要在目标板上有额外的电路完成编程任务。其优点是,即使器件焊接在电路板上,仍可对其(重新)进行编程。在线系统可编程是Flash存储器的固有特性(通常无需额外的电路),Flash几乎都采用这种方式编程。
ISP技术
Lattice是ISP(在线可编程)技术的发明者(据说Lattice公司最早是由华人创办的),ISP技术极大的促进了PLD产品的发展。
在线系统编程ISP
ISP(In-System Programming)在线系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。ISP技术是未来发展方向。
ISP的工作原理
ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。
ISP的优点
ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。
在系统编程有3种实现方式
1.基于电可擦除存储单元的EEPROM 或Flash技术(譬如CPLD),特点是,掉电数据不丢失,但编程次数有限,编程速度慢;
2.基于SRAM查找表的编程单元(譬如FPGA),特点是,配置次数无限,加电可随时更改逻辑,但掉电后数据即丢失,下次上电需要重新配置;
3.基于反熔丝编程单元(譬如Actel 的FPGA);
4.JTAG方式;