6AVR实验平台外围接口设计.docx
- 文档编号:11345538
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:55
- 大小:822.96KB
6AVR实验平台外围接口设计.docx
《6AVR实验平台外围接口设计.docx》由会员分享,可在线阅读,更多相关《6AVR实验平台外围接口设计.docx(55页珍藏版)》请在冰豆网上搜索。
6AVR实验平台外围接口设计
AVR实验平台外围接口设计
摘要:
AVR是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体。
STK500是ATMEL最推荐的编程方式,下载速度快,并支持在线调试。
JTAGICE是基于JTAG接口的片上调试工具,硬仿真目标系统。
本文将应用STK500和JTAGICE的相关知识,接口技术等为AVR实验平台设计外围接口,使实验平台完整。
本设计能够使用USB接口或者串口两种接口进行通信,包括STK500协议的串口下载与JTAGICE仿真。
本文先完成课题的设计思路,在此基础上根据相关的知识完成硬件原理图的设计,另外还需要通过软件实现开发调试。
关键词:
微控制器;接口;STK500;JTAG
DesignfortheperipheryinterfaceofAVRexperiment
platform
Abstract:
AVRisthemostfamoussemiconductorintheworldbecauseofhighperformance,low-powerconsumption,noteasytolosenaturememorizerandfigureIC.STK500isthemostrecommendedprogrammingmeansbyATMEL,whichhavehighdownloadspeedandsupportsonlinedebugging.JTAGICEisaon-chipdebuggingtoolswhichbasedonJTAGinterface,it'sahardwaresimulationsystem.Inordertomakeexperimentalplatformintegrity,weusesomeknowledgeandinterfacetechnologytodesignAVRexperimentalplatform'speripheralinterface.TheseknowledgeandtechnologywillincludingSTK500,JTAGICEandsoon.ThisdesignwillimplementthecommunicationthroughUSBorserialinterface,includingserialdownloadbasedonSTK500agreementandJTAGICEsimulation.First,thispapercompletethefunctionalrequirementanalysis.Thenwedesignthediagramofhardwareprincipleaccordingtorelevantknowledge.Finallyasoftwarebeusedtodebugthissystem.
Keywords:
MCU,Interface,STK500,JTAG
第1章绪论1
1.1选题背景与意义1
1.2国内外研究现状与发展2
1.3论文的内容安排3
第2章设计思路4
2.1STK500的选用与功能简介4
2.2JTAGICE的概况5
2.3总体逻辑设计6
2.4本章小结7
第3章硬件设计9
3.1STK500下载器的设计9
3.1.1主控制芯片选用及简介9
3.1.2硬件连接方式10
3.1.3STK500升级12
3.2JTAG仿真接口设计13
3.2.1主控制芯片选用及简介13
3.2.2硬件连接方式13
3.3接口通信设计16
3.3.1USB接口简介及通信设计16
3.3.2RS-232C串口通信设计18
3.4供电模式设计20
3.5本章小结23
第4章使用AVRStudio的开发过程与仿真验证24
4.1开发器的选用24
4.2STK500固件的升级过程26
4.2.1自动升级过程26
4.2.2人工升级与修复27
4.3JTAGICE固件的升级过程28
4.3.1自动升级过程28
4.3.2人工升级与修复29
4.4使用STK500下载编程29
4.4.1编程设置30
4.4.2熔丝设置31
4.4.3锁定位设置32
4.5JTAG的非仿真方式下载34
4.6JTAG在线仿真调试过程34
4.7PCB制图过程36
4.8开发过程中的故障排除37
4.9本章小结39
结论40
致谢41
参考文献42
附录1正确配置熔位丝的方法43
附录2原理图45
附录3PCB图46
第1章绪论
1.1选题背景与意义
单片机其实就是指由一个芯片控制的微型系统。
片内包含了CPU,程序存储器,数据存储器,定时器/计时器和各种I/O口。
单片机又称微控制器,主要用于现代智能化产品的设计,从20世纪70年代至今,单片机已有30多年的发展历史了。
它有着极为广阔的应用前景。
近年来由于嵌入式系统应用技术的不断发展,对于核心处理器性能的要求越来越高,一些传统控制芯片已经难以胜任许多复杂的任务。
传统的51系列单片机的低速度影响到整个系统的性能水平。
随着微控制器技术的快速发展,国外以及台湾地区的工程师近几年来已经较少有人使用51系列开发新产品,AVR系列单片机出色的性能和低廉的价格成为新的开发通用的MCU。
我们有必要紧跟电子技术发展的前沿,使用高性能芯片,掌握其应用技巧。
ATMELAVR系列单片机是具有精简指令集、多累加器的新型嵌入式单片机,程序区flash可多次电檫写;内部含电可擦除的EEPROM存贮器,可串行下载;执行速度高,指令高效率;低电压,低功耗,高效率;程序加密性好;简便易学,开发工具廉价;型号全,适用范围广;可扩展性强,可为用户做专用芯片;而其理想的抗扰性能更使它被广泛地应用在家电、工业控制、医疗通讯等领域。
根据我校参加机器人大赛经验,AVR系列单片机是使用频率最高的MCU,学校在相关方面也取得了巨大成绩。
因为ATMELAVR系列单片机的易用性和高性能低价格的优点,使它成为大学生理想的实验平台MCU。
因此,学习AVR单片机的相关知识对我们是很有帮助的。
运用学到的相关知识加以实践,按照自己的需要做出设计,可以更加帮助我们了解AVR单片机,巩固知识,熟练应用。
学习单片机也和我们学习模拟、数字电路一样,相关的书籍必须看,但光看书是不行的。
如果学习单片机的目的不是要去应付考试的话,我相信任何单片机的书籍你最多能看到一半就会觉得枯燥无味而放弃了,所以在开始看书学习理论知识的同时,准备好相应的器材,通过边做实验边看书,兴趣也越来越浓厚,这种学习方式效率非常高。
这样我们就有必要设计这样一套专用试验平台及接口,通过实际工程来学习相关软硬件知识并培养动手能力。
1.2国内外研究现状与发展
国内做单片机方面的公司还是比较多,但是基本上都比较小,而且是生产方面的多研究方面的少。
其中比较大的就是广州双龙电子有限公司,它的产品也比较全。
国外最主要的就是美国ATMEL公司,它是一家跨国的专业半导体企业。
AVR就是ATMEL挪威设计中心出于对市场需求的考虑,充分发挥其FLASH技术优势,推出的全新配置的精简指令集单片机(RISC)。
现在为芯片下载烧写程序的方式有多种。
最早期的有STK200/STK300,它们多数时候被并口下载器采用,支持型号比较少,烧写速度低,无法在AVRStudio里面使用。
还有AVRISP(准STK500),它支持全系列的AVR,烧写速度也比较快。
STK500是ATMEL最推荐的编程方式,它可烧写全系列AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度为最高速,它也支持在线调试。
目前而言,STK500被越来越多的人群使用。
而仿真器的种类也是多种的,有JTAGICE,即JTAG仿真器,它支持ATmega162/169/16/32/64/128。
还有JTAGICEMKII,它拥有JTAGICE的全部功能,还增加了DEBUGWIRE接口,它的单步调试和中断调试速度更快。
ICE200是在线仿真器,不同器件需配不同适配器,支持ATTINY11/12及AT90S1200/2313。
ICE40支持ATTINY26,ATMEGA8。
ICE50支持ATMEGA128/169/64/32/16/162/8535/8515/8,及ATTINY13/26/2313。
目前市面上的STK500下载器和JTAGICE仿真器的品种也比较多,有使用并口的,有串口的,也有使用USB接口的。
也有一种是将两种功能合二为一的产品,使用的是串口或者USB两种接口,和本课题的要求差不多。
这些产品价格不一样,几百到几千元不等。
1.3论文的内容安排
本文研究的主要内容如下:
1:
了解课题的内容和要求,查阅有关的文献,了解AVR单片机的特点﹑原理,熟悉接口原理及电路图的设计基本原则。
了解与STK500协议的串口下载﹑AVRJTAG仿真的有关知识及课题需要实现的功能,确定设计范围。
并学习PROTEL制图,使用AVRStudio等相关软件。
2:
硬件的设计应能保证系统的整体性能,能够使用USB或者串口两种接口进行JTAG仿真及STK500下载编程。
通过AVRStudio进行开发,以实现课题要求的功能,对在开发调试过程中出现的问题能够加以分析,从而能够解决。
本文的第二章主要介绍了STK500和JTAG,阐述了设计的主要思路,能够通过几个模块的组合实现功能。
第三章具体说明怎么样进行设计,各个模块将由哪些器件组成,怎样连接,能够实现什么功能,从而设计出最终的原理图。
第四章是介绍使用AVRStudios实现课题要求的功能的过程,包括STK500下载,JTAGICE仿真,JTAG非仿真方式的下载等。
第2章设计思路
本课题是AVR实验平台外围接口设计,要求能进行STK500下载,JTAGICE仿真等。
因此简单介绍下为何使用AVR单片机和STK500、JTAGICE。
在本课题的设计中,主要是依靠AVR单片机来实现功能的。
因为它简便易学,费用低廉;高速、低耗、保密;I/O口功能强,具有A/D转换等电路;有功能强大的定时器/计数器及通讯接口。
2.1STK500的选用与功能简介
STK500是AVR的一种烧写方式,AVR的烧写方式有很多种,如:
1:
STK200/STK300:
并口下载器多采用该烧写方式,最早期的一种烧写方式,支持型号少,烧写速度低,无法在AVRStudio里面使用。
2:
AVRISP(准STK500):
由于采用ATMEL官方的STK500固件,使得它可烧写全系列AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度与真正的STK500相当(最高速为STK500的一半)。
3:
STK500:
ATMEL最推荐的编程方式,由于采用ATMEL官方的STK500固件,使得它可烧写全系列AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度为最高速。
4:
其它方式的AVRISP:
如市面上的用ATmega8作为控制器的烧写方式,支持型号较少,烧写速度较低,无法在AVRStudio里面使用,不是ATMEL推荐的烧写方式。
STK500是官方唯一推荐的下载方式,比一般的并口ISP快10倍。
(为匹配不同AVR的出厂值,STK500烧写速率预先设定为低速115.2K,可根据MCU的时钟源,设置其它烧写速率,在8M时钟源的支持下最高可达1.845M,比mkII-ISP的8M烧写速度更快)。
并且支持在线调试。
STK500有一个可控的目标电压源;一个可调的模拟参考电压;有一个可编程的时钟产生器,它提供给目标器件的时钟信号;可以向目标器件的Flash存储器写数据,从目标器件读Flash储存器的数据;能对目标芯片进行擦除;可对目标MCU的FLASH和EEPROM进行编程;支持熔丝位和锁定位的编程;可以通过固定软件得以升级以支持最新的芯片。
STK500和PC机之间的通信通过RS232来进行。
STK500使用115.2k的波特率,8个字节,1个停止位,没有奇偶校验。
PC机也必须具有同样的设置后,两者之间才能够进行通信。
2.2JTAGICE的概况
JTAG仿真器相对于51的仿真器来说,它要简单灵活很多。
老式51单片机仿真器是仿真整个芯片,就是用仿真器来代替芯片,这样仿真起来功能要强很多,但是它的灵活性不好,不同型号、不同引脚的芯片要使用不同的仿真头或仿真器,成本比较高。
而AVR单片机用的JTAG仿真器,JTAG是一种标准接口,只要单片机带有这种接口那么就可以用JTAG仿真器仿真,所以它和芯片型号引脚没有关系,这样就非常方便,成本也非常的低。
JTAGICE是与Atmel公司的AVRStudio相配合的一套完整的基于JTAG接口的片上调试工具,支持所有AVR的8位RISC指令的带JTAG口的微处理器。
JTAG接口是一个4线的符合IEEE1149.1标准的测试接入端口(TAP)控制器。
IEEE的标准提供一种行之有效的电路板连接性测试的标准方法(边界扫描)。
Atmel的AVR器件已经扩展了支持完全编程和片上调试的功能。
通常所说的JTAG大致可以分为两类,一类是用于测试芯片的电气特性,检测芯片是否有问题;另一类是用于Debug。
一般支持JTAG的CPU内都包含了这两个模块。
一个含有JTAGDebug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,比如FLASH,RAM,SOC(例如4510B,44Box,AT91M系列),内置模块的寄存器,如UART,Timers,GPIO等等的寄存器。
JTAGICE使用的是标准的JTAG接口,用户可以对正在目标系统中运行的微处理器实时仿真。
用户根据AVR片上调试协议完全控制AVR微处理器的内部资源。
JTAGICE可以提供完美的仿真,而价格远低于传统硬件仿真器的价格。
JTAGICE使用的另一种方法。
JTAGICE与目标AVR芯片内部的片上调试系统相连接,通过JTAG接口提供了一个监测和控制物理AVR器件执行过程的接口和方法。
JTAGICE的特性:
1:
与AVRStudio兼容。
2:
通过JTAG接口来支持所有的AVR器件。
3:
精确的电气特性。
4:
仿真所有片上的数字和模拟功能。
5:
复杂断点,例如在程序流程改变处暂停。
6:
数据和程序存储器断点。
7:
支持汇编程序和高级源码级调试。
8:
flash、eeprom、熔丝位和锁定位的编程接口。
9:
供PC编程和控制的RS232接口。
2.3总体逻辑设计
课题要求可以使用USB接口或者串口两种接口进行JTAG仿真及STK500下载编程。
经过考虑原理图应可大致分为5个部分:
1:
USB接口通信
2:
串口通信
3:
STK500下载
4:
JTAG仿真
5:
供电模式
首先要解决两种接口的通信问题。
如果是使用USB接口,则需要使用USB接口转换芯片,实现USB和并行I/O口之间的协议转换;如果是使用串口,则要使用一个实现串口通讯功能驱动,与串口数据接收功能的芯片。
图2-1通信接口模块设计方框图
接口模块设计方框图见图2-1。
STK500下载编程和JTAG仿真均需要同目标板与PC机相连,那么这里也需要设计两个接口:
STK500下载接口和JTAG仿真接口。
STK500和JTAG仿真的设计方框图见图2-2。
图2-2STK500和JTAG设计方框图
电源部分的设计也是一个关键之处。
本设计必须要在上电的情况下才能工作。
本设计的工作电压应该是+5V,USB自带+5V电压即可以不做考虑它的供电方式。
需要研究的是在使用串口的情况下,通过哪种方式给系统供电,经过考虑,初步定为两种模式:
由外部供电和由USB供电。
以后的设计就是根据图2-1和图2-2这两个方框图提供的方向去完成的,从而可以达到课题的要求。
2.4本章小结
本章是介绍设计AVR实验平台外围接口的思路和模块。
之所以会选择AVR单片机是因为它简便易学,费用低廉;高速、低耗、保密;I/O口功能强,具有A/D转换等电路;有功能强大的定时器/计数器及通讯接口。
STK500是官方唯一推荐的下载方式,比一般的并口ISP快10倍,是ATMEL最推荐的编程方式,由于采用ATMEL官方的STK500固件,使得它可烧写全系列AVR(若对固件进行升级亦可支持未来的AVR型号),烧写速度为最高速,并且支持在线调试。
JTAGICE是与Atmel公司的AVRStudio相配合的一套完整的基于JTAG接口的片上调试工具,支持所有AVR的8位RISC指令的带JTAG口的微处理器。
本课题的设计大致可以分为5个模块:
1、USB接口通信2、串口通信3、STK500下载4、JTAG仿真5、供电模式。
在第3节中给出了设计的模块方框图,有了一个大致的设计方向,以后的设计就按照这个思路去完成。
第3章硬件设计
3.1STK500下载器的设计
3.1.1主控制芯片选用及简介
经过考虑决定使用ATmega8535作为STK500下载的主控制芯片。
ATmega8535有如下特点:
工作电压为4.5V~5V,8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,512字节SRAM,32个通用I/O口线,32个通用工作寄存器,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,面向字节的两线串行接口,10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
在此设计中主要使用了端口B(PB4~PB7)的第二功能,见表3-1。
表3-1B口第二功能
引脚
第二功能
PB4
(SPI从机选择引脚)
PB5
MOSI(程序下载时的数据输入线)
PB6
MISO(程序下载时的数据输出线)
PB7
SCK(串行时钟)
MOSI、MISO、SCK和
是SPI的引脚。
SPI是串行涉外接口,进行AVR微控制器与外围设备之间或若干AVR器件之间的高速同步数据传送。
PB7(SCK)引脚是主机模式的时钟输出和从机模式的时钟输入,把数据写入主CPU的SPI,数据寄存器会启动SPI的时钟发生器,而数据从PB5(MOSI)引脚移出和移入。
从机选择输入PB4(
)被设置为低来选择单独的SPI器件作为从机,主机和从机的两个移位寄存器可以被认为是一个分开的16位环行移位寄存器。
当数据从主机移向从机,同时数据也移向相反的方向。
这意味着在一个移位周期内,主机和从机的数据交换。
这个系统在发送方向上有一级缓冲而在接收方向有两个缓冲器。
也就是说,在发送时一定要等到移位过程全部结束后才能对SPI数据寄存器执行写操作。
而在接收数据时,需要在下一个字符移位过程结束之前通过访问SPI数据寄存器读取当前接收到的字符,否则第一个字节将丢失。
工作于SPI从机模式时,控制逻辑对SCK引脚的输入信号进行采样。
为了保证对时钟信号的正确采样,SPI时钟不能超过fosc/4。
3.1.2硬件连接方式
首先是要给STK500供电,在设计时使用两个发光二极管分别作为STK500的电源指示灯和STK500下载指示灯,这样的设计才知道STK500是否上电,为了加以区别应使用不同的颜色。
图3-1STK500下载器原理图
使用M74HC165是用来实现STK500的硬件识别。
M74HC165是一个高速的CMOS八位PISO变化寄存器,它的连续输出应该接到PD6上,PD6的第二功能为ICP,此引脚的输入是外部事件发生的触发信号,此时PD6一定要上拉,驱动输入电流。
ATmega8535是靠M74HC165的输入的逻辑电平来识别是不是工作在STK500的模式下。
RESET引脚悬空时是高电平,要复位就需要给它一个低电平。
为了进入编程模式,需要拉低RESET引脚。
RESET引脚上的外部上拉电阻不能太小以至于该引脚不能被拉低。
为避免这个问题,使用大于4.7K的上拉电阻。
为了可靠,再加上一只0.1uF的电容以消除干扰、杂波。
使用STK500下载编程,一定要使用SPI串行接口,即MOSI、MISO、SCK和
,
它们的工作原理在前面已经介绍,在此ATmega8535为主机,则
引脚应为高,并且被外设拉低,与从机相应的MOSI、MISO、SCK和
相连,完成它们之间的通信。
表3-2连接插头引脚定义
信号
10-Pin
I/O
VTG/VCC
2
——
目标板上的电源
GND
3,4,6,8,10
——
地
MOSI
1
输出
AVRISP到目标芯片的指令或数据
MISO
9
输入
目标芯片到AVRISP的数据
SCK
7
输出
串行时钟,由AVRISP控制
RESET
5
输出
复位,由AVRISP控制
在这里我需要一个接口能够和目标板相连,实现STK500下载。
接口使用的是10脚的连接插头,它的引脚功能见表3-2。
图3-2STK500接口连接图
将ATmega8535的MOSI、MISO、SCK和
和插头的MOSI、MISO、SCK和
分别对应的相连,并接一个拉低电阻。
插头的5脚是复位,由STK500控制,和ATmega8535的中断引脚INT0相连。
按照以上的分析即可设计出STK500下载器的原理图,见图3-1,3-2。
3.1.3STK500升级
这里使用AT90S2313作为STK500程序升级的控制芯片,升级芯片的作用就是
支持升级协议,只要解决控制问题就完全可以对芯片进行升级了。
因为只要具有SPI口和UART输入/输出线的芯片即可,经过比较,觉得AT90S2313最合适,因为它的I/O口只有C口和D口,符合要求,又不会造成资源的浪费。
AT90S2313具有以下的特点:
2K字节FLASH;128字节EEPROM;128字节SRAM;15个通用I/O口;32个通用工作寄存器;具有比较模式的灵活的定时器/计数器;内外中断源;可编程的看门狗定时器;可编程的UART;下载程序用的SPI口以及2种可以通过软件选择的省电模式。
将AT90S2313的XTAL1端与ATmega8535的XTAL2端相连接,这是采用的外部时钟,因此它的XTAL2应该悬空。
它的复位端采用和Atmega8535一样的方式,接一个电阻到VCC再加上一只0.1uF的电容以消除干扰、杂波。
AT90S2313的PD0和PD1(UART输入端和输出端)与ATmega16的这两个引脚相连。
在这里要考虑怎样控制芯片的升级。
它的MOSI、MISO、SCK引脚应该分别对应的与ATmega8535的MOSI、MISO、SCK三个引脚相连。
图3-3升级控制原理图
3.2JTAG仿真接口设计
3.2.1主控制芯片选用及简介
要进行JTAG仿真,那么这个芯片必须要具有JTAG接口。
因此我使用的芯片是ATmega16。
ATmega16有如下特点:
16K字节的系统内可编程Flash(具有同时读写的能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR 实验 平台 外围 接口 设计