Добрый день.
имеется цифровая фото-видео камера с uart, jtag, usb.
Создаю диагностируемое устройство в теории.
к диагностируемым параметрам можно отнести:
- работоспособность батареи
- вспышка
т.д..
Необходимо передать 8-битный код ошибки с камеры на Arduino.
Выбрал изначально UART, c RX порта на камере передаю на TX порт на Arduino...
но по ходу понял что т.к все передается побитово - коды ошибок могут смешаться..
Подскажите, есть ли выход из данной ситуации?
Пронумеровать байты в сообщении - например, в первом байте старший бит никогда не поднимать, во втором байте - всегда поднимать. Тогда у вас будет целых 2^14 вариантов ошибок. И третим байтом можно слать XOR первых двух, тогда все точно понятно будет.
0XXX XXXX
1YYY YYYY
1CCC CCCC
Тут целых 14 бит на сообщение и контроль целостности. (С=X xor Y)
Не совсем понимаю..
Допустим у меня код 00000001 сигнализирует о том что батарея неисправна, тот кто проверяет батарею сигнализирует об этом, я подключаюсь к uart и получаю по одному биту полный код ошибки.. но в этот же момент вспышка может делать то же самое.. и я в итоге я получаю кашу. Это как я понимаю. Поправьте меня если я неправ.
Чтобы получить код, вам надо принять три байта, причем удовлетворяющие условию
1) старший бит первого 0
2) старший бит второго 1
3) первый XOR второй = третий.
Вероятность случайного совпадения можете посчитать самостоятельно.