《AVR单片机的USB在线下载器设计及实现论文 源代码.docx》由会员分享,可在线阅读,更多相关《AVR单片机的USB在线下载器设计及实现论文 源代码.docx(33页珍藏版)》请在课桌文档上搜索。
1、书目摘要1第一章结论21.1 本论文的探讨目的和意义21.2 USB简介21.3 单片机技术及AVR单片机性能简介4其次章设计构思52. 1技术背景52 .2方案选择103 .3本章小结12第三章系统硬件设计123. 1MCU的选择123.1 硬件电路设计163.2 本章小结16第四章系统软件设计164.1 系统固件程序设计174. 2系统驱动程序设计184.1 ISP下载限制软件274.2 本章小结28第五章应用测试285. 1USB下载器驱动安装285.1 上位机应用程序测试285.2 测试及结果分析29第六章全文总结及展望316. 1全文总结316. 2展望32致谢33参考文献33附录3
2、6AVR单片机的USB在线下载设计及实现学生:刘炜指导老师:丁晓波(三峡高校电气信息学院)摘要:本文设计实现了一个基于USB技术的下载器,该下载器可以通过USB下载线将AVR单片机的HEX程序通过SPI线路下载到目标单片机中。在设计上采纳Tmega8单片机做限制器,它及计算机的通信采纳USB通信技术,对目标芯片编程采纳ISP技术,从而可以便利地在全部具有USB接口的计算机上进行AVR单片机系统及其他支持在线编程单片机系统的开发。经测试该下我器能够对单片机在线编程,在速度,牢靠性等方面较并口卜载器有较大的提高。关键词:USB技术;同步串行通信SPI;ISP在线编程;M)M驱动;Abstract:
3、Inthispaper,adesigntechnologybasedontheUSBdevicetodown1oad,thedownloadcanbedown1oadedthroughtheUSBlinetoAVRmicrocontrollerthroughtheSPIlinesHEXprogramdown1oadedtothetargetMCU.Tmega8usedinthedesignofsingle-chipcontrollertodoitwiththecomputerusingtheUSBcommunicationtechnologycommunications,onthetarget
4、chipusingISPProgrtimmingtechnology,whichcaneasilyhaveaUSBinterfaceinal1thecomputersandtheAVRMCUSystemsothersingle-chipsupportforonlineprogrammingsystem.Testedthedownloadofthesingle-chipdevicetoonlineprogramming,intermsofspeed,reliabiIityandsoonthantheparalIelporttodown1oaddevicehasgreatlyimproved.Ke
5、ywords:USBtechnology;synchronousserialconmunicationSPl;ISPonlineprogramming;WDMdriver;第一章绪论1.1 本论文的探讨目的和意义通常进行单片机试验和开发,编程器是必不行少的。仿真、调试完的程序要借助编程器写入单片机的存储器中,随着单片机技术的发展出现了MTP(可多次编程)存储器技术和ISP(在系统可编程)技术,这样就可以省去昂贵的仿真器,只要通过计算机接口和条串行下载线就可干脆在目标芯片上编程。目前,比较成熟的ISP下载器大多是基于串口或者并口通信的,但存在以下问题:(1)用户PC机的主频、硬件和操作系统不同,
6、可能会造成限制信号错误;(2)不同的厂商供应不同的ISP下载器,互不兼容,给嵌入式开发带来不便;(3)限于串、并口的通信协议,ISP数据传输速率较低,影响嵌入式产品的开发。基于以上缘由,本课题要求完成一个基于计算机USB端口的AVR程序下载器,利用该下载器可以通过计算机的USB端口实现对SPI信号的模拟,并完成对AVR程序的下载。从而可以便利地在全部具有USB接口的计算机上进行AVR单片机开发。1.2 USB简介USB全称为UniVerSaISerialBUS(通用串行总线),它是由Compaq、IBM.IntekNEC、MiCroSoft等一些PC大厂商联合开发的一种新型的、基于令牌的、高速
7、的串行接口标准。USB把各种不同的接口统一起来,仅用一个4针插头作为标准插头,通过这个标准插头,采纳菊花链形式可以把全部的外设连接起来,并且不会损失带宽。传输速度是USB发展的主要指标之一,USBI办议已从最初的速度只有1.5MbPS(慢速)和12Mbps(全速)的1.l版本,发展到速度高达480Mbps的2.0版本。如今特地用于USB外设间“可移动互连”的2.0补充规范USBOTG(On-The-Go)已经发布,使得USB总线可以进行点对点的数据传输,而不肯定要求主机的参及。USB接口已被各种流行的操作系统所支持,并应用于各种数据终端设备中。它之所以能够在当今的外用设备标准接口中占有重要的地
8、位,是由于它具有以下的性能特点: 终端用户的易用性:为连接电缆和连接头供应了单一的模型;支持即插即用和热拔插;自我检测外设,自动地进行设备驱动设置;可动态连接,动态重置外设。 应用广泛性:适应不同的设备,供应低速传输(1.5Mbps).全速传输(12Mbps)和高速传输(480MbPS);可连接至多127个物理设备,并支持对多个设备的同时操作;在主机和设备之间可以传输多个数据和信息流:利用底层协议,提高了总线利用率。 同步传输带宽:确定的带宽和低延迟适合电话系统和音频的应用;同步工作可以利用整个总线带宽。 敏捷性:可以选择系列大小的数据包,允许对设备缓冲区大小进行选择:通过指定数据缓冲区大小和
9、执行时间,支持各种数据传输率:通过协议对数据流进行缓冲处理。 健壮性:出错处理/差错复原机制在协议中运用;对用户感觉而言,热拔插是完全实时的:可以对有缺陷设备进行认定。 及PC产业的一样性:协议的易实现性和完整性;及PC机即插即用的体系结构的样;对现存操作系统接口的良好连接。 成本低廉:以低廉的价格供应1.5MbPS的子通道设施;将外设和主机硬件进行了最优化的集成;促进了低价特别设的发展:廉价的电缆和连接头。对于数字系统而言,尤其是目前在工业界被广泛应用的嵌入式系统,进行USB技术的开发和应用是特别必要的。一方面,USB技术作为一种新兴的串行通信技术,随着协议版本的不断更新,传输速度已从1.5
10、Mbs的低速发展到480Mbs的高速,可以在很大的程度上满意不同数字系统对串行通信的要求。另一方面,USB技术不同于以往的串行通信接口技术,包含总线通信协议等内容,在实际应用中,可以依据须要把数字系统开发成相应的USB主机、USB设备以及USBOTG(USBOn-the-Go,USB主机、从机自适应)设备,在实现不同系统之间的数据交互方面有很大的敏捷性。对于Sock而言,假如可以将系统内对数据传输要求较高的局部模块设计成具有标准接口的点对点连接方式,而总体仍沿用传统的片内总线数据传输方式,就可以让SoC器件很好的解决接口困难化和同步-异步的协调问题。作为标准化的串行通信接口,USB接口是特别适
11、合SoC点对点连接设计的一种选择,不但在传输速度上可以基本满意SoC器件中各模块间数据交互的要求,而且从结构上来说,USB电缆只需VBusGND、D+和四根线,特别简洁。因此,基于上述分析,对USB技术在数字系统尤其是嵌入式系统中的应用方法进行探讨,为日后USB技术在Soc设计领域广泛应用奠定基础,就显得尤为重要,具有特别深远的意义。1.3单片机技术及AVR单片机性能简介AVR单片机是ATME1.公司2019年推出的全新配置精简指令集RISC(ReducedInstructionSetCPU)单片机。精简指令集RISC结构是20实际90年头开发出来的,是综合了半导体集成技术和软件性能的新结构。
12、这种结构使得AVR单片机具有接近IMIPS/MHz的高速处理实力。AvR单片机开发的目的在于,能采纳C语言编程,从而能高效的开发出目标产品。为了对目标代码大小,性能及功耗进行优化,AVR单片机采纳了大型快速存取寄存器文件和快速单周期指令。快速存取RISC寄存器文件由32个通用工作寄存器组成。传统的基于累加器的结构须要大量的程序代码,以实现累加器和存储器之间的数据传输;在AVR单片机中,用32个通用工作寄存器代替累加器,从而可避开传统的累加器和存储器之间的数据传输造成的瓶颈现象。AVR单片机运用Harvard结构,在前一条指令执行的时候就取出现行的指令,然后以一个周期执行指令。在其它的CISC以
13、及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍。AVR单片机是用一个周期执行一条指令的,它是在8位单片机中第一个真正的RISC结构的单片机。AVR单片机采纳低功耗,非挥发的CMOS工艺制造,内部分别集成Flash,EEPROM和SRAMT种不同性能和用途的存储器。除了可以通过SPI口和一般的编程器对AVR单片机的Flash程序存储器和EEPROM数据存储器进行编程外,绝大多数的AVR单片机还具有在线编程(ISP)的特点,这给学习和运用AVR单片机带来了极大的便利。其次章设计构思2.1 技术背景嵌入式系统及开发技术嵌入式系统是以应用为中心
14、,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、牢靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统的应用可以说涵盖了国民经济建设的各个方面,并处于高速发展之中,其中在以下几个方面的发展尤其显著:系统机构处于困难:网络互联成为必定趋势:应用实时精简系统内核、算法来降低功耗和软硬件成本;系统供应友好的人机界面。所以,通过对嵌入式系统的基本概念、应用以及发展趋势的了解,可以看到,嵌入式系统的探讨是计算机学科综合各项理论和技术的集大成者。针对这样的要求,论文本设计是基于嵌入式系统的USB外设的开发。(一)嵌入式系统组成结构嵌入式系统由硬件和软件两部分组成,所以其分类可以从硬件
15、和软件两方面进行划分。嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器及通用处理器最大的不同点在于:嵌入式CPU大多工作在为特定用户群所特地设计的系统,它将通用CPU中很多板卡完成的任务集成到芯片内部,从而有利于嵌入式系统设计在设计时趋于小型化,同时还具有很高的效率和牢靠性。嵌入式处理器的体系结构经验了从ClSC(困难指令集)到RISC(精简指令集)的转变,位数有4位、8位、16位、32位逐步发展到64位。嵌入式处理器是嵌入式系统硬件部分的核心,近年来嵌入式微处理器的主要发展方向是小体积、高性能、低功耗。专业分工也越来越明显,出现了专业的IPC(IntelIeClUaIProPertyC
16、Ore学问产权供应商,如ARM、MIPS等,这些属于微处理器(MicroProcessorUnit,MPU),用于计算机通信领域的嵌入式DSP处理器(DigitalSignalProcessor,DSP)和高度集成的嵌入式片上系统(SystemOnChip,S0C)o目前几乎每一个半导体制造商都生产嵌入式处理器,并且越来越多的公司起先拥有自主的处理器的设计部门,流行的结构有30多个系列,其中以ARM、PowerPC、MIPS等运用得最为广泛。嵌入式软件是针对特定应用领域,基于某个固定的硬件平台,用来达到用户预期目标的计算机软件。为了嵌入式系统的开发更加便利和快捷,须要特地负责管理存储器安排、中
17、断管理、任务调度等功能的软件,这就是所谓的嵌入式系统。嵌入式系统是用来支持嵌入式应用的软件,是嵌入式系统中极为重要的组成部分,它通常包括及硬件相关的底层驱动程序、系统内核、设备驱动接口,通信协议、图形用户界面(GUl)等。及通用操作系统相比较,嵌入式操作系统在系统实时性、硬件依靠性、软件固化性以及应用专用性等方面,具有更加显明的特点。嵌入式系统依据应用场合分为两大类:一类是面对消费电子产品的非实时操作系统,如1.inUX,应用设备PDA、机顶盒等;另一类则是面对限制、通信等领域的实时操作系统,如VXworkS等。实时操作系统是具有实时性,能支持实时限制系统工作的操作系统,其首要任务是调度一切可
18、利用的资源完成实时限制任务;其次才着眼于提高系统的运用效率,其重要特点是通过调度来满意对于重要事务在规定时间内作出正确的响应。嵌入式系统中的软件除了嵌入式操作系统外还包括嵌入式应用软件,嵌入式应用软件和一般软件有肯定的区分,它不仅要求在精确性、平安性和稳定性等方面要满意实际应用的须要,并且还要尽可能地进行优化,以削减对系统资源的消耗,降低硬件成本。(二)嵌入式系统的开发流程嵌入式系统发展到今日,对应于各种微处理器的硬件平台般都是通用的、固定的和成熟的,这就大大削减了由硬件引入错误的机会。此外,由于嵌入式操作系统屏蔽了底层硬件的困难性,使得开发者通过操作系统供应的APl函数就可以完成大部分的工作
19、,因此大大简化了开发的过程,提高了系统的稳定性。嵌入式系统通常是一个资源受限的系统,因此干脆在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不行能的。一般须要交叉开发环境(CrossDevelopmentEnvironment)的支持。嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器。这里般把进行交义编译的主机称为宿主机,也就是-般的通用计算机,而把程序实际的运行环境称为目标机,也就是嵌入式系统环境。交叉编译器用于在宿主机上生成能在目标机子上运行的代码,而交叉调试器和系统仿真器则用于在宿主机和目标机之间完成嵌入式软件的调试。嵌入式软件开发所采纳的编译为交叉编译。所谓交叉
20、编译就是在一个平台上生成可以在另个平台上执行的代码。编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU须要有相应的编译器,而交叉编译就犹如翻译一样,把相同的程序代码翻译称不同的CPU对应语言。要留意的是,编译器本身也是程序,也要在及之对应的某一个CPU平台上运行。嵌入式软件经过编译和链接后即进入调试阶段,调试是软件开发过程中必不行少的一个环节,嵌入式软件开发过程中的交叉调试及通用软件开发过程中的调试方式有很大的差别。在常见软件开发中,调试器及被调试的程序往往运行在同一台计和机上,调试器是一个单独运行着的进程,它通过操作
21、系统供应的调试接口来限制被调试的进程。而在嵌入式软件开发中,调试时采纳的是在宿主机和目标机之间进行的交叉调试,调试器仍旧运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以限制、访问被调试进程,读取被调试进程的当前状态,并能够变更被调试进程的运行状态。嵌入式系统的交叉调试有多种方法,主要可分为软件方式和硬件方式两种。它们一般都具有如下一些典型特点:调试器和被调试进程运行在不同的机器上,调试器运行在PC机或者工作站上(宿主机),而被调试的进程则运行在各种专业调试板上(目标机):调试器通过某种通信方式(串
22、口、并口、网络、JTAG等)限制被调试进程:在目标机上一般会具备某种形式的调试代理,它负责及调试器共同协作完成对目标机上运行着的进程的调试。这种调试代理可能是某些支持调试功能的硬件设备,也可能是某些特地的调试软件;目标机可能是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍旧存在着宿主机和目标机的区分。本设计即采纳嵌入式系统的开发技术,借助宿主机(通用计和机)来编译出目标机的可执行代码,不再须要编程器,使设计简化。2.1.2AVR单片机的在线编程接口SPI同步串行接口SPI(SerialPeripheralI
23、nterface)允许在.,Tmega系列单片机和外设或其他AVR系列单片机之间高速同步数据传输。它是一个同步的串行通信总线,因此在SPl通信中的发送器和接收器必需运用相同的时钟,使接收器能同步监测数据位。SPI逻辑结构如图,其核心部件为8位移位寄存器和接收缓存器(两者合成为SPl数据寄存器),由分频器,选择器和时钟逻辑所组成的时钟信号发生器,以及SPl状态寄存器,SPI限制寄存器等部件。SPl利用B口的其次功能,将其中的PB7,PB6,PB5及PB4分别定义为SCK,MOSI,MISO和SSo图2-1SPI数据通信时的主-从机连接及数据传送方式对SPl主机数据寄存器写入数据以启动SPl时钟,
24、通过将须要的从机的/SS引脚拉低,主机启动次通讯过程。SCK引脚是主机模式的时钟输出和从机模式的时钟输入,主机和从机将须要发送的数据放入相应的寄存器。主机在SCK引脚上产生时钟脉冲以交换数据。主机的数据从主机的MOSl移出,从从机的MOSl移入:从机的数据从从机的MISO移出,从主机的VISO移入。主机通过将从机的SS拉高实现及从机的同步。AVR单片机的SPl接口在发送方向上单缓冲,而在接受方向是双缓冲。这表示在全部的移位操作完成前,被发送的字节不能被写入SPI的数据寄存器:但SPl在接受数据时,已经收到的数据必需在下一个字节被完全移入之前从SPl数据寄存器中读出,否则这个字节会丢失。2.1
25、.3ISP在线编程技术ISP(In-SystemPrOgralnming)技术事实上就是用户在自己设计的目标系统中或电路板上为重构器件进行编程或反复编程时,无需将ISP器件从线路板上拆上拆下。这种可对电路板或整个电子系统随时进行组态或重组的功能,给设计开发、电路板级调试和系统升级换代带来了极大的便利,使得电路系统设计、生产、维护及更新等环节都发生了革命性的变更。用户无论想增加或修改电路设计,都可以在儿分钟内把新的设计下载到器件中。由此可见,硬件的设计,象软件那样敏拢而易于实时修改,这不仅扩展了器件的用途,缩短了系统调试周期,而且还省略了对器件单独编程的环节,简化了目标设备的现场升级和维护工作,
26、是一种全新的设计方式。AVR单片机单片机引脚共有4个:RST,MOS1.MISO和SCK。各引脚功能如下:RST为在线编程输入限制端,仅在ISP下载过程中保持高电平,在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSl为主机输出/从机输入的数据端,系统正常工作时,该引脚为通用I/OP1.5口线。MISO为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用I0P1.6线。SCK为串行编程的时钟端,可实现主/从机时序的同步。该时钟频率不得超过系统时钟的1/16。系统正常工作时,该升脚为通用I/0P1.7口线。ISP卜.载是基于串行传输方式,并且符合SPl协议。在SPl协议中,数据的发
27、送和接收是同步进行的。即在同步时钟的作用下,在发送数据的同时也在接收数据.ISP的时序如图所示。图2-2ISP串行数据传输时序图每一字节的数据都是低位在先,高位在后,在串行时钟的作用下逐位传输。在传输过程中,数据是在时钟输入端为高电平常有效,在时钟输入端为低电平常更新数据。2.2 方案选择通常进行单片机试验或开发时,编程器是必不行少的。仿真调试过的程序须要借助编程器写入单片机内部或外接的程序存储器中,随着单片机技术的应用发展,很多公司新推出的MCU具有片内Flash存储器,Flash存储器具有电可擦除、无需后备电源爱护数据、可在线编程等特点。在线编程允许单片机内部运行的程序去改写Flash存储
28、器的内容,利用这个特点,不仅可以在运行过程中修改某些运行参数,也为研制新型嵌入式应用开发工具供应了技术基础。采纳宿主机/目标机模式开发嵌入式应用,利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最终目标机在脱离宿主机单独运行。具有在线编程功能的单片机给试验和开发带来了很大的便利和敏捷性,并使单片机系统远程调试、升级成为现实。嵌入式面对用户,面对产品,而对应用的特性确定了它的硬件和软件都必需高效率地设计,量体裁衣,去除冗余,这样才能在详细应用中更具有竞争力。嵌入式系
29、统这种对体积的敏感性确定了它对外围接口设备选择的严格性。既要保证能及其它外围设备高速、有效地通信,又要严格限制接口的体积。而通用串行总线USB正符合了这一要求。而USB1.l的最大传输速率可达12MbPS,USB2.0更是支持高达480Mbps的传输速率。由于常见的外设几乎都支持USB,所以只需一到两个USB接口,就可以完成嵌入式系统和几乎全部常见外设的通信。这种解决方案无疑具有很强的好用性。USB接口分为USB主机USBMaster和USB外设USBSlaveeUSB主机负责对各种USB外设的限制并向USB外设供电。要实现嵌入式系统对各种外围设备的有效限制,就必需在嵌入式系统中实现USBMa
30、ster的功能。在本设计中,选用的嵌入式微处理器须要是一款功能强大的RISC微处理器,其时钟频率高,它的体积小,功耗低,性能稳定。本文采纳USB接口技术和AVR单片机相结合,完成个USB下载器,不须要运用编程器,只须要通过1.ISB接口和编程电缆干脆在目标器件或系统上进行编程。.ATME1.公司的AvR系列单片机,供应了一个SPl串行接口对内部程序存储器编程ISP,支持在线编程功能。本设计选用单片机是ATME1.公司推出的AVR系列单片机,采纳上/下位机设计方式,通过USB通讯方式实现信息传输。详细工作原理是:上位机(PC机)苜先安装驱动程序和PC应用软件,然后招下位机系统安装到单片机上,将U
31、SB插头插入主机,经主机正确识别后,运行PC应用软件将程序下载到目标芯片中,卜戢的程序存储到下位机存储单元中,进行ISP卜载到目标芯片中。浦公司的PDIUSBD12o经过综合考虑,我们的设计中采纳了其次种类型的USB接口芯片。采纳飞利浦公司的PDIUSBD12作为USB下载器的接口器件。1.、坦囱曲OOl-l15jwp)三种方一方案一来检南直及*1图2-3系统框妲图-4*殳计,USBPC机ISB接1.HQRfr坦p及AVR单J三S3IlCR/H-j国an而案妾口芯片我很幻也止大致分为IitZk11.人可的Q7gUSB接口的芯片,1赭獭寂i芯片只攵I芯片块关系将显血部集&JSP35条涉及接口i信
32、,必需微限制器限制。这一类有代表性的产品有朗讯公司的USS820/825、方案二:不用USB接口芯片,由单片机发送、接收相关的USB设备信息,枚举USB外设胜利后,依据接收到的DI,进行相应的限制操作。降匕*有案二:硬俣吠天乐ll,我IlJ加呢得E:卜案一简成了USK整个设计的成本降低,电健r*rUSB:采纳无线通稽方状方式。不须,标芯用ISP生线编片机内部运行的程序去改写Fl器的内%接玄个特,II八k以在运行过程中修改某些运行C”,=如研制新n二S八优应用开发工具供应了技术基础。在线编程为开发调试供应了便利,无线通信给试验和开发带来了很大的便利和敏捷性,并使单片机系统远程调试、升级成为现实。
33、2.3 本章小结本章提出三种设计方案进行对比,得出可行性方案二。并从单片机性能上进行可行性论证。这是本设计的理论基础。接下来的硬件设计和软件设计就是依据这些内容绽开的。第三章系统硬件设计3.1MCU的选择硬件是整个系统的基础,是完成各个功能的物理平台。本设计的微限制器选择AVR系列单片机ATmega8。在AVR家族中,ATmega8是一个特别特殊的单片机,它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,具有AVR高档单片机MEGE系列的全部性能和特点,采纳小引脚封装,所以价格仅及低档单片机相当,性价比高。ATmega8的主要性能如下:1.高性能,低功耗的8位AVR微限制器,先进的R
34、ISC精简指令集结构(1)130功能强大的指令,大多数为单时钟周期指令(2)32个8位通用工作寄存器(3)工作在16MHz时,具有16MIPS的性能(4)片内集成硬件乘法器(执行速度为2个时钟周期)2.片内集成了较大容量的非易失性程序和数据存储器以及工作存储器(1)8K字节的FIaSh程序存储器,擦写次数:大于100OO次(2)支持可在线编程(ISP),可在应用自编程(IAP)(3)带有独立加密位的可选BOOT区,可通过BOOT区内的引导程序区(用户自己写入)来实现IAP编程(4) 512个字节的EEPROM,擦写次数:100000次(5) IK字节内部SRAM(6)可编程的程序加密位3.丰富
35、强大的外部接口(Peripheral)性能(1)2个具有比较模式的带预分频器(SeparatePrescale)的8位定时/计数器(2)1个带预分频器(SeparatePrescale),具有比较和捕获模式的16位定时/计数器(3)】个具有独立振荡器的异步实时时钟(RTC)(4) 3个PwM通道,可实现随意小于16位,相位和频率可调的PWM脉宽调制输出(5) 8通道A/D转换(TQFP,M1.F),6路10位A/D+2路8位A/D(6) 6通道A/D转换(PDIP封装),4路10位A/D+2路8位A/D(7) 1个I2C的串行接口,支持主/从,收发四种工作方式,支持自动总线仲裁(8) 1个可编
36、程的串行USART接口,支持同步,异步以及多机通信自动地址识别(9) 1个支持主从(MasterZSlave)收发的SPl同步串行接口(IO)带片内RC振荡器的可编程看门狗定时器(Il)片内模拟比较器(10) 的微限制器性能(1)可限制的上电复位延时电路和可编程的欠电压检测电路(2)内部集成了可选择频率(1/2/4/8MHZ),可校准的RC振荡器(25C,5V,IMHZ时,精度为1%)(3)外部和内部的中断源18个(4)五种睡眠模式:空闲模式(Idle),ADC噪声抑制模式(ADCNoiSeReduction)省电模式(POW-SaVe)掉电模式(Power-down)待命模式(Standby
37、)(11) I/O口和封装(1)最多23个可编程1/0口,可随意定义1/0的的输入/输出方向;输出时为推挽输出,驱动实力强,可干脆驱动1.ED等大电流负载:输入口可定义为三态输入,可以设定带内阻上拉电阻,省去外接上拉电阻(2)28脚PDIP封装,32脚TQFP封装和32脚M1.F封装6 .宽工作电压(1) 2.7V5.5V(ATmegaS1.)(2) 4.5V-5.5V(ATmega8)7 .高运行速度(1) 08MHz(ATmega81.)(2) 016MHz(ATmega8)8 .低功耗(4MHZ,3V,250(1)正常模式I(Active):3.6mA(2)空闲模式(IdleMode):
38、1.0mA(3)掉电模式(Power-downMode):0.5uTmea8内嵌8K字节的Flash存储空间,18个外部和内部的中断源。它在4.5V5.5V工作电压范围内的工作速率范围为016MHz,这使得它有极高的速率和存储空间来应付USB通讯。3.1.1 工作流程从通信协议和传输过程可知,Tmea8单片机在初始化后要保持接收地址状态,当接收到本机地址后回送地址并设置本机为接收数据状态,接受完数据后做出相应反应,最终回到接收地址的状态。单片机主流程的核心部分是协议层的恳求处理,它关系到PC机枚举USB外设胜利及否。所以在调试单片机程序的时候,要特殊留意WindOWS对USB设备的枚举依次。假
39、如枚举胜利,主机将找到新的设备,提示安装驱动程序;否则找到未知设备,USB外设不行用。八n由由n_E,1.图3-1i-jla旅程图3.2硬件电路设计本设计电路图见附I日百跖部的木如下:(1) ATmega8的PC6(RESET)及PB2(SS)及ISP插座上的RST通过JP2相连,当疏通JP2,即实-丸3吧ga8朋自编程。(2) ATmeqae的PB3b,一TMj坪(SCK)分别及ISP插座上的MOSI,MISO,上11-濯收钟。(5p山dIMR串口的由FU船侑汽3.6V,而FUGr小粒口的输出电压为a;系回生史匹配,.叱泮,Il3.6V稳压1.生置中仲必曝分别及D-,D+相连3. 3本章小结
40、本章本重介绢了本课末】!:虫夸的主要硬件构成,该平台选用ATmega8作为系统处理器,旦ATiga8芯片的高速,低功耗,性能稳定等特点,也为该演示平j1.lH能的扩展和升级供应便利。第四章系统软件设计本设计的软件主要分为两个部分:单片机上的限制系统设计和PC机上的应用程序设计。单片机限制系统负责及PC机通信和对目标芯片ISP编程,PC机上的应用程序包括USB的驱动程序和ISP下载限制软件。利用双龙在线编程软件将在AVRStudio中生成的HEX文件卜载到ATmega8芯片中,完成了单片机上的限制系统设计。下面进行PC机上USB下载器驱动程序的设计。3.1 系统固件程序设计全部基于微限制器及其外
41、围电路的功能设备的正常工作都离不开固件的参及。固件的作用就是协助硬件,或者说是限制硬件来完成预期的设备功能。没有固件的参及和限制,硬件设备只是芯片的简洁的堆砌,无法实现预期的功能,就像一台没有安装操作系统的计算机一样。USB设备也不例外。因此,用户必需依据实际的须要来编写固件程序,从而I办助硬件完成USB通信任务。一般状况下,设备是不能启动任何传输过程的,它只能对主机的恳求作出响应。固件始终就等待主机的吩咐,再依据吩咐去执行相应的程序。3.1.1 固件程序开发工具ATME1.开发的AvRSTUDlO软件是一个用于开发AVR系列单片机的集成工作环境。该软件有以下功能:汇编程序汇编器,模拟仿真功能
42、(需仿真机结合),AVRProg串行编程,STK500AVRISP/JTAGICE编程等功能。AVRSTUDIO支持ATME1.全系列仿真器。在AVRST1.:DlO中可以完成全部的操作,如建立项目,建立和编辑汇编源文件,汇编(可以生成OBJ和HEX文件),调试,程序下载等,一挥而就,特别便利。固件程序下载双龙在线编程软件(S1.ISP)是由广州市双龙电子有限公司开发的拥有独立学问产权的编程软件,运用这个软件可以对AT89S系列、AVR系列MCU进行串行编程.由卜载电缆和应用软件组成,支持的器件为ATME1.公司的AT89S系列(包含AT89S51/52)和AVR系列;支持的烧录文件格式有IN
43、TE1.格式的HEX文件、EEP文件、二进制BIN文件;支持缓冲区数据修改和保存,缓冲区中的数据可以保存为二进制BIN文件、INTE1.格式的HEX或EEP文件;缓冲区中的数据还可以保存为C程序中的Char或UnSignedChar类型数组文件,以便利程序开发者处埋某些特殊应用.下载电缆有10根线,-端连接计算机的并行口,另端连接ISP下载插座。此时,该USB下载器即相当于一个Tmega8的串行编程器,实现ATnlega8自编程。USB接口可实现为下载线路供电。4. 2系统驱动程序设计设计一个USB外围设备,除了固件程序外还须要设计相应的设备驱动程序,才能使之及PC通信。设备驱动程序事实上是一
44、系列限制硬件设备的函数,是操作系统中限制和链接硬件的关键模块。它供应连接到计算机的硬件设备的软件接口。设备驱动程序将不同外设特性和操作系统高层分割开,隐藏了硬件设备内部的实现细微环节,并对操作系统透亮。对于USB外设,驱动程序的优劣干脆将影响着设备性能的发挥,好的驱动程序能够精确、稳定、牢靠的按主体的要求完成数据信息的传输和处理,为上层应用软件供应良好的接口。驱动程序开发工具Driverstudio是一套用来简化微软WindoWS平台下设备驱动程序的开发,调试和测试的工具包。在windwos2000操作系统下建立WDM驱动程序编程环境,苜先安装DDK,后安装DriverStudio,并选择安装
45、Driverworks,ToolS和SoftCE工具。则在ViSUalC+编程工具栏中自动添加了个DriveStudio菜单。通过DriverStudio已经初步建立了一个驱动程序框架,依据须要向里面填充内容即可。5. 2.2USB的拓扑结构USB系统通过具有相同接口的串行连线将不同的设备连接到一起。USB的物理拓扑结构为分层的星型结构,由三层组成:USB主机(Host).USB设备(Device)和USB集线器(Hub)USB主机是星型结构的中心,它通过USB集线器连接更多的USB设备,组成USB系统。由于总线电气性能的缘由,物理上USB设备最多可以通过USB集线器扩展到6层。从逻辑上看,U
46、SB主机可以及分层的USB设备干脆通信,就好象及设备干脆相连一样。(1) USB主机作为USB系统的主控组件,USB主机限制USB总线上全部USB设备和集线器的数据通信过程。在整个USB系统中只允许有一个USB主机,并且必须要有个USB主机限制整个系统的数据传输工作。全部的数据传输都是由USB主机发起的。USB主机在USB系统中是一个起协调作用的实体,它不仅占有特殊的物理位置,而且对于USB以及连到USB上的设备来说,还负有特殊的责任;主机限制全部USB设备的访问:一个USB设备想要访问总线必需由主机赐予其运用权;主机还负责监督USB的拓扑结构。(2) USB设备USB设备就是能通过USB来发
47、送和接受数据从而实现肯定功能的实体。USB设备从底层的物理和电气特性到上层的软件I办议和数据结构都有严格的定义,分为很多USB设备类,如键盘、打卬机等。每个USB设备都有表明自身实力和所须要资源的描述符。在设备第一次连接到主机上之后,设备就可以分得USB的带宽,进行数据的传输了。在总线的数据传输过程中,相对于USB主机而言,USB设备始终扮演着受控的角色,依据USB主机的要求接受或发送数据。依据数据传输的速度不同,USB设备被分为全USB设备速设备(12Mbs)和低速设备(1.5Mbs)两种,在USB2.O的版本中还定义了高速设备,传输速率达到480Mbs(3) USB集线器USB集线器供应了用来连接USB设备的接口,一个集线器能将一个USB的连接点转化为多个连接点,使得多个设备能同时连接到唯的USB总线上进行通信。作为USB体系结构中的专用设备,USB接线器的突出特点是支持热插拔、区分设备速度、为设备供电和检测设备的各种状态并通知USB主机。USB主机供应USB接线器的驱动软件,并具有对接线器的每个端口电源进行开关的功能,并对每个端口的变更作出反应。在USB主机的硬件限制器内部一般要嵌入