Вход

Код Манчестер и Микроконтроллер

Научись общаться с машиной и научи других. Все вопросы связанные с программированием и разработкой программ.

Модератор: AxeL

Гуру

СообщениеГуру Roman_buyan Roman_buyan 0
Оставил 788 сообщений с 28 янв 2007
ФР: 16690
24 апреля 2012 в 17:20

Здравствуйте товарищи.
Знаялся я одной конструкцией, которая передаёт данные в коде Манчестер. Возникла проблема синхронизации.
Первоначально я просто организовал задержки, равне времение передачи одного бита, но выяснилось, вопервых, эти задержки не соответствуют даташиту, во вторых при некоторых условиях длительности вообще меняются как пропало. Идея с обычными delay_us() провалилась.
Но Манчестер хорош тем, что у него есть смена состояния в середине каждого бита.
Кто-нибудь знает как синхронизировать приём кода?

У меня была такая идея.
Допустим бит передаётся за 512 мкс., и пусть первой передаётся лог 1. Ждём среза импульса, отстчитываем 1/4(128 мкс), запоминаем состояние на линии, ждём пока не сменится. Как только произошла смена, ждём ещё 1/4(а можно и сразу) считываем состояние. Далее ждём 1/2(256 мкс. до конца передачи первого бита осталось 128 мкс и ещё 128 до четверти следующего бита ). Снова запоминаем состояние и ждём изменени сотсояния, ждём 128 мкс считываетм состояние ну и так далее....

Вроде всё логично, но неработает.
0



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4