82基于AT89SXX系列单片机的ISP编程.docx

上传人:b****5 文档编号:6238432 上传时间:2023-01-04 格式:DOCX 页数:8 大小:185.09KB
下载 相关 举报
82基于AT89SXX系列单片机的ISP编程.docx_第1页
第1页 / 共8页
82基于AT89SXX系列单片机的ISP编程.docx_第2页
第2页 / 共8页
82基于AT89SXX系列单片机的ISP编程.docx_第3页
第3页 / 共8页
82基于AT89SXX系列单片机的ISP编程.docx_第4页
第4页 / 共8页
82基于AT89SXX系列单片机的ISP编程.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

82基于AT89SXX系列单片机的ISP编程.docx

《82基于AT89SXX系列单片机的ISP编程.docx》由会员分享,可在线阅读,更多相关《82基于AT89SXX系列单片机的ISP编程.docx(8页珍藏版)》请在冰豆网上搜索。

82基于AT89SXX系列单片机的ISP编程.docx

82基于AT89SXX系列单片机的ISP编程

5.2基于AT89S5X系列单片机的ISP编程

5.2.1ISP技术简介

ISP(In-SystemProgramming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

ISP技术是未来发展方向。

随着电子技术的日益发展,芯片的规模越来越大,封装日趋小型化,相应的对系统板级调试困难也在加大。

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特性。

5.2.2基于ISP技术的下载电缆

要实现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并行端口定义表

引脚号

名  称

数据位

1

nStrobe

*C0

2

D0

D0

3

D1

D1

4

D2

D2

5

D3

D3

6

D4

D4

7

D5

D5

8

D6

D6

9

D7

D7

10

nAck

S6

11

Busy

*S7

12

PE

S5

13

Select

S4

14

AutoFeed

*C1

15

nError

S3

16

nInit

C2

17

nSelin

*C3

18~25

GND

GND

5.2.2基于ISP技术的下载电缆的编程实现

用计算机控制下载电缆实现JTAG协议,就是对并口3个I/O端口的读写操作,用0-1的变化来模拟JTAG时序。

在Win98和Win2000环境下读写I/O,需要驱动程序。

可以使用DriverLINXPortI/ODriver(可以从WWW下载)来实现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标准的各种芯片。

5.2.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字节

编程使能

10101100

01010011

XXXXXXXX

XXXXXXXX

使能串行编程

芯片擦除

10101100

100XXXXX

XXXXXXXX

XXXXXXXX

擦除程序存储顺

读程序字节

00100000

XXXXA11~A8

A7~A0

D7~D0

字节模式读程序

写程序字节

01000000

XXXXA11~A8

A7~A0

D7~D0

字节模式写程序

写保护位

10101100

111000B1B2

XXXXXXXX

XXXXXXXX

写保护位

读保护位

00100100

XXXXXXXX

XXXXXXXX

XXLB3~LB1XX

读当前保护位

读标志字节

00101000

XXXA5~A1

A0XXXXXX

标志数据

读取标志数据

读程序页

00110000

XXXXA11~A8

数据0

数据1…255

页模式读程序

写程序写

01010000

XXXXA11~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标准协议,我们可以用下载电缆检查芯片焊接连通性、重新配置可编程器件、下载程序固件以及调试处理器的运行。

使用ISP技术可以大大加快硬件开发速度。

下载电缆与计算机软件的配合使用也可以降低开发成本,非常适合个人爱好者与初学者使用。

参考文献:

1.《单片机与嵌入式系统应用》

2.Atmel公司AT89C51资料

附:

另外一种下载线

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1