射频读卡器,我想很多人都接触过,例如小区的大门,拿起那个蓝 {MOD}的小钥匙放到读卡区,嘀的一下门就开了的,又如大家坐地铁,使用羊城通过闸门等等。
我接触过的一些射频读卡驱动芯片都是NXP公司的,如MFRC522、MFRC531、CLRC632。MFRC522使用3.3V的电源供电,使用SPI接口,而且体积很小,使用非常方便。MFRC531和CLRC632通常使用5V电源,有8位并口和SPI两种接口,客户可以根据要求来选择接口方式。
射频技术的国际标准也是有比较多的,生活中常用到的有ISO14443、ISO15693等,而ISO14443又包括ISO14443a和ISO14443b。我们小区的大门钥匙和羊城通都是使用ISO14443a协议,身份证使用的则是ISO14443b协议。MFRC522和MFRC531兼容ISO14443a和ISO14443b协议,而CLRC632比它们多了一个ISO15693协议。
好了,废话不多说,先看看下面的这原理图。
在网上可以找到很多类似的设计资料,当然NXP官网提供的资料最好,但都是英文的,英文差的人读着就痛苦(我就是这样),但周立功的那份中文文档还是不错的,天线设计的可根据它来进行。
我上面使用的MFRC531芯片(CLRC632的设计可与此相同),这里使用了SPI接口,设计比较简单。也许有人会问,为什么上面的SPI的每根信号线都使用了上拉电阻,而且它的复位端也上拉。这里主要因为使用了STM32作为主控的MCU,当TVDD使用的是5V电源时,可加上拉,当然STM32那边的IO要可容忍5V的IO才好,要不可能会有烧坏MCU的可能。而当TVDD使用3.3V电源时,可直接和STM32连接,可去掉上拉电阻。AVDD为内部天线驱动的电源,使用5V电源。
说到这些芯片,必须说它的天线设计。周立功翻译的那份天线设计文档有很详细的说明,我根据我自己的经历,说说其中几个觉得需要注意的地方。
一、接收电路中,管脚VMID的一要定有个0.1uF的电容,可减少干扰。820R的电阻是定值,然后另外一个2.2K的电阻个根据实际要求来修改,一般范围为820R-2.7K。15pF的电容也是定值,不用修改。
二、EMC电路中的的电感是定值1uH,电容的值如图所示,也可以使用4个68pF来设计,一些专业人士就会根据实际参数进行修改,一般情况下,图中的值都是没问题的。
三、天线部分中的27pF电容可以不修改其容值,一般情况下都是没问题的,而右边的四个电容需要根据具体情况,计算PCB天线电感等的来进行匹配,具体可根据周立功的文档来做。(其实里面好多知识我也不懂,哈哈)
以上只是对直接匹配的天线设计进行说明,关于50欧姆的天线设计,可以参考周立功的那份文档。
网上有很多关于RC500芯片的源程序。RC531比RC500添加了SPI接口,但寄存器的操作应该都是相同的(具体我没细看,因为我的程序本来就很菜)。不管是8位并口还是SPI,修改寄存器操作的函数即可,应该就是ReadRC(uchar Address)、WriteRC(uchar Address,uchar value)、SetBitMask(uchar reg,uchar mask)、ClearBitMask(uchar reg,uchar mask)这几个函数了的,而其他函数直接拿来用就可以了的。其中需要注意的是,如果是8位并口的设计,在初始化或者复位的时候,需要把Page寄存器的最高位置1,SPI接口则清0,确定通讯方式。
以上是我个人的一些看法,当然我也只是了解其中的一点皮毛,欢迎拍砖,希望能帮助有需要的人。
一周热门 更多>