当前位置:首页 > 单片机 > 单片机
[导读] 单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU可取出这些指令重新执行。只读存储器(Read Only

单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU可取出这些指令重新执行。只读存储器(Read Only Memory,ROM)中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,
故称只读存储器。向ROM中写入信息称为ROM编程。根据编程方式不同,

  • 掩模ROM.
    在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。这种芯片存储结构简单,集成度高,但是由于掩模工艺成本较高,只适合于大批量生产。

  • 可编程ROM(PROM).
    芯片出厂时没有任何程序信息,用独立的编程器写入。但是PROM只能写一次,写入内容后,就不能再修改。

  • EPROM.
    用紫外线擦除,用电信号编程。在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息,使用编程器可将调试完毕的程序写入。

  • E2PROM(EEPROM).
    用电信号擦除,用电信号编程。对E2PROM的读写操作与RAM存储器几乎没什么差别,只是写入速度慢一些,但断电后仍能保存信息。

  • Flash ROM.
    闪速存储器(简称闪存),是在EPROM和E2PROM的基础上发展起来的一种电擦除型只读存储器。特点是可快速在线修改其存储单元中的数据,改写次数达一万次(ROM都有改写次数),读写速度快,存取时间可达70ns,而成本比E2PROM低得多,因此正逐步取代E2PROM。

注意:更多存储器内容请参考,《电子技术基础》数字部分(第五版) 主编 康华光. 第七章,或者 电工学(第七版)(下册) 主编 秦曾煌 第22章.

烧写器、烧录器、编程器、下载器、仿真器、调试器

单片机编程器(烧写器、烧录器)是用来将程序代码写入存储器芯片或者单片机内部的工具。编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。如下图所示是一个典型的编程器外形。图中黑色的是集成电路插座(也有下载编程器,不用取下芯片,涉及ISP、ICP,后面有介绍),通过拨动手柄可以将置于其中的集成电路芯片锁紧或松开。编程时锁紧以保证接触好,编程完毕松开,可以更换下一片芯片。

当芯片是双列直插形式时,直接插在座子上就可以烧写了,但是如果遇到下图所示的各种封装形式的芯片,又如何烧写呢?一种方法是使用适配器,下图是各种封装芯片所使用的适配器。

下载器(下载线)是将编译好的机器码写进单片机的工具。程序经过编译生成目标代码,然后通过下载软件和下载器下载到单片机的ROM或者Flash中。下载器主要来控制编程时序等。

仿真器(调试器)指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。单片机在体系结构上与PC机是完全相同的,也包括中央处理器,输入输出接口,存储器等基本单元,因而与PC机等设备的软件结构也是类似的。因为单片机在软件开发的过程中需要对软件进行调试,观察其中间结果,排除软件中存在的问题。但是由于单片机的应用场合问题,其不具备标准的输入输出装置,受存储空间限制,也难以容纳用于调试程序的专用软件,因此要对单片机软件进行调试,就必须使用单片机仿真器。单片机仿真器具有基本的输入输出装置,具备支持程序调试的软件,使得单片机开发人员可以通过单片机仿真器输入和修改程序,观察程序运行结果与中间值,同时对与单片机配套的硬件进行检测与观察,可以大大提高单片机的编程效率和效果。(许多仿真器具有下载器的功能)

片内Flash存储器的编程器

Flash存储器是一种电擦除型只读存储器。它的主要特点是在不加电的情况下能长期保持存储的信息,又可快速在线修改其存储单元中的数据,其在线改写功能使单片机的程序改写和固化过程更加简便。目前很多单片机都用Flash作为片内程序存储器。当片内的Flash存储器满足要求时,不必扩展外部程序存储器。

下面讨论如何把已经调试完毕的程序写入AT89S51单片机中的片内Flash存储器。
AT89S51单片机片内4KB的Flash存储器的特点:

  1. 可擦写寿命10,000次

  2. 数据保存时间10年

  3. 最大读取时间150ns,页编程时间10ns

  4. 具有3级加密算法,使得AT89S系列单片机的解密变得不可能,程序的加密性大大加强

AT89S51出厂时,Flash存储器处于全部空白状态(各单元均为FFH),可直接进行编程。若不全为空白状态(单元中有不是FFH的),应首先将芯片擦除后,方可写入程序。(某些单片机出厂前会固化在ROM中一段Bootloader代码,其作用就是在启动操作系统之前进行初始化并引导系统,并能把我们下载在存储器中的程序加载到RAM中运行然后把控制权交还给系统。就好比PC上的BIOS。ROM编程跟Bootloader没有直接关系)

片内Flash存储器有低电压编程(Vpp=5V)和高电压编程(Vpp=12V)两类芯片。低电压编程可用于在线编程,高电压编程与一般常用的EPROM编程器兼容。在AT89S51芯片的封装面上标有低电压编程还是高电压编程的编程标志。不同的单片机的烧写电压,要视数据手册来定。

应用程序在PC中与在线仿真器以及用户目标板一起调试通过后,PC中调试完毕的程序代码文件(.HEX目标文件),必须写入到AT89S51片内的Flash存储器中。目前常用的编程方法主要有两种:一种是使用通用编程器编程,另一种是使用下载型编程器进行编程。

通用编程器

通用编程器即不同的器件(比如不同的公司生产,不同架构)能普遍使用的编程器,它是编程器的功能分类下的一个子类,与之相对的是专用编程器。在硬件上,通用编程器的管脚驱动采用具有各种功能的通用结构,只需更新软件就能支持新的器件,具有很好的灵活性,满足目前和未来的器件需要。通常通用编程器锁紧座的每一个管脚可以用作时钟信号、数据总线、地址总线、控制总线、地线、电源线、VCCQ电压、VPP编程电压、管脚接触不良测量专用总线等等。驱动电压可以从1.8V-25.0V,起码分256级可调。

下载型编程器 (自我理解)

常见的下载型编程器

ISPro下载型编程器、ISP编程器、ICP编程器、ISP-ICP编程器…

几种烧写方式

ICP(In Circuit Programing):在电路编程(单片机通电即可写入程序,包括bootloader)

ISP(In System Programing):在系统编程(单片机通电加上晶振,有bootloader引导的情况下,即可写入应用程序)

IAP(In Application Programing):在应用编程(单片机在正常运行的程序中,内部程序对单片机局部重写数据)

ICP、ISP、IAP详细介绍

ISP是指可以在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。即使芯片焊接在电路板上,只要留出和上位机接口的串行口就能进行烧写。(芯片一般固化了用来ISP升级的boot程序)

IAP同样是在板级上进行编程,MCU获取新代码并对程序的某部分重新编程,即可用程序来改变程序,修改程序的一部分达到升级、消除bug的目的,而不影响系统的其它部分,烧写过程中程序可以继续运行,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。(通常自己编写一个bootloader程序) (注: 有时候, ISP/IAP的分别并不是那么清楚!)

ICP在电路编程,ICP (In-circuit programmer),在电路编程方法允许使用商业编程器来实现编程和擦除功能,而无需将微控制器从系统中移出,可完全由微控器硬件完成,不需要外部引导器。(百度)

ISP、IAP应用场合

1、ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了。

2、IAP 如果有网管系统的话,用网管下载一切搞定,人不用跑来跑去。

在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。 ISP和IAP很相似,都是不需要把芯片从板子上拔出来,就达到了用PC-MCU的编程接口(JTAG、串口、双绞线、SPI等)搞定新版本的升级的目的。MCU内部都是首先执行一段独立的Boot代码(这段Boot代码一般是出厂预置,或使用编程器烧录的,通常只有1k或4k,SST通常是占用一块独立的Block,Philips通常是让BootROM地址与其他Flash重叠,以达到隐藏的效果),Boot负责控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式(如,ether网口),将用户指定的某个在PC上

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备
关闭
关闭