汽车计价器通常使用EEPROM设备存储里程数据。EEPROM由于该部件的技术限制,典型的数据擦除次数约为100万次,有些旧部件甚至不超过10万次。在汽车的行驶过程中,以1公里的速度记录一次,记录的里程不能突破零部件的划痕次数。

为了解决这个问题,工程师必须使用几种方法突破器物擦洗次数的限制。因此,在数据存储或编码方式中,可能会出现与我们日常看到的不同的数据方式。(大卫亚设,Northern Exposure)例如:大众奥迪、宝马、奔驰、本田、丰田等车型。

余东国汽车论坛使用半导体器件存储数据时,还有一个问题。存储在器件中的数据绝对不可靠,电路或外部世界的干扰、半导体器件本身的电子迁移等导致内存中的数据不可靠。工程师们为了解决这个问题,在数据编码中记录另一种技术,数据验证,即数据的同时,

目前在仪表上,设计师专门加密数据,不让别人修改的车型很少见。因此,在目前大多数仪器中,里程数据的编码不是我们常说的特别加密。对于这些数据编码算法,完全可以依靠分析和学习。

让我们分析一下汽车仪表上最常见的里程数据编码方式。这种编码方式的算法是为了解决内存的读写次数而设计的。使用该算法的车型大多数是奥迪、大众、奔驰、宝马和少数国产车型(如奇瑞)等车型,其他相当一部分车型的里程算法也是由该算法进化或改进的。在分析这个算法之前,我先谈谈与数据记录格式相关的两个问题。

第一,反码和正码

记录内存中的数据我们通常使用十六进制数字的正码记录方法,例如将12345(十进制数字)记录为3039(十六进制数字)。

但是,在汽车仪表上还可以看到另一种记录方式。12345(十进制数)是十六进制反码,相当于用CFC6(十六进制数)反码记录12345(十进制数)。

那么,反射率和正码怎么转换呢?我们来看一下使用十六进制数的计算。

CFC 6=FFF-3039;事实上,我们可以使用另一种更直接、更简单的转换方式。根据下表一个一个转换就可以了。(大卫亚设)。

正码0 1 2 3 4 5 6 7 8 9 A B C D E F

逆码f e d c b a 9 8 7 5 4 2 1 0

二、数据的高低问题

由于CPU设计和内存设计的差异,相同的16位十六进制记录在设计上可能存在上一级或下一级的差异。数据3039(十六进制数)等,在一些米中记录为3930。

在调整桌子之前,我们要弄清楚我们的仪器有四种可能性:正面符号、正面符号、反转符号、反转符号、正面符号的这种数据记录方法。

以下是仪器数据加密和算法的示例。

例如:3039 3039 3039 3039 3039 3039 3039 3039 3039 3039 3039 3039 3039 3039 3038;数字集非常相似,彼此相连(可以是8组或16组)。这就是我们想要的里程数据。

现在假设数据的高低和正反代码也解决了,把数据统一成正码,排在高位前面,只讨论8个数据集的情况。(大卫亚设)。

让我们来看看这个例子。

1公里: 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

2公里: 0001 0001 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

3公里: 0001 0001 0001 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000

8公里: 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001

9公里: 0002 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001

10k m : 0002 0002 0002 0001 0001 0001 0001 0001 0001 0001 0001

很快就能知道里程是所有数据相加的结果,但大多数车型每2公里记录一次数据,此时我们得到的数据都要乘以2,才能成为实际里程。上述数据分别为2公里、4公里、6公里、16公里和18公里。(阿尔伯特爱因斯坦,Northern Exposure(美国电视))。

现在,我们来分析一下丰田车系的配标算法。

丰田车系的里程算法和大众的里程算法一样,都是为了解决芯片写入次数限制的问题。

现在我们来看看丰田汽车集团的里程数据。

97486公里记录:80 ff ffff fff 7a8b f6ff 7a8b f6ff 7a8b f6ff 7a8b f6ff 7a8b f6ff 7a8b f6ff

这组数据是丰田汽车的里程记录数据,数据分为两部分,前一部分由四个词组成。也就是说,80 FFFFFFFFFFFF记录从0到4的里程。

0公里:ffffffffffff。

范例:1公里:80FF FFFF FFFF FFFF

范例:2公里:80FF 80FF FFFF FFFF

3公里:80FF 80FF 80FF FFFF等

4公里:80FF 80FF 80FF 80FF等

几个80FF是几公里。

那么超过了4 公里是怎么记录的呢?

那就是后半部的数据了,在后半部的数据中我们看到了重复了三次的7A8B F6FF ,这三组数据代表的数值都是一样的,只是为了提高数据的可靠性而重复记录了三次。在修改数据时我们必须把三组数据同时修改,且其数值都必须一样。

现在我们来分析一下这组数据的含义,首先我们先看一下下面的这个数据转换表:

6 7 8 9 A B C D E F

| | | | | | | | | |

9 8 7 6 5 4 3 2 1 0

以上是正反码转换,对照上表,我们可以把数据:7A8B F6FF 转换为 8574 0900。

在8574 0900 这组数据中它们的排列方式为[十位][个位][千位][百位] [十万位][万位][千万位][百万位]。

我们将它们按我们日常的记数顺序重新排列一下可得到:00097485

97485 加上前面一个80FF 代表的一公里,那么可得到公里数为97486 公里

无论你爱车如命还是急着买车,都推荐你添加爱车跑跑的公众号:aichepaopao←长按可复制

相关推荐