Программирование 1-фаз. эл. счетчика
| |
a1-ex
|
Дата: Пятница, 07.07.2017, 18:35:13 | Сообщение # 31
|
Автор темы
Участники
|
Цитата Даджжаль (  ) А где ночь-день?
Это примитивный 1 тарифный
|
|
-->
|
|
|
|
|
|
Даджжаль
|
Дата: Пятница, 07.07.2017, 18:57:51 | Сообщение # 34 | Отредактировал: Даджжаль - Пятница, 07.07.2017, 18:59:10
|
Участники
|
Цитата a1-ex (  ) Расскажете как посчитали? Я же писал выше: #30: 03 71 83 FC 8E 7C F1 D6 03 71 83 XOR FF FF FF = FC 8E 7C - это пям на поверхности, аж "светится" на экране остаётя с контролькой F1 D6 разобраться. При ксорах сумму не применяют - только црц. црц16 для этих 3-х байт с ксорами равна CD F1 (F1 CD с поменянными местами байтами). Старший байт F1 совпадает, младший нет. Так часто делают, сравнивая црц по маске. Маска в данном случае - 00 1B. Проверяем на строке со значением после запятой.
|
|
-->
|
|
|
|
|
|
|
|
Даджжаль
|
Дата: Пятница, 07.07.2017, 22:12:43 | Сообщение # 39
|
Участники
|
Цитата andros (  ) Не трахался бы с одометром Мне кажется, что у производителей авто не стоит особой задачи что-то сильно шифровать в пробеге, хотя, могу и ошибаться. Не думаю, что в одометрах применяется что-то серьёзное в плане шифрования.
|
|
-->
|
|
|
|
f2d
|
Дата: Пятница, 07.07.2017, 22:45:30 | Сообщение # 40
|
Участники
|
Цитата Даджжаль (  ) Не думаю, что в одометрах применяется что-то серьёзное в плане шифрования. Ещё и как,вот на этой приборке АП 2115-3801010-20 ставят защиту от чтения даже и дамп не считать не говоря уже корекции пробега, PIC16F886 как кость в горле! так как пики все закрыты!
|
|
-->
|
|
|
|
Даджжаль
|
Дата: Пятница, 07.07.2017, 22:51:07 | Сообщение # 41
|
Участники
|
Цитата f2d (  ) ставят защиту от чтения даже и дамп не считать Тем более, ведь если нужно ограничить возможность корректировки, то проще в "пикушку" запихать и закрыть от чтения. А уж сильно шифровать - это вряд ли. Вот использовать простое кодирование, которое осуществляет запись по разным адресам - это да, имеет смысл в целях увеличения ресурса еепром, котрые лет 10 назад имели не так много гарантированных циклов записи.
|
|
-->
|
|
|
|
Aries
|
Дата: Воскресенье, 27.07.2025, 13:43:56 | Сообщение # 42
|
Участники
|
Не стал создавать новую тему, дабы не повторяться. Устанавливали мы подобные аппараты на садовые домики, для контроля так сказать. Все приборы были с "пробегом" и многие владельцы участков имели претензии. Пришлось заняться коррекцией. Участков было более 100 шт, и дело шло медленно. Описанный тут способ не совсем правильный, все эти "костыли" с масками... Считал я из контролера дамп, сделал дизасм, посмотрел что там внутри. Привожу часть кода которая это делает. Всё собрано в IAR. Копнув прошивку немного глубже, можно обнаружить, что совсем не обязательно что-либо выпаивать для коррекции, достаточно подключиться к прибору по уарту. А подправив её, прошивку, можно перейти на другой уровень... Но это совсем другая история. Всем удачи !
Скачать файл можно после регистрации регистрация | вход
|
|
-->
|
|
|
|
Мангуст
|
Дата: Четверг, 14.08.2025, 22:48:58 | Сообщение # 43
|
Участники
|
Только сегодня наткнулся на эту тему, но всё же стоит кое-что добавить.
Цитата Даджжаль (  ) 03 71 83 XOR FF FF FF = FC 8E 7C - это пям на поверхности, аж "светится" на экране Другими словами, что то же самое, но проще и нагляднее: FC 8E 7C являются инверсными значениями 03 71 83. Это действительно бросается сразу в глаза тому, кто свободно оперирует шестнадцатеричными значениями. Тем, кто не владеет этим, в помощь хотя бы виндовский калькулятор: выбираем вид программиста и ставим "галочку" 1 байт. Набираем, например, 03 not и получаем - FC. Not - это инверсия. 03 XOR FF = FC - это тоже инверсия, которая вытекает из таблицы истинности операции XOR.
Цитата Даджжаль (  ) црц16 для этих 3-х байт с ксорами равна CD F1 (F1 CD с поменянными местами байтами). Старший байт F1 совпадает, младший нет. Так часто делают, сравнивая црц по маске. Маска в данном случае - 00 1B. Тут надо пояснить. CRC - это только алгоритм, который имеет несколько параметров, которые, в свою очередь, могут иметь множество значений, из-за которых CRC для одних и тех же байт может иметь огромное количество вариантов. Поэтому, чтобы считать CRC, надо знать параметры, которые закладывает производитель, иначе - "пальцем в небо". К счастью, многие фирмы используют выработанные и стандартизированные наработки параметров с присвоенными именами. В данном случае надо считать CRC-16 по стандарту MODBUS и тогда получим нужный результат. MODBUS - это CRC-16 с параметрами: 1. Образующий полином - 8005h 2. Начальное значение CRC - FFFFh 3. Финальный XOR CRC - 0000h 4. Реверс входных байт 5. Реверс CRC Посчитав CRC с данными параметрами трёх байт значений с тремя их инверсными значениями (всего 6 байт), получаем то, что и должны получить, - D6 F1 (в данном файле CRC записана младшим байтом вперёд, поэтому - F1 D6), а вместе с контрольной суммой (6+2=8 байт) получим CRC = 0. То есть, если CRC всех 8 байт не равна нулю - это ошибка. Поэтому просто подбирать значения и смотреть где там что изменилось - пустая трата времени.
|
|
-->
|
|
|
|
|