ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
1282113 Топик полностью
evgeniy1294 (07.02.2023 20:05, просмотров: 875) ответил bnb62 на Забавно. Немножко бы ликбеза. Твой Инструмент определяет принадлежность секвенции к стандартным протоколам или хотя бы к диапазону битовой скорости?
С диапазоном битовой скорости все непросто. Обычно автоопределение скорости происходит по некой преамбуле (auto baudrate в МК) или по некоторым другим признакам, что требует хотя бы частичной информации о протоколе или наличия маркеров (поиск известного значения в потоке данных). Разработчики Docklight пошли интересным путём и разработали отдельную железку - Docklight Tap (Pro), что-то из этого она может. Вышесказанное справедливо для UART-ов и их производных, с 

SPI и CAN пока проще использовать логический анализатор.

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


Из близкого к теме - в программу встроен универсальный калькулятор контрольных сумм, позволяющий настроить любую модель CRC. С ним возможно определять модель для расчета контрольных сумм в исследуемых протоколах, я это делал.

local bt = { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 }

crc = CrcLogic:new()
crc:setWidth(16) -- Установка длина полинома в битах (от 3-х до 64-х).
crc:setPoly(0x8005) -- Значение полинома.
crc:setSeed(0) -- Начальное значение.
crc:setReflectIn(true) -- Начало и направление вычислений.
crc:setReflectOut(true) -- Инверсия порядка битов регистра при входе на элемент XOR.
crc:setXorOut(0) -- Число, с которым складывается по модулю 2 полученный результат.

crc:calculate(bt) -- Расчет контрольных сумм. Может вызываться множество раз.

result = crc:finalize() -- Получение результата(uint64_t) и сброс логики.