近距离通信的SWP方案及在SIM卡中的实现方法
将来自NFC芯片的单位数据解析为字节输出。Frame. resolve分析接收到的每一字节的数据,若为7E(帧头),则继续接收数据,直到接收到7F(帧尾),表明SWPC接收到一帧完整的数据。Frame. resolve进一步解析接收到的数据帧,首先根据MAC协议剥离帧头和帧尾,然后根据接收方的生成多项式对数据帧进行校验。如果数据正确,则识别出SHDLC数据帧的类型并作相应处理;如果数据错误,则发送拒收帧,要求对方重新发送。对于正确的信息帧,SWP控制器提取信息帧的信息数据(包)写入RX FIFO,并根据接收到的数据帧的字节个数设置控制器的状态寄存器。SWP控制器每接收一帧数据就发起一个硬件中断。
3.2.2 发送数据设计
SWP控制器发送数据和接收数据是相反的过程。如果上层应用有数据要发送时,会把数据写入TX FIFO。TX FIFO一旦检测到FIFO有数据,就启动发送模块把数据从TX FIFO中取出,经Frame. assemble按照SWP协议的SHDLC协议组装信息帧,添加帧头、帧尾、校验码。把生成的MAC帧数据交给Tx编码器,完成输出数据的物理层组装,将数据转换成单个位电平输出。
3.3 软件驱动设计
SWP软件设计基于SWP标准和HCP(主机控制协议)标准。HCP标准是SWP协议之上的标准协议,定义了数据链路层之上的协议层——HCP路由层、 HCP消息层以及应用层[5]。底层SWP协议和上层HCP协议组成的协议栈共同完成NFC芯片与UICC通信的完整协议。
在大容量SIM卡中采用SWP方案,要实现ISO7816协议栈和SWP协议栈。SIM卡的操作系统使用μC/OS。μC/OS是一种结构小巧、抢占式的实时操作系统。其内核提供任务调度和管理、时间管理、任务同步和通信、内存管理和中断服务等功能。在软件系统中,SWP软件模块是μC/OS的任务之一。
SWP任务依靠硬件中断驱动,SWP任务没有被激活前,一直处于等待中断的状态。通过SWP接口通信时,一旦检测到存在射频场,NFC芯片便被激活。 NFC芯片发送Si信号给SIM卡,SIM卡检测到Si电压信号后,触发si_act中断通知软件做好准备通信。此时,软件设置通信参数,然后等待硬件建立物理链路成功的中断。如果接收到init_sync中断,软件开始设置SHDLC协议的滑动窗口大小M,等待建立SHDLC链路的中断。这个中断带有 NFC芯片SHDLC层的滑动窗口的参数N。若M≥N,则SWP任务修改自己的滑动窗口大小为N,然后发送确认帧,这样便建立了SHDLC链路;若 M<N,SWP任务发送带有自己窗口参数的RESET帧给NFC芯片,继续协商滑动窗口大小。
SHDLC链路建立成功后,SWP任务等待信息帧中断。接收到信息帧中断,根据硬件写入的状态寄存器的接收字节数从RX FIFO中读取数据,然后由软件解析收到的数据包;通过HCP的路由层把数据包递交给应用层,应用层根据消息的类型进行相应的处理。
结语
本文提出一种SWP连接方案,并在大容量SIM卡中加以实现。SWP接口的硬件和软件设计方法,对于近距离通信技术应用于其他移动支付具有一定借鉴意义;同时,在SIM卡中实现SWP接口,也促进了SIM卡技术的发展。
- 无线通信领域中的模拟技术发展趋势(蜂窝基站)(09-22)
- 无线升级到802.11n 应考虑的因素有哪些?(10-30)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 超宽带无线通信技术的发展(08-04)
- 无线通信网络设计与现场测试(10-10)
- TM-UWB技术及其在无线通信中的应用(05-23)