基于USB接口的编程器的设计毕业设计说明书论文.docx
《基于USB接口的编程器的设计毕业设计说明书论文.docx》由会员分享,可在线阅读,更多相关《基于USB接口的编程器的设计毕业设计说明书论文.docx(84页珍藏版)》请在冰豆网上搜索。
基于USB接口的编程器的设计毕业设计说明书论文
编号:
毕业设计说明书
题目:
基于USB接口的编程器的
设计
题目类型:
理论研究实验研究工程设计工程技术研究软件开发
摘要
USB(通用串行总线)是连接外部设备和主控制器(通常是个人电脑)的一个串行总线标准。
USB是由AjayBhatt在因特尔公司工作时开发的,其开发USB的目的是为了取代各种各样的串行和并行端口。
USB有一个显著优点就是支持热插拔,也就是说在开机的情况下,你也可以安全地连接或断开USB设备,真正达到真正的即插即用。
随着电子的快速发展,单片机机得到了广泛地应用,而单片机开发产品离不开编程器。
传统的编程器都是基于并口开发,在笔记本中根本无法使用,因而开发基于USB接口的编程器具有非常重要的意义。
USB型编程器具有体积小巧、功耗低、可靠性高、通用性强、编程速度快等特点;另一方面,USB具有自身供电的能力,不必外接电源。
本课题实现了基于USB接口的AT89S5X单片机编程器制作。
文中重点介绍了编程器硬件设计、DC-DC升压电路、USB转串口模块设计、单片机程序设计、上位机的软件设计。
在硬件方面,详细介绍方案的选择,元件参数的计算,以及在制作过程中的注意事项;在软件方面,详细阐述了基于VC++上位机编程过程的每个步骤,并提供一个良好的人机对话界面软件,使用方便。
本系统可以实现AT89S51,AT89S52等系列CPU芯片的芯片识别、程序下载、芯片擦处、程序加密、数据比较、代码读出等功能,同时可以通过计算机控制单片机的运行与停止。
关键词:
下载;单片机;编程器;并行;USB转串口
Abstract
USB(UniversalSerialBus)isaspecificationtoestablishcommunicationbetweendevicesandahostcontroller(usuallypersonalcomputers),whichwasdevelopedandinventedbyAjayBhattwhenhewasworkingforIntel.ThedesignedofUSBisintendedtoreplacemanyvarietiesofserialandparallelports.Thereisalsoasignificantadvantageofitssupportinghot-swappable,whichmeansyoucansafelyconnectordisconnecttheUSBdeviceinthecaseofthecomputerrunningtoachieveatrueplugandplay.
Withtherapiddevelopmentofelectronics,microcontrolleriswidelyused.However,usingthemicrocontrollertodevelopproductcannotworkwithouttheMCUprogrammer.Traditionalprogrammingusuallyusesparallelcommunicationtothecomputer,whichisnotavailabletothenotebookcomputer,sothereisaspecialsignificancetodeceloptheUSBprogrammer.TheUSBprogrammerhasmanyadvantages:
suchasasmallsize,lowpowerconsumption,highreliability,versatility,fastprogrammingcharacteristicsetc;Ontheotherhand,theUSBinterfaceitselfcanofferpower,whichmeansnopowerisneeded.
TheAT89S5XmicrocontrollerpogrammerproductionbasedontheUSBinterfaceisdesignedinthisissue.Themicrocontrollerprogrammerhardware,DC-DCboostcircuit,themoduleofUSBtoserialport,themicrocontrollerprogrammingandPCsoftwaredesigningaredescribedemphatically.Inthepartofhardwaredesignthechoiceofthescheme,thecalculationofdeviceparameters,theattentionsintheproductionprocessaredetailed.Inthepartofsoftwaredesign,theprocessofPCprogrammingbasedonVC++isintroducedemphaticallyandgood-man-machineconversationinterfacesoftwareisprovided,whichiseasytouse.Thissystemcanachievemanyfunctions,suchasidentificationofseriesCPUchips,programdownloading,erase,encrypting,comparing,readingetc,andrunningorstopingoftheMCUcanbecontrolledbythePC.
Keywords:
Download;Microcontroller;Programmer;Parallel;USB-to-serial
引言
通用串行总线(UniversalSerialBus)是连接外部设备的一个串口总线标准,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术,同时USB接口支持设备的即插即用和热插拔的功能。
USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。
USB的功能强大、细小、使用灵活、方便,因而USB具有无比的优越性。
USB接口将会越来越广泛的使用,因而研究基于USB的接口设备具有很重要的意义。
单片机体积小、功能强、价格低廉、应用十分广泛。
但面对多则几千元,少则几百元的编程器,很多人望而却步。
单片机编程器是把一个可编程的集成电路写上数据的工具。
编程器的叫法有多种,“编程器”、“下载器”、“烧录器”等都是其名字,都是同一个产品的不同名称。
编程器在功能上可分通用编程器和专用编程器。
专用型编程器价格最低,适用芯片种类较少,适合以某一种或者某一类专用芯片编程的需要,例如仅仅需要对AT89S5X系列编程。
全功能通用型一般能够涵盖几乎所有当前相同系列的芯片,由于设计麻烦、成本较高、限制了销量、最终售价极高,但适合需要对很多种芯片进行编程的情况。
本课题制作基于USB接口的AT89S5X单片机专用编程器的制作。
文中重点介绍了编程器硬件设计、DC-DC升压电路、USB转串口模块设计、单片机程序设计、上位机的软件设计。
其中在硬件方面,详细介绍方案的选择,电路设计、元件参数的计算,以及在制作过程中的注意事项;在软件方面,详细阐述了基于VC++上位机编程过程的每个步骤,并提供一个良好的人机对话界面软件,其使用方便。
本系统可以实现AT89S5X等系列CPU芯片的芯片识别、程序下载、芯片擦处、程序加密、程序比较、程序读出等功能,同时可以通计算机控制单片机的运行与停止。
1绪论
随着USB的快速发展,USB应用越来越广泛,USB将会取代各种各样的串行及并行接口,因而研发USB接口的产品已经成为市场发展的需要。
本文将会简述USB接口的编程器的原理、方案选择与设计,主要详细介绍硬件电路设计、单片机程序设计、上位机软件设计,同时介绍硬件以及软件调试步骤以及注意事项。
1.1课题背景及意义
随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,这么多的设备,如何接入个人计算机?
USB就是基于这个目的产生的。
USB是一个使计算机周边设备连接标准化、单一化的接口,USB的功能强大、细小、使用灵活、方便,因而USB具有无比的优越性、实用性。
USB接口将会越来越广泛的使用,因而研究基于USB的接口设备具有很重要的意义。
编程器的下载方式很多,比如AT89S5X单片机就有二种下载方式:
高压并行编程、ISP串行编程。
每种方式其使用的编程协议都是不同,二种编程方式中,现在很多电脑已经没有并口和串口了,特别笔记本电脑中已经看不到并口和串口的存在,以前使用的并口和串口的ISP下载线已经无法再继续使用了。
作为如今电脑上使用最多,用途最广的USB接口,在每一台电脑上,无论是台式机还是笔记本电脑都配备了四个以上的USB接口,在这个USB流行的时代,使用USB口连接,支持热插拔的方便易用、价格低廉的专用型USB编程器非常符合未来编程器的发展方向。
鉴于通用型编程器高昂的制作成本和复杂的设计,用途也不大,需求人群不多的特点,我们没有必要去设计这样一个编程器。
设计一个方便易用、简单可靠、价格低廉的专用型的编程器,能够对我们平时经常用到的单片机芯片进行编程下载,不仅方便我们日常应用,也锻炼了电路设计能力和动手能力。
以前的编程器都是以并口设计的为主,每次编程时都要将芯片从目标板上取下,放入编程器里进行编程,使用极其不便,本文设计了一个应用USB接口的编程器,无需将芯片从目标板上取下就开以对其进行编程,方便了程序的下载和调试。
1.2系统设计主要任务
本文利用AT89S52做为主控制器,制作USB编程器的样机。
样机的设计包括:
系统硬件的设计与调试及软件的编写与调试。
其中硬件部分制作一个制可以下载程序的单片机控制系统,里面包含有DC-DC升压电路、控制单片机下载程序电路、USB转串口的电路。
软件部分可以控制程序下载、芯片擦除、程序加密、数据比较、数据读出,同时可以控制单片机复位,运行,停止等功能。
2硬件方案选择与设计
USB编程器的制作,方案选择是关键,硬件设计是实现整个功能的基础。
本章将会详细介绍硬件电路方案的选择与设计,包括USB转串口电路设计、DC-DC升压电路设计、单片机控制电路设计。
2.1系统方案选择
USB编程器的制作方案的选择,是进行样机设计最重要、最关键的一步,选择方案的好坏,直接影响了制作及编程的难度。
在硬件方案中,AT89S51/52单片机可以使用ISP或并口模式下载程序。
两种方法各有优缺点,在不同的场合,应用不同的方案。
第一种方案是采用ISP在线编程,程序代码存储阵列可通过串行ISP接口进行编程,串行接口包含SCK线、MOSI(输入)和MISO(输出)线。
将RST拉高后,在其它操作前必须发出编程使能指令,编程前需将芯片擦除。
芯片擦除则将存储代码阵列全写为FFH。
第二种方案是使用并口编程,接线较多,但是控制简单,AT89S51/52单片机内部有4k/8k字节的可快速编程的Flash存储阵列。
编程方法可通过传统的EPROM编程器使用高电压(+12V)和协调的控制信号进行编程。
AT89S51/52的代码是逐一字节进行编程。
通过比较上述方案,考虑到成本以及可扩展性,同时在不增加成本的情况下,只增加下位机控制程序,即可以扩展下载AT89C51/52等系列的单片机,故选择第二种方案。
2.2系统总体设计
硬件的总体设计如图2.1所示,将USB转换为串口,单片机与计算机之间的全双工通信通过单片机的串口与USB转串口模块相连接,这样可以使得编程更加简便,同时使用USB供电,因而不需要外接电源。
计算机将数据传输到主控芯片,主控芯片控制受控芯片,实现程序下载、芯片擦除、程序加密、数据比较、代码读出,同时控制单片机复位与停止、单片机传输数据到计算机,计算机显示相关信息。
同时由于编程中需要用到12V的电压,因而需要使用DC-DC升压电路,将USB自身的5V电压升压到12V。
2.3芯片介绍
2.3.1AT89S51简介
AT89S51单片机是51系列单片机的一个成员,内部自带4K字节可编程FLASH可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89S52构成的单片机系统是具有结构简单、造价低廉、效率高的微控制系统,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89S51是一个有40个引脚的芯片,引脚配置如图2.2所示。
与8031相比,AT89S51自带4K的ROM和128B的RAM,因此编写中小型系统就无需任何硬件进行扩展。
图2.1系统总体设计
AT89S51芯片的40个引脚功能为:
VCC:
电源电压。
GND:
接地。
RST:
复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡放大器的输出。
图2.2AT89S51引脚配置
2.3.2DC-DCMC34063芯片简介
该器件本身包含了DC/DC变换器所需要的主要功能的单片控制电路且价格便宜。
它由具有温度自动补偿功能的基准电压发生器、比较器、占空比可控的振荡器,R—S触发器和大电流输出开关电路等组成。
该器件可用于升压变换器、降压变换器、反向器的控制核心,由它构成的DC/DC变换器仅用少量的外部元器件。
主要应用于以微处理器(MPU)或单片机(MCU)为基础的系统里。
MC34063集成电路主要特性:
输入电压范围:
2、5~40V。
输出电压可调范围:
1.25~40V。
输出电流可达:
1.5A。
工作频率:
最高可达100kHz。
低静态电流。
短路电流限制。
可实现升压或降压电源变换器。
MC34063的基本结构及引脚图功能:
1脚:
开关管T1集电极引出端;2脚:
开关管T1发射极引出端;3脚:
定时电容ct接线端;调节ct可使工作频率在100—100kHz范围内变化;4脚:
电源地;5脚:
电压比较器反相输入端,同时也是输出电压取样端;使用时应外接两个精度不低于1%的精密电阻;6脚:
电源端;7脚:
负载峰值电流(Ipk)取样端;6,7脚之间电压超过300mV时,芯片将启动内部过流保护功能;8脚:
驱动管T2集电极引出端。
2.3.3USB转串口CP2102芯片简介
USB转换口芯片CP2102,UART转USB芯片-CP2102CP2102是全新的USB转UART的单芯片解决方案。
该芯片集成了一个符合USB2.0标准的全速功能控制器、EEPROM、缓冲器、和带有调制解调器接口信号的异步串行数据总线(适用于RS-232协议),同时具有一个集成的内部时钟和USB收发器,无需其他外部USB电路元件。
高性能的CP2102与其他型号的同类芯片相比功耗更低、体积更小、集成度更高(无需外接元件)。
CP2102是USB转串应用的理想选择。
CP2102是美国Silicon公司生产的高集成度USB转UART专用芯片。
它用最简单的外部电路、最少的外部器件和最小的电路板面积实现USB2.0到UART的转换。
CP2102集成度高,内置USB2.0全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线(UART),支持调制解调器全功能信号,无需任何外部的USB器件。
功能强大,采用MLP-28封装,尺寸仅为5mm×5mm,占用空间非常小。
与其他USB-UART转接电路的工作原理类似,CP2102通过驱动程序将PC的USB口虚拟成COM口以达到扩展的目的。
虚拟COM口(VCP)的器件驱动程序允许一个基于CP2102的器件以PC应用软件的形式作为一个增加的COM口独立于任何现有的硬件。
COM口使用运行在PC上的应用软件以访问一个标准硬件COM口的方式访问基于CP2101的器件,PC与CP2101间的数据传输是通过USB完成的,因此,无需修改现有的软件和硬件就可以通过USB向基于CP2101的器件传输数据。
CP2101的体积虽小但功能非常强大,其主要特性如下:
内含USB收发器,无需外接电路器;内含时钟电路,无需外接振荡器;其内部512字节的EEPROM可用于存储产品生产商的ID、产品的ID序列号、电源参数、器件版本号和产品说明;内含上电复位电路;片内电压调节可输出3.3V电压;符合USB2.0规范的要求(12Mb/s);SUSPEND引脚支持USB状态挂起;异步串行数据总线(UART)兼容所有握手和调制解调器接口信号;支持的数据格式为数据位8、停止位1、2和校验位(包括奇校验、偶校验和无校验);波特率范围为300b/s~921.6kb/s;内含512字节接收缓冲器和512字节发送缓冲器;支持硬件或X-On/X-Off握手;支持事件状态。
2.4硬件电路设计
2.4.1CP2102电路设计
图2.3CP2102电路
采用CP2102接口应用电路如图2.3所示。
该电路已通过制板和软硬件调试,完全可靠。
串口扩展,仅需2~3只外部去耦电容器,REGIN端需加0.1μF与4.7.0μF并联的去耦电容。
CP2102的供电电源由计算机的USB接口。
提供该电路仅使用CP2102的UART总线上TXD/RXD2个引脚,其余悬空。
单片机可直接识别CP2102的UART总线上信号,为确保数据收发的稳定性,将RST采用一只10kΩ电阻上拉至VDD。
当CP2102转换器与主机连接后,必须根据操作系统选择相对应的虚拟串行口驱动程序。
不必修改设备的应用程序,就像存取一个标准的物理串口一样访问该虚拟串口,端口设备会产生“CP2102USBtoUARTBridgeController(COM×)”的新端口(×随计算机的配置而异),此时说明驱动程序安装成功。
实质上,所有针对虚拟串口的数据通信都足以USB总线传输实现的,但在设备上,收发则是RS232数据。
2.4.2MC34063芯片升压电路设计
MC34063组成的升压电路原理如图2.4所示,当芯片内开关管导通时,电源经取样电阻Rsc、电感L1、MC34063的1脚和2脚接地,此时电感L1开始存储能量,而由C16对负载提供能量。
当芯片内开关管导断开时,电源和电感同时给负载和电容C16提供能量。
电感在释放能量期间,由于其两端的电动势极性与电源极性相同,相当于两个电源串联,因而负载上得到的电压高于电源电压。
开关管导通与关断的频率称为芯片的工作频率。
只要此频率相对负载的时间常数足够高,负载上便可获得连续的直流电压。
脚5电压与内部基准电压1.25V同时送人内部比较器进行电压比较。
当脚5的电压值低于内部基准电压(1.25V)时,比较器输出为跳变电压,开启R—S触发器的S脚控制门,R—S触发器在内部振荡器的驱动下,Q端为“1”状态(高电平),驱动管T2导通,开关管T1亦导通,使输入电压Ui向输出滤波器电容C16充电以提高U。
,达到自动控制U。
稳定的作用。
当脚5的电压值高于内部基准电压(1.25V)时,R—S触发器的S脚控制门被封锁,Q端为“0”状态(低电平),T2截止,T1亦截止。
振荡器的Ipk输入(脚7)用于监视开关管T1的峰值电流,以控制振荡器的脉冲输出到R—S触发器的Q端。
脚3外接振荡器所需要的定时电容C10电容值的大小决定振荡器频率的高低,亦决定开关管T1的通断时间。
图2.4MC34063芯片升压电路
当三极管不导通时候,比较器的反相输入端(脚5)通过外接分压电阻R17、R8监视输出电压。
其中,输出电压Uo=1.25(1+R17/R8),由公式可知输出电压仅与R17、R8数值有关,因5脚是1.25V为基准电压,恒定不变。
若R17、R8阻值固定,U亦稳定。
从中我们可以算出,当三极管不导通时候,输出电压是Uo=1.25(1+20/2.2)=12.61V,同理可算当三极管导通时候,Uo=1.25(1+20//12/2.2)=4.96V.
2.4.3MCU控制电路设计
单片机控制电路如图2.5所示,U2的RST引脚,是复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
通过RC电路实现上电复位,一般上,取R=10K,C=10uf,其原理为当单片机接通电源时,VCC给电容充电,使得RST端输出高电平,当电容充满电后,通过10K电阻放电,电容放电完之后,RST输出低电平,单片机正常工作。
时钟振荡器,AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。
现在选择电容为30PF。
EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
因而EA端接高电平。
单片机输出高电平时候,由于有负载的作用,高电平一般是3.5V,当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
通过AT89S52控制单片机的下载。
根据单片机下载程序所需设置引脚的电平,并综合考虑布线的容易及抗干扰的要求,将控制单片机的P0口接到下载单片机的P0口,控制单片机的P1口接到下载单片机的P1口,控制单片机的P2口接到下载单片机的P2口,控制单片机的P3_2口接到下载单片机的RST口,控制单片机的P3_3口接到下载单片机的ALE口,控制单片机的P3_4口接到下载单片机的P3_3口,控制单片机的P3_5口接到DC-DC芯片电压的控制口。
图2.5MCU控制电路
3软件方案选择与设计
硬件设计是基础,软件设计是灵魂。
程序设计正确与否,关系到整个系统能否正常工作。
本章将会详细介绍下位机的程序设计、PC机软件设计的算法、实现的方法。
在单片机程序设计方面,将会详细简述如何实现芯片识别、程序下载、芯片擦处、芯片加密、程序比较、程序读出的原理以及实现方法。
在上位机编程方面,将会详细简述制作的每个步骤,提供给用户一个使用方便,美观的界面。
3.1单片机编程
C语言可读性好,代码便于维护,便于开发;汇编语言编写的程序不容易看懂,可维护性不好,但是执行效率高。
就目前的情形来说,在硬件条件允许的情况下,程序员选择用高级语言编程,不但提高了编程效率,也提高了代码的可维护性,并且十分有利于编写大型的工程。
图3.1单片机编程流程图
基于USB接口的编程器制作的程序流程图如图