使用 PN532 读取中华人民共和国护照
本来是打算读身份证的,但发现身份证的读取是专有且受限的。护照有国际统一的标准,所以我对护照下手。
准备工作
护照(或者准确地说,电子护照:E-passport)中的芯片与常见的 M1 卡(一般门禁卡)不同。读取这样的卡片(即智能卡:Smartcard)一般通过 PCSC/CCID 协议与读卡器通讯,并且主要使用「智能卡应用协议数据单元」(ADPU)与智能卡进行通讯。
PN532 读卡器模块很便宜,但是要使用 PN532 必须通过 I2C/SPI/UART(HSU) 发送其用户手册规定的命令。市售的 PN532 模块一般工作在 HSU (High Speed UART) 模式下,并通过上面的 ch341 芯片转成 USB 接口。
所以,我们让 PN532 可以通过 PCSC 协议通讯。这里,需要用到 ifdnfc
程序。主流发行版已经打包 PCSC 库,但不幸的是,没有 ifdnfc
,需要自行编译。