关于读取RFID卡,RFID卡字节如何存储,各个字节干什么用

qq175691524 2009-02-27 03:18:36
麻烦有做过RFID卡读写器接口的朋友给予指点.
我现在要开发一个程序,只要读取RFID卡的UID,开发流程是怎么样的,第一次做这样的东西有点陌生..谢谢各位了..
...全文
606 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ianabear111 2009-03-23
  • 打赏
  • 举报
回复
SHUI 谁知道吗,发个例子看看啊
Cherishny 2009-02-27
  • 打赏
  • 举报
回复
不是有接口吗

根据需求做就可以了
ZKM_ZHANG 2009-02-27
  • 打赏
  • 举报
回复
是用TXT保存数据的吧。
RFID模块RC522串口读写器13.56mhz ic设计射频模块串口文档资料+Rc522Manager上位机API工具软件 数据包: 1.头:7F 2.命令字节:1 3.数据字节:不定 4.尾:F7/55 0111 1111 --7F 头 XXXX XXXX --命令字节 数据字节 0111 1111 --F7 尾 命令字节: 函数选择 XXXX XXXX 函数选择 command 说明: 0000:PcdReset(void) //复位 0001:PcdAntennaOn(void) //天线开 0010:PcdAntennaOff(void) //天线关 0011:PcdRequest(unsigned char req_code,unsigned char *pTagType) //寻 0100:PcdAnticoll(unsigned char *pSnr) //防冲撞 0101:PcdSelect(unsigned char *pSnr) //片选择 0110:PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr) //验证片密码 0111:PcdRead(unsigned char addr,unsigned char *pData) //读取数据 1000:PcdWrite(unsigned char addr,unsigned char *pData) //写入数据 1001:PcdValue(unsigned char dd_mode,unsigned char addr,unsigned char *pValue); //扣款充值 1010:char PcdBakValue(unsigned char sourceaddr, unsigned char goaladdr); //备份钱包 1011:PcdHalt(void) //停止使用 1010~1111:预留 函数说明: 1.PcdRequest : req_code[IN]:寻方式 0x52 = 寻感应区内所有符合 14443A 标准的 0x26 = 寻未进入休眠状态的 pTagType[OUT]:片类型代码 0x4400 = Mifare_UltraLight 0x0400 = Mifare_One(S50) 0x0200 = Mifare_One(S70) 0x0800 = Mifare_Pro(X) 0x4403 = Mifare_DESFire 2.PcdAnticoll:防冲撞。pSnr:片序列号。 3.PcdSelect:片选择。pSnr:片序列号。 4.PcdAuthState:验证片密码。 auth_mode[IN]: 密码验证模式 0x60 = 验证 A 密钥 0x61 = 验证 B 密钥 addr[IN]:块地址 pKey[IN]:密码 pSnr[IN]:片序列号 5.PcdRead:addr[IN]:块地址 pData[OUT]:读出的数据,16 字节 6.PcdWrite:addr[IN]:块地址 pData[IN]:写入的数据,16 字节 7.PcdValue: dd_mode[IN]命令字 0xC0 = 扣款 0xC1 = 充值 addr[IN]钱包地址 pValue[IN] 4 字节增减值,低位在前。 8.PcdHalt:停止使用。 函数参数 data 说明: 0000:PcdReset //复位 //无输入 0001:PcdAntennaOn //天线开 //无输入 0010:PcdAntennaOff //天线关 //无输入 0011:PcdRequest //寻 //1 字节方式 0100:PcdAnticoll //防冲撞 //无输入 0101:PcdSelect //片选择 //4 字节串口号 0110:PcdAuthState //验证片密码 //1 字节模式,1 字节块地址,6 字节密码,4 字节串口号 0111:PcdRead //读取数据 //1 字节地址 1000:PcdWrite //写入数据 //1 字节地址,16 字节数据 1001:PcdValue //扣款充值 //1 字节模式,1 字节地址,4 字 节金额 1010:PcdBakValue //备份钱包 //1 字节源地址,1 字节目标地址 1011:PcdHalt //停止使用 //无输
RFID模块原理图是ORCAD的,有PDF预览,PCB是PADS的,还有BOM烧写说明,标注图等。其中UART输出是量产过的 韦根输出的只是看示波器波形是对的,没有实际应用;里面有源代码,编写前提是是CODE小于1K RAM小于64字节。 原理图原理就是CD4060产生125KHZ的方波,经过推挽电路进行功率放大,高频电流进入LC串联谐振电路,345uH和4.7NF的谐振频率正好是125KHZ,这时电容两端电压会到十几伏,如果用CBB电容,会到二十多伏,这时读距离会到10CM以上。当有接近线圈时,线圈两端会有曼彻斯特编码的调幅波。通过二极管以及电容的检波和滤波,产生的小信号送入LM358进行放大和整形,变成单片机可以读取的曼彻斯特编码信号。 关于硬件电路设计上,CD4060在3.3V时 4M以下的晶振都可以起振,但2M的晶振体积很大,所以用了4M。实验发现ATTINY13的频率随着工作电压的变化会有很大的变化,所以不能用RC校准了,正好CD4060会输出4M,所以用来当系统时钟,保证时序的精确性。这样模块在3.3V 5V都能工作。 ATTINY13接不了无缘晶振 只能接有源的~ 它只有一个CLKIN脚~有源晶振价格就贵了。 另外ATTINY13只有5个IO口 1个用于中断 1个用于UART输出 1个用于CLKIN 1个用于上电波特率配置 1个用于曼彻斯特编码输入 正好用完了 RFID模块 模块正反面 串口收到5个字节 前4个字节就是号 程序中,根据曼彻斯特原理,找到长电平和短电平,根据跳变沿分析出0数据还是1数据。然后寻找消息头,后面的数据进行 行 列奇偶校验,从而分析出号。 程序上电时,通过ADC引脚读取外部电阻的分压配置,从而初始化出4中波特率。然后进行读操作。实际应用中,要保证读的稳定,当靠近线圈时,要只发一次数据。要很好的去抖。代码不能超过1K。现在代码正好1024个字节。关于奇偶校验算法,异或和要比对2取余简洁,但我测试时发现异或和代码长度大于对2取余,所以用了对2取余。 RFID模块原理图+PCB+代码+调试至附件下载

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧