rfid开发技术及实践(西电版)第3章rfid阅读器开发基础

上传人:tian****1990 文档编号:81735238 上传时间:2019-02-22 格式:PPT 页数:148 大小:2.64MB
返回 下载 相关 举报
rfid开发技术及实践(西电版)第3章rfid阅读器开发基础_第1页
第1页 / 共148页
rfid开发技术及实践(西电版)第3章rfid阅读器开发基础_第2页
第2页 / 共148页
rfid开发技术及实践(西电版)第3章rfid阅读器开发基础_第3页
第3页 / 共148页
rfid开发技术及实践(西电版)第3章rfid阅读器开发基础_第4页
第4页 / 共148页
rfid开发技术及实践(西电版)第3章rfid阅读器开发基础_第5页
第5页 / 共148页
点击查看更多>>
资源描述

《rfid开发技术及实践(西电版)第3章rfid阅读器开发基础》由会员分享,可在线阅读,更多相关《rfid开发技术及实践(西电版)第3章rfid阅读器开发基础(148页珍藏版)》请在金锄头文库上搜索。

1、第3章 RFID阅读器开发基础,3.1 阅读器电路组成 3.2 AVR单片机概述 3.3 AVR时钟与熔丝位 3.4 AVR通用I/O口 3.5 AVR中断 3.6 AVR定时器 3.7 AVR USART 3.8 AVR SPI,3.1 阅读器电路组成 从电路上来看,阅读器是一个嵌入式系统,一般由MCU控制器、射频收发、通信接口、天线以及其他外围电路组成,其组成如图3-1所示。 本章将首先讲解阅读器电路组成,然后讲解作为阅读器核心MCU的AVR单片机及其外围电路。具体收发通道等会根据不同频段RFID系统的需求将在后续章节进行分析和讲解。,图3-1 阅读器组成,3.1.1 MCU及外围电路 M

2、CU是阅读器的核心,配合外围电路完成收发控制、向应答器发送命令与写数据、应答器数据读取与处理、与应用系统的高层进行通信等任务。MCU及外围电路的结构如图3-2所示。 本书配套阅读器的MCU为Atmel公司出品的AVR单片机,具体型号为Atmega16A。,图3-2 MPU及外围电路的结构,3.1.2 收发通道 收发通道主要负责数据的链路和无线链路,由以下两部分组成: 发送通道,包括编码、调制和功率放大电路,用于向应答器传送命令和写数据。 接收通道,包括解调、解码电路,用于接收应答器返回的应答信息和数据。 其收发通道电路的结构如图3-3所示。 另外,需要注意的是在实际的电路设计中,根据应答器的防

3、碰撞能力的设置,还应考虑防碰撞电路的设计。,图3-3 收发通道电路的结构,3.1.3 天线 阅读器和应答器都需要安装天线,天线的应用目标是取得最大的能量传输效果。选择天线时,需要考虑天线类型、天线的阻抗、应答器附着物的射频特性、阅读器与应答器周围金属物体等因素。 RFID系统所用的天线类型主要有偶极子天线、微带贴片天线和线圈天线等。 偶极子天线辐射能力强,制造工艺简单,成本低,具有全面方向性,常用于远距离RFID系统。 微带贴片天线的方向图是定向的,工艺较复杂,成本较高。, 线圈天线用于电感耦合方式的RFID系统中(阅读器和应答器之间的耦合电感线圈在这里也称为天线)。线圈天线适用于近距离的RF

4、ID系统,在超高频频段和工作距离、方向不定的场合难以得到广泛应用。 在应答器中,天线和应答器芯片是封装在一起的,由于应答器尺寸的限制,天线的小型化和微型化现已成为RFID系统性能的重要因素。近年来研制的嵌入式线圈天线、分型开槽天线、地坡面圆极化EBG(电磁带隙)天线等新型天线为应答器天线小型化提供了技术保证。,3.2 AVR单片机概述 1997年,Atmel公司挪威设计中心的A先生和V先生利用Atmel公司的Flash新技术,共同研发出RISC精简指令集高速8位单片机,简称AVR。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通信设备和家用电器等各个领域。,3.2.1 A

5、VR主要功能特性 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆和单体高速输入/输出的方案,既提高了指令执行速度,又克服了瓶颈现象,增强了功能。同时也减少了对外设管理的开销,相对简化了硬件结构,降低了成本。因而,AVR单片机在软/硬件开销、速度、性能和成本等诸多方面取得了优化平衡。,AVR单片机其他特点如下: 哈佛结构,具备1MIPS/MHz的高速运行处理能力。 超功能精简指令集(RISC),具有32个通用工作寄存器。 快速地存取寄存器组、单周期指令系统,大大优化了目标代码的大小和执行效率。部分型号Flash非常大,特别适用于使用高级语言进行开发。 作输出时可输出40

6、 mA(单一输出);作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备1020 mA灌电流的能力。,片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠。 大部分AVR片上资源丰富:带EEPROM、PWM、RTC、SPI、USART、TWI、ISP、AD、Analog Comparator和WDT等。 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。,3.2.2 ATmega16A ATmega16A是AVR系列单片机中的一个型号,因其功能丰富、性价比高而被广泛应用。ATmega16A常用的有两种封装,分别为40引脚P

7、DIP封装和44引脚TQFP封装。其中,40引脚PDIP封装如图3-4所示,44引脚TQFP封装如图3-5所示。本书配套读写器的ATmega16A采用44引脚TQFP封装。 ATmega16A引脚功能较多,其具体说明如表3-1所示。,图3-4 40引脚PDIP封装,图3-5 44引脚TQFP封装,表3-1 ATmega16A 引脚说明,3.3 AVR时钟与熔丝位 AVR单片机的运行,需要有时钟的驱动,而时钟源的选择需要设置相关熔丝位。 3.3.1 AVR系统时钟 AVR有一套时钟系统,也有多个时钟源可作为系统时钟,这些时钟并不需要同时工作。为了降低功耗,可以通过使用不同的睡眠模式来禁止无需工作

8、模块的时钟。具体时钟分布如图3-6所示。 上图中涉及的时钟功能如表3-2所示。,图3-6 AVR时钟单元,表3-2 时钟功能说明,AVR单片机的多种时钟源通过一个时钟多路选择器来驱动系统时钟或用作其他功能,时钟源的选择需要对熔丝位进行配置。被选择的时钟输入到AVR时钟发生器,再分配到相应模块。 AVR有六个时钟源,分别如下: 外部晶体/陶瓷振荡器,常用作主时钟源,这个振荡器可以使用石英晶体也可以使用陶瓷谐振器。XTAL1和XTAL2分别用作片内振荡器的反相放大器的输入和输出。 外部低频振荡器,一般用来连接32.768 kHz晶振。需要对熔丝位编程,使能XTAL1和XTAL2的内部电容,从而除去

9、外部电容。内部电容的标称数为36 pF。, 外部RC振荡器。对于时间不敏感的应用可以使用外部RC振荡器。频率可以通过f = 1/(3RC)进行粗略的估算。电容至少需要22 pF。 标定的内部RC振荡器。标定的片内RC振荡器提供了固定的1.0、2.0、4.0或8.0 MHz的时钟。这个时钟也可作为系统时钟。选择这个时钟之后就无需外部器件了。 外部时钟。XTAL1连接外部来的时钟信号,作为系统时钟驱动整个CPU运行。XTAL2可悬空。, 定时器振荡器。对于拥有定时器/振荡器引脚(TOSC1和TOSC2)的AVR微处理器,晶体可以直接与这两个引脚相连,无需外部电容。此振荡器针对32.768kHz的中

10、标晶体作了优化。 器件出厂时,缺省设置的时钟源是1 MHz的内部RC振荡器,启动时间为最长。这种设置保证用户可以通过ISP或并行编程器得到所需的时钟源。,3.3.2 AVR熔丝位 在AVR内部有多组与器件配置和运行环境相关的熔丝位,这些熔丝位非常重要,用户可以通过设定和配置熔丝位,使AVR具备不同的特性,以更加适合实际的应用。 ATmega16A有两个熔丝位字节,分别为熔丝位高字节和熔丝位低字节。如果熔丝位被编程则读返回值为“0”。其中,熔丝位高字节每个Bit的定义如表3-3所示;熔丝位低字节每个Bit的定义如表3-4所示。 在熔丝位中,与系统时钟有关的有CKOPT和CKSEL3:0,主要用来

11、选择振荡器种类和工作频率,具体配置如表3-5所示。,表3-3 熔丝位高字节定义,表3-4 熔丝位低字节定义,表3-5 CKOPT与CKSEL3:0的配置,CKOPT的数值决定了振荡器输出幅度的大小,不同振幅决定了其适应场合的不同,具体含义如下: 在CKOPT = 0时,振荡器的输出振幅较大,容易起振,适合在干扰大的场合以及使用晶体振荡器超过8 MHz的情况下。 当CKOPT = 1时,振荡器的输出振幅较小,这样可以减少对电源的消耗,对外的电磁辐射也较小。,3.4 AVR通用I/O口 ATmega16A有四组通用I/O端口,分别为PORTA、PORTB、PORTC和PORTD,简称PA、PB、P

12、C和PD。每组I/O端口有8个I/O管脚。这些管脚都是相互独立的,具有真正的读、改、写功能。AVR通用I/O口的主要特点如下: 双向独立位控的I/O口。每一位都可以单独进行配置,互不影响。 大电流驱动,每个I/O口输出采用推挽方式,最大20 mA灌电流,可直接驱动LED。 I/O端口可以复用,作为USART、SPI等外设接口。,3.4.1 通用I/O口结构 AVR的通用I/O口的结构并不复杂,其结构如图3-7所示。 每一组I/O端口内部配备三个8位寄存器,对应着该组的8个引脚,分别为: 方向控制寄存器DDRx(x = A,B,C,D)。 数据寄存器PORTx(x = A,B,C,D)。 输入引

13、脚寄存器PINx(x = A,B,C,D)。 此外,每个I/O口内部还有一个上拉电阻。 方向控制寄存器DDRx用于控制I/O口的输入输出方向,即控制I/O口的工作方式为输入方式还是输出方式。,图3-7 通用I/O口结构, 当DDRx = 1时,I/O口处于输出工作方式,此时数据寄存器PORTx中的数据通过一个推挽电路输出到外部引脚,当PORTx = 1时,I/O引脚呈现高电平,同时可以提供输出20 mA的电流;而当PORTx = 0时,I/O引脚呈现低电平,同时可以吸纳20 mA电流。因此,AVR的I/O口在输出方式下提供了比较大的驱动能力,可以直接驱动LED灯小功率外围器件。 当DDRx =

14、 0时,I/O口处于输入方式。此时引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读PINx寄存器可以获得外部引脚上的真实电平。在输入方式下,PORTx可以控制使用或者不使用内部的上拉电阻。,此外,在寄存器SFIOR中,有一位称做PUD,它是AVR全部I/O口内部上拉电阻的总开关。 当PUD = 1时,AVR所有I/O内部上拉电阻都不起作用。 当PUD = 0时,各个I/O口内部的上拉电阻取决于PORTx的设置。,3.4.2 通用I/O寄存器 ATmega16A的四个端口都有各自对应的三个I/O口寄存器,分别为数据寄存器PORT、数据方向寄存器DDR和输入引脚PIN。它们占用了I/O空间

15、的12个地址。以PA口寄存器为例,数据寄存器PORTA的具体定义如表3-6所示;数据方向寄存器DDRA的具体定义如表3-7所示;输入引脚寄存器PINA的具体定义如表3-8所示。,表3-6 PORTA寄存器,表3-7 DDRA寄存器,表3-8 PINA寄存器,3.4.3 通用I/O程序设计 通用I/O口常用于MCU对外数据输出和输入,LED驱动和按键检测等。下述内容用于实现描述3.D.1,即使用PC7管脚交替点亮和熄灭一只LED。 1. LED初始化 基于模块化和移植的考虑,可将I/O口设置子程序单独封装成一个子函数。例如,LED相关管脚的配置可封装成子函数LED_Config(),具体源码如下:,【描述3.D.1】LED_Config() /* LED初始化函数 */ void LED_Config(void) /PC7引脚连接一个LED,低电平点亮 /设置PC7为输出 DDRC |= (1PC7); /设置PC7为高电平 PORTC |= (1PC7); ,2. 主函数编写 主函数main()存放在main.c文件中,除了相关初始化函数和主循环外,还需要定义一些必需的宏定义和头文件等,详细代码清单如下: 【描述3.D.1】main.c /* 宏定义 */ /开启iom16.h文件中的bit模式 #define ENABLE_BIT_DEF

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号