当设计者在单片机上完成单片机的程序开发后,就需要将程序固化到单片机内部的程序存储器中。当单片机的程序存储器采用 Flash工艺时,则允许设计者可以重复地固化程序到程序存储器中。
显然,设计者可以在本地完成程序的固化,然后将系统交付使用方。但是,也存在另一种情况,当包含有单片机的系统成品交付客户使用后,使用一段时间后需要设计方对产品进行更新,但是由于种种原因设计者又不能到达现场,此时就需要使用其他的更新方式。典型的方式是通过网络的远程更新,因此,我们将本地固化程序的方式称为在系统编程( In system programming,lSP),而将另一种固化程序的方式称为在应用编程( In application programming,IAP)。
(1)ISP(In system programming, 在系统编程)
通过单片机专用的串行编程接口和STC提供专用串口下载器固化程序软件,对单片机勺部的 Flash存储器进行编程。一般来说.实现ISP只需要很少的外部电路。
(2)IAP(In application programming,在应用编程)
IAP技术是从结构上将 Flash存储器映射为两个存储空间。当运行一个存储空间内的用户程序时,用户可对另一个存储空间进行重新编程。然后,将控制权从一个存储空间转移到另一个存储空间。IAP的实现更加灵活。例如,可利用单片机的串行口连接到计算机的RS232口,通过设计者自己专门设计的软件程序来对STC单片机内部的存储器编程。
支持ISP方式的单片机,不一定支持IAP方式。但是,支持IAP方式的单片机,一定支持ISP方式。ISP方式应该是IAP方式的一个特殊的“子集”。
在STC单片中,前缀为STC的单片机,不支持IAP固化程序方式;而前缀为IAP的单片机,则支持IAP固化程序方式。
参考资料:
(1)刘丽等,STC单片机项目实例教程[M].华中科技大学出版社,2019,1-2;
相关文章









