新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于USB接口的ISP下载系统设计

基于USB接口的ISP下载系统设计

作者:时间:2012-01-07来源:网络收藏

1 引言

(In-System Programming)在系统编程,通过下载电缆直接对安装在用户目标板上的器件编程,给电子产品的设计和生产带来许多革命性的变化。目前,比较成熟的下载器大多是基于串口或者并口通信的,但是也存在着以下问题:

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

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

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

基于以上原因,本文提出了一种将单片机和总线相结合,进行ISP下载的方法,经过实际应用,取得了较好的效果。

2 系统设计

本系统分为硬件和软件两部分,硬件平台主要由接口和单片机控制模块组成,完成对PC机通信和对目标芯片ISP编程。软件面向用户设计,由用户选择要下载的、已经编译成Hex文件格式的代码文件,然后向目标芯片下载程序代码,同时可以检测目标芯片型号、擦除目标芯片、从目标芯片读出程序代码等。整体框架如图1所示。www.51kaifa.com

1 系统框架图

2.1 硬件系统设计

硬件是整个系统的基础,是完成各个功能的物理平台。硬件部分主要完成通信和ISP下载。采用USB接口芯片与单片机相结合,USB接口芯片已经封装好USB1.1协议,使用单片机控制对目标芯片ISP下载操作,硬件模块关系如图2所示。

2 硬件模块关系图

本设计通过USB接口与PC机通信,微控制器接收完数据后,使用ISP方式下载到目的芯片中,故在硬件上采用ATMEL公司的51系列单片机AT89S52作为本设计的嵌入式微控制器,采用PHILIP公司的作为USB设备接口器件。

2.1.1 PDIUSB12设计

PDIUSBD12 是PHILIPS公司生产的一种USB接口芯片,完全封装USB1.1协议,是一款性价比很高的USB 器件。它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,支持本地的DMA 传输。PDIUSBD12 完全符合USB1.1 版的规范。PDIUSBD12 所具有的低挂起功耗连同LazyClock 输出,可以满足使用ACPI、OnNOW 和USB 电源管理的要求,其低的操作功耗可以应用于使用总线供电的外设。其电路设计原理图如图3所示。

3 电路

该电路设计分析如下:

(1)PDIUSB12的时钟源频率为6MHz;

(2)D0~D7分别与MCU的P0.0~P0.7相连;

(3)D12的A0引脚通过10K的电阻与地相连;

(4)D12的ALE引脚与MCU的ALE引脚相连;

(5)GL_N通过一个电阻和红色LED串联到VCC;www.51kaifa.com

(6)DMACK_N和EOT_N通过电阻上拉到VCC。

2.1.2 MCU设计

本设计中的MCU采用ATMEL公司的AT89S52单片机,主要用于USB通信和ISP下载。其硬件原理图如图4所示。

4 MCU硬件原理图

上图中,电路配置描述如下:

(1)MCU采用24MHz晶振;

(2)数据总线P0端口接上拉电阻,P0.0~P0.7与PDIUSB12芯片的D0~D7相连。MCU

的地址锁存引脚ALE与PDIUSB12的ALE引脚相连,端口P0作地址/数据总线复用;

(3)功能引脚P3.6、P3.7与PDIUSB12的WR_N和RD_N相连,控制PDIUSB12的读

写信号;

(4)MCU的P2.1引脚、P2.2引脚和P2.3引脚分别与PDIUSB12的片选引脚CS_N、挂起状态引脚SUSPEND和复位引脚RESET_N相连接,作为相应的功能控制。

2.2 软件设计

本设计的软件主要分为两个部分:单片机上的控制系统设计和PC机上的应用程序设计。单片机控制系统负责与PC机通信和对目标芯片ISP编程,PC机上的应用程序包括USB的驱动程序和ISP下载控制软件。

2.2.1 单片机控制系统

单片机控制系统是核心内容,处理与计算机进行USB通信、数据处理和对目标芯片ISP下载代码。将PDIUSB12设计成完全的中断驱动,当MCU处理前台任务时,USB的传输可

以在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。

MCU一旦上电就初始化其所有端口、存储区、定时器和中断服务程序。之后MCU将重新连接USB,包括将Soft_Connect寄存器设置为 ON。主机通过设备的上拉电阻产生的信号变化来检测新的设备连接。因为这些过程确保了在MCU准备好提供服务之前PDIUSB12不会进行操作。设备上电后,主机通过设备的上拉电阻产生的信号变化来检测新的设备连接。PDIUSB12片内有1.5kΩ的Soft Connect上拉电阻,默认状态下不与VCC相连,允许系统微控制器来决定与USB建立连接的时间。

单片机控制系统的设计目标就是使PDIUSB12在USB上达到最大的传输速率,使更多的时间留给ISP控制处理程序处理ISP请求。将USB通信处理设计成完全的中断驱动。当CPU处理前台任务时,USB的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。前后台任务处理关系如图5所示。

5 前后台任务处理关系图

整个系统程序设计采用模块化设计思想。为了使软件可移植性强、易维护,采用分层

的方法来编写PDIUSB12的驱动程序和ISP下载程序。

2.2.2 PCISP下载软件设计

PC机ISP下载软件是面向用户的一个接口,它向用户提供读目标芯片厂商号,读目标芯片型号,写目标芯片Flash,读目标芯片Flash和擦除目标芯片Flash等ISP编程操作。因为所有ISP操作都在单片机控制系统中实现,所以PC机ISP下载软件仅是通过USB接口向单片机发送ISP编程指令和代码数据,同时接收并显示单片机反馈回的信息。

实现USB通信的功能函数包括ReadData和WriteData两个函数。

(1)ReadData函数

int __stdcall ReadData(int pipenum,unsigned char *recbuffer,int len,int waittime=-1)

其中参数pipenum表示要操作的管道号,可以为0、2、4,分别对应端点0、1、2;参数recbuffer表示接收数据缓冲区;len为接收缓冲区长度,而且必须为要接收数据的真实长度,但最大长度为1024;waittime表示超时时间,单位为毫秒。

(2)WriteData函数

int __stdcall WriteData(int pipenum,unsigned char *sendbuffer,int len,int waittime=-1)

其中参数pipenum表示要操作的管道号,可以为1、3、5,分别对应端点0、1、2;参数recbuffer表示发送数据缓冲区;len为发送缓冲区长度,而且必须为要发送数据的真实长度,但最大长度为1024;waittime表示超时时间,单位为毫秒。

3 应用与测试

使用USB Analyser分析USB-bus1.1分析仪采集的数据,当本设计与PC连接时,主机检测到新设备,并提示安装驱动程序,安装完驱动程序后,PC机开始枚举USB设备。PC

机根据读取得USB设备描述符配置设备,此时,USB设备枚举成功,进入挂起状态,本设备已经被PC机识别,如图6所示,USB接口测试成功。

6 PC机识别出本设计

将USB-ISP单片机开发与教学实验板与PC机相连接,在PC机运行USB调试助手,通过USB调试助手与本设计进行数据通信,在PC机上运行ISP控制软件,测试检测连接功能、擦除Flash功能、下载功能和读取Flash功能能够较好的实现。

4 结论

本文作者创新点:设计了一种单片机(MCU)控制、基于USB接口通信的通用智能型ISP下载器。由于ISP下载系统使用USB接口,PC机主机不直接操纵编程器的硬件电路,而是向内置单片机发以命令的形式间接控制下载器工作,避免PC机软件受病毒侵害出现错误、联机电缆接触不良、外界电磁干扰等原因造成控制错误,整个设计显得灵活、方便。

参考文献

[1]胡晓军.USB接口开发技术[M].西安:西安电子科技大学出版社.2005

[2]任卫华、叶明.基于PDIUSB12芯片的USB接口实现方案[J].国外电子元器件.2005

[3]USB Interface Association Descriptor Device Class Code and Use Model, http://www.usb.org.

[4]王志强等. USB设备驱动程序开发技术研究[J].微计算机信息,2006,2:257-260www.



关键词: USB ISP PDIUSB12 扩展性

评论


相关推荐

技术专区

关闭