嵌入式技术
编程器就是工具,在进行单片机开发时,你可以编程写了许多代码,只要执行此代码,单片机便依你的指示工作了,但如何将这些代码(或数据)写进单片机内,这就用到编程器了。简单来说:编程器就是代码烧写工具。它既可将代码写进单片机内,也可将代码从单片机内读出(加密情况除外)。
烧写器也叫烧录器、编程器。在***,烧写器也叫烧录器;在大陆,客户之所以叫它为“编程器”,是因为现在英文名为PROGRAMMER,这个英文名与一般编写软件程式的设计师同名,所以就叫“编程器”。烧写器实际上是一个把可编程的集成电路写上数据的工具。烧录器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。
烧写器在功能上可分万用型烧写器、量产型烧写器、专用型烧写器。专用型烧写器价格最低,适用芯片种类较少,适合以某一种或者某一类专用芯片编程的需要,例如仅仅需要对PIC系列编程。全功能通用型一般能够涵盖几乎(不是全部)所有当前需要编程的芯片,由于设计麻烦,成本较高,限制了销量,最终售价极高,适合需要对很多种芯片进行编程的情况。烧写器的英文名为PROGRAMMER,有人叫WRITER,更早期有人叫BURNER,这种机器是用来烧写〔PROGRAM〕一种称为可烧写的IC〔PROGRAMABLE IC〕,可烧写这些IC内部的CELL〔细胞〕资料,造成不同的功能,以前的IC大部份都是固定功能的IC〔DEDICATED ID〕,所以设计者若设计一片电路板必须用上多种不同的固定功能的IC,对大量生产者需准备很多类型的IC,自从可烧录的IC出现后,设计者只要准备一种IC便可把它烧录成不同功能的IC,备料者只采购一种IC即可,备料方便,但须准备烧写器去烧录它。
烧写方式有以下三种:
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的串口下载方式,还有其他单片机的串口编程等等都是这样。
现在大部分都是第三种的,所以如果你想要自己造一个烧写器,你就必须知道bootloader中是怎么握手的,也就是相关的握手协议,这样才能实现程序烧录。早期有人研究过“XTC”的握手协议,你可以百度看看。
全部0条评论
快来发表一下你的评论吧 !