微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 移动支付NFC-SWP方案在SIM卡中的实现方法(三)

移动支付NFC-SWP方案在SIM卡中的实现方法(三)

时间:10-07 来源:互联网 点击:

3 SWP连接方案在SIM卡中的设计

  3.1 系统结构

  大容量SIM卡是一种支持大容量存储、高速传输、具有新型应用的智能卡。我们研发的大容量SIM卡项目基于ARM Secure Core SC100内核,采用 AHB(高性能总线)+APB(高级外设总线)总线结构。AHB总线提供高速的数据传输,它连接SIM卡内部存储器和高速外部接口(USB接口)。APB总线通过桥接器与AHB总线相连,SIM卡的低速接口(SWP接口、ISO7816接口)挂靠在外设总线上。

  3.2 硬件设计

  SWP硬件设计基于SWP标准,即ETSI(欧洲电信标准协会)制订的的TS 102 613。SWP控制器和SWP接口共同组成了SWP方案的硬件设备。SWP控制器负责处理物理层和数据链路层逻辑。图4为硬件实现数据链路层逻辑时SIM卡内部SWP控制器的结构图。

  

  图4 SWP控制器结构图

  3.2.1 接收数据设计

  在SIM卡和NFC芯片通信期间,SWP控制器在激活、挂起、去激活三种状态间切换。交换数据时,处于激活状态。Rx 解码器不停地检测Si信号,并将来自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消息层以及应用层。底层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卡技术的发展。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top