资源简介
文档+代码,读取身份证UID方法和技术指导,熟悉NFC协议的专业人士可以下载,小白就不要凑热闹了。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “posapi.h“
#include “iso14443.h“
#include “hexdump.h“
int main(int argc char **argv)
{
int fd;
int retval;
uint8_t atqb_len;
uint8_t atqb[64];
uint8_t attrib_len;
uint8_t attrib[64];
uint8_t cid = 0x08; // CID
uint8_t fsdi = 0x08; // 256 buffer
uint8_t BRit = 0x00; // Baud rate 106kbps
uint8_t BRti = 0x00; // Baud rate 106kbps
const uint8_t readfile[] = {0x80 0xB0 0x00 0x00 0x20};
const uint8_t uidcmd[] = {0x00 0x36 0x00 0x00 0x08};
uint8_t txbuf[256] = {0x00 0xA4 0x00 0x00 0x02 0x60 0x02};
uint8_t rxbuf[256];
uint32_t txlen;
uint32_t rxlen;
uint32_t timeout = 5000;
printf(“Identification Card Test\n“);
/* OPEN */
printf(“Open: processing...\n“);
fd = mif_open(“/dev/nfc“);
if (fd < 0) {
printf(“Open: failed erron:%d %s\n“ errno strerror(errno));
goto exit_entry;
}
/* RESET */
iso14443_reset_picc(fd);
usleep(6*1000);
retval = mif_select_carrier_type(fd MIF_TYPE_B);
if(retval<0) {
printf(“mif_select_carrier_type ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
retval = iso14443_WupB(fd0x000x00 &atqb_len atqb);
if (retval) {
printf(“iso14443_WupB ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
printf(“ATQB:\n“);
hexdump(atqb atqb_len);
retval = iso14443_AttriB(fd cid fsdi &atqb[1] (BRit<<4) | BRti &attrib_len attrib);
if (retval) {
printf(“iso14443_AttriB ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
printf(“ATTRIB:\n“);
hexdump(attrib attrib_len);
/* APDU */
txlen = sizeof(uidcmd);
retval = iso14443_no_tcl_exchange(fd txlen uidcmd &rxlen rxbuf timeout);
if (retval) {
printf(“iso14443_no_tcl_exchange send uid cmd ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
printf(“txbuf:\n“);
hexdump(uidcmd txlen);
printf(“rxbuf:\n“);
hexdump(rxbuf rxlen);
txlen = 0x07;
retval = iso14443_no_tcl_exchange(fd txlen txbuf &rxlen rxbuf timeout);
if (retval) {
printf(“iso14443_no_tcl_exchange ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
printf(“txbuf:\n“);
hexdump(txbuf txlen);
printf(“rxbuf:\n“);
hexdump(rxbuf rxlen);
txlen = sizeof(readfile);
retval = iso14443_no_tcl_exchange(fd txlen readfile &rxlen rxbuf timeout);
if (retval) {
printf(“iso14443_no_tcl_exchange send uid cmd ret:%d errno:%d\n“ retval errno);
goto close_exit_entry;
}
printf(“txbuf:\n“);
hexdump(readfile txlen);
printf(“rxbuf:\n“);
hexdump(rxbuf rxlen);
close_exit_entry:
/* CLOSE */
close(fd);
exit_entry:
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2999 2017-05-06 10:05 code\main.c
文件 3634 2017-05-06 10:02 log.txt
文件 2864987 2017-05-06 10:01 第二代居民身份证管理号和序列号的读取设备及方法.pdf
文件 66720 2017-05-05 09:20 读取指令.png
目录 0 2017-05-06 10:06 code
----------- --------- ---------- ----- ----
2938340 5
- 上一篇:opencv视觉测距
- 下一篇:工作台设计内含装配,电路,零件,计算程序,说明书
相关资源
- NRF24L01实现51与STM32双向通讯
- 采用NFC技术的无线遥控器系统电路设
- 基于NXP的NFC电子钱包技术设计
- 无电池近场通信 NFC 键盘设计方案
- 基于NFC技术控制的电子钱包电路设计
- 无电池近场通信 (NFC) 键盘设计方案
- 基于NFC无电池键盘设计方案
- 基于NFC的电子钱包电路设计
- NFC芯片是什么 有何作用?
- 二代证读验机具usb驱动 v3.0 官方版
- 基于Zigbee技术的家用无线网络平台设
- ISO 15693 英文版
- 一种利用NFC手机读取ISO15693标签的设计
- 身份证信息管理系统
- 身份证识别,可以识别姓名等
- 精伦电子开发包最新开发包带网页插
- 身份证离线识别(正面) 限 windows系
- 新中新身份证读卡器应用
- 二代身份证读卡器API接口
- 百度OCR-身份证图片识别源码-更新
- 基于RFID的门禁系统设计.pdf
- 身份证阅读器网页控件
- 身份证归属地对照表(2019年版).xl
- 身份证归属地数据库.xlsx
- QT+opencv+OCR 身份证号码,银行卡号识别
- Linux shell编程 验证身份证号码15/18
- 基于Qt和opencv的身份证号码识别系统
- 医院驾驶证体检使用普通身份证读卡
- 基于神经网络的身份证号码识别算法
- 精伦 idr210 基于BS模式的 ocx控件和接口
评论
共有 条评论