关于MCU的烧录,下载与其他接口的比较(一)
今天呢,犯了一个很严重的错误,我不知道这会产生什么样的影响,但我知道,如果我以后再没有具体的了解,仔细认真地观察,认证,只会滑到无底的深渊。做技术来不得半点虚假,切记一知半解,凡事都要弄得清楚明白,认识东西是有顺序的,从简单到困难,从外观,到内部,一个东西起什么样的作用,为什么会起这样的作用,也是很重要的,一直以来,我都认为自己是一个很较真的人,但最近发现,我都没有把把这优点用到正地方,好了,开始今天的正题,今天,讲的是我犯的一个错误,一个技术不该犯得错误。
这篇文章是给自己提个醒,给自己一个承诺,不要马虎,不要想当然,也不要冲动,不要得过且过,学习不痛苦,那就不是学习,成长不痛苦,那叫什么成长。
好,上主题
众所周知,MCU都会有调试,烧录,下载的工具,比如JLINK,STLINK,NULINK,等很多,不同厂家,不同品牌几乎都会有他们自己烧录,下载的方式,那么今天我给大家讲讲从各种烧录器的历史,厂家,和他们的硬件部分的不同,至于软件部分,有些东西我也不是很清楚,所以,等我了解清楚之后,我在进行讲解。如果见到这篇文章得人恰好懂得这一部分,或者是有人愿意指导或一起学习,欢迎交流,我也要向您虚心受教,本文虽是经过仔细验证,但是总会有些纰漏,欢迎指正。
首先讲讲新唐的烧录方式:
再讲之前,有必要先讲讲ICP,IAP,ISP的关系
我之前也一直搞不太清楚他们之间的区别。今天查了资料后总结整理如下。
ISP:In System Programing 在系统编程
IAP:In applicating Programing 在应用编程
ICP:In Circuit Programing
在电路编程
区别:
1、ISP是把房子拆了再重造一间,那么在造好之前当然是不能住人的啦!
2、IAP是在造好的房子里边进行一些装修,装修的时候人还住在里面!
3、ICP是在电路编程,是LPC芯片的编程方式,相当于ATMEL的ISP,而LPC的ISP就相当于ATMEL的IAP了。
ISP是指可以在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。即使芯片焊接在电路板上,只要留出和上位机接口的串行口就能进行烧写。
IAP同样是在板级上进行编程,MCU获取新代码并对程序的某部分重新编程,即可用程序来改变程序,修改程序的一部分达到升级、消除bug的目的,而不影响系统的其它部分,烧写过程中程序可以继续运行,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。
ISP、IAP、ICP与传统烧写方式的区别
1)在开发阶段
改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去. 可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性.
2)在量产阶段
客户可以采用”先焊到板子上再烧code”的方式, 将烧code的动作安排在生产线的某一站.
那么传统的方式 (先将code烧好再焊到板子上)有什么缺点?
传统的方式是这样的: 拆封–>从tray盘取出chip–>烧录–>把chip放回tray盘.
这样的流程比起上面建议的方式: 增加了烧录时间, 容易造成QFP包装的chip弯脚, 或忘了烧code即放回tray盘.
3)在成品阶段
已组装好的成品若要改code, 可以透过预留的接口, 利用ISP或ICP, 更新MCU, 不需要拆机.
什么是 IAP (In-Application Programming)?
IAP指的是, MCU在运行的状态下, 利用ISP的机制, 不透过外接工具 (例如: ISP Programmer) 的帮忙, 去更新APROM, DataFlash 或 CONFIG. 要实现这种功能,
系统必须有取得更新数据的能力, 例如: 处于某一种联机的状态.
(注: 有时候, ISP/IAP的分别并不是那么清楚!)
ISP的工作原理
ISP 的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。
ISP的优点
ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。
好回到正题,不过我要先问一个问题,你知道什么是SWD接口么?
你可能知道JLINK的JTAG接口,先来一张图,看看它们之间的对应关系:
关于STLINK的4SWIM四线接口我觉得有必要说明一下:
下面是由于STM8的SWIM接口只需要4根连接线,所以ST-LINK/V2连接至STM8目标板时需要注意连接位置。
关于SWD,SWIM和JTAG之间的区别与联系,弄清楚明白剩下的就好理解了。今天先到这里,后续我会补上,上一篇是关于N76E003的学习的第一篇,我会继续完善的。
本文参考链接:http://blog.csdn.net/u014124220/article/details/50829713
http://blog.csdn.net/lj9010/article/details/51861605
谁知道明天什么结果,我只要把当前事做好就够了,不管能不能得到我想要的,只要我天天都在往前走,就够了。