非接触式CPU卡的空中传输协议的软硬件设计
if((APDU_Data[0]&PCB_BlkNo_Mask)==Blk_Info.PCB_BlkNo)
{Blk_Info.PCB_BlkNo ^= PCB_BlkNo_Mask;} //反转块号
else { return; } //块号不对!
switch(APDU_Data[0]&PCB_Type_Mask)
{
case 0x00: //收到I块
{
if(!(APDU_Data[0]&I_PCB_Link_Mask))
{ }//PICC发送的最后一块数据,后续无链接
else
{ }//PICC分段发送响应数据,后续有链接。PCD需要发送R-块确认
break;
}
case 0x80: //收到R块
{
//说明PCD分段发送请求数据,需通过链接位。
break;
}
case 0xC0: //收到S块
{
if((APDU_Data[0]&0x30)==0x30) //PICC请求等待时间扩展
{
//以后的等待超时时间(Timeout)需要随之改变!
}
break;
}
default:
{ break; }
}
}
4 测试
我们选取复旦微电子的非接触式CPU卡做测试。点击"寻找卡片",依次执行图3中的寻卡,防冲 突,选卡等三个步骤,获得卡片序列号和卡片类型;点击"RATS",发送选择应答请求来激活CPU模式,PICC返回ATS响应 "107880B0022090000000000026BAB4A2",具体含义如表1所示;发送表2所示的取随机数指令,PICC返回表3所示的四字 节随机数;发送表4所示的选择MF主文件命令,PICC返回表5所示的嵌套TLV格式的文件控制信息(FCI)。测试效果图如图9所示。
图9 上位机测试效果图
结语
本 文硬件电路采用ARM内核的32位微处理器芯片STM32F103RBT6和NXP公司的RC632来完成,软件开发则从物理层和协议层两个层面对PCD 和PICC之间的无线射频通信进行设计实现。经实际测试证明,该读写设备工作稳定,抗干扰能力强,读卡准确且操作距离大于5cm。由此可见,对空中传输协 议进行了较好的实现。另外,还可以进行扩展改进,如增加GPRS模块再结合相关的非接触式IC卡支付规范,便可实现方便快捷的移动支付。
RC632 射频 ISO14443 MCU 无线 相关文章:
- 基于CL RC632的射频读写器的RFID系统设计(04-25)
- 一款专用射频读卡器的软件系统的设计及实现(04-01)
- WLAN 需要规划 掌握射频通信知识(01-03)
- 关于UART通信端口上射频干扰的研究(02-09)
- 基于WiMAX技术的5.8G无线专网射频系统设计(10-06)
- XRRU数字射频拉远设备助力无线网络建设(08-01)