R522学习计划.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
R522学习计划.doc

RC522学习计划(V1.0 ) 时间:2013年3月12号18:22 Stepl : 了解 RC522 的接口( SPI ) 开始:18:28 MFRC522 Pin UART Serial Interface Types sp, PC SDA RX NSS SDA PC 0 0 1 EA 0 1 EA D7 TX MISO SCL D6 MX MOSI ADR_0 D5 DTRQ SCK ADR_1 D4 ■ ADR_2 D3 ■ ■ ADR_3 D2 * - ADR_4 D1 ■ ? ADR_5 Remark: Overview on the pin behavior Pin behavior Input Output In/Out RCC的接口与配置模式: RC522的SPI总线接口有其自身的时序要求。它只能工作于从模式,最高 传输速率为10 Mbps ,数据与时钟相位关系满足空闲态时钟为低电平,在时 钟上升沿同步接收和发送数据,在下降沿数据转换的约束关系。 本文中配置STM32工作于SPI主模式下,时钟小于10Mbps ,接收和发 送数据都在时钟上升沿发生。 对于SPI接口,RC522的相关弓脚必须按照图2所示的连接关系配置。 RC522 除了通用的4条SPI信号线(时钟线SCK、输入数据线MOSI、输出数据线 MOSO和选通线NSS)以外,RC522要求额外的2个引脚I2C和EA分别固定 接低电平和高电平。这2个引脚不参与SPI总线传输,只起设定RC522数字 界面采用SPI接口的作用。另外,片选信号必须保证在写入数据流期问为低电 平,而在无数据流写入时则为高电平,不能一直将NSS置为低电平。 Step2: 了解RC522的接收和发送数据的流程(工 作过程) 相对于PHILIPS公司生产的其他14443基站芯片(如RC500、RC530 等),RC522简化了内部系统结构,去掉了片内E2PR0M。从而大大缩减了芯 片命令集。另外,对载波调制电路,发送电路和解调、解码电路的控制也相应 简化,去掉了校准接收电路I时钟、Q时钟、校准发送与接收时钟相位等繁琐 的操作。一般而言,单片机与RC522的通信流程如图3所示。 3 单片机与AC522通信流程 工作过程: 对卡的操作分成四步:寻卡-防冲突—选卡—读/写卡; MFRC522发送与接收卡数据暂存于FIFO中; (1 ) 寻卡 //寻卡,返回卡类型 status = MFRC522_Request(PICC_REQIDLr str); if (status == MI_OK) { 一 UART 1__SendOneChar (str [0]); UARTl一SendOneChar(str[1]); } 一 向FIFO中写入PICC_REQIDL命令,通过PCD_TRANSCEIVE命令将FIFO中数据通过 天线发送出去,此时若有卡在天线作用范围内,将识别命令,并返回卡类型; 卡类型(TagType): 0x4400 = Mifare_UltraLight 0x0400 = Mifare_One(S50) 0x0200 = Mifare_One(S70) 0x0800 = Mifare_Pro(X) 0x4403 = Mifare DESFire 第二条命令读取完卡后会等待卡离开开线作用范,直到再次进入。 第二条命令读取完卡后会等待卡离开开线作用范 ,直到再次进入。 039 idefine PICC_REQIDL 0x26 //寻天线区内未进入休眠状态 040 ffdefine PICC一REQALL 0x52 //寻天线区内全部卡 关于下 1:1 两条命令的区别: 第一条命令读取完卡后还会再次读取; (2)防冲突 //防冲撞,返回卡的序列号4字节 status = MFRC522_Anticoll(str); memcpy (serNuin, str, 5); if (status == MI_OK) { 一 UARTl_SendOneChar(serNura[0]); UARTl_SendOneChar(serNum [1]); UARTl_SendOneChar(serNura[2]); UARTl_SendOneChar(serNum[3]); UARTl_SendOneChar(serNura:4]); } 一 向 FIFO 中写入 PICC_ANTICOLL + 0x20 ,通过 PCD_TRANSCEIVE 命令将 FIFO 中数据通过天线发送出去,卡返回卡序列号(共5字节,第5字节是卡序列号 校验码); 由于是非接触式的,同一时间天线作用范围内可能不只一张卡时,即有多于一 张的MIFARE 1卡发回了卡序列号应答,则发生了冲突。此时,由于每张卡的 卡序列号各

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档