代码拉取完成,页面将自动刷新
Linux RC522 SPI S50 Read Card Device Drivers驱动使用说明:
1,linux SPI Master 框架下的rc522 读卡器驱动。
在S3C2440和S5PV210开发板测试通过,但是不具体依赖于开发板,只要支持spi master驱动,当然Pin连接要匹配你的系统。
修正了内核spi子系统自带的bug(多次加载提示选择线忙的问题)。并且完全不依赖bsp文件(mach-xxxx.c)了,
用户可以直接在驱动文件里面修改修改参数(spi 模式,通信速度等等),完全独立编译运行。
2,应用程序可以使用ioctl完成相关操作,用户接口简单方便。
在驱动程序里面实现了所有操作命令,使用一个结构体struct rc522_ioc_transfer{}和应用程序进行通信。
用户只需要设置结构体struct rc522_ioc_transfer{}的相关成员即可完成所有操作,最大幅度降低用户编程。
对控制块的操作(密码区,控制区)也被封装起了,可以避免因为用户的误操作而损伤卡,
也方便用户对控制块进行单独具体的设置(读,写密码等等)。
用户只需要在设置结构体有关(命令)信息,再调用ioctl就可以了,
可能需要的返回数据(进行寻卡,读操作时)也在这个结构体的缓存数组成员(txrx_buf[])里面。
3,具体操作命令:
3-1,RC522_IOC_REQ_CARD命令:
只需一条命令完成所有寻卡过程。
调用ioctl后,RC522驱动自动完成整个寻卡->。。。->选择卡操作,成功后返回选中卡所有信息(卡类型,id号,容量,厂商信息)。
3-2,RC522_IOC_READ_CARD,RC522_IOC_WRITE_CARD命令:
设置好要操作的扇区,块,密码后,调用ioctl,RC522驱动自动完成crc校验,密码校验,读写卡操作,成功后返回块的数据(读操作时)。
3-3,RC522_IOC_READ_KEYA,RC522_IOC_READ_KEYB,
RC522_IOC_WRITE_KEYA,RC522_IOC_WRITE_KEYB命令:
设置好要操作的扇区,密码后,要设置的新密码(修改密码时),
调用ioctl,RC522驱动自动完成crc校验,密码校验,读密码,写新密码(写密码时)操作,
3-4,RC522_IOC_READ_CTRL,RC522_IOC_WRITE_CTRL命令:
设置好要操作的扇区,密码后,要设置的新密码(修改密码时),
调用ioctl,同上面,RC522驱动自动完成所有操作,
修改控制区时,建议可以先可以参考S50卡说明书进行设置,
3-5,用户可以根据具体要求在驱动中添加自己想要的命令,以更适合你的要求。
RC522驱动使用一个switch{}解析命令,在里面添加case就可以了。非常方便。
4,为避免整个卡的所有扇区被误操作,驱动使用一个sect lock锁保护一些低端位置(0-10)扇区。
因为初学者很容易因为误操作把卡的扇区锁死,这样该扇区就废了。所以增加了这个功能。
当用户想要对这些这些扇区进行修改控制块(密码区,控制区)时,需要在结构体中设置解锁标志(0-》加锁,1-》解锁,默认加锁)。
当然你也可以修改一个宏定义CARD_LOCK_NSECT(默认是10)从而增加或减少保护的扇区数目,
具体使用可以看测试代码,print打印的信息文件。
我花了一周时间从单片机驱动上面移植过来的。
优化并大幅度简化了用户相关操作。让它更像一个标准linux 驱动,而不是使用单片机思想(眉毛胡子一把抓)编写的应用。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。