2015年在研究近场支付的时候,apple pay还未出来,招商银行的nfc支付也没有出来,应该算得上吃鲜肉吧!!!哈哈!!!至于apple pay在之后的文章中发布出来。敬请期待(最近忙完了该忙完了,抽出了一点空闲的时间将之前的研究分享给大家。)。
当时遇到了非常多的问题,涉及到了与硬件的通信,需要用到十六进制数据,以及二进制的数据进行转换,转换成硬件可以理解的数据。当整个流程理清的时候,你会觉得非常的简单,因为一条直线走到底。但是之前研究的时候却是不知道如何通信,通信协议又是怎么样的,如何驱动nfc模块-===等等。。一头雾水,最后摸索成功。
容我上面发一下牢骚,下面开始内容部分。
转载请附上本博客连接http://www.junwen1992.com//admin-index.do#article/article-list
在hce技术用到的是NFC近场通信,以下为NFC近场通信的技术原理。具体细节请参考:ISO 7816-4。
手机贴近card Reader(小米平板+NFC读卡模块,这里我采用了android系统的小米平板,以及nfc读卡模块,nfc读卡模块是在淘宝选购的,然后提供开发包进行二次开发,这样,修改和封装一下发送的指令就可以连接平板了),发生了NFC之间的通信。其过程如下
关于手机部分的解释:手机接收到指令成功返回9000这里是需要android操作系统来管理的。android系统必须是4.4以上的操作系统。至于其原理,上android developer就可以看到。
我简单的说一下:app程序在需要向android系统注册一个id。然后手机遇到nfc读卡器发出的指令后,系统获得指令,得到读卡器发过来的id,然后去调用以这个id注册的应用程序。完成唤醒。
这就意味着,你只要屏幕亮着,那么就可以唤醒应用。
转载请附上本博客连接http://www.junwen1992.com//admin-index.do#article/article-list
APDU指令集解释:
如上表所示:
00A4040005F222222222分别对应的是:
CLA : 00
INS : A4 选择文件
P1 : 04
p2 : 00
Lc : 05 发送数据的长度
Data : F222222222 发送的数据
LE : 无数据
下图为 INS指令的含义
1. 这是一条选择指令,选择了一个应用,这个应用之前向系统注册了一个相同的id,这样就可以找到这个应用了。相信之前研究过ic卡的同学就知道。要读一张卡首先也是需要发送一个选择指令吧。
2.然后手机就会返回了一个9000的成功状态码,如果返回其他的,应该是错误状态码吧,具体看ISO 7816-4文档吧。
3.选择了这个应用程序后就可以建立连接了,发送数据了。这个数据会是16进制的。
转载请附上本博客连接http://www.junwen1992.com//admin-index.do#article/article-list
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于