当前位置:网站首页>ISP、IAP、ICP、JTAG、SWD的编程特点
ISP、IAP、ICP、JTAG、SWD的编程特点
2022-07-07 07:29:00 【m0_59949484】
电子工程师都知道,半导体技术发展迅猛,带动了各种芯片技术的不断升级。在数据存储方面,从最初的掩膜ROM,发展到现在的Flash技术,存储技术的不断改进,相对应的编程技术也在不断发展。
记得老一辈工程师在烧写51单片机的时候还是用一台硕大的编程器进行程序下载,而且还是一次性的(OTP),每次都小心谨慎的把代码调试了又调试后才下载看效果。现在简单到只需一个串口下载器即可实现程序下载,基本不需要考虑编程次数的问题,一有想法随时编译下载更新。
- 在这个发展过程中,也诞生了很多编程技术,比如ISP、IAP、ICP,另外还有JTAG编程、SWD编程、UART编程等等。玩单片机的对这些词应该都不陌生,但他们之间有什么区别呢?首先看下他们的定义:
- ISP:In System Programing,在系统编程
- ICP:In Circuit Programing,在电路编程
- IAP:In Application Programing,在应用编程
- JTAG编程:通过JTAG协议进行编程
- SWD编程:通过SWD协议进行编程
- UART编程:通过UART进行编程
看似很乱,其实捋清楚他们之间的层次关系就不会乱了。用个图来形象表示一下:
从图上看,ISP和ICP是处于最顶层的技术。描述的是一种编程结构,所用使用到的协议、通信端口等,不同芯片有不同的定义。
IAP在第二层,是一种编程方式。实现方式是将一段目标芯片可执行的代码通过某种通信协议下载到芯片RAM中并由芯片执行,由该代码实现具体操作以达到编程的目的。这种方式需要芯片支持通过某种通信协议对芯片的RAM进行读写并能控制其CPU。这是在编程结构下的一种编程方式,像AK100Pro、SmartPRO 5000U-Plus等烧录器,都用到了这种编程方式。
最下面的是硬件通信协议,UART是最早应用在单片机里面的串行通信技术。JTAG和SWD是Arm内核芯片兴起之后,逐渐流行起来的,这三种技术描述的是编程过程中硬件层使用的通信协议,是最底层的一些技术规范。
用一个表格来对比这几种通信协议的特性:
综合上面的内容,只要UART、JTAG、SWD这些硬件通信协议能保证电气连接的规范性和稳定性,那么ISP、IAP就能对芯片正确地编程。
致远电子即将推出多通道在线编程器,敬请期待。
推荐产品:
AK100系列 Arm专业版仿真器,支持Arm7、Arm9、Arm11、Cortex-M0/M0+/M1/M3/M4/A5/A8/A9/R4、XSCALE等内核的全系列仿真,包括Thumb模式。持Arm全系列内核,支持所有主流IDE环境,优异的性能和后续不断升级等特点,使得其成为Arm开发调试与量产烧写工具的不二之选!
在设计当中,总会遇到特殊的编程口线
现在的芯片集成度越来越高,体积越来越小,甚至连集成的板子,也默默地把硬币给比下去了:
图一核心板与硬币对比图
可是,要在如此少的管脚上集成更多功能,只有裁剪通信口线。在这时候,单线的串行接口就有了用武之地。
新的需求来了,现有调试下载的工具,是否支持新的通讯接口呢?下面就以最近的一个案例做一个剖析:外商客户需要添加一厂商芯片的烧录支持,通过了解该芯片的编程资料,发现用于烧录的通讯引脚只有一根,但采用的是标准异步串行接口的协议。
单线串口的接口原理
所谓单线串口(全称为“单线异步串行通讯接口”,本文中简称为“单线串口”),采用的是跟标准串口(全称为“标准异步串行通讯接口”,本文中简称为“标准串口”)一样的通讯协议。唯一的区别,不同于标准串口的两根数据线(Txd和Rxd),单线串口只有一根数据线来同时兼备发送和接收功能。因此,单线串口采用半双工的通讯方式,具体的单线串口接线图可参考图二所示。
图二单线串口芯片接线图
只需要接入四根线(MOD,/RESET,VCC,GND)就可以完美进行烧录了。外商设计的这个通讯口(MOD/IO)还可以被用来做工作模式选择,即在上电复位的同时,检测MOD管脚的输入时序波形,从而进入到不同的工作模式,如单线串口编程模式等。进入单线串口编程模式后,MOD管脚的功能转换为数据通讯。掌握这个规则,AK100Pro接好这四根线后,在KFlashPro上点击“烧写”,就可以轻松实现烧录了。
剖析单线串口的编程效果
担心烧录的速度?我们用数据来说明,是快还是慢。该芯片支持最高的通讯速率为500000bps,我们就采用这个波特率进行通讯。图三是逻辑分析仪(LA2532)抓取烧录通信时的时序数据:
图三 逻辑分析仪(LA2532)捕捉到的数据
先说说数据代表的意思,该段波形截取于“烧写+校验”的过程。对于两串比较长的数据,较短的是烧录的数据,发送完这段数据后,接着发送查询状态指令等待芯片烧录完毕并响应,然后下发读取指令,较长的是读取上来进行校验的数据。
从图中看到,从读取数据到下一包下发的烧录数据间隔只有3.5ms,扣除预留官方2ms响应时间,AK100Pro对数据包解析、校验和功能转换等操作,花费时间2ms不到。
总结
烧录时间短、通信口线少、占板空间小,单线串行的产品,在小型化可穿戴市场必将大行其道。
边栏推荐
猜你喜欢
Flex flexible layout
XML配置文件解析与建模
反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释
EXT2 file system
【无标题】
ORM模型--数据记录的创建操作,查询操作
ES6中的原型对象
Basic chapter: take you through notes
CSDN salary increase technology - learn about the use of several common logic controllers of JMeter
The landing practice of ByteDance kitex in SEMA e-commerce scene
随机推荐
XML配置文件解析与建模
ORM--分组查询,聚合查询,查询集QuerySet对象特性
Natapp intranet penetration
2020浙江省赛
Huffman encoded compressed file
Check the example of where the initialization is when C initializes the program
Introduction to energy Router: Architecture and functions for energy Internet
Bit operation ==c language 2
农牧业未来发展蓝图--垂直农业+人造肉
Flinkcdc failed to collect Oracle in the snapshot stage. How do you adjust this?
Sqlplus garbled code problem, find the solution
phpcms实现PC网站接入微信Native支付
Apprentissage avancé des fonctions en es6
Internship log - day04
VS Code指定扩展安装位置
Video based full link Intelligent Cloud? This article explains in detail what Alibaba cloud video cloud "intelligent media production" is
ORM模型--数据记录的创建操作,查询操作
2020CCPC威海 J - Steins;Game (sg函数、线性基)
根据热门面试题分析Android事件分发机制(二)---事件冲突分析处理
ORM--数据库增删改查操作逻辑