作者:稚晖 peng-zhihui
项目地址:L-ink_Card
这是为了解决个人使用IC卡时遇到的一些痛点设计的一个迷你NFC智能卡片,基于STM32L051和ST25DV。
想着既然要自制这玩意那就往炫酷了做,于是很自觉地把电子墨水屏也加上了,顺手也写了个配套APP用于显示内容定制。
总之是个比较有意思的小项目,方案不算复杂,第一版设计也存在一些值得改进的地方,后续有空会继续优化方案设计的。
STM32因为使用了L0系列的MCU,所以如果你是第一次在你的电脑上开发STM32L0,那么需要先装一下L0的固件支持包,有两种方式:
然后就不会报头文件的错误了。
有几点注意的:
硬件方案比较简单,主要IC就两个--STM32和ST25DV,电子墨水屏是200x200的单色屏幕,我是买的微雪的(注意如果是买的几年前的库存,那驱动芯片会有点区别导致代码不通用,只要是新款的应该都没问题)。
ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为 ST25DV只支持ISO 15693的RFID协议,而我们常用的IC卡(M1卡)是ISO 14443协议的 ,所以并不能直接使用这颗芯片进行IC卡模拟。
IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用NFC天线,卡片的切换是通过拨轮换挡实现的。好处在于,你可以把L-ink当作多张独立卡片的合集处理,复制和刷卡都是很直接的(使用PM3或者PN532等模块读取原卡信息并写入L-link)。当然缺点就是添加的卡片一多,按键的数量就要增加(因为每一档对应一张卡)。
所以我也在改进方案,后面可能会使用支持ISO 14443协议的ST95或者ST25T系列的芯片来实现软件层面的IC卡模拟功能。
另外下一个版本的硬件方案 我会把黑白的电子墨水屏换成彩色的 。
Android APP目前只是实现了功能,这是基于我以前做的一个算法验证框架APP改的,UI还没有重新做设计,可以等后续更新。
工程文件的话我后面可以把其中的核心功能模块封装成Module,然后给个Sample Project供参考使用,工作太忙等我缓过这阵子先~
更多回帖