4

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

现在我正在使用 GPSShell + globalplatform + pcsclite 来操作支持 NFC 的卡。从我的角度来看(我对 libnfc 了解不多),pcsclite 和 libnfc 也是如此。

4

1 回答 1

10

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 只是有不同的目的,比较它们就像比较苹果和橘子。

于 2014-04-23T19:08:00.073 回答