1、Q260046902 专业做论文I AVR 实验平台外围接口设计摘要:AVR 是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体。STK500 是 ATMEL 最推荐的编程方式,下载速度快,并支持在线调试。JTAG ICE 是基于 JTAG 接口的片上调试工具,硬仿真目标系统。本文将应用STK500 和 JTAG ICE 的相关知识,接口技术等为 AVR 实验平台设计外围接口,使实验平台完整。本设计能够使用 USB 接口或者串口两种接口进行通信,包括STK500 协议的串口下载与 JTAG ICE 仿真。本文先完成课题的设计思路,在此基础上根据相关的知识完成硬件原理图的设计
2、,另外还需要通过软件实现开发调试。关键词:微控制器;接口;STK500;JTAGQ260046902 专业做论文II Design for the periphery interface of AVR experimentplatformAbstract:AVR is the most famous semiconductor in the world because of high performance, low-power consumption, not easy to lose nature memorizer and figure IC.STK500 is the most rec
3、ommended programming means by ATMEL, which have high download speed and supports online debugging. JTAG ICE is a on-chip debugging tools which based on JTAG interface, its a hardware simulation system. In order to make experimental platform integrity, we use some knowledge and interface technology t
4、o design AVR experimental platforms peripheral interface. These knowledge and technology will including STK500,JTAG ICE and so on. This design will implement the communication through USB or serial interface, including serial download based on STK500 agreement and JTAG ICE simulation. First, this pa
5、per complete the functional requirement analysis. Then we design the diagram of hardware principle according to relevant knowledge. Finally a software be used to debug this system.Keywords: MCU, Interface, STK500, JTAGQ260046902 专业做论文III 目 录第 1 章 绪 论 .11.1 选题背景与意义 .11.2 国内外研究现状与发展 .21.3 论文的内容安排 .3第
6、2 章 设计思路 42.1 STK500 的选用与功能简介 .42.2 JTAG ICE 的概况 .52.3 总体逻辑设计 .62.4 本章小结 .7第 3 章 硬件设计 93.1 STK500 下载器的设计 .93.1.1 主控制芯片选用及简介 .93.1.2 硬件连接方式 .103.1.3 STK500 升级 123.2 JTAG 仿真接口设计 .133.2.1 主控制芯片选用及简介 .133.2.2 硬件连接方式 .133.3 接口通信设计 .163.3.1 USB 接口简介及通信设计 163.3.2 RS-232C 串口通信设计 .183.4 供电模式设计 .203.5 本章小结 .2
7、3第 4 章 使用 AVR Studio 的开发过程与仿真验证 244.1 开发器的选用 .244.2 STK500 固件的升级过程 .264.2.1 自动升级过程 .264.2.2 人工升级与修复 .274.3 JTAG ICE 固件的升级过程 .28Q260046902 专业做论文IV 4.3.1 自动升级过程 .284.3.2 人工升级与修复 .294.4 使用 STK500 下载编程 294.4.1 编程设置 .304.4.2 熔丝设置 .314.4.3 锁定位设置 .324.5 JTAG 的非仿真方式下载 .344.6 JTAG 在线仿真调试过程 .344.7 PCB 制图过程 .3
8、64.8 开发过程中的故障排除 .374.9 本章小结 .39结 论 .40致 谢 .41参考文献 42附录 1 正确配置熔位丝的方法 .43附录 2 原理图 45附录 3 PCB 图 46西南科技大学本科生毕业论文 1第 1 章 绪 论1.1 选题背景与意义单片机其实就是指由一个芯片控制的微型系统。片内包含了 CPU,程序存储器,数据存储器,定时器/计时器和各种 I/O 口。单片机又称微控制器,主要用于现代智能化产品的设计,从 20 世纪 70 年代至今,单片机已有 30 多年的发展历史了。它有着极为广阔的应用前景。近年来由于嵌入式系统应用技术的不断发展,对于核心处理器性能的要求越来越高,一
9、些传统控制芯片已经难以胜任许多复杂的任务。传统的 51 系列单片机的低速度影响到整个系统的性能水平。随着微控制器技术的快速发展,国外以及台湾地区的工程师近几年来已经较少有人使用 51 系列开发新产品,AVR 系列单片机出色的性能和低廉的价格成为新的开发通用的 MCU。我们有必要紧跟电子技术发展的前沿,使用高性能芯片,掌握其应用技巧。ATMEL AVR 系列单片机是具有精简指令集、多累加器的新型嵌入式单片机,程序区 flash 可多次电檫写;内部含电可擦除的 EEPROM 存贮器,可串行下载;执行速度高,指令高效率;低电压,低功耗,高效率;程序加密性好;简便易学,开发工具廉价;型号全,适用范围广
10、;可扩展性强,可为用户做专用芯片;而其理想的抗扰性能更使它被广泛地应用在家电、工业控制、医疗通讯等领域。根据我校参加机器人大赛经验,AVR 系列单片机是使用频率最高的 MCU,学校在相关方面也取得了巨大成绩。因为 ATMEL AVR 系列单片机的易用性和高性能低价格的优点,使它成为大学生理想的实验平台 MCU。因此,学习 AVR 单片机的相关知识对我们是很有帮助的。运用学到的相关知识加以实践,按照自己的需要做出设计,可以更加帮助我们了解 AVR 单片机,巩固知识,熟练应用。学习单片机也和我们学习模拟、数字电路一样,相关的书籍必须看,但光看书是不行的。如果学习单片机的目的不是要去应付考试的话,我
11、相信任何单片机的书籍你最多能看到一半就会觉得枯燥无味而放弃了,所以在开始看书学习理论知识的同时,准备好相应的器材,通过边做实验边看书,兴趣也越来越浓厚,这种学习方式效率非常高。这样我们就有必要设计这样一套专用试验平台及接口,通过实际工程来学习相关软硬件知识并培养动手能力。西南科技大学本科生毕业论文 21.2 国内外研究现状与发展 国内做单片机方面的公司还是比较多,但是基本上都比较小,而且是生产方面的多研究方面的少。其中比较大的就是广州双龙电子有限公司,它的产品也比较全。国外最主要的就是美国 ATMEL 公司,它是一家跨国的专业半导体企业。AVR就是 ATMEL 挪威设计中心出于对市场需求的考虑
12、,充分发挥其 FLASH 技术优势,推出的全新配置的精简指令集单片机(RISC) 。现在为芯片下载烧写程序的方式有多种。最早期的有 STK200/STK300,它们多数时候被并口下载器采用,支持型号比较少,烧写速度低,无法在 AVR Studio 里面使用。还有 AVRISP(准 STK500) ,它支持全系列的 AVR,烧写速度也比较快。STK500 是 ATMEL 最推荐的编程方式,它可烧写全系列 AVR(若对固件进行升级亦可支持未来的 AVR 型号) ,烧写速度为最高速,它也支持在线调试。目前而言,STK500 被越来越多的人群使用。而仿真器的种类也是多种的,有 JTAG ICE,即 J
13、TAG 仿真器,它支持ATmega162/169/16/32/64/128。还有 JTAG ICE MKII,它拥有 JTAG ICE 的全部功能,还增加了 DEBUG WIRE 接口,它的单步调试和中断调试速度更快。 ICE200 是在线仿真器,不同器件需配不同适配器,支持 ATTINY11/12 及 AT90S1200/2313。ICE40支持 ATTINY26,ATMEGA8。ICE50 支持 ATMEGA 128/169/64/32/16/162/8535/8515/8,及 ATTINY13/26/2313。目前市面上的 STK500 下载器和 JTAG ICE 仿真器的品种也比较多,
14、有使用并口的,有串口的,也有使用 USB 接口的。也有一种是将两种功能合二为一的产品,使用的是串口或者 USB 两种接口,和本课题的要求差不多。这些产品价格不一样,几百到几千元不等。1.3 论文的内容安排本文研究的主要内容如下:1:了解课题的内容和要求,查阅有关的文献,了解 AVR 单片机的特点原理,熟悉接口原理及电路图的设计基本原则。了解与 STK500 协议的串口下载AVR JTAG 仿真的有关知识及课题需要实现的功能,确定设计范围。并学习 PROTEL 制图,使用 AVR Studio 等相关软件。2:硬件的设计应能保证系统的整体性能,能够使用 USB 或者串口两种接口进西南科技大学本科
15、生毕业论文 3行 JTAG 仿真及 STK500 下载编程。通过 AVR Studio 进行开发,以实现课题要求的功能,对在开发调试过程中出现的问题能够加以分析,从而能够解决。本文的第二章主要介绍了 STK500 和 JTAG,阐述了设计的主要思路,能够通过几个模块的组合实现功能。第三章具体说明怎么样进行设计,各个模块将由哪些器件组成,怎样连接,能够实现什么功能,从而设计出最终的原理图。第四章是介绍使用 AVR Studios 实现课题要求的功能的过程,包括 STK500 下载,JTAG ICE 仿真,JTAG 非仿真方式的下载等。西南科技大学本科生毕业论文 4第 2 章 设计思路本课题是 A
16、VR 实验平台外围接口设计,要求能进行 STK500 下载,JTAG ICE仿真等。因此简单介绍下为何使用 AVR 单片机和 STK500、JTAG ICE。在本课题的设计中,主要是依靠 AVR 单片机来实现功能的。因为它简便易学,费用低廉;高速、低耗、保密;I/O 口功能强,具有 A/D 转换等电路;有功能强大的定时器/计数器及通讯接口。2.1 STK500 的选用与功能简介STK500 是 AVR 的一种烧写方式,AVR 的烧写方式有很多种,如: 1:STK200/STK300:并口下载器多采用该烧写方式,最早期的一种烧写方式,支持型号少,烧写速度低,无法在 AVR Studio 里面使用
17、。 2:AVRISP(准 STK500):由于采用 ATMEL 官方的 STK500 固件,使得它可烧写全系列 AVR(若对固件进行升级亦可支持未来的 AVR 型号) ,烧写速度与真正的 STK500 相当(最高速为 STK500 的一半) 。 3:STK500:ATMEL 最推荐的编程方式,由于采用 ATMEL 官方的 STK500 固件,使得它可烧写全系列 AVR(若对固件进行升级亦可支持未来的 AVR 型号) ,烧写速度为最高速。 4:其它方式的 AVRISP:如市面上的用 ATmega8 作为控制器的烧写方式,支持型号较少,烧写速度较低,无法在 AVR Studio 里面使用,不是 A
18、TMEL 推荐的烧写方式。STK500 是官方唯一推荐的下载方式,比一般的并口 ISP 快 10 倍。 (为匹配不同AVR 的出厂值,STK500 烧写速率预先设定为低速 115.2K,可根据 MCU 的时钟源,设置其它烧写速率,在 8M 时钟源的支持下最高可达 1.845M,比 mkII-ISP 的 8M 烧写速度更快) 。并且支持在线调试。STK500 有一个可控的目标电压源;一个可调的模拟参考电压;有一个可编程的时钟产生器,它提供给目标器件的时钟信号;可以向目标器件的 Flash 存储器写数据,从目标器件读 Flash 储存器的数据;能对目标芯片进行擦除;可对目标 MCU的 FLASH
19、和 EEPROM 进行编程;支持熔丝位和锁定位的编程;可以通过固定软件得以升级以支持最新的芯片。STK500 和 PC 机之间的通信通过 RS232 来进行。STK500 使用 115.2k 的波特率,西南科技大学本科生毕业论文 58 个字节,1 个停止位,没有奇偶校验。PC 机也必须具有同样的设置后,两者之间才能够进行通信。2.2 JTAG ICE 的概况JTAG 仿真器相对于 51 的仿真器来说,它要简单灵活很多。老式 51 单片机仿真器是仿真整个芯片,就是用仿真器来代替芯片,这样仿真起来功能要强很多,但是它的灵活性不好,不同型号、不同引脚的芯片要使用不同的仿真头或仿真器,成本比较高。而
20、AVR 单片机用的 JTAG 仿真器,JTAG 是一种标准接口,只要单片机带有这种接口那么就可以用 JTAG 仿真器仿真,所以它和芯片型号引脚没有关系,这样就非常方便,成本也非常的低。JTAG ICE 是与 Atmel 公司的 AVR Studio 相配合的一套完整的基于 JTAG 接口的片上调试工具,支持所有 AVR 的 8 位 RISC 指令的带 JTAG 口的微处理器。 JTAG 接口是一个 4 线的符合 IEEE 1149.1 标准的测试接入端口(TAP) 控制器。IEEE 的标准提供一种行之有效的电路板连接性测试的标准方法(边界扫描)。Atmel的 AVR 器件已经扩展了支持完全编程
21、和片上调试的功能。通常所说的 JTAG 大致可以分为两类,一类是用于测试芯片的电气特性,检测芯片是否有问题;另一类是用于 Debug。一般支持 JTAG 的 CPU 内都包含了这两个模块。一个含有 JTAG Debug 接口模块的 CPU,只要时钟正常,就可以通过 JTAG接口访问 CPU 的内部寄存器和挂在 CPU 总线上的设备,比如FLASH,RAM,SOC(例如 4510B,44Box,AT91M 系列) ,内置模块的寄存器,如 UART,Timers ,GPIO 等等的寄存器。JTAG ICE 使用的是标准的 JTAG 接口,用户可以对正在目标系统中运行的微处理器实时仿真。用户根据 A
22、VR 片上调试协议完全控制 AVR 微处理器的内部资源。JTAG ICE可以提供完美的仿真,而价格远低于传统硬件仿真器的价格。JTAG ICE 使用的另一种方法。JTAG ICE 与目标 AVR 芯片内部的片上调试系统相连接,通过 JTAG 接口提供了一个监测和控制物理 AVR 器件执行过程的接口和方法。JTAG ICE 的特性:1:与 AVR Studio 兼容。 西南科技大学本科生毕业论文 62:通过 JTAG 接口来支持所有的 AVR 器件。 3:精确的电气特性。4:仿真所有片上的数字和模拟功能。 5:复杂断点,例如在程序流程改变处暂停。 6:数据和程序存储器断点。 7:支持汇编程序和高
23、级源码级调试。 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 口之间的协议转换;如果是使用串口,则要使用一个实现串口通讯功能驱动,与串口数据接收功能的芯片。串口USB 接口串口驱动芯片
24、USB 接口转换芯片单片机图 2-1 通信接口模块设计方框图西南科技大学本科生毕业论文 7接口模块设计方框图见图 2-1。STK500 下载编程和 JTAG 仿真均需要同目标板与 PC 机相连,那么这里也需要设计两个接口:STK500 下载接口和 JTAG 仿真接口。STK500 和 JTAG 仿真的设计方框图见图 2-2。STK500 下载控制芯片程序升级控制芯片JTAG 控制芯片STK500 下载接口JTAG 仿真接口通信接口图 2-2 STK500 和 JTAG 设计方框图电源部分的设计也是一个关键之处。本设计必须要在上电的情况下才能工作。本设计的工作电压应该是+5V,USB 自带+5V
25、 电压即可以不做考虑它的供电方式。需要研究的是在使用串口的情况下,通过哪种方式给系统供电,经过考虑,初步定为两种模式:由外部供电和由 USB 供电。以后的设计就是根据图 2-1 和图 2-2 这两个方框图提供的方向去完成的,从而可以达到课题的要求。2.4 本章小结 本章是介绍设计 AVR 实验平台外围接口的思路和模块。之所以会选择 AVR 单片机是因为它简便易学,费用低廉;高速、低耗、保密;I/O 口功能强,具有 A/D 转换等电路;有功能强大的定时器/计数器及通讯接口。STK500 是官方唯一推荐的下载方式,比一般的并口 ISP 快 10 倍,是 ATMEL最推荐的编程方式,由于采用 ATM
26、EL 官方的 STK500 固件,使得它可烧写全系列AVR(若对固件进行升级亦可支持未来的 AVR 型号) ,烧写速度为最高速,并且支西南科技大学本科生毕业论文 8持在线调试。JTAG ICE 是与 Atmel 公司的 AVR Studio 相配合的一套完整的基于JTAG 接口的片上调试工具,支持所有 AVR 的 8 位 RISC 指令的带 JTAG 口的微处理器。 本课题的设计大致可以分为 5 个模块:1、USB 接口通信 2、串口通信3、STK500 下载 4、JTAG 仿真 5、供电模式。在第 3 节中给出了设计的模块方框图,有了一个大致的设计方向,以后的设计就按照这个思路去完成。西南科
27、技大学本科生毕业论文 9第 3 章 硬件设计3.1 STK500 下载器的设计3.1.1 主控制芯片选用及简介经过考虑决定使用 ATmega8535 作为 STK500 下载的主控制芯片。ATmega8535 有如下特点:工作电压为 4.5V5V,8K 字节的系统内可编程Flash(具有同时读写的能力,即 RWW),512 字节 EEPROM,512 字节 SRAM,32个通用 I/O 口线,32 个通用工作寄存器,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/ 外中断,可编程串行 USART,面向字节的两线串行接口, 10 位具有可选差分输入级可编程增益(TQFP 封装)的 AD
28、C,具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口,以及六个可以通过软件进行选择的省电模式。在此设计中主要使用了端口 B(PB4 PB7)的第二功能,见表 3-1。表 3-1 B 口第二功能引脚 第二功能PB4 (SPI 从机选择引脚)SPB5 MOSI(程序下载时的数据输入线)PB6 MISO(程序下载时的数据输出线)PB7 SCK(串行时钟)MOSI、MISO、SCK 和 是 SPI 的引脚。SPI 是串行涉外接口,进行 AVR 微S控制器与外围设备之间或若干 AVR 器件之间的高速同步数据传送。PB7(SCK )引脚是主机模式的时钟输出和从机模式的时钟输入,把数据写入主 CP
29、U 的 SPI,数据寄存器会启动 SPI 的时钟发生器,而数据从 PB5(MOSI)引脚移出和移入。从机选择输入 PB4( )被设置为低来选择单独的 SPI 器件作为从机,S主机和从机的两个移位寄存器可以被认为是一个分开的 16 位环行移位寄存器。当数据从主机移向从机,同时数据也移向相反的方向。这意味着在一个移位周期内,主机和从机的数据交换。这个系统在发送方向上有一级缓冲而在接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束后才能对 SPI 数据寄存器执行写操作。而在接收数据时,需要在下一个字符移位过程结束之前通过访问 SPI 数据寄存器读取当前接收到的字符,否则第一个字节将丢
30、失。工作于 SPI 从机模式时,控制逻辑对 SCK 引脚的输入信号进行采样。为了保证西南科技大学本科生毕业论文 10对时钟信号的正确采样,SPI 时钟不能超过 fosc/4。3.1.2 硬件连接方式首先是要给 STK500 供电,在设计时使用两个发光二极管分别作为 STK500 的电源指示灯和 STK500 下载指示灯,这样的设计才知道 STK500 是否上电,为了加以区别应使用不同的颜色。图 3-1 STK500 下载器原理图西南科技大学本科生毕业论文 11使用 M74HC165 是用来实现 STK500 的硬件识别。M74HC165 是一个高速的CMOS 八位 PISO 变化寄存器,它的连
31、续输出应该接到 PD6 上,PD6 的第二功能为ICP,此引脚的输入是 外部事件发生的触发信号,此时 PD6 一定要上拉,驱动输入电流。ATmega8535 是靠 M74HC165 的输入的逻辑电平来识别是不是工作在STK500 的模式下。RESET引脚悬空时是高电平,要复位就需要给它一个低电平。为了进入编程模式,需要拉低RESET引脚。RESET引脚上的外部上拉电阻不能太小以至于该引脚不能被拉低。为避免这个问题,使用大于4.7K的上拉电阻。为了可靠,再加上一只0.1uF的电容以消除干扰、杂波。使用 STK500 下载编程,一定要使用 SPI 串行接口,即 MOSI、MISO、SCK 和,S它
32、们的工作原理在前面已经介绍,在此 ATmega8535 为主机,则 引脚应为高,并S且被外设拉低,与从机相应的 MOSI、MISO、SCK 和 相连,完成它们之间的通信。表 3-2 连接插头引脚定义信号 10-Pin I/OVTG/VCC 2 目标板上的电源GND 3,4,6, 8,10 地MOSI 1 输出 AVRISP 到目标芯片的指令或数据MISO 9 输入 目标芯片到 AVRISP 的数据SCK 7 输出 串行时钟,由 AVRISP 控制RESET 5 输出 复位,由 AVRISP 控制在这里我需要一个接口能够和目标板相连,实现 STK500 下载。接口使用的是10 脚的连接插头,它的
33、引脚功能见表 3-2。图 3-2 STK500 接口连接图西南科技大学本科生毕业论文 12将 ATmega8535 的 MOSI、MISO、SCK 和 和插头的 MOSI、MISO、SCK 和S分别对应的相连,并接一个拉低电阻。插头的 5 脚是复位,由 STK500 控制,和SATmega8535 的中断引脚 INT0 相连。按照以上的分析即可设计出 STK500 下载器的原理图,见图 3-1,3-2。3.1.3 STK500 升级这里使用 AT90S2313 作为 STK500 程序升级的控制芯片,升级芯片的作用就是支持升级协议,只要解决控制问题就完全可以对芯片进行升级了。因为只要具有SPI
34、 口和 UART 输入/输出线的芯片即可,经过比较,觉得 AT90S2313 最合适,因为它的 I/O 口只有 C 口和 D 口,符合要求,又不会造成资源的浪费。AT90S2313 具有以下的特点:2K 字节 FLASH;128 字节 EEPROM;128 字节SRAM;15 个通用 I/O 口; 32 个通用工作寄存器;具有比较模式的灵活的定时器/ 计数器;内外中断源;可编程的看门狗定时器;可编程的 UART;下载程序用的 SPI口以及 2 种可以通过软件选择的省电模式。将 AT90S2313 的 XTAL1 端与 ATmega8535 的 XTAL2 端相连接,这是采用的外部时钟,因此它的
35、 XTAL2 应该悬空。它的复位端采用和 Atmega8535 一样的方式,接一个电阻到 VCC 再加上一只 0.1uF 的电容以消除干扰、杂波。AT90S2313 的 PD0 和 PD1(UART 输入端和输出端)与 ATmega16 的这两个引脚相连。在这里要考虑怎样控制芯片的升级。它的 MOSI、 MISO、SCK 引脚应该分别对应的与 ATmega8535 的 MOSI、MISO、SCK 三个引脚相连。西南科技大学本科生毕业论文 13图 3-3 升级控制原理图3.2 JTAG 仿真接口设计3.2.1 主控制芯片选用及简介要进行 JTAG 仿真,那么这个芯片必须要具有 JTAG 接口。因
36、此我使用的芯片是 ATmega16。ATmega16 有如下特点 :16K 字节的系统内可编程 Flash(具有同时读写的能力,即 RWW),512 字节 EEPROM,1K 字节 SRAM, 32 个通用 I/O 口线,32 个通用工作寄存器,用于边界扫描的 JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行 USART,具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口。片内 ISP Flash 允许程序存储器通过 ISP串行接口,或者通用编程器进行编程,也可以通过运行于 AVR 内核之中的引导程序进行编程。引导程序可以使
37、用任意接口将应用程序下载到应用 Flash 存储区(Application Flash Memory)。在更新应用 Flash 存储区时引导 Flash 区(Boot Flash Memory)的程序继续运行,实现了 RWW 操作。在这里主要是介绍下端口 C(PC2 PC6)的第二功能,见表 3-3。表 3-3 端口 C 第二功能端口引脚 第二功能PC0 SDA(两线串行总线数据输入/ 输出线)PC1 PC0 SCL(两线串行总线时钟线 )PC2 TCK(JTAG 测试时钟)PC3 TMS(JTAG 测试模式选择PC4 TDO(JTAG 测试数据输出)PC5 TDI(JTAG 测试数据输入)P
38、C6 TOSC1(定时振荡器引脚 1)PC7 TOSC2(定时振荡器引脚 2)3.2.2 硬件连接方式如何实现功能,就要看 Mega16 是怎样进行硬件的连接的。要使 JTAG 工作,必须对它供电,在此同 STK500 的设计一样接上一个发光二极管,以便能够方便的判断 JTAG 是否上电。西南科技大学本科生毕业论文 14Mega16 已经内置了上电复位设计,并且在熔丝位里,可以控制复位时的额外时间,故 AVR 外部的复位线路在上电时,可以设计得很简单:RESET 脚直接拉一只10K 的电阻到 VCC 即可。为了可靠,再加上一只 0.1uF 的电容以消除干扰、杂波。Mega16 已经内置 RC
39、振荡线路,可以产生 1M、2M、4M 、8M 的振荡频率。不过,内置的毕竟是 RC 振荡,在一些要求较高的场合,比如要与 RS232 通信需要比较精确的波特率时,需要使用外部的晶振线路。MOSI、MISO、SCK 引脚应该分别串联一个电阻后同 JTAG 插头的接口引脚TDI、TDO、TCK 相连, PB1 的第二功能是外部计数器输入,它和接口的模式选择信号 TMS 相连。图 3-4 JTAG 仿真原理图如果要使用目标板供电那么就需要用到 Vsupply 信号,它能够提供 (3-5)V 的直流稳压电源。当使用了外部电源时,这个电源电压输入端会自动断开。它将接于ATmega16 的 PA2 脚并接
40、一个发光二极管,当使用目标板供电时就发光。nSRST 用于控制和监测目标复位信号。当然对于正确的硬件仿真这些都是不需要的。当应用代码将 MCUCSR 的 JTD 位置高,JTAG 接口无效。要再次使能 JTAG 西南科技大学本科生毕业论文 15ICE 就必须对目标 AVR 重新编程。将它与 PD2 中断接口相接。图 3-5 JTAG 接口图为了更好的理解 JTAG 接口的连接,在表 3-4 中对各个引脚进行了说明。表 3-4 JTAG 连接插头引脚说明引脚 信号 I/O 说明1 TCK 输出 测试时钟,JTAG ICE 发往目标 JTAG 端口的时钟信号2 GND 地3 TDO 输入 测试数据
41、输出,目标 JTAG 端口发往 JTAG ICE 的数据信号4 VTref 输入 目标参考电压。目标 VDD 用于控制逻辑电平转换器和目标电源LED 指示灯。5 TMS 输出 测试模式选择,JTAG ICE 发往目标 JTAG 端口的模式选择信号6 nSRST 输出/入适配器开集电极输出至目标系统复位。它也是适配器的输入引脚,将目标板的复位情况告知 JTAG ICE。7 Vsupply输入 适配器电源,该连接器用于为适配器提供(3 - 5)V 的直流稳压电源(通常为目标 VDD)。当使用了外部电源时,这个电源电压输入端会自动断开。8 nTRST NC(输出)悬空,用于与其他设备兼容(JTAG
42、端口复位)9 TDI 输出 测试数据输入,JTAG ICE 发往目标 JTAG 端口的数据信号10 GND 地因为使用的是 MEGA16 芯片,内部可以烧入 Bootloader,所以不需要AT90S2313 也能实现自动升级。原理图见图 3-4,3-5 。西南科技大学本科生毕业论文 163.3 接口通信设计3.3.1 USB 接口简介及通信设计USB 接口的应用很广,本课题也要求能够使用 USB 接口进行通信。我首先就是设计这个模块。下面先对 USB 接口进行一下简介。USB 的全称是 Universal Serial Bus,最多可连接 127 台外设,由于 USB 支持热插拔,即插即用的
43、优点,所以 USB 接口已经成为计算机的标准接口。USB 有两个规范,即 USB1.1 和 USB2.0,目前 USB2.0 已经普及,只有在容量小、对速度要求不高的产品中才会使用 USB1.1 接口,影碟机基本都使用 USB2.0 接口。USB1.1 的最高数据传输率为 12Mbps,USB2.0 则提高到 480Mbps。图 3-6 USB 接口图USB 接口有 3 种类型: 1:Type A:一般用于 PC。2:Type B :一般用于 USB 设备。3:Mini-USB:一般用于 数码相机、数码摄像机、测量仪器以及 移动硬盘等。表 3-5 USB 接口定义其接口图见图 3-6 所示,接
44、口定义见表 3-5 所示。引脚 名称 描述1 VCC 电源,自带+5 伏电压2 -DATA0 负数通道 03 +DATA0正数通道 04 GND 接地西南科技大学本科生毕业论文 17使用 USB 接口我们则需要一个 USB 接口转换芯片,实现 USB 转成串口。在这里我打算使用 PL-2303HX。PL-2303HX 提供一个 RS-232 全双工异步串行通信装置与 USB 功能接口便利连接的解决方案,PL-2303HX 的高兼容驱动可在大多操作系统上模拟成传统 COM 端口,并允许基于 COM 端口之应用很方便地转换成 USB 接口应用利用 USB 大容量传输模式,大型数据缓冲器,和自动流量
45、控制的优势,PL-2303HX 有能力达到比传统通用异步收发端口更高的吞吐量。当不要求是标准 RS-232 信号时,波特率可高于115200 bps,用于更高的性能应用,灵活的 PL-2303HX 波特率发生器能被编程而产生任何 75 bps6,000,000 bps 或 6Mbps 之间。而且它转换以后是 TTL 电平,不需要再实现电平之间的转换。西南科技大学本科生毕业论文 18图 3-7 USB 接口通信设计USB 接口通信部分的设计原理图见图 3-7。PL-2303HX 是 USB 接口和 RS232 接口的通信桥梁。PL-2303HX 的 DM 和 DP引脚分别是 USB DPLUS
46、信号和 USB DMINUS 信号的端口,应与 USB 的 D+和 D-两个端口通过 33 的电阻连接到一起,实现 USB 到 PL-2303HX 的数据传送,这两个电阻是用作阻抗匹配的。PL-2303HX 的数据发送端和接收端可以直接和目标芯片相连接。西南科技大学本科生毕业论文 193.3.2 RS-232C 串口通信设计RS-232C 标准是一种串行通信接口标准,它规定了在串行通信中数据终端设备(简称 DTE,如个人计算机)和数据通信设备(简称 DCE,如调制解调器)间物理连接线路的电气特性通信格式和约定,是异步串行通信中应用最广的总线标准。如今 RS-232C 接口一般使用的是 9 芯
47、D 型插座(如相同微机中的串行口) ,引脚见图 3-8 所示。图 3-8 9 引脚 DB-9表 3-6 给出了基本引脚的名称与功能。表 3-6 RS-232C 9 芯的基本引脚的名称和功能9 芯引脚 名称 功能1 CD载波信号检测2 RXD 接收数据3 TXD 发送数据4 TR数据终端准备好5 GND 信号地6 DS数据装置准备好7 T请求发送8 C清除发送为保证数据可靠传输,RS-232C 标准规定发送数据线 TXD 和接收数据线 RXD采用 EIA 电平,即传送数字“1”时,传输线上的电平在-3-15V 之间;传送数字“0”时, 传输线上的电平在+3 +15V 之间。但是单片机串行口采用正
48、逻辑的 TTL电平,这样就存在 TTL 电平与 EIA 电平之间的转换问题。RS-232C 与 TTL 之间电平转换芯片主要有传输线发送器 MC1488(把 TTL 电平转换成 EIA 电平)传输线接收器 MC1489(把 EIA 电平转换成 TTL 电平)及MAX 公司推出的 MAX232MAX233 等专用芯片。西南科技大学本科生毕业论文 20图 3-9 MAX232 封装图MAX232 是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V 电源供电时提供 EIA 电平。每个接收器将 EIA 电平输入转换为 5VTTL 电平。这些接收器具有 1.3V 的典型门限值及 0.5V 的典型迟滞,而且可以接收30V 的输入。每个驱动器将 TTL 输入电平转换为 EIA 电平。MAX232 系列芯片集成度高,只需外接 5 个容量为 0.11uf 的小电容即可完成两路 RS-232C 与 TTL 电平之间的转换,是单片机应用系统中最常用的 RS-232