当软件开发人员使用KeilμVision集成开发环境完成软件代码的编写和调试后,就需要使用STC公司提供的STC-ISP软件工具将最终的程序固化到8051单片机内部的程序存储器中。
很明显,在本地完成程序的固化后,就可以将基于STC 8051单片机开发的电子产品(系统)交付给最终的用户。但是,也存在另一种情况,当最终的电子产品交付客户使用一段时间后,需要对产品的软件程序进行更新,但是由于种种原因设计人员又不能到达现场更新产品软件,此时就需要使用其他更新方式。例如,通过网络进行远程更新。
因此,将在本地固化程序的方式称为在系统编程(In System Programming,ISP);而将另一种固化程序的方式称为在应用编程(In Application Programming,IAP)。
通过单片机专用的串行编程接口和STC提供的专用串口下载器固化程序软件,对单片机内部的Flash存储器进行编程。一般来说,实现ISP只需要很少的外部电路的辅助。
IAP技术是从结构上将Flash存储器映射为两个存储空间。当运行一个存储体空间的用户程序时,可对另一个存储空间进行重新编程。然后,将控制权从一个存储空间切换到另一个存储空间。与ISP相比,IAP的实现方式更加灵活。例如,可利用USB电缆和USB-UART转换芯片将STC单片机接到计算机的USB接口(在计算机上会虚拟出一个串口),并且通过软件开发人员自行开发的软件工具对STC单片机内部的存储器进行编程。
也可以这样理解,支持ISP方式的单片机,不一定支持IAP方式;但是,支持IAP方式的单片机,一定支持ISP方式。ISP方式应该是IAP方式的一个特殊的“子集”。
注:(1)关于ISP和IAP的详细原理,将在后续章节进行说明。
(2)在STC单片中,前缀为STC的单片机,不支持IAP固化程序方式;而前缀为IAP的单片机,支持IAP固化程序方式。
思考与练习2-1: 在STC单片机中,ISP表示 ,IAP表示 。