Решил поделиться наработкой по Манчестерскому кодированию передачи данных. К плюсам такого кодирования можно отнести передачу данных по одному проводу с самосинхронизацией. Манчестерское кодирование использует в качестве логической 1 перепад с низкого уровня сигнала на высокий, а 0 - наоборот. На рисунке показана данная передача. Передача битов осуществляться через заданный интервал времени T. Для определения этого периода и синхронизации, пакет данных начинается с не менее 2-ух логических 1. Данная кодировка сигнала применяется в картах Proximity Em-Marine 125 кГц. Эти карты передают 64 бита, в которых заключены 5 байтов идентификационного номера с проверкой CRC по столбцам и строкам, а также 9 начальным битам и стоповым 0. Ниже показана последовательность.
Проверка CRC позволяет избежать ложного принятия данных, поскольку если во время приема данных перепутать (сместить) хотя бы один переход, все последующие биты превратятся в мусор. Алгоритм декодирования манчестеского кода я применил в бюджетных китайских радиопередатчиках на 433 МГц.
Изначально пробовал использовать UART, но практика показала, что часть посылок пропадала и на входе приемника оказывалось много ошибок.
|