Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/17: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Rykitto

Синхронизация обмена данных через LiFi

28.10.2014, 10:01. Показов 3413. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Никак не могу придумать способ реализации обмена через свет.

Алгоритмом все вроде бы хорошо: "отмигиваем" хидер, далее шлем сообщение фиксированной длины, или что тут угодно.
Сигналы можно представить в виде 0 и 1, либо 1 и 11, это тоже по моему не проблема. Что эффективнее выяснится на практике легко.

Но никак не могу понять как реализовать синхронизацию приемника и передатчика, чтобы не было смещения во времени и потере бита, или принятия лишнего:
Допустим отправили мы три единицы, на единицу пауза по 5 мс, а приемник обработал их с паузойтак же в 5 мс, но еще время ушло на обработку принятой информации.

В общем, никак не могу понять что тут можно придумать, либо алгоритм в корне не верен. Делаю на ардуине (на двух).
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2014, 10:01
Ответы с готовыми решениями:

Синхронизация баз через файлы обмена
Гуру! Подскажите! Нужно сделать синхронизацию SQLite-баз с двух устройств работающих оффлайн через файлы обмена. Знаю что аналогичная...

Правильный подход обмена данных с устройствами через COM-порт. Целостность пакетов и производительность обмена
Приветствую вас, коллеги! Хочу с вами посоветоваться, ибо мне кажется, что я делаю это не совсем правильно, либо что-то не учёл... ...

Синхронизация баз данных через облако
Здравствуйте! Имеется несколько баз данных на разных ОС, включая Android, беда в том, что есть локальная и удаленная БД. И нужен...

3
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
29.10.2014, 09:54
Цитата Сообщение от Rykitto
Здравствуйте. Никак не могу придумать способ реализации обмена через свет.

Алгоритмом все вроде бы хорошо: ...
это тоже по моему не проблема. Что эффективнее выяснится на практике легко.

Но никак не могу понять как реализовать синхронизацию ...

В общем, никак не могу понять что тут можно придумать,
Как вы думаете, вы первый озаботились таким способом обмена? :-) Если справшиваете совета - очевидно, понимаете, что вы далеко не первый... и делаете совершенно правильный вывод:
алгоритм в корне не верен.
---------------------
Совет: не городите "алгоритмов" для "выяснения на практике" - начните с теории... почитайте что-нибудь о кодировании сигналов на физическом уровне, о самосинхронизирующихся кодах (манчестерский, NRZ). это избавит вас от изобретения велосипедов с квадратными колесами...
0
Rykitto
29.10.2014, 10:19
Цитата Сообщение от Mykysoft
Как вы думаете, вы первый озаботились таким способом обмена? :-) Если справшиваете совета - очевидно, понимаете, что вы далеко не первый... и делаете совершенно правильный вывод
Конечно я понимаю что это уже реализовано, и не раз. Проблема только в том что сложно найти то, не знаешь что.
Вот вы дали мне направление (за что Вам и спасибо) и стало легче, теперь я знаю как это называется и что мне нужно искать :)

Я скорее программист, а не хардварщик. МК занимаюсь чуть более месяца - очень много мне еще предстоит изучить =)

Вот теперь еще вопрос:
- по изменению состояния сигнала с "OFF" на "ON" определяем начало передачи
- отсчитываем четверть длительности бита (чтобы попасть в середину полубита)
- начинаем записывать значение сигнала. С этого момента и далее через интервалы, равные длительности бита. И так - до получения необходимого количества бит.
По поводу "отсчитываем четверть длительности бита" - а как это реализовать? Надо ли учитывать время исполнения кода? Ведь насколько я понимаю при большом сообщении может произойти смещение по времени которое инвертирует принимаемые далее биты.
Как решение я вижу передачу пакетов фиксированной, малой длины. Чтобы гарантированно избежать смещения.
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 901
29.10.2014, 10:42
Цитата Сообщение от Rykitto
Проблема только в том что сложно найти то, не знаешь что.
теперь я знаю как это называется и что мне нужно искать :)
правильный подход !
Я скорее программист, а не хардварщик. МК занимаюсь чуть более месяца - очень много мне еще предстоит изучить =)
Это да. Хотя если как у программиста есть понятие о кодировании информации - это уже лучше. можно не пугаясь читать достаточно заумные книжки :-) Названия я сейчас навскидку не подскажу, но раздел: "кодирование информации в физических линиях связи", "самосинхронизирующиеся коды"
Вот теперь еще вопрос:
По поводу "отсчитываем четверть длительности бита" - а как это реализовать?
лучше всего прерыванием по таймеру.
Надо ли учитывать время исполнения кода? Ведь насколько я понимаю при большом сообщении может произойти смещение по времени которое инвертирует принимаемые далее биты.
Как решение я вижу передачу пакетов фиксированной, малой длины. Чтобы гарантированно избежать смещения.
используйте буфер, контрольную сумму, и квитирование. и тогда размер пакета не будет играть особой роли...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2014, 10:42
Помогаю со студенческими работами здесь

Синхронизация данных через интернет (VS2010)
Друзья, всем привет. Задача у меня такая: Есть объект - Б , на котором считываются в программе сколько упаковок за день было...

Синхронизация данных программы через интернет
Есть программа на Delphi - планировщик дел, используется дома и на работе. Нужно, чтобы база постоянно синхронизировалась. Раньше для...

Зависает синхронизация данных через универсальный формат
Доброго времени. Отпал обмен. Синхронизация через универсальный формат УТ - БП односторониий. Конфигурация УТ 11 переписанная и...

Одновременная передача данных в виде двух массивов через буфер обмена
Добрый день, пишу программу корреляционного расходомера на основе sdk виртуального осциллографа и столкнулся с проблемой одновременной...

Копирование через буфер обмена из 2х полей формы и вставка данных в другую форму
Всем очень добрый день! Подскажите пожалуйста, можно ли реализовать одновременное копирование данных из 2-х полей формы и вставку этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru