文档详情

自制基于USB接口的ISP下载线 .pdf

发布:2024-12-03约6.04千字共11页下载文档
文本预览下载声明

自制基于USB接口的ISP下载线

单片机爱好者在调试与制作单片机系统时,经常涉及到对单片机进行程序烧

录,而专用的编程器价格不菲,使单片机爱好者望而却步。另外,在开发的过

程中,程序每改动一次就要拔下目标电路板上的芯片,编程后再插上,这样做不

仅会对目标电路板和芯片造成损伤,而且当程序需要升级改进时也是极其不便

的。而ISP技术的出现使单片机DIY爱好者可以自制简易“编程器”(俗称下载

线)。自己动手制作工具不仅可以增强自己的动手能力,而且还为以后制作、调

试单片机系统带来了很大的方便,还能为今后进行设计与制作节约宝贵的时间。

早期的ISP下载线多采用串口或并口与PC机相连,这两种方式多存在以下

问题。

(1)用户PC机的主频硬件和操作系统不同可能会造成控制信号错误;

(2)不同厂商提供不同的ISP下载器,互不兼容,给嵌入式开发带来不便;

(3)限于串并口的通信协议,数据传输速率较低,影响嵌入式产品的开发。

除此之外,随着科技的发展,现在很多台式电脑已经没有并口和串口了,而

且如今使用笔记本电脑的人越来越多了,由于大多数笔记本电脑都不带串并口,

使得学习单片机比如说51或者avr很不方便。因为以前使用并口和串口的ISP

下载线已经无法再继续使用了。然而现在无论台式电脑还是笔记本电脑提供的

USB接口是足足够用的。

基于以上原因,本文提出了一种将单片机和USB总线相结合,进行ISP下

载的方法,经过实际应用取得了较好的效果。本系统分为硬件和软件两部分,硬

件平台主要由USB接口和单片机控制模块组成,完成对PC机通信和对目标芯

片ISP编程。软件面向用户设计,由用户选择要下载的、已经编译成Hex文件

格式的代码文件,然后向目标芯片下载程序代码,同时可以检测目标芯片型号、

擦除目标芯片、从目标芯片读出程序代码等。

下面以ATMEL公司的AT89S51/52单片机为例,先介绍ISP技术的原理,

再介绍ISP在线编程器的实现方法。

AT89S51/52单片机的ISP引脚共有4个:RST、MOSI、MISO和SCK。

各引脚的功能如下:RST为在线编程输入控制端,在ISP下载过程中保持高电平,

在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSI为主机输出/

从机输入的数据端,系统正常工作时,该引脚为通用I/OP1.5口线。MISO

为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用I/OP1.6

口线。SCK为串行编程的时钟端,可实现主、从机时序的同步,该时钟频率不

得超过系统时钟的1/16。系统正常工作时,该引脚为通用I/OP1.7口线。

AT89S51/52单片机的ISP引脚功能如图1所示。

现在市场上出售的编程器大多数使用JTAG接口协议,并使用专用的IC,

如74IVT8980、74LVT8990等与MCU配合实现高速的JTAG串行访问,成本较

高。ISP技术则是实现JTAG接口协议的廉价方案。它仅使用74HC244做线路驱

动,由计算机的并行端口引出I/O作为SCK、MISO、MOSI、RST信号线,通

过编程软件控制信号的输入和输出,这样就可以实现单片机的串行编程。由于并

口在SPP模式下共有3个端口——数据输出端口、控制输出端口、状态输入端

口,各种下载电路究竟从哪个端口引出JTAG信号几乎都不相同。为了弄清楚ISP

原理,下面先了解一下计算机的并行口。

(1)并口简介

计算机的并行端口工作在SPP模式,对它的控制是通过数据输出端口、控

制输出端口、状态输入端口来实现的。并行口有25个引脚,其中包括8位数据

线、5位状态线和4位控制线。(端口地址是缺省的LPT1设置;*表示此引脚有

反向器)

数据端口(378H):D0~D7用于数据输出,可读可写。

状态端口(379H):*S7(Busy)、S6(nAck)、S5(PE)、S4(Select)、S3(nError),

只读。

控制端口(37AH):*C3(nSelin)、C2(nInit)、C1(AutoFeed)、C0(nStrobe),可

读可写。

由此可知,用软件来控制计算机并行口的输入和输出即可实

显示全部
相似文档