智能卡驱动接收数据异常的定位方法

        参考相关智能卡驱动示例代码,实现了STM32H7xx开发板与智能卡之间的数据交互,数据量少时都正常,但在数据量大如鉴权时出现异常,智能卡数据返回数据全为0,状态码也为0。

       请教业内人士也没有遇到类似问题,但怀疑数据接收有问题,建议用逻辑分析仪抓取数据对比一下,但公司没有现成的只能去买,有支持ISO7816-4协议解析的,但得好几天才能到,还得另寻他法。

       想到STM32H7xx是将串口用作了智能卡接收,只不过将串口收发的两根线变成了一根线而已,因此找一根USB转串口线应能收到与智能卡交互的数据,只是在接线前要注意设置好正确的电平。

        对ATR阶段,默认配置为8位数据位、偶校验、2位停止位、速率9600,通过串口助手的确能抓到0x3B开头的应答数据,从应答数据分析可以看出智能卡要将速率提升到55800,这不是标准的速率,在串口助手上可通过自定义速率来设置,的确也能抓到后续与智能卡的交互数据。

       这种方法的最大优点就是能实时监测,而不是逻辑分析仪的事后处理。通过这种方法,发现智能卡驱动存在接收不及时造成数据丢失、配置不对造成接收数据出错等问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值