Перейти к содержанию
    

Подскажите протокол обмена по асинхронному каналу

Если что-то делается "физикой", то значит НЕ СУЩЕСТВУЕТ.

Слова как мёд.

Но к сожалению мой друг, Горацио в реале существуют разные тараканы, вроде запутанности и прочей нечисти. Особенно телепортирующиеся. И хочется спросить "сколько % души надо продать взамен".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня традиционно, если с терминала, заливается текстовый файл по по мотивам HEX формата до 512 байт прошивки в строке , но шифрованный, с сигнатурами, контрольными суммами, зашумлением.

А что такое зашумление?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слова как мёд.

Но к сожалению мой друг, Горацио в реале существуют разные тараканы, вроде запутанности и прочей нечисти. Особенно телепортирующиеся. И хочется спросить "сколько % души надо продать взамен".

Существуют. Сам недавно связался http://electronix.ru/forum/index.php?showt...=127996&hl=

Но в данном случае тема началась с того, как строить протоколы для байтового асинхронного интрефейса. Кстати, для вышеупомянутой "нечисти" несмотря на внешнюю и внутрисофтовую пакетность, получать/доставлять до нее пакеты придется по последовательным байтовым интерфейсам. Причем в одном из применений на встречной к ней стороне в модернизируемом оборудовании есть только возможность поднять ногомахательный SPI-master интерфейс, а сама софто-железка ничего соложнеее, чем один байт по SPI не понимает.

Это я к тому, что рожать внутренние протоколы из байтиков еще придется не раз.

 

 

 

А что такое зашумление?

Добавление случайных данных в случайные места зашифрованного файла с целью затруднить расшифровку при доступности нескольких версий прошивок.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавление случайных данных в случайные места зашифрованного файла с целью затруднить расшифровку при доступности нескольких версий прошивок.

 

Достаточно применить CBC со случайным начальным вектором и никакого зашумления не понадобится.

 

 

 

 

Кодер передаваемого фрейма, обрамляет кадр символами границ кадра, ...

 

Можно и так.

Но этого не спрашивал TC!

Ему и WAKE хватает и я думаю что хватает.

Я только говорю, что и WAKE можно упростить. Это работа у TC скорее всего уже давно сделана.

 

Но если смотреть на перспективу, скажем чтобы прибор выдавал осциллограммы в реальном времени как у меня, то протокол должен быть адаптирован к скоростной обработке.

Тогда должен быть только один уровень и формат адаптированный к DMA.

А всего то требуется сделать фиксированный заголовок содержащий длину следующего сегмента данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Достаточно применить CBC со случайным начальным вектором вот и никакого зашумления не понадобится.

У Вас на каждую задачу есть неумные советы? Откуда возьмется этот самый каждый раз случайно сгенерированный вектор, который участвовал в шифровании, в загрузчике, который получает для загрузки каждый раз по разному зашифрованный файл прошивки?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну это уже совсем отдельная задача.

У меня традиционно, если с терминала, заливается текстовый файл по по мотивам HEX формата до 512 байт прошивки в строке , но шифрованный, с сигнатурами, контрольными суммами, зашумлением.

То есть все-же построчно стуктурированный и содержащий в себе и команды (пропуск зоны адресов, конец прошивки, стирание, запуск программы, сброс...)тоже. В этом тестовом файле есть и комментарии и сразу скриптовые команды, по которым, контроллер из терминального режима переходит в загрузчик.

 

Хм, сегодня как раз этот загрузчик (неверняка мы из одного источника его взяли) модифицировал.

Только мой еще и сжимает несколькими алгоритмами.

 

А поскольку сегодня увидел анонс уникального компрессора от Google http://habrahabr.ru/company/ua-hosting/blog/267533/ то вот вознамерился его внедрить в загрузчик.

 

У Вас на каждую задачу есть неумные советы? Откуда возьмется этот самый каждый раз случайно сгенерированный вектор, который участвовал в шифровании, в загрузчике, который получает для загрузки каждый раз по разному зашифрованный файл прошивки?

 

Но смешно вас читать, извините. :biggrin:

Вы и шифрования плохо знаете. Но уже это объяснять не буду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А поскольку сегодня увидел анонс уникального компрессора от Google http://habrahabr.ru/company/ua-hosting/blog/267533/ то вот вознамерился его внедрить в загрузчик.

Много "web-данных"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, сегодня как раз этот загрузчик (неверняка мы из одного источника его взяли) модифицировал.

Нет, Мы его не брали из одного источника, поскольку источник я. Реализация 90x годоп. До полнопаронаидального объема была расширена начале нулевых годов, поскольку заказчик ака ФАПСИ, требовал гаранированного уровня защиты от модификации.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Много "web-данных"?

 

Да, я уже увидел в исходниках что такое статические словари. Это дампы по несколько сотен килобайт.

А так вообще у меня конкретные WEB данные - JSON файлы. Все перевожу на JSON.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы и шифрования плохо знаете. Но уже это объяснять не буду.

Сделайте милость - не "объясняйте", а то уже и как-то не овечать на Ваши глупости вроде нельзя, и отвечать глупо :( :( :(

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но уже это объяснять не буду.

Зачем так интриговать тогда? Может под юбкой ничего интересного и нет :)

 

Варианты

1. На производстве прошили какой-то список векторов.

2. Открытый ключ размещается прямо в файле.

 

Смена прошивок точно допускает непоследовательное их обновление?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вот чего подумал - все уже придумано до нас.

Base64 - это как раз компромисс между текстовым представлением (недостаток - длина) и обычным (недостаток - байтстаффинг).

Распространить его на всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже предстоит новый проект. И свои самопалы с модбасом поднадоели. Вариант со SLIP понравился. А вот поверх него рассматриваю применить protobuf. Покритикуйте такой вариант. Как мне видится - хорошая масштабируемость.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже предстоит новый проект. И свои самопалы с модбасом поднадоели. Вариант со SLIP понравился. А вот поверх него рассматриваю применить protobuf. Покритикуйте такой вариант. Как мне видится - хорошая масштабируемость.

 

Самый практичный из виденных мной это протокол FreeMaster.

 

Он идет с полным решением FreeMaster от Freescale.

Туда входят исходники протокола для портирования на микроконтроллер,

автономное приложение для PC для управления и наблюдения за дивайсом c компьютера

и ActiveX компонент с помощью которого вы можете вставить управление и съем графиков со своего дивайса например в MS Excel, Matlab или в свою программу на Delphi или даже на WEB страницу

 

Протокол работает поверх UART, USB, CAN, JTAG/SWD ну и конечно можете портировать на свой канал передачи.

Есть и сервер протокола.

Это когда вы перебрасываете его с дивайса через локальный компьютер (планшет, например) на удаленный компьютер в интернете.

 

Правда протокол не использует никакого стаффинга, что наверно будет большим обломом для некоторых :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правда протокол не использует никакого стаффинга, что наверно будет большим обломом для некоторых :biggrin:

Иллюзия облома это только для Вас, поскольку Вам, судя по всему, увы, не дано понять, что протоколы стоятся иерархически и стаффинги с фреймерами это на нижних транспортных уровнях. А не на тех о которых Вы ничтоже сумняшеся пытаетесь здесь повествовать :(.

 

Тоже предстоит новый проект. И свои самопалы с модбасом поднадоели. Вариант со SLIP понравился. А вот поверх него рассматриваю применить protobuf. Покритикуйте такой вариант. Как мне видится - хорошая масштабируемость.

Слип это обертка для фрейминга, который получается в там варианте без всякого сомнения надежнее и сабильнее того фрейминга, который недоучки "придумали" для MODBUS-RTU. Что будет вложено во фрейм, это уже думйте сами. Если не важны другие проблемы кривизны MODBUS, то можете вложить во внутрь и его содержимое. Или то, что больше сответствует не неназванной Вашей задаче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...