单片机的烧写原理:
1.把单片机当做一个ROM芯片,早期的单片机都是如此。
将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。
只是不同的单片机使用的端口,编程用的时序不一样。
2.像AT89S52或AVR单片机一样,在单片机上有SPI接口,这时用专用的下载线将程序烧写到单片机中。
这时不同的是,单片机的CPU除了执行单片机本身的指令之外,还能执行对ROM进行操作的特殊指令,如ROM擦除、烧写和校验指令。
在编程ROM时,下载线先通过传输这些指令给CPU执行(擦除ROM、读入数据、烧写ROM、和校验ROM),这样完成对单片机的ROM的烧写。
此外,现在普遍使用的JTAG仿真器也是这样,单片机的CPU能执行JTAG的特殊指令,完成对ROM的烧写操作。
3.引导程序,即单片机中已经存在了一个烧写程序。
启动单片机时首先运行这程序,程序判断端口状态,如果符合“要烧写ROM”的状态存在,就从某个端口(串口、SPI等等)读取数据,然后写入到单片机的ROM中。
如果没有“要烧写ROM”的状态,就转到用户的程序开始执行。
像AVR单片机的bootloader方式、STC的串口下载方式,还有其他单片机的串口编程等等都是这样。