ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于单片机ISP技术原理及在线编程器的实现

2021-08-26 07:00:28  阅读:178  来源: 互联网

标签:命令 编程 引脚 ISP 端口 编程器 单片机 时钟


以ATMEL公司的AT89S51/AT89S52单片机为例,介绍ISP技术原理,及ISP在线编程器的实现方法。
  
  AT89S51/AT89S52单片机的ISP引脚共有4个:RST、MOSI、MISO和SCK。
  
  各引脚的功能如下:RST为在线编程输入控制端,仅在ISP下载过程中保持高电平,在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSI为主机输出/从机输入的数据端,系统正常工作时,该引脚为通用I/OP1.5口线。MISO为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用1/0P1.6口线。SCK为串行编程的时钟端,可实现主、从机时序的同步,该时钟频率不得超过系统时钟的1/16。
  
  系统正常工作时,该引脚为通用I/OPl.7口线。AT89S51/AT89S52单片机的ISP引脚功能如下图所示。


  
  ISP下载是基于串行传输方式,并且符合SPI协议。在SPI协议中,数据的发送和接收是同步进行的,即在同步时钟的作用下,在发送数据的同时也接收数据。
  
  ISP的时序如下图所示。每一字节的数据都是低位在先,高位在后,在串行时钟的作用下逐位传输。在传输过程中,数据是在时钟输入端为高电平时有效,在时钟输入端低电平时更新数据,在编写ISP下载程序时务必注意这一点。


  
  ISP下载功能的指令集如下表所示。


  
  使用上述指令时,需注意以下事项:
  
  1.要进行ISP编程,首先要确保RST引脚为高电平,且该高电平一直持续到整个编程过程结束。
  
  2.ISP编程操作是通过不同的指令实现的,以编程使能命令作为其他命令的前导命令,必须首先执行编程使能命令,再执行其他命令。例如要擦除芯片,首先执行编程使能命令,然后执行芯片擦除命令,这样才能完成操作擦除。
  
  3.各个命令有自己的格式,使用不同命令时,必须严格按照命令的格式进行,例如在芯片擦除命令中,虽然有2个多字节可为任意数据,但也要发送。
  
  4.ISP数据传输符合SPI协议,虽然在发送数据的同时也接收数据,但接收数据的取舍是由用户决定。
  
  5.在ISP编程中尤其是写Flash的过程中,最好不要被意外情况中断,比如断电,或者RST引脚电压变低,这样容易造成芯片内部的Flash永久性损坏。
  
  AT89S51/AT89S52单片机的在线编程(ISP)电路设计如下:计算机并行接口共有25个口线,丰要包括数据端口DO—D7(端口发地址为378H,用于数据输出);状态端口Busy、nAck.PE、Select、nError(端口地址为379H,用于数据输入);控制端口nSelin、nlnit、AnrtoFeed、nStrobe(端口地址为37AH,用于输出控制)。从中选出4个口线来模拟ISP所需的引脚,非常灵活,只需考虑数据的输入、输出方向及操作方便,但要注意同一端口的数据方向必须一致,例如数据端口是8位同时操作的,只能全部作为输入或输出,而不能将一部分作输入,另一端分作输出。电路下图可实现ISP(在系统编程)的功能。
  
  该电路在计算机并行接口部分,用第⑥脚模拟SCK、第⑦脚模拟MOSI,第⑨脚模拟RST、第⑩脚模拟MISO。用第④脚来控制驱动隔离电路SN74AS244的使能端。注意不同端口操作地址不同,这涉及程序的编写。下图中UIB的引脚A2、A3、A4并接是为了增大驱动能力,上拉电阻是为了确保空闲时的电平状态。该电路制作出的实物如右图所示。
  
  不同的在线编程电路对应于不同的硬件电路,在程序实现上也有区别。本文的硬件电路设计完全依照共享软件Easy51Pro来完成设计的,故可上网下载此共享软件来实现在线编程,并目,下载后无须安装即可直接运行该程序以实现ISP(在线编程)的功能。

 

标签:命令,编程,引脚,ISP,端口,编程器,单片机,时钟
来源: https://www.cnblogs.com/xkdn/p/15187742.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有