李琳:移动支付芯片的软件架构详解
移动支付网 李琳2015/6/17 9:54:08

  在上节中,以典型PN系列芯片为例,讲解了NFC芯片与周边器件的硬件关系。下图所示是包含NFC芯片的终端内软件架构,图中描述侧重在与支付芯片相关的软件逻辑,而与支付芯片无关的诸多终端内软件和应用不在此部分详述。

  图:支付芯片及所在终端的内部软件逻辑架构

  按软件功能逻辑划分,包含支付芯片的手机终端内软件可分为五层,从底层向上依次是硬件层、内核驱动层、协议栈层、API层、应用层。

  一、硬件层

  此层对应上节中的实际硬件器件,包括NFC Controller(即NFC芯片,也称NFC控制器芯片)、eSE(即嵌入到NFC芯片的安全芯片)、UICC(即SIM卡形态的安全芯片)。其中NFC Controller与eSE通过芯片间专有协议连接,NFC Controller与UICC通过国际标准SWP协议连接。eSE和UICC可以同时存在,也可只存在其中一个芯片。

  此层由芯片硬件提供商提供。

  二、内核驱动

  此层的作用就是讲底层硬件驱动起来,与上层软件进行交互和调动。此层一般是终端操作系统的一部分,比如Android系统内的诸多硬件驱动中一部分。同时也与硬件厂家和型号紧密相关。

  此层需与NFCController、UICC两类芯片特性紧密相关,一般由终端操作系统开发者提供,对于开源的操作系统(如Android)也可由相关芯片提供商协助开发。此层一般是由C语言开发。

  三、协议栈层

  此层是控制NFC芯片、SE芯片正常工作的关键,实现了以下方面工作:第一,上层应用及API调用此层NFC芯片能力、SE芯片能力的控制逻辑;第二,将传输信号按照标准协议逐层打包拆包的过程控制;第三,对上层应用访问底层芯片能力的安全访问控制。

  此层与NFC芯片的非接触NFC控制协议相关,或与SE芯片智能卡安全访问控制和指令相关,一般NFC协议栈由NFC芯片供应商合作提供,SE访问协议栈由COS(智能卡操作系统)供应商合作提供。此层一般是由C语言开发。

  四、API层

  此层为上层应用提供可调用的各类API接口,是终端操作系统的一般类实现层。具体的API定义由操作系统开发联盟制定并开发,同时一些标准组织也定义API以便实现行业通用,比如GlobalPlatform标准组织定义SE访问API,3GPP标准组织定义SIM和USIM的API,NFC Forum标准组织定义终端应用的NFC API。

  对于开源性较强的操作系统如Android,开发者更希望按照行业标准的API来实现;对于封闭性更强的操作系统如iOS或windows,苹果公司和微软公司更愿意根据自己操作系统特点自己定义相关API,而不是按照行业标准。

  此层一般由操作系统供应商开发提供,一般是由部分Java语言(API部分)和部分C语言(API逻辑实现部分)开发合成。

  五、应用层

  应用层是各类实际的支付应用或NFC应用,面向个人开发者、行业应用开发商,可基于底层提供的API开发各类符合自身需求的应用。此层是应用层面的开发语言,一般是Java、Htmls、Perl脚本等。

  现实中移动支付的各类应用,比如手机银行卡、公交卡、门禁卡等都是在应用层。应用实现的好坏、应用的广泛,底下几层的API的多样、协议栈的稳定、硬件和驱动的性能是基础。此外,还有外部应用环境、应用体验、开发难易等有紧密关系,也是变化最快的一层。

  本文作者李琳:从事移动通信、增值业务、IC领域工作十七年,先后就职于法国斯伦贝谢、Gemalto、中国移动研究院、中国移动总部等,在移动支付、智能卡、安全芯片、业务运营IT系统、移动互联网、无线通信等领域具有深厚的技术研发、项目管理、产品拓展、运营经验。

  推荐微信公众号,NFC日报:nfcdaily 移动支付网:mpaypass


展开全文
相关阅读
资讯查询取消