MCU(MicroControllerUnit)中文名称为微控制单元,又称单片微型计算机(SingleChipMicrocomputer),是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。MCU按其存储器类型可分为MASK(掩模)ROM、OTP(一次性可编程)ROM、FLASHROM等类型。价格由低至高,应用以及可操控性越来越灵活。微控制器在经过这几年不断地研究,发展,历经4位,8位,到现在的16位及32位,甚至64位。众所周知,MCU都会有调试,烧录,下载的工具,比如JLINK,STLINK,NULINK,等很多,不同厂家,不同品牌几乎都会有他们自己烧录,下载的方式。
下面讲讲几种编程方式以及区别:
ISP:In System Programing           在系统编程
IAP:In applicating Programing      在应用编程
ICP:In Circuit Programing           在电路编程
ISP是指可以在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。即使芯片焊接在电路板上,只要留出和上位机接口就能进行烧写。这部分功能的实现可以试试我们公司主推的在板烧录器Flashrunner      
IAP同样是在板级上进行编程,用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。MCU获取新代码并对程序的某部分重新编程,即可用程序来改变程序,修改程序的一部分达到升级、消除bug的目的,而不影响系统的其它部分。
ICP是在电路编程,类似LPC芯片的编程方式,是一种串行编程方式,其通过一根时钟线和一根数据线串行传输编程指令及数据。
1.        在开发阶段
改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去. 可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性.
2.在量产阶段
客户可以采用”先焊到板子上再烧code”的方式, 将烧code的动作集成加入在生产线的某一站,用以节省工位。
那么传统的方式 (先将code烧好再焊到板子上)有什么缺点?
传统的方式是这样的: 拆封–>从tray盘取出chip–>烧录–>把chip放回tray盘.这样的流程比起上面建议的方式: 增加了烧录(取放)时间,并且 容易造成类似QFP包装的chip弯脚, 或难以区分以及管控MCU料件。
  3.在成品阶段
已组装好的成品若要改code, 可以透过预留的接口, 利用ISP或ICP, 更新MCU, 不需要拆机。
接下来,说一说MCU的几种常见协议定义以及区别:

JTAG和SWD,我们可以看到这两个常见协议的关联:
1,2脚位同为Vcc;
7脚位:Jtag是TMS-test mode state,SWD是SWDIO—data i/o pin;
9脚位同为Clock pin;
13脚位同为 test data out pin;
15脚位同为 reset pin。
其他协议例如SWIM,我们可以拿STM8S003举例:它仅用到四根线;
此外还有SPI,IIC,UART,DAP等等常见的芯片通讯协议,欢迎大家留言讨论,共同学习进步。