现在位置:范文先生网>理工论文>电子通信论文>用下载电缆实现AT89S5X的ISP编程

用下载电缆实现AT89S5X的ISP编程

时间:2023-02-21 00:10:38 电子通信论文 我要投稿
  • 相关推荐

用下载电缆实现AT89S5X的ISP编程

  摘要:下载电缆被广泛应用于电子系统设计与调试过程中。本文介绍它的基本原理和编程控制方法;针对目前单片机的ISP串行编程模式列举实例,简要介绍AT89S5X的串行编程的方法和部分协议,使用VC编程,应用下载电缆实现对AT89S5X系列单片机的ISP编程;文末提出统一下载电缆硬件或软件的设想,并提供可以下载支持多种单片机ISP编程软件的网址。
  关键词:下载电缆串行编程AT89S5XISP
  
  引言
  
  随着电子技术的日益发展,芯片的规模越来越大,封装日趋小型化,相应的对系统板级调试困难也在加大。IEEE制定了标准测试端口与边界扫描的标准IEEEstd1149.1,这就是JTAG接口协议。JTAG接口通过TCK、TDI、TDO、TMS四根信号线,以串行模式为系统提供了对复杂芯片的各引脚连通性测试,进步还能实现对可编程芯片的配置与处理器芯片的调试等等。下载电缆就是一种使用计算机的并行端口通过软件的仿零点实现JTAG接口协议,访问可编程芯片的廉价工具。本文使用的下载电缆是Altera公司为其可编程逻辑器件开发的ByteBlasterMV电缆。ISP(在系统可编程的简称)是最先由Lattice公司提出的一种技术,是通过同步串行方式实现对其可编程逻辑器件的重配置。ISP与JTAG的接口协议很相像,只是后者形成了标准。ISP现在已经成为一种概念,它的提出改变了传统硬件系统开发的流程,大大方便了开发者,加快了开发速度。现在大多数的可编程器件(FPGA、CPLD、DSP、MCU……)都支持ISP特性。单片机也不例外,Atmel公司推出的AT89S系列51单片机也符合ISP特性。
  
  1下载电缆的硬件
  
  要实现JTAG接口协议可以使用专用的IC,如74LVT8980、74LVT8990,它与MCU配合可以提供高速的JTAG串行访问,成本较高。下载电缆则是实现JTAG接口协议的廉价方案。它仅命名用74HC244做线路驱动,由计算机的并行端口引出I/O作为TCK、TDI、TDO、TMS等信号线。由于并口在SPP模式下共有3个端口——数据输出端口、控制输出端口、状态输入端口,各种下载电缆究竟从那个端口引出JTAG信号线几乎都不相同,图1、图2是两种下载电缆的原理图。
  
  并口简介:
  
  计算机的并行端口工作在SPP模式下,对它的控制是通过数据输出端口、控制输出端口、状态输入端口来实现的。
  
  并行口有25个引脚,其中包括8位数据线、5位状态线、4位控制线。
  
  数据端口(378H):D0~D7用于数据输出。
  
  状态端口(379H):*S7(Busy)、S6(nAck)、S5(PE)、S4(Select)、S3(nError)。
  
  控制端口(37AH):*C3(nSelin)、S2(nInit)、*C(AnutoFeed)、*C0(nStrobe)。
  
  ()(端口地址是缺省的LPT1设置;*表示此引脚有反向器)
  
  表1为并行端口定义。对应原理图有:
  
  Altera的下载电缆
  
  TCK、TDI、TMS、TDO分别对应D0、D6、D1、*S7;
  
  Atmel的电缆
  
  TCK、TDI、TMS、TDO分别对应*C0、D0、*C3、S6。
  
  表1并行端口定义表
  
  引脚号名称数据位1nStrobe*C02D0D03D1D14D2D25D3D36D4D47D5D58D6D69D7D710nAckS611Busy*S712PES513SelectS414AutoFeed*C115nErrorS316nInitC217nSelin*C318~25GNDGND
  2下载电缆的编程方法
  
  用计算机控制下载电缆实现JTAG协议,就是对并口3个I/O端口的读写操作,用0-1的变化来模拟JTAG时序。在Win98和Win2000环境下读写I/O,需要驱动程序。本文使用DriverLINXPortI/ODriver(可以从WWW.sstnet.com下载)来实现I/O端口访问。安装DLPORTIO以后,通过调用DLPORTIO.DLL动态连接库中的
  
  UCHARDLPORT_APID1PortReadPortUchar(INULONGPort);
  
  VOIDDLPORT_APID1PortWritePortUchar(INULONGPort,INUCHARValue);两个函数就可以访问位于378H、379H、37AH(这是缺省的LPT1设置)的3个并口I/O端口。程序段1实现了对Altera下载电缆的一次电平赋值:
  
  程序段1
  
  Altera下载电缆电平赋值函数
  
  VoidCAvrISPDlg::Setbit(){
  
  Unsignedcharvalue=0;
  
  If(!m_tck)value|=0x01;
  
  If(!m_tms)value|=0x02;
  
  If(!m_tdi)value|=0x40;
  
  DlPortWritePortUchar(0x378,value);
  
  Value=DlPortReadPortUchar(0x379);
  
  If(value&0x80)m_tdo=0;
  
  Elsem_tdo=0;
  
  }
  
  通过以上程序依次改变JTAG各接口I/O的电平状态,模拟JTAG协议的时序,就可以访问支持JTAG标准的各种芯片。
  
  3ISP协议的解析与实现
  
  对AT89S5X系列单片机ISP编程不使用JTAG协议,而使用SPI同步串行接口协议,如图3所示。
  
  针针这种8位SPI接口协议,我们使用数组来模拟时序:
  
  时钟信号固定为unsignedcharsck[19]={0,0,1,0,1,0,1,0,1,0,10,1,0,1,0,1,0,1,0,0};
  
  输出的数据信号由程序实现情况自动生成数组unsignedcharmosi[19];
  
  输入的数据根据读入的信号生成数组unsignedcharmiso[19];
  
  再调用上文的Setbit()函数,依次发送19位的JTAG接口I/O状态,同时读入返回信号,即完成一次对AT89S5X芯片的SPI单字节访问。
  
  在单字节访问基础上,参考Atmel公司的AT89S5X数据手册的串行编程指令表中的指令格式,就可以实现ISP了。
  
  表2为AT89S51串行编程指令表。
  
  表2AT89S51串行编程指令集
  
  指令指令模式说明第1字节第2字节第3字节第4字节编程使能1010110001010011XXXXXXXXXXXXXXXX使能串行编程芯片擦除10101100100XXXXXXXXXXXXXXXXXXXXX擦除程序存储顺读程序字节00100000XXXXA11~A8A7~A0D7~D0字节模式读程序写程序字节01000000XXXXA11~A8A7~A0D7~D0字节模式写程序写保护位10101100111000B1B2XXXXXXXXXXXXXXXX写保护位读保护位00100100XXXXXXXXXXXXXXXXXXLB3~LB1XX读当前保护位读标志字节00101000XXXA5~A1A0XXXXXX标志数据读取标志数据读程序页00110000XXXXA11~A8数据0数据1…255页模式读程序写程序写01010000XXXXA11~A8数据0数据1…255页模式写程序
  注:①串行编程要在RST端接高电平情况下实现;②X表示此位关心;③A11~A0是要访问字节地址;④D7~D0是读写的数据;⑤B1、B2是保护位;⑥LB3~LB1表示3种状态。
  
  针对AT89S51单片机,其标志字节为:(00H)1EH、(02H)51H、(04)06H.
  
  程序段2将得到AT89S51单片机的标志字节。(其中SPIcomm()为SPI单字节访问函数)。
  
  程序段2
  
  获得AT89S51单片机标志字节的程序段
  
  CStringstr;
  
  for(addr=1;addr<3;addr++){
  
  m_comm=0x28;
  
  SPIcomm();
  
  m_comm=addr;
  
  SPIcomm();
  
  m_comm=0;
  
  SPIcomm();
  
  m_comm=0;
  
  SPIcomm();
  
  Str.Format(“0x%02X”,m_dat);
  
  m_out+=str;
  
  }
  
  图4是AT89S51进行串行编程时的硬件原理图。
  
  4小结
  
  下载电缆为我们提供了深入芯片内部的触手。通过JTAG标准协议,我们可以用下载电缆检查芯片焊接连通性、重新配置可编程器件、下载程序固件以及调试处理器的运行。
  
  小到8位单片机AT89S5X、AVR的串行编程,可编程器件MAX7000的配置;大到32位嵌入式处理器的调试,上万门FPGA芯片的配置都可以见到下载电缆的身影。例如,ARM使用下载电缆的JTAG仿真可以通过EmbeddedICE接口实现对ARM的开发调试,或者使用ARM的边界扫描特性为嵌入式系统板下载启动程序等等。
  
  目前下载电缆的使用越来越多,各个厂商分别推出了自已的符合JTAG标准的芯片或者是使用ISP技术的新产品。与此同时,下载电缆的种类也非常多,大多数的区别仅在于并口信号与JTAG信号的对应关系不同。往往有时候开发一个产品,要用到很多种不同的电缆。我们希望可以使用一种标准的下载电缆来实现所有JTAG应用;或者是通过一个计算机程序可以通过配置文件来使用各种下载电缆。在我们的BLMVISP软件中,就支持了现有的两种电缆。
  
  使用ISP技术可以大大加快硬件开发速度。下载电缆与计算机软件的配合使用也可以降低开发成本,非常适合个人爱好者与初学者使用。
  
  
  
  
  

【用下载电缆实现AT89S5X的ISP编程】相关文章:

isp1016实现机载导航系统的键盘控制08-06

W78E516及其在系统编程的实现08-06

TMS320C6000 DSP自动引导的方法和编程实现08-06

TMS320C32 DSP的中断编程方法及BOOT功能实现08-06

ISP技术在高速数据采集模块中的应08-06

用VB实现对库文件的分割备份08-06

用PowerPC860实现FPGA配置08-06

用行动实现梦想高三作文01-17

在Protel99SE下实现可编程逻辑器件设计08-06