FM1702注意事项
时间:10-02
整理:3721RD
点击:
FM17xx 系列----非接触卡读写器芯片
有关问题的解决方案
FM17xx 产品与Philips RC500 系列产品有少许的不同FM17xx 在采用RC500 底层程序时可能发生错误这错误是:
当非接触卡芯片在返回命令应答0xA 时只回答了4个Bit CRC 校验会出错而FM17xx 的芯片在此时收到的应答内容也会出错但RC500 能正确收到应答内容如果读卡器程序以此应答内容来判断命令执行是否正确那么就出现相应命令执行错误其实卡片已经正确执行了相关命令的如果程序不用此应答内容作为判断依据继续后续操作则命令可以正确执行此问题解决方案需要改变一下底层程序从原理上讲在接受卡片的4 个Bit 应答时读卡器程序应该把读卡器芯片的接收电路的CRC 校验屏蔽掉而只启动发送电路的CRC 校验功能这样读卡器芯片在接受不带CRC 校验的4 个Bit 应答信号时就不会发生CRC 校验出错而正确接收到相应的应答信号程序修改方法为在发送相应的需要卡片回答4个 Bit应答信号的命令前先关闭接收电路的CRC 功能即写 0x22 寄存器为0x07 在命令执行完后执行其他需要接收卡片具有CRC校验数据的信号的命令前再开启接收电路的CRC校验功能即写 0x22寄存器为0x0f
例如用 C 语言描述
volatile uchar xdata RC500_ChannelRedundancy _at_ (BaseAddr+0x22);
ChannelRedundancy = 0x07;
对 M1 卡操作需要修改的函数有write,decrement,increment,restore,transfer
有关问题的解决方案
FM17xx 产品与Philips RC500 系列产品有少许的不同FM17xx 在采用RC500 底层程序时可能发生错误这错误是:
当非接触卡芯片在返回命令应答0xA 时只回答了4个Bit CRC 校验会出错而FM17xx 的芯片在此时收到的应答内容也会出错但RC500 能正确收到应答内容如果读卡器程序以此应答内容来判断命令执行是否正确那么就出现相应命令执行错误其实卡片已经正确执行了相关命令的如果程序不用此应答内容作为判断依据继续后续操作则命令可以正确执行此问题解决方案需要改变一下底层程序从原理上讲在接受卡片的4 个Bit 应答时读卡器程序应该把读卡器芯片的接收电路的CRC 校验屏蔽掉而只启动发送电路的CRC 校验功能这样读卡器芯片在接受不带CRC 校验的4 个Bit 应答信号时就不会发生CRC 校验出错而正确接收到相应的应答信号程序修改方法为在发送相应的需要卡片回答4个 Bit应答信号的命令前先关闭接收电路的CRC 功能即写 0x22 寄存器为0x07 在命令执行完后执行其他需要接收卡片具有CRC校验数据的信号的命令前再开启接收电路的CRC校验功能即写 0x22寄存器为0x0f
例如用 C 语言描述
volatile uchar xdata RC500_ChannelRedundancy _at_ (BaseAddr+0x22);
ChannelRedundancy = 0x07;
对 M1 卡操作需要修改的函数有write,decrement,increment,restore,transfer