找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9626|回复: 0
收起左侧

通过单片机串口通信实现对电子标签的读写实验报告

[复制链接]
ID:202709 发表于 2017-5-19 22:49 | 显示全部楼层 |阅读模式
》》》》》》》》学院
实验报告
课程名称 物联网射频识别技术与应用
实验名称 通过串口通信实现对电子标签的读写
                班级 :
             学号 :
             姓名 :


  • 任务
通过串口通信实现对电子标签的读写,实现对读写卡编号的充值。
  • 原理
  • 电子标签
  • 概述
电子标签又称射频视频、应答器或射频卡。电子标签是射频识别真正的数据载体,从技术角度来说,射频识别的核心是电子标签,读写器是根据电子标签的性能而设计的。
  • 存储结构
电子标签由标签专用芯片和标签天线组成,而芯片用于存储物品的数据,电子标签的芯片很小,厚度一般不超过0.35mm;芯片具有一定的存储容量,可以存储被识别物体的相关信息。电子标签对标签接收的信号进行调解、解码等各种处理,并把标签需要返回的信号进行编码、调解等各种处理。
  • 如何询问
电子标签与读写器间通过电磁波进行通信。当电子标签进入读写器的工作区域后,受到读写器发出射频信号的激励,标签进入工作状态。
  • 读写器
  • 概述
读写器又称为阅读器或询问器,是读取和写入电子标签内存信息的设备。读写器是一种数据采集设备,其基本作用就是作为数据交换的一环将前端电子标签所包含的信息,传递给后端的计算机网络。
  • RC522子函数作用
char PcdRequest(unsigned char req_code,unsigned char *pTagType)//寻卡
char PcdAnticoll(unsigned char *pSnr)//防冲撞
char PcdSelect(unsigned char *pSnr)//选定卡片
charPcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)//验证卡片密码
char PcdRead(unsigned char addr,unsigned char *pData)
//读取M1卡一块数据
char PcdWrite(unsigned char addr,unsigned char *pData)
//写数据到M1卡一块
char PcdHalt(void)//命令卡片进入休眠状态
char PcdReset(void)//复位RC522
unsigned char ReadRawRC(unsigned char Address)//读RC632寄存器
void WriteRawRC(unsigned char Address, unsigned char value)
//写RC632寄存器
void SetBitMask(unsigned char reg,unsigned char mask)
//置RC522寄存器位
void ClearBitMask(unsigned char reg,unsigned char mask)
//清RC522寄存器位
char PcdComMF522(unsigned char Command,unsigned char *pInData,unsigned char InLenByte,unsigned char *pOutData,unsigned int *pOutLenBit)//通过RC522和ISO14443卡通讯
void PcdAntennaOn()//开启天线
void PcdAntennaOff()//关闭天线
  • 程序移植
这个程序中“.h”文件的内容是定义函数变量及所需函数原型,“.c”文件主要功能是对“.h”文件中声明的外部函数进行具体的实现,对具体实现方式没有特殊规定,只要实现其函数的功能即可。
  • 串口通信
  • 概述
串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。由于 串口 通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。 串口 通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行 通信的端口,这些参数必须匹配。
  • 串口通信程序
  
STC89C52RC单片机内部集成有一个可编程的全双工的异步通信串行口,可以作为通用异步接收/发送器(UART),也可作为同步移位寄存器使用。
2个数据缓冲器SBUF在物理上是相互独立的,一个用于发送数据、另一个用于接收数据。2个SBUF共用一个地址(99H),通过读写指令区别是对哪个SUBF的操作。
发送控制器的作用是在门电路和定时器T1的配合下,将发送缓冲器SBUF中的并行数据转为串行数据,并自动添加起始位、可编程位、停止位。这一过程结束后自动使发送中断请求标志位TI置1,用以通知CPU已将发送缓存器SBUF发中的数据输出到了TXD引脚。
  1. void send_byte( INT8U SendData )
  2. {
  3. ES = 0;
  4. TI = 0;//TI:发送中断标志位
  5. SBUF = SendData;
  6. while( TI == 0 );  //等待发送完成
  7. TI = 0;           //清TI标志位
  8. ES = 1;       //使能打开
  9. }
  10. INT8U rec_byte(void)//接收函数//当TI=1,或RI=1,或TI、RI同时为1时,串行口向CPU提出中断申请。
  11. {
  12.   INT8U              receive;
  13.   ES = 0;
  14.   RI = 0;//RI:接收中断标志位
  15.   while( RI == 0 );//中断请求标志位清0 (RI=0)//当RI=0时要等RI变为1;
  16.     RI = 0;
  17.     ES = 1;              //使能打开
  18.     receive=SBUF;
  19.     return receive;
  20. }
  21. void init_uart(void)//串口初始化
  22. {
  23. SCON = 0x50;//串口工作在方式1,允许接收,清中断标志
  24. ES=1;
  25. }
  26. void init_timer(void)  //20ms
  27. {
  28. TMOD = 0X21;//TMOD定时寄存器
  29. ET1 = 1;
  30. TH1 = 256 - FOSC / 12 / 32 / BAUD;//8位, 定时器

  31. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

  • 实现
  • 流程图
0.png 0.png

一、总结
通过学习串口通信对电子标签的读写,成功的实现了对读写卡编号的充值,完整的学习,熟悉,了解了对于读卡器的运行原理,完整掌握串口通信的应用流程,我们利用串口通信,与计算机相连,同时也可以用单片机互联或者用多个单片机相互通信组网等。从研究学习的角度来说,熟练的利用串口将单片机系统中的相关信息显示在计算机上可以很直观方便的进行调试和开发,加深我们対内部程序的理解,并对接下的学习打下了相关基础,有利于知识体系的构建与射频读写实际运用的熟练。

完整论文下载(word格式 可编辑):
射频报告.docx (175.28 KB, 下载次数: 23)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表