nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Долбаные циклические счётчики!

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

Когда-то их уже продвигали изо всех сил "наши дорогие коллеги" (очень дорогие) из Великого Новгорода, но по счастью от данного изделия удалось их отогнать.

Я считаю, что для МКО (он же МКИО, он же Mil-Std 1553, он же ГОСТ Р 52070-2003) эти счётчики - как зайцу стоп-сигнал. Понятно, когда речь идёт о передаче данных через здоровенную децентрализованную сеть вроде Интернета, где один пакет может пойти более "коротким" путём, другой - более длинным, третий застрять где-то на секунду и быть объявленным "потерянным", четвертый действительно пропадёт, и на приёмную сторону они придут не все и не в том порядке.

Тогда действительно, пронумеровав все пакеты в порядке их отправки, можно такую ситуацию отследить, запросить повторно утерянные пакеты - и собрать сообщение целиком, как надо. Но ведь в МКО таких проблем нет!




Данная шина - наиболее жёсткая и централизованная из всех. Всем управляет контроллер шины. Он даёт запрос (командное слово) - и через 4..12 мкс ему обязаны выслать ответ! На самом деле, и того меньше, поскольку "традиционно" время между посылками отсчитывается по последнему фронту (переходу от минуса к плюсу), а потому к этим 4 мкс относится ещё и "пол-бита" (0,5 мкс) в конце одного слова и 1,5 бита ("синхроимпульс") в начале следующего, поэтому реально пауза составляет вообще от 2 до 10 мкс. Замешкаемся - посчитают, что "нет ответа" - и начнут опрашивать кого-нибудь ещё. Несколько раз не ответим по основному и резервному каналу - выключат и включат нам питание, если ответа всё равно нет - отключат питание окончательно за ненадобностью - "это труп".

На такой шине посылки неспособны "перепутаться". Может прийти с ошибкой и быть "отбракована" - но и так понятно, КАКАЯ ИМЕННО посылка была отбракована!

И да, если мы отправляем длиннющщие данные, занимающие куда больше одной посылки в 32 слова данных, то ввести их нумерацию - идея действительно не абсурдная.

Но у нас "целевая информация" вполне себе помещается в ОДНО сообщение, но что ещё важнее - информация БЫСТРО ПРОТУХАЕТ! Вот мы посчитали дальность, скорость, углы и кватернион для текущего момента времени, выдали их - и тут же начали ОБНОВЛЯТЬ все эти данные. И бортовой вычислительной системе от СТАРЫХ данных толку немного. Ну, скажем, для "послеполётного анализа" вполне себе можно посмотреть, но ради отчётности перегружать шину на самом ответственном этапе - не лучшая идея.

Собственно, меня больше всего пугает: вдруг они введут "дополнительный слой абстракции", типа "оно тут организует надёжную передачу сообщений, прозрачно для бортового компьютера, который лишь наслаждается конечным результатом". И начнётся: одна посылка не пришла по какой-то причине, и вместо того чтобы "смириться с потерей", этот слой начнёт разбирательство. Он настаивает на 100% полученных посылок, и притом в правильном порядке, поэтому он не предъявит самые актуальные данные до тех пор, пока не заставит нас прислать повторно те, "потерянные".

Только вот в МКО есть такая странность: в каждом сообщении данные передаются либо исключительно от контроллера шины к нам, либо наоборот, поэтому запрос потерянных пакетов - это целая эпопея! Сначала нам должны передать "перечень потерянных пакетов", а только потом запросить "дайте их сюда!". В общем, на шину довольно хорошая дополнительная нагрузка выходит.

Не получилось бы как у Лема, в пилоте Пирксе. Конечно, стыковка - это не так страшно, как посадка на Марс, но всё-таки операция ответственная и сугубо РЕАЛЬНОГО ВРЕМЕНИ.

А так-то, добавить ещё одно слово с этим счётчиком - ничего сложного, любой каприз за ваши деньги.


PS. А ведь даже в компьютерных играх, чтобы снизить задержки, повально с TCP переходят на UDP, лишь бы задержки снизить!

В общем, если данные передаются "атомарными" кусками (которые сами по себе несут всё что надо, не нужно 10-20 таких кусков склеить в целостный файл, прежде чем обработать), и быстро протухают - циклические счётчики так себе затея, как по мне.
Tags: ПЛИС, программки, работа, странные девайсы
Subscribe

  • Я создал монстра!

    Вот нормальная счастливая пара разъёмов ОНЦ-БС-1-10/14-Р12-2-В и ОНЦ-БС-1-10/14-В1-2-В: У розетки кроме основного выступа, отмечающего "верх",…

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 11 comments

  • Я создал монстра!

    Вот нормальная счастливая пара разъёмов ОНЦ-БС-1-10/14-Р12-2-В и ОНЦ-БС-1-10/14-В1-2-В: У розетки кроме основного выступа, отмечающего "верх",…

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Ковыряемся с сантехникой

    Наконец-то закрыл сколько-нибудь пристойно трубы, подводящие к смесителю, в квартире в Москве: А в воскресенье побывал на даче, там очередная…

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…