我要问的不是如何制作烧写接口。 而是,电脑在通过接口向单片机烧写时(此时单片机 内没有程序),电脑是如何通过接口访问内部rom的对应p口怎么就会指向单片机内部rom(就像单片机是一个rom?)
有三种方式:
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的串口下载方式,还有其他单片机的串口编程等等都是这样。