驯服iButton键与Flipper Zero188金宝搏亚洲体育app下载

驯服iButton键与Flipper Zero188金宝搏亚洲体育app下载

iButton是装在硬币形状的金属容器里的电子识别钥匙的总称。它也被称为达拉斯触摸记忆或接触记忆。尽管它经常被错误地称为“磁性”钥匙,但它里面并没有磁性。事实上,里面隐藏着一个基于数字协议操作的成熟微芯片。

在本文中,我们研究了iButton密钥的配置,从物理到协议,以及在FlipperZero的帮助下可以对其执行的技巧。188金宝搏亚洲体育app下载

iButton是什么?

iButton按键:外壳中心的DATA+触点被塑料绝缘包围,外层为GND触点

通常,iButton暗示钥匙和读卡器的物理形式——一个有两个触点的圆形硬币。对于它周围的框架,有很多变化,从最常见的带孔塑料支架到环、吊坠等。

iButton的内部结构:金属外壳内的微芯片

读者

当钥匙到达阅读器时,联系人就会开始接触,钥匙就会被激活以传送其ID。有时不能立即读取键,因为对讲机的接触PSD比它应该的大。因此,钥匙的外部轮廓和读者无法触摸。如果是这种情况,你就必须在阅读器的墙上按下按键。

iButton按键触点触摸对讲机读卡器

iButton硬币的形状不仅用于带有ID的普通密钥,还用于气候传感器、内置电池、时钟和其他酷东西的加密密钥存储设备。尽管外观与普通按键相同,但这些设备可以是完全不同的。

iButton如何在Flipper Zer188金宝搏亚洲体育app下载o中工作

为Flipper Zero开发iButton垫是一次痛188金宝搏亚洲体育app下载苦的经历。主要问题是市场上没有用于同时读取和模拟的PAD。如果我们使用任何一种现有的解决方案,一个巨大的金属按钮就会从脚蹼上伸出,旁边还有一个同样巨大的阅读区域。这将极大地增加设备的尺寸。

因此,我们不得不从头开始发明我们自己的垫设计,这样就可以在PCB上实现,而不增加Flipper的尺寸。最后,我们决定使用3个弹簧弹簧弹簧夹。188金宝搏欢迎你大约20种不同的设计被测试,直到找到正确的。

iButton pad在Flipper Zero的原型,这是我们在188金宝搏亚洲体育app下载开发期间3D打印的

设计接触垫的最大困难是模拟:当鳍片本身作为一个关键,必须应用于对讲机。每个制造商都有自己的读卡器形式,所以总是有与设计不兼容的对讲机:引脚根本不能到达中心Data +接触或侧面GND接触。

键盘的左侧用于读取和复制按键,右侧用于模拟。两种模式的中心接地引脚都是通用的

最终的iButton键盘设计成功读取了100%的按键。大约80%的读者成功地使用了仿真。在剩下的20%的读卡器中,需要一些时间才能正确地联系到读卡器联系人。在这些罕见的情况下,您可以使用外部GPIO引脚,iButton引脚就是从中引出的:连接试验板导线并将其插入读卡器。

读模式

在读取模式下,Flipper正在等待iButton键的触摸,并且能够消化三种键中的任意一种:Dallas、Cyfral和Metakom。Flipper将自行确定键的类型。密钥协议的名称将显示在ID号上方的屏幕上。

读取并保存达拉斯密钥到sd卡

要读取该键,请转到iButton -> read菜单并将其带到接触板。现在可以立即模拟密钥,复制到内存,或保存到SD卡。尽管触控板位于屏幕的另一侧,但您可以迅速掌握阅读按键的窍门,而无需转动Flipper。

iButton读取模式使用右边的两个Flipper Zero引脚188金宝搏亚洲体育app下载

iButton仿真模式

在模拟模式中,Flipper本身充当键,并从内存中模拟iButton。可以通过两种方式在Flipper Zero中添加仿真ID:188金宝搏亚洲体育app下载

  • 读取现有钥匙-将钥匙ID保存到SD卡,以便随时选择所需钥匙。
  • 手动输入钥匙的ID -即使你没有带钥匙,只要它的ID是已知的,你也可以手动输入。例如,你可以拍下钥匙ID的照片,将其发送给拥有Flipper的朋友,而无需麻烦发送物理钥匙本身。

要启动仿真,请转到iButton -> Saved菜单,选择所需的键并运行仿真。带有键ID的铭文将出现在屏幕上。之后,你可以把Flipper带给读者。重要的是要记住,这种模式使用不同的引脚在Flipper的垫。

在仿真模式下,Flipper传输特定ID并仅仿真一个预定义的密钥协议,因此它只能用于知道该密钥的对讲机。在这种模式下,不可能一次迭代多个键,因为不可能确定对讲机是否读取了我们的键,也不可能知道对讲机在读取错误之间的延迟。因此,对于家庭、办公室、夏季住宅、地下室,您每次都需要从菜单中选择相应的键。

在iButton钥匙模拟模式下,翻转器必须像钥匙一样带到对讲机上。在这种情况下,您需要确保两个触点都接触到读卡器的接触垫。

iButton通过外部GPIO


背面的iButton触点在GPIO嵌套中有另一条路由。当连接到非标准的读取器、键、任何在1-Wire协议上操作的设备(如传感器)时,这是很有用的。我们用这些引脚通过示波器分析信号。同时,这个引脚并不完全是简单的GPIO。它有一个5V的上拉。

iButton引脚连接到GPIO嵌套。iButton端口在开漏模式下工作,通过一个1kohm电阻向上拉至5V

单线协议

单线协议总是有一个主设备和一个从设备。

Dallas密钥使用单线协议交换数据。只有一个触点用于从主设备到从设备的双向数据传输(!!),反之亦然。单线协议根据主从模式工作。在这种拓扑结构中,主设备总是启动通信,而从设备则遵循其指令。

当钥匙(从)与对讲机(主)接触时,钥匙内部的芯片打开,由对讲机供电,并初始化钥匙。之后,对讲机请求密钥ID。接下来,我们将更详细地查看这个过程。

Flipper可以在主模式和从模式下工作。在关键阅读模式中,Flipper作为一个读者,也就是说它作为一个大师。在密钥仿真模式下,flipper假装是密钥,处于从属模式。

当读取钥匙时,Flipper充当主控器,当使用对讲机进行模拟时,它充当从控器

达拉斯关键数据格式

对讲机从iButton接收8字节(64位)的信息来决定是否开门。

这8个字节的数据结构如下:

  • 1字节-系列代码,对于iButton,它始终为0x01
  • 6字节-密钥的序列号
  • 1字节CRC校验和

达拉斯钥匙的族代码始终为0x01。如果您的密码不同,则很可能不是对讲机的钥匙。

在某些情况下,序列号刻在钥匙上,但它可以:

  • 不包含所有的8个字节
  • 具有所需的向后写入顺序
  • 没有明确的起点
最初的iButton键有一个标识,但它的格式与Flipper的表示略有不同:首先是家庭代码,然后是倒置的序列号,然后是校验和

上面的图片包含一个不明显的例子,在原始的iButton钥匙上雕刻一个ID。在这种情况下,您需要从右向左读取字节,校验和写在左边,族代码放在右边。

读取错误

如果键读错误,Flipper Zero报告错误。188金宝搏亚洲体育app下载可能的错误是:

  • 无效的校验和- CRC错误
  • 错误的家庭代码-如果家庭代码与0x01不同,Flipper发誓它不是一个iButton键。
可能的错误读取达拉斯键:错误的CRC字节- CRC错误;Family-code字节不等于0x01 -这不是一个键

手工输入身份证

已知密钥ID后,可以手动将其输入Flipper。当物理钥匙不在你身边时,这很方便。例如,您可以简单地在消息中发送必要的字节或与朋友分享一张照片。下面的视频展示了创建一个新的2字节Cyfral密钥的过程。生成的密钥保存到SD卡中。

通过手动输入ID创建一个新密钥

创建密钥时,需要选择密钥类型:Dallas、Cyfral或Metacom。ID的长度和用于仿真的协议都依赖于此。在输入ID之后,Flipper将提供为新密钥输入名称或使用生成的名称。

写1-Wire Dallas Keys

达拉斯键可以写,也可以不写。流行的可重写iButton空格:RW1990, TM2004, TM01C。录音过程有一些细微差别,所以让我们来分析一下。

写入空键可能需要较高的电压-例如,不是特别流行的RW2000需要电压8v(虽然这是Cyfral,意思是清楚的)。

某些键可能需要完成-完成后,无法再覆盖密钥。使用这种方法,相当多的对讲机试图在读取钥匙之前覆盖钥匙,以避免伪造钥匙。通常,一个电压脉冲和一个特殊命令用于最终确定,对于不同的键可能有所不同。

有些空格可以适合所有类型的键:Dallas/Cyfral/Metakom。Flipper被教导记录最受欢迎的歌曲。

用flippper Zero把达拉斯钥匙烧到RW1990的空白188金宝搏亚洲体育app下载

为了将键ID写入一个“空白”,从iButton -> Saved -> Key_name菜单中选择所需的键,并选择write项目。接下来,在接触垫上按可重写键。写入完成后,Flipper检查记录并显示成功写入ID的消息。188金宝搏欢迎你

地道的俄罗斯钥匙:Cyfral和Metakom

Metakom和Cyfral协议是在俄罗斯开发的,只在前苏联国家广泛传播。与达拉斯钥匙不同的是,它们使用的不是电压,而是电流。这些钥匙不太常见,也更贵。它们对键的参数(频率、电流强度、信号幅度等)非常敏感,复制它们可能是一个棘手的过程。Cyfral和Metakom不接受任何命令。当对密钥施加能量时,由于电阻的变化,它立即开始无休止地发送ID。因此,逻辑电平是由开关的电阻决定的。根据他们的文档,传统上假定代码的信息字是从最低有效位开始给出的。

西弗拉尔

在Cyfral和Dallas中,逻辑级别都有时间限制:如果阻力保持在50µs左右,这是逻辑上的“0”,100µs代表逻辑上的“1”。188金宝搏欢迎你

传输的数据格式非常具体。

Cyfral循环发送9个半字节(1个半字节=4位):1个用于开始,8个用于ID。半字节总共可以有4个ID值和一个用于开始字的值。所有其他可能的输入都无效。

一点一点地咬 价值
1110 0
1101 1
1011 2
0111 3.
0001 开始的话

因此,ID为2字节(共8个nibbles ID)。4个小咬= 16个状态= 1个字节的信息)。

在检查钥匙时,Cyfral对讲机可能会提交不正确的数据。Cyfral没有校验和。如果要确保ID的完整性,请再次读取密钥,并根据需要多次读取。由于信号是模拟信号,因此需要读取ADC或比较器。这里最简单的解决方案是使用一个比较器,该比较器输出低电压或高电压。

在实践中,密钥仿真不会出现问题。对地短路(缺乏足够的电阻)足以使密钥给出逻辑“0”。

Metakom

Metakom密钥发送4个字节。每个字节以奇偶校验位结束。Metakom有3个迁移原语:

  • 同步位
  • 第0位
  • 第1位

包裹的结构是这样的:

  • 同步位
  • 4个字节的信息,其中每个字节包含:
  • 1校验位
  • 7个数据位

99%的情况下,这些对讲机都可以用一个简单的谷歌通用钥匙打开。

通过示波器的1线

示波器在读取达拉斯键时捕获信号

传输线的安排是根据一个“电线和总线”的原则与一个开放的排放(当整个总线的状态是由一个“0”状态的任何从属),并可以有两种状态之一:逻辑“0”和逻辑“1”。

设备(钥匙和对讲机)具有内部晶体管,可在正确的时间将线路拉至零。如果任何设备将整个传输线变为零,则整个传输线将变为逻辑“0”状态。这就是说,如果对讲机将线路拉至零,钥匙就会知道,反之亦然。188金宝搏欢迎你

借助于电压收缩和保持电平,1-wire有4个用于总线工作的原语:

  • 复位脉冲(重置)
  • 存在脉冲(存在)
  • 发送一些0
  • 发送位1(与读取位相同)
读取达拉斯键到Flipper由搜索ROM和读ROM命令组成。每个命令都有一个Reset序列

这就是Flipper 188金宝搏亚洲体育app下载Zero读取密钥的方式:搜索命令检查是否有达拉斯密钥,然后读取ID。这样做是为了避免与其他Cyfral / Metakom键的随机巧合,它们的时间可能看起来与所需的时间相同。

示波图显示了一个由两个命令组成的长信号,其中每个命令包括:

  • 命令初始化:复位脉冲+ Presence脉冲
  • 命令奴隶
  • 奴隶对收到的命令的反应

让我们仔细看看每个阶段。

命令初始化中的重置顺序包括Reset Pulse和Presence Pulse。在“重置脉冲”中,电平降低主电平。在冲动存在中,该等级降低奴隶

复位序列由两个脉冲组成:

  1. 复位脉冲
  2. 存在脉冲

对于复位脉冲,主(对讲机)拉线到地面。为存在的冲动-奴隶(钥匙)拉线到地面。一些对讲机不发送复位脉冲,因为按键和对讲机之间没有接触被视为复位信号。

读取带有响应的ID命令。信息位时隙由两部分组成:同步和位值。在命令中,主机负责两个部分的电压水平。在对读取命令的响应中,主设备负责同步,从设备负责位值

初始化命令执行后,交换信息:

  • 向Slave发送命令
  • 从机对命令的响应

交换是通过时隙进行的:一个时隙对应一位信息。数据是逐位传输的,从最低有效字节的最低有效位开始。主从同步在一个动作中完成:主从(对讲机)拉线到低水平。然后,在一个特定的时间之后,主从端测量线路上的电压并写入一些信息(主从端读取密钥时写入,从端写入密钥时写入)。Read和Write命令的定时规则相同。每个时隙都是独立同步的,所以信息的传输可以暂停而不会造成错误。

所有信号都必须有特定的时间限制!有时,对讲机的制造商会有灵感来制造相当奇特的延时。

iButton还有一个Overdrive模式,在这个模式下,时间延迟会减少,信息传输速度会更快。传说在野外对讲机是在这种模式下运行的…然而在实践中,他们并没有遇到。

单线达拉斯键的标准命令

对于iButton来说,通常有一个字节(8位)大小的命令。通常情况下,对讲机使用搜索和读取ID命令(搜索ROM和读取ROM)。

但是一些对讲机的制造商却试图制造出不同的指令序列来检查对讲机是否显示了密钥(而不是模拟器)。

因此,让我们看看现有的命令。常规模式下的标准iButton命令如下:

命令 价值 描述
读罗 0x33 读ID
为总线上的所有设备获取一个唯一的代码(在对讲机情况下:只有一个slave)
跳过罗 0xCC 忽略adressation
立即切换从(键)到活动模式,开始等待命令。如果总线上有几个键,它们都将同时等待并作出反应(这可能会导致冲突)
比赛罗 0 x55 目的地选择
主(对讲机)首先发送命令代码(0x55),然后将8字节的唯一代码发送到寻址的从(键)。具有相同代码的密钥将被激活并等待任何以下命令。
搜索罗 0xF0 ID搜索
在0xF0命令之后,Master(对讲机)发出3个时隙的64个有效载荷。
每个有效载荷包含:
  • 2读命令
  • 1发送命令

每个有效载荷的描述:
  1. 从机发送ID的最低有效位
  2. Slave输出相同位的倒数值
  3. 从从主接收比特值

如果接收到的值与键的ID相同,则对下一位重复该过程,直到遍历ID中的所有64位。
否则,从机将保持沉默,直到出现新的复位脉冲

额外奖励:对讲机按键

为什么旧的对讲机不好?

一些旧的达拉斯对讲机内存中有一个不完整的ID数据库。空字段包含一些值,有时对应于全零(0x00)或全一(0xFF)。为了检查对讲机是否出现这种故障,使用了两个键:一个键为全零,另一个键为全一。这些密钥包含不正确的族代码(不是0x01)和校验和(CRC)是的,这是可能发生的。

邮递员是怎样把广告带进大楼的?

不可能,邮递员投递信件:)邮局并不是每个入口都有一堆钥匙。它们通常使用通用密钥,适用于全地形车辆等领域的一组对讲机。这个键可以是每个城市一个,每个房屋组一个,它可以是某些模型的默认值,也可以是完全不存在的。

万能钥匙是什么?

通常情况下,这把钥匙本身并不能打开门,而是允许新的钥匙被添加到记忆中。它被记录在对讲机的一个单独的存储区域。这种钥匙可以是某些对讲机的主钥匙,同时也可以是其他对讲机的常用钥匙。这些只是记录在对讲机存储器某处的值。

在四处玩耍时,对讲机被堵住了?

如果你的对讲机有一个“阻塞键”,可能会发生这种情况。它阻止了对讲机的所有其他钥匙,直到它与主钥匙解锁。

我们知道空白键

在使用iButton的过程中,我们在下面的表格中记录了一些“空白”键。欢迎您使用!

关键 协议 终结 书写
TM2004 达拉斯 电压(8V)
RW2004 达拉斯 电压(8V)
RW1990 达拉斯
RW1990.2 达拉斯 命令
TM-08 达拉斯
TM-08V2 达拉斯
TM-08Vi2 达拉斯
TM-08ViF 达拉斯 命令
RW2000 CYFRAL / METAKOM 书面 +8V
RW2007 CYFRAL / METAKOM
RW2017 CYFRAL / METAKOM
RW-07 CYFRAL / METAKOM
RW-15 CYFRAL / METAKOM + 12 v
rw - 057 CYFRAL / METAKOM
KC-07 CYFRAL / METAKOM +8V
TM-01C 达拉斯/西弗拉尔/梅塔科姆 命令
TM-01A 达拉斯/西弗拉尔/梅塔科姆 命令
RW-1 达拉斯/西弗拉尔/梅塔科姆
RW-1.1 达拉斯/西弗拉尔/梅塔科姆

现在提前预订

我们的首要任务就是完成所有Kickstarter订单,所以我们的支持者将获得第一批生产。

如果你错过了我们的Kickstarter活动,你可以现在预订在2021年秋季,第二批设备准备好后,你就可以购买了。你的预订帮助我们计划生产和物流。

Baidu