网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 接口电路 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  基于USB接口的ISP下载器设计   
基于USB接口的ISP下载器设计
[作者:宋晖 张华 高小明    转贴自:微计算机信息    点击数:    更新时间:2008-7-2
【字体:

The  Design  of  the  ISP  Download  System  Based  on  the  USB  Interface
摘 要:论文阐述了基于USB接口的ISP下载器设计过程。硬件设计部分介绍了USB接口通信模块的设计,软件设计部分详细阐述了ISP下载系统所包含的单片机固件程序和计算机应用程序两部分。该系统有具有较好的扩展性。
关键词: USB;ISP;PDIUSB12;扩展性
Abstract:The paper explains the design of a ISP download system based on the USB interface. In hardware segment, the communication module was introduced. In software segment, the microcontroller firmware program and PC application program are presented at length. The system had better expansibilities.
Keyword: USB; ISP; PDIUSB12;expansibility
1 引言
ISP(In-System Programming)在系统编程,通过下载电缆直接对安装在用户目标板上的器件编程,给电子产品的设计和生产带来许多革命性的变化。目前,比较成熟的ISP下载器大多是基于串口或者并口通信的,但是也存在着以下问题:
(1)用户PC机的主频、硬件和操作系统不同,可能会造成控制信号错误;
(2)不同的厂商提供不同的ISP下载器,互不兼容,给嵌入式开发带来不便;
(3)限于串、并口的通信协议,ISP数据传输速率较低,影响嵌入式产品的开发。
基于以上原因,本文提出了一种将单片机和USB总线相结合,进行ISP下载的方法,经过实际应用,取得了较好的效果。
2 系统设计
本系统分为硬件和软件两部分,硬件平台主要由USB接口和单片机控制模块组成,完成对PC机通信和对目标芯片ISP编程。软件面向用户设计,由用户选择要下载的、已经编译成Hex文件格式的代码文件,然后向目标芯片下载程序代码,同时可以检测目标芯片型号、擦除目标芯片、从目标芯片读出程序代码等。整体框架如图1所示。
 

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

本设计通过USB接口与PC机通信,微控制器接收完数据后,使用ISP方式下载到目的芯片中,故在硬件上采用ATMEL公司的51系列单片机AT89S52作为本设计的嵌入式微控制器,采用PHILIP公司的PDIUSB12作为USB设备接口器件。
2.1.1 PDIUSB12设计
PDIUSBD12 PDIUSB12是PHILIPS公司生产的一种USB接口芯片,完全封装USB1.1协议,是一款性价比很高的USB 器件。它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,支持本地的DMA 传输。PDIUSBD12 完全符合USB1.1 版的规范。PDIUSBD12 所具有的低挂起功耗连同LazyClock 输出,可以满足使用ACPI、OnNOW 和USB 电源管理的要求,其低的操作功耗可以应用于使用总线供电的外设。其电路设计原理图如图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;
(6)DMACK_N和EOT_N通过电阻上拉到VCC。
2.1.2 MCU设计
本设计中的MCU采用ATMEL公司的AT89S52单片机,主要用于USB通信和ISP下载。其硬件原理图如图4所示。
 

上图中,电路配置描述如下:
(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所示。

整个系统程序设计采用模块化设计思想。为了使软件可移植性强、易维护,采用分层
的方法来编写PDIUSB12的驱动程序和ISP下载程序。
2.2.2 PC机ISP下载软件设计
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接口测试成功。
 

将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-260
作者简介:宋晖(1974- ),男(汉族),陕西周至人,西南科技大学计算机学院讲师,硕士,主要从事机器人控制技术和嵌入式系统方向的研究。
通信地址: 宋晖 高小明  西南科技大学 计算机学院,四川 绵阳 621010
           张华   西南科技大学 工程技术中心,四川 绵阳 621010

  • 上一篇文章:基于IEEE 1451.2协议的智能传感器独立接口设计和实现
  • 下一篇文章:没有了
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     一种简单的10MHz频率源兼分配放大器...
     维氏电桥振荡器
     检验液晶显示器的简易测试仪
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号