基于USB接口的ISP下载系统设计
1 引言
ISP(In-System Programming)在系统编程,通过下载电缆直接对安装在用户目标板上的器件编程,给电子产品的设计和生产带来许多革命性的变化。目前,比较成熟的ISP下载器大多是基于串口或者并口通信的,但是也存在着以下问题:
(1)用户PC机的主频、硬件和操作系统不同,可能会造成控制信号错误;www.51kaifa.com
(2)不同的厂商提供不同的ISP下载器,互不兼容,给嵌入式开发带来不便;
(3)限于串、并口的通信协议,ISP数据传输速率较低,影响嵌入式产品的开发。
基于以上原因,本文提出了一种将单片机和USB总线相结合,进行ISP下载的方法,经过实际应用,取得了较好的效果。
2 系统设计
本系统分为硬件和软件两部分,硬件平台主要由USB接口和单片机控制模块组成,完成对PC机通信和对目标芯片ISP编程。软件面向用户设计,由用户选择要下载的、已经编译成Hex文件格式的代码文件,然后向目标芯片下载程序代码,同时可以检测目标芯片型号、擦除目标芯片、从目标芯片读出程序代码等。整体框架如图1所示。www.51kaifa.com
图1 系统框架图
2.1 硬件系统设计
硬件是整个系统的基础,是完成各个功能的物理平台。硬件部分主要完成USB通信和ISP下载。采用USB接口芯片与单片机相结合,USB接口芯片已经封装好USB1.1协议,使用单片机控制对目标芯片ISP下载操作,硬件模块关系如图2所示。
图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所示。
图3 PDIUSB12电路
该电路设计分析如下:
(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的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)