Ink笔记_ink correction

Ink笔记_ink correction最近想要复刻一下稚晖君的小卡片,因此来学习一下。1.ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为ST25DV只支持ISO15693的RFID协议,而我们常用的IC卡(M1卡)是ISO14443协议的,所以并不能直接使用这颗芯片进行IC卡模拟。2.IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用N

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

最近想要复刻一下稚晖君的小卡片,因此来学习一下。

一、一些开始着手时的模糊的问题解决

1.ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为ST25DV只支持ISO 15693的RFID协议,而我们常用的IC卡(M1卡)是ISO 14443协议的,所以并不能直接使用这颗芯片进行IC卡模拟。

2.IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用NFC天线,卡片的切换是通过拨轮换挡实现的。好处在于,你可以把L-ink当作多张独立卡片的合集处理,复制和刷卡都是很直接的(使用PM3或者PN532等模块读取原卡信息并写入L-link)。当然缺点就是添加的卡片一多,按键的数量就要增加(因为每一档对应一张卡)。

用一张图来说清楚NFC与RFID的区别 – NFC之家

所以,用到的PN532不需要编程开发

二、通信协议

1.硬件SPI与模拟SPI

硬件SPI因为有专用的寄存器支持,所以很少占用CPU资源,但是并不是每一款处理器都能提供SPI,而且有时候即使有SPI硬件接口,可能因为数量不够或者管脚被占用,导致硬件SPI不能使用,这时候就可以使用GPIO模拟SPI通讯,这样的好处是可以使用任意GPIO管脚实现SPI通讯,并且代码通用性很强,可以在不同处理器甚至不同架构之间移植,比较方便。

2.SPI与IIC通信协议

SPI与IIC通信协议_NaCl鱼呜啦啦的博客-CSDN博客

IIC:ST25DV

SPI:墨水屏

3.SPI通信时序

d0a612814d65870f95526441af1ae8d7.png

由于墨水屏只需要显示,这里将从机发,主机收的数据线(MISO)隐藏。
CS:从机片选,当CS为低电平的时候,芯片使能
DC:数据/命令控制引脚,当DC=0时写入命令;DC=1时写入数据
SCLK: SPI通信时钟
SDIN:SPI通信主机发送,从机接收
时序:CPHL=0, CPOL=0 (SPI0)

时钟极性(CPOL)定义了时钟空闲状态电平:CPOL=0为时钟空闲时为低电平

时钟相位(CPHA)定义数据的采集时间:CPHA=0:在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样。

三、墨水屏

1.工作原理

        微胶囊电泳显示”技术:其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移。电子纸显示屏是靠反射环境光来显示图案的,不需要背光,在环境光下,电子纸显示屏清晰可视,可视角度几乎达到了 180°。

2.注意事项

  1. 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复!
  2. 使用墨水屏的时候,建议刷新时间间隔至少是180s, 并且至少每24 小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。(具体储存环境需求参考数据手册)

四、产品选型

1.NFC通信芯片–st25dv

支持能量采集功能,将卡片获得的能量同时传输出来供一部分给MCU使用;MCU用来驱动刷新墨水屏。

2.主控芯片MCU的选择

超低功耗L051

五、ST25DV的NFC协议——ISO15693

1.ISO15693与ISO14443A/B

①通信距离的不同:

ISO15693协议的理论读写距离≤1m,ISO14443A/B协议的理论读写距≤10cm

读写远距离换来的就是私密性的丧失和通信速率的降低。

2.NFC学习笔记

        近场通信(Near-field communication,简称NFC)技术可以提供短距离无线连接,实现电子设备间的双向交互通信。NFC技术由RFID(非接触式射频识别)演变而来,但NFC有特定的标准集,确保具有NFC功能的设备的互操作性。

        NFC采用电磁耦合感应技术,电磁场频率是13.56MHz,该载波频段是全球无需许可证的波段。发起设备用13.56MHz信号激励天线,产生磁场。通过近场耦合,将能量传递给目标。目标对磁场进行调制,将数据返回给发起设备完成通信。

NFC学习笔记_NaCl鱼呜啦啦的博客-CSDN博客

NFC有三种工作模式,该项目应该使用的是读卡器模式

3.NFC标签

将 NFC 标签与 Android 设备结合使用时,用于读取和写入标签数据的主要格式是 NDEF。当设备扫描具有 NDEF 数据的标签时,Android 会尽可能在解析消息和通过 NdefMessage 传递该消息方面提供支持。不过,在某些情况下,您扫描的标签可能不包含 NDEF 数据,或者 NDEF 数据无法映射为 MIME 类型或 URI。在这些情况下,您需要直接开启与标签的通信,并使用自己的协议(以原始字节形式)对标签执行读写操作。Android 通过 android.nfc.tech 软件包对这些用例提供一般性支持,如表 1 所述。您可以使用 getTechList() 方法确定标签支持的技术,还可以使用 android.nfc.tech 提供的一个类来创建相应的 TagTechnology 对象。

Ink笔记_ink correction

六、卡片的复制

1.cuid和uid卡有什么区别

CUID卡不响应后门指令。UID卡响应后门指令。

后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。

相应后门指令的UID卡是可以格式化的,在练习读写卡的时候,最好使用UID卡,这样便于在将数据写坏后重置。

2.IC卡

Ink笔记_ink correction

UID与CUID的区别:

UID具有“后门”,CUID则没有“后门”。具有“后门”则可以绕过正常的权限,对数据进行激活成功教程、格式化等。

每张IC卡都有16个扇区,包括1个公共区和15个数据区。每个扇区有4个块,每个块占16字节。

每个扇区的块0,块1,块2可以用来存储数据(扇区0的块0除外)。

第0扇区的块0为厂商代码,已经固化。包括芯片序列号UID,ATQA和SAK。

每个扇区的块3为控制块,用来存放密码和控制权限 ,不能用来存储数据。

块3的前6个字节为KeyA,后6个字节为KeyB。中间的4个字节为存储控制。

每个扇区可以通过它包含的密钥A或者密钥B单独加密。

Ink笔记_ink correction

七、图像处理

1.灰度处理

        在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分量的取值范围均为0~255。

灰度图像是RGB三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。 

        图像的灰度化处理可用两种方法来实现。

        第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。

        第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+ 0.59G +0.11B,以这个亮度值表达图像的灰度值。

2.二值化

        二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。在灰度化的图像中灰度值的范围为0~255,在二值化后的图像中的灰度值范围是0或者255。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/226859.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python3、sqlmap下载与安装教程

    一、前提需要安装python3,可以参考其他教程二、下载官网下载http://sqlmap.org/三、安装将下载的sqlmap.zip解压到文件夹sqlmap中,并拷贝到Python安装路径下四、配置在桌面上创建一个cmd进入python的快捷方式(这步可以不做,只是比较方便启动),右键新建快捷方式输入cmd快捷方式命名可随意,不作要求,这里用sqlmap右键–属性修改起始位置为sqlmap文件夹路径测试启动sqlmap,双击刚才创建的快捷方式,

  • OC中语法糖,最新语法总结

    OC中语法糖,最新语法总结

  • dubbo 异步调用

    dubbo 异步调用dubbo异步调用使用总结

  • MySQL之Field ’email’ doesn’t have a default value问题

    MySQL之Field ’email’ doesn’t have a default value问题

    2021年10月20日
  • Kali Linux 安装过程 超详细(图文并茂,通用版)

    Kali Linux 安装过程 超详细(图文并茂,通用版)从Kali2020.1版本新功能说起,在大致读过版本发布说明后,再进行安装,就不会有太大问题,不会频繁出错。然后给出了多种镜像下载途径,包括历史所有版本的镜像,供读者自行选择下载。最后开始正式安装,内容也是十分详细,图文并茂。在文章最后,介绍了默认安装的情况下,如果获取large版本,获取更多工具。最后介绍如何更新Kali,可升级至Kali2020.2版本。

  • acwing-395. 冗余路径(Tarjan双连通分量)

    acwing-395. 冗余路径(Tarjan双连通分量)为了从 F 个草场中的一个走到另一个,奶牛们有时不得不路过一些她们讨厌的可怕的树。奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分离的路径,这样她们就有多一些选择。每对草场之间已经有至少一条路径。给出所有 R 条双向路的描述,每条路连接了两个不同的草场,请计算最少的新建道路的数量,路径由若干道路首尾相连而成。两条路径相互分离,是指两条路径没有一条重合的道路。但是,两条分离的路径上可以有一些相同的草场。对于同一对草场之间,可能已经有两条不同的道路,你也可以

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号