pcsc-lite和libnfc之间的区别

时间:2014-04-23 09:00:15

标签: nfc smartcard-reader pcsc globalplatform lib-nfc

有人可以解释两者之间的差异/关系吗?

现在我使用GPShell + globalplatform + pcsclite也操纵了支持NFC的卡。从我的角度来看(我对libnfc了解不多)pcsclite和libnfc都是这样做的。

1 个答案:

答案 0 :(得分:9)

pcsclite(或者更确切地说是PC / SC而不仅仅是pcsclite实现)

PC / SC是个人计算机平台的智能卡API(最初主要是移动计算机,但也包括服务器等,甚至智能手机和其他嵌入式系统)。因此,PC / SC是一种标准,可以在任意智能卡读卡器和来自不同制造商的任意PC平台之间提供互操作性。 pcsclite是这个互操作性层的实现(从开发人员的角度来看,基本上提供了一个标准化的API,它依赖于智能卡和读取器平台以及目标操作系统)。 PC / SC来自非接触式智能卡之前的时代,并且已经扩展到非接触式智能卡和非接触式存储卡。

<强> libnfc

libnfc是用于NFC控制器芯片的库,并提供访问NFC接口的标准化方式。虽然这也允许访问非接触式智能卡和存储卡/ NFC标签,但NFC控制器具有更多功能(点对点模式通信和(主机)卡仿真)。 libnfc涵盖了这些功能(顺便说一句,没有真正的标准*定义libnfc 后面的软件堆栈的接口和层,与PC / SC一样)。

*)这已经开始随NFC论坛的NCI规范而改变(至少在较低级别)。

总而言之,pcsclite用于访问智能卡读卡器(也可以是非接触式智能卡读卡器),而libnfc用于访问NFC接口(与智能卡读卡器不同,尽管它们有时可用于阅读目的)非接触式智能卡)。所以,libnfc和pcsclite只是有不同的目的,比较它们就像比较苹果和橘子一样。