Pacifist писал(а):
на картинках везде должны быть миллисекунды (ms) а не микросекунды (us). тож поправьте плз.
На первый взгляд - как то многовато различных длин у "правильных" импульсов, ряд: 0.42, 0.6, 0.8, 0.84, 1.2, 2.4, 2.7, 3.2. Итого восемь!!!! возможных вариантов валидного импульса на выходе приемника. Зачем такой винегрет ?
"Правильный" майлс если первый бит после хеадера словил 0 - то ловит еще 13, а все что идет дальше игнорирует вплоть до принятия следующего хеадера. Зачем к одной кодировке домешивать еще манчестер? Добавили бы сколько надо бит - да и всех делов.
Единственное с чем согласен - стоповый бит. Только длину я бы ему поставил 1.8 (тогда "правильные" импульсы из майлса будут иметь логичный ряд 0.6, 1.2, 1.8, 2.4 мс)
Ну и главный вопрос - какие преимущества в вашем варианте? Что добавили и для чего?
Итак была задача - сделать алгоритм, который без препядствий может одновременно корректно работать как со стандартным МайлсТаг 2 так и закрыть узкие места в протоколе.
отвечаю на вопросы - такое количество "правильных" импульсов чтобы не перекликаться с майлсом и не вызывать лишних помех на оружии которое работает на чистом майлсе. ну к примеру у майлса заголовок 2.4 мс анализируются пакеты длительностью 2.2 - 2.6 мс. такие же пределы есть у битов 0 и 1. соответственно чтобы не мусорить пришлось вводить новые пульсы.
Приемущества :
Наличие контрольной суммы... Беда майлса в том что любые 14 импульсов после заголовка считаются правильными.
и если по стечению обстоятельств мы получили сигнал похожий на правильный - то поподание. В реакторе мы используем контрольную сумму ... Если была ошибка и сигнал из 14 бит не совпадает с КС то значит пришла ошибка. Идём на второй этап проверки. Читаем инверсный манчестерский код. (почему именно манчестерский код - потому что в отличае от протокола SIRC (на его основе работает Майлс) в манчестерском коде нет разницы в мощности сигнала в зависимости от данных). В результате всего этого мы получаем двойную посылку сигнала при помощи 2х разных протоколов передачи данных с проверкой по контрольной сумме. + имеем флаг окончания пакета данных. и полную совместимость с майлзом ... т.к не увидев ProtocolFlag Система работает как обычный майлз.