请选择 进入手机版 | 继续访问电脑版
搜索
热搜:
查看: 1383|回复: 7

AS3911芯片,FIFO临界值导致数据出错

[复制链接]

1

主题

4

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2015-7-21 16:35:56 | 显示全部楼层 |阅读模式
本帖最后由 WaitingChow 于 2015-7-21 16:39 编辑

        目前使用AS3911芯片,读取非接触CPU卡,在论坛提供的官方代码库移植,现在能对CPU卡发送APDU,但在读取超过FIFO的临界点就有问题,中间会被填充00。

        如果将FIFO的接收缓存定为64字节,那么在接收65和66字节不正常,其它长度正常读取。如果缓存定为80,那么接收81和82字节变为不正常,其它长度正常读取,相关数据可参考下面。麻烦有碰到该问题,或者有什么建议方法,可以提出来,谢谢。
1、64字节正常:
发送:00B081003B
接收:
PCB(1字节)+
01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101019000+CRC(2字节)
2、65字节不正常:
发送:00B081003C
接收:
PCB(1字节)+
010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010101010101010101010101010101010101010101010101010101010101010101010101010101019000+CRC(2字节)

3、66字节不正常:
发送:00B081003D
接收:
PCB(1字节)+
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000010101010101010101010101010101019000+CRC(2字节)

4、67字节正常:
发送:00B081003E
接收:
PCB(1字节)+
01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101019000+CRC(2字节)





回复

使用道具 举报

159

主题

488

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
40801
发表于 2015-7-21 16:57:59 | 显示全部楼层
问题收到,帮转FAE~
回复 支持 反对

使用道具 举报

0

主题

43

帖子

1118

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1118
发表于 2015-7-21 17:15:59 | 显示全部楼层
请试下:
Enable the CRC2FIFO mode (set bit crc_2_fifo to 1, in this mode the AS3911 stores the received data AND the
received CRC in the FIFO). Then the FIFO will always contain the data and the received CRC and both are correct.
回复 支持 反对

使用道具 举报

1

主题

4

帖子

195

积分

注册会员

Rank: 2

积分
195
 楼主| 发表于 2015-7-21 17:46:17 | 显示全部楼层
ams_Rainbow.Tia 发表于 2015-7-21 17:15
请试下:
Enable the CRC2FIFO mode (set bit crc_2_fifo to 1, in this mode the AS3911 stores the recei ...

我已经启用了,不然就不会收到CRC了。如下代码

/* Workaround for v2 silicon fifo problems:  always have crc in FIFO */
as3911ModifyRegister(AS3911_REG_AUX, AS3911_REG_AUX_crc_2_fifo, AS3911_REG_AUX_crc_2_fifo);
回复 支持 反对

使用道具 举报

1

主题

4

帖子

195

积分

注册会员

Rank: 2

积分
195
 楼主| 发表于 2015-7-24 11:02:15 | 显示全部楼层
还没解决,大神在哪里
回复 支持 反对

使用道具 举报

159

主题

488

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
40801
发表于 2015-7-24 13:14:15 | 显示全部楼层
WaitingChow 发表于 2015-7-24 11:02
还没解决,大神在哪里

问题收到
回复 支持 反对

使用道具 举报

0

主题

43

帖子

1118

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1118
发表于 2015-7-24 13:59:31 | 显示全部楼层
在接收时,FIFO water level的中断是否及时处理并读完了FIFO?如果处理不及时可能会导致读到的数据出错,请检查是否是中断响应不及时。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

195

积分

注册会员

Rank: 2

积分
195
 楼主| 发表于 2015-7-27 16:16:16 | 显示全部楼层
ams_Rainbow.Tia 发表于 2015-7-24 13:59
在接收时,FIFO water level的中断是否及时处理并读完了FIFO?如果处理不及时可能会导致读到的数据出错,请 ...

你好,关键是我读取超过67字节后续的字节都读取正常。刚才我也看了,我中断处理时间很短。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|ams社区

GMT+8, 2019-10-16 22:19 , Processed in 0.109796 second(s), 19 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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