产品概述

单片机iap 单片机ISP,IAP,ICP,JTAG,SWD编程技术介绍

小编 2024-10-05 产品概述 23 0

单片机ISP、IAP、ICP、JTAG、SWD编程技术介绍

随着科学技术的不断发展,单片机的编程技术也是越来越丰富了。简单统计一下目前大家比较熟悉的编程方法有以下几种:ISP、IAP、ICP、JTAG、SWD、UART。那么这些编程技术都有什么特点,又都是什么原理呢?今天我们就来给大家普及一下。

IAP

IAP的英文全称是In Application Programming,从英文字面意思来翻译的话,就是“在应用编程”.

IAP的运行原理是:指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。在实现IAP功能时,单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了IAP功能。

IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

IAP的实现非常灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器,可以通过现有的INTERNET或其它通讯方式很方便地实现远程升级和维护。

ISP编程

ISP的英文全称是In System Programming,英文字面意思为:在系统编程,ISP技术可以对已经焊接到电路板上的单片机进行编程, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。

ISP的实现一般需要很少的外部电路辅助实现。

ICP编程

ICP的英文全称是In Circuit Programing,意为:在电路编程。如果单片机已经焊接到电路上,但又需要再次烧写程序,如果拆卸单片机会非常不方便,这时就用到ICP编程,这一点与ISP比较像。

ICP编程的特点是:MCU只要处于上电状态即可,不必预烧任何code在MCU里面;(2)烧录范围涵盖整颗MCU,包括APROM, DataFlash, CONFIG, LDROM和 ROMMAP。

JTAG编程

JTAG的英文全称是Joint Test Action Group(联合测试行为组织);JTAG 主要应用于:电路的边界扫描测试和可编程芯片的在线系统编程。

JTAG 也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现今多数的高级器件都支持JTAG协议,如DSP、FPGA、ARM、部分单片机器件等。标准的JTAG接口是4线:JTAGTMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。

JTAG口会因为单片机的不同,其接口数量也不等,一般有10,14,20引脚的JTAG接口。

SWD编程

SWD最大的好处就是节省PCB 的空间和布线难度,SWN采用J-LINK编程模式。

SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。

在单片机 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚。

在板子的体积有限的时候推荐使用 SWD 模式, 它需要的引脚少, 当然需要的 PCB 空间就小啦! 比如你可以选择一个很小的 2.54 间距的 5 芯端子做仿真接口。

UART编程

顾名思义,UART编程是利用串口进行编程。

说了这么多,可能把大家搞糊涂了,下面我们通过一张图来说明一下这几重编程方式的层次关系

从图上看,ISP和ICP是处于最顶层的技术。描述的是一种编程结构,所用使用到的协议、通信端口等,不同芯片有不同的定义。

IAP在第二层,是一种编程方式。实现方式是将一段目标芯片可执行的代码通过某种通信协议下载到芯片RAM中并由芯片执行,由该代码实现具体操作以达到编程的目的。这种方式需要芯片支持通过某种通信协议对芯片的RAM进行读写并能控制其CPU。这是在编程结构下的一种编程方式,像AK100Pro、SmartPRO 5000U-Plus等烧录器,都用到了这种编程方式。

最下面的是硬件通信协议,UART是最早应用在单片机里面的串行通信技术。JTAG和SWD是ARM内核芯片兴起之后,逐渐流行起来的,这三种技术描述的是编程过程中硬件层使用的通信协议,是最底层的一些技术规范。

用一个表格来对比这几种通信协议的特性:

综合上面的内容,只要UART、JTAG、SWD这些硬件通信协议能保证电气连接的规范性和稳定性,那么ISP、IAP就能对芯片正确地编程。

单片机的组成以及分类和指标

(此处已添加圈子卡片,请到今日头条客户端查看)

单片机的组成

单片机又称单片微控制器,它把一个计算机系统集成到一块芯片上,主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串行口、A/D转换器以及脉冲宽度调制(PWM)等,如图1-1所示。

▲图1-1 单片机组成框图

程序存储器(ROM)

ROM用来存放用户程序,分为EPROM、Mask ROM、OTP ROM和Flash ROM等。

EPROM型存储器编程(把程序代码通过一种算法写入程序存储器的操作)后,其内容可用紫外线擦除,用户可反复使用,故特别适用于开发阶段,但EPROM型单片机价格很高。

Mask ROM型单片机价格最低,适用于批量生产。由于Mask ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户更改程序代码十分不便,在产品未成熟时选用此型单片机风险较高。

OTP ROM型(一次可编程)单片机价格介于EPROM和MaskROM型单片机之间,它允许用户对其编程,但只能写入一次。

Flash ROM型单片机可采用电擦除的方法修改其内容,允许用户使用编程工具或在系统中快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。Flash ROM型单片机既可用于开发阶段,也可用于批量生产,随着制造工艺的改进,价格不断下降,使用越来越普遍,已成为现代单片机的发展趋势。

中央处理器(CPU)

CPU是单片机的核心单元,通常由算术逻辑运算部件(ALU)和控制部件构成。CPU就像人的大脑一样,决定了单片机的运算能力和处理速度。

随机存储器(RAM)

RAM用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百字节。RAM的内容具有易失性(也称为易挥发性),掉电后数据会丢失。最近出现了EEPROM 或Flash ROM 型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,也属于RAM空间,但它们存取数据速度很快,特殊寄存器还用于充分发挥单片机各种资源的功效,但这部分存储器占用存储空间更小。

并行输入/输出(I/O)接口

通常为独立的双向I/O接口,既可以用作输入方式,又可以用作输出方式,通过软件编程设定。现代单片机的I/O接口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O接口是单片机的重要资源,也是衡量单片机功能的重要指标之一。

串口输入/输出口

用于单片机和串行设备或其他单片机的通信。串行通信有同步和异步之分,这可以用硬件或通用串行收发器件实现。不同的单片机可能提供不同标准的串行通信接口,如 UART、SPI、I2C、MicroWire等。

定时器/针数器(T/C)

用于单片机内部精确定时或对外部事件(输入信号如脉冲等)进行计数,通常单片机内部有2个或2个以上的定时/计数器。

系统时钟

通常需要外接石英晶体或其他振荡源提供时钟信号输入,有的也使用内部RC振荡器。系统时钟相当于PC微机中的主频。

以上只是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(A/D)、数字/模拟转换器(D/A)、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等。此时的单片机才是真正单片化。内部的RAM和ROM的容量也越来越大,ROM 寻址空间甚至可达 64KB,可以说,单片机发展到了一个全新的阶段,应用领域也更为广泛,许多家用电器均走向利用单片机控制的智能化发展道路。

单片机的分类和指标

单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们常用的都是通用型单片机,通用型单片机把所有资源(如 ROM、I/O 等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。

下面对单片机的几个重要指标进行介绍。

(1)位数:是单片机能够一次处理的数据的宽度,有 1 位机(如 PD7502)、4 位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414)等。

(2)存储器:包括程序存储器和数据存储器,程序存储器空间较大,字节数一般从几KB到几十KB,另外还有不同的类型,如ROM、EPROM、E2PROM、Flash ROM和OTP ROM型。数据存储器的字节数则通常为几十字节到几百字节之间。程序存储器的编程方式也是用户考虑的一个重要因素,有的是串行编程,有的是并行编程,新一代的单片机有的还具有在系统编程(ISP, In-System-Programmable)或在应用再编程(IAP,In-Application re-Programmable)功能;有的还有专用的ISP编程接口JTAG口。

(3)I/O接口:即输入/输出接口,一般有几个到几十个,用户可以根据需要进行选择。

(4)速度:指的是 CPU 的处理速度,以每秒执行多少条指令来衡量,常用单位是 MIPS(百万条指令每秒),目前最快的单片机可达到100MIPS。单片机的速度通常是和系统时钟(相当于PC的主频)相联系的,但并不是频率高的处理速度就一定快,但对于同一种型号的单片机来说,采用频率高的时钟一般比频率低的速度要快。

(5)工作电压:通常工作电压是5V,范围是±5%或±10%;也有3V/3.3V电压的产品;更低的可在1.25V工作。现代单片机又出现了宽电压范围型,在2.5V~6.5V内都可正常工作。

(6)功耗:低功耗是现代单片机所追求的一个目标,目前低功耗单片机的静态电流可以低至μA或nA级。有的单片机还具有等待、关断、睡眠等多种工作模式,以此来降低功耗。

(7)温度:单片机根据工作温度可分为民用级(商业级)、工业级和军用级3种。民用级的温度范围是 0℃~70℃,工业级是-40℃~85℃,军用级是-55℃~125℃(不同厂家的划分标准可能不同)。

(8)附加功能:有的单片机有更多的功能,用户可根据需要选择适合自己的产品。比如有的单片机内部有A/D、D/A、串口、LCD驱动等,使用这种单片机可减少外部器件,提高系统的可靠性。

(此处已添加圈子卡片,请到今日头条客户端查看)

相关问答

iap 单片机 中是什么意思?

AP是InApplicationProgramming的首字母缩写,IAP是用户自己的程序在运行过程中对UserFlash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的...

单片机 ISP, IAP 什么意思?

ISP是指在系统编程,相比于过去编程需将单片机芯片从电路板上取下来,放在编程器上编程而ISP可以利用编程接口直接在电路板上烧写程序IAP更进一步,可以在运行中...

细说ISP和 IAP 的区别?

如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了IAP功能。2ISP和IAP在单片机中的应用2.1传统编程方法的不足在一...

prom在 单片机 表示什么?

IAP,InApplicationProgramming,它的意思是“在应用编程”,即在程序运行时程序存储器可由程序自身进行擦写。STC89C51、52内部都自带有2K字节的EEPROM(可编...

iap 15w4k61s4 单片机 怎么编写?

1.iap15w4k61s4单片机的编写需要掌握一定的编程知识和技能。2.首先需要了解该单片机的硬件结构和特性,然后选择合适的编程语言和开发环境进行编写。具体的编...

请问, 单片机 说的1T指的是什么意思?

描述某条指令执行需要多少个机械周期,(如自增、自减...简介:指令周期:早期更多的是用来描述某条指令执行需要多少个机械周期,(如自增、自减为1个机械周期,赋...

51 单片机 中定时计数器的四种方式的计数范围为?

方式0,为13位定时器/计数器,计数范围是0到2的13次方减1。方式1,为16位定时器/计数器,计数范围是0到2的16次方减1。方式2,为8位初值自动重装的8位定时器/计...

stc15系列 单片机 哪个型号的最流行?

比较流行的有很多种,下面我例举几种。1.STC15W4K32S4系列1T8051单片机,4K字节SRAM,超高速四串口,6路15位PWM主要性能:大容量4096字节片内RAM数据存储器......

单片机 怎么有办法修改ROM中的数据吗?

对于传统的51单片机,这是不可能的做到的。ROM中的数据只能用code定义,而且是在烧录程序时烧录到ROM中,在运行程序时,只能读,是不能再改写的,所以,只能保...

iap 15f2k61s2怎么找?

若要找到iap15f2k61s2,首先需要了解它的背景和用途。iap15f2k61s2是一种集成电路芯片,常用于电子设备中的控制系统中。根据这些信息,可以通过以下步骤找到它:...

猜你喜欢