当前位置: 首页 > news >正文

ISP和IAP介绍

ISP 和 IAP 介绍

ISP:

简介

(In System Programable) 是指在系统编程,通俗的讲,就是芯片已经焊板子上,不用取下,就可以简单而方便地对其进行编程。

比如我们通过电脑给 STC 单片机下载程序,或给 AT89S51 单片机下载程序,使用的STC-ISP软件;以及利用Flash loader对STM32编程等,都是是利用了 ISP 技术

工作原理

一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片

IAP:

简介

(In Application Programable) 是指在应用编程,是应用在Flash程序存储器的一种编程模式。它可以在应用程序正常运行的情况下,通过调用特定的IAP程序对另外一段程序Flash空间进行读/写操作,甚至可以控制对某段、某页甚至某个字节的读/写操作,这为数据存储和固件的现场升级带来了更大的灵活性。

工作原理

IAP 的实现相对要复杂一些,在实现 IAP 功能时,单片机内部一定要有两块存储区,一般一块被称为 BOOT 区,另外一块被称为存储区。单片机上电运行在 BOOT 区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了 IAP 功能。

IAP的通信口有许多种:UART串口、ETH以太网、I2C、SPI…等。按理说只要能传输数据的通信口都能实现IAP的功能。

通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。,这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的 ISP 功能就是通过 IAP 技术来实现的,即芯片在出厂前就已经有一段小的 boot 程序在里面,芯片上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。类比于windows,系统在运行的时候就可以联网升级更新程序,所以这个功能主要是用来方便系统自动升级的。

ISP 和 IAP 的优点

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

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

ISP 的实现一般需要很少的外部电路辅助实现,而 IAP 的实现更加灵活,通常可利用单片机的串行口接到计算机的 RS232 口,通过专门设计的固件程序来编程内部存储器,可以通过现有的 INTERNET 或其它通讯方式很方便地实现远程升级和维护。

两者的应用场合

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

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

相关文章:

  • 基于R语言、MATLAB、Python机器学习方法与案例分析
  • 基于php+MYSQL的旅游景点攻略的设计与实现毕业设计源码301216
  • 猿创征文|【Typescript入门】常用数据类型(2)
  • 上新啦!腾讯云云原生数据湖产品DLC 2.2.5版本发布,来看特性详解!
  • 【观察】赋能中小企业驶入成长“快车道”,华为云云商店背后的三重新价值...
  • TVM 学习指南(个人版)
  • pringboot+高考志愿填报信息管理系统 毕业设计-附源码251922S
  • python基于django的花卉种植技术交流系统
  • FastFlow(3)---有序FARM
  • Springboot餐饮点餐系统毕业设计源码301749
  • 借身份证给别人办理流量卡有风险吗?这些情况你必须要知道!
  • 概述LCR测试仪IM3536日本HIOKI日置IM3535 阻抗分析仪
  • qiankun微应用加载第三方js、sdk跨域报错
  • Linux网络编程-网络层IP协议
  • 神经网络图像识别代码,编码解码神经网络
  • 2019年如何成为全栈工程师?
  • es6要点
  • IDEA 插件开发入门教程
  • MySQL数据库运维之数据恢复
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • QQ浏览器x5内核的兼容性问题
  • spring学习第二天
  • Vue.js-Day01
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 排序算法学习笔记
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何编写一个可升级的智能合约
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 说说我为什么看好Spring Cloud Alibaba
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​configparser --- 配置文件解析器​
  • ​虚拟化系列介绍(十)
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (六)vue-router+UI组件库
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .describe() python_Python-Win32com-Excel
  • .gitignore
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net Stream篇(六)
  • /var/log/cvslog 太大
  • @TableLogic注解说明,以及对增删改查的影响
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [Angular 基础] - 数据绑定(databinding)
  • [BUUCTF 2018]Online Tool(特详解)
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [C#C++]类CLASS
  • [C\C++]读入优化【技巧】
  • [C++]运行时,如何确保一个对象是只读的
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [GN] Vue3快速上手1
  • [HackMyVM]靶场Crossbow