Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: Передача данных по радиоканалу Atmega8

  1. #1

    Передача данных по радиоканалу Atmega8

    Добрый день! Прошу помощи у специалистов. Планируется сделать устройство на Atmega8, суть в следующем: при изменении состояния входов микроконтроллер будет генерировать код состоящий из индивидуального номера устройства 3 байта и его состоянии 6 байт. Байты состоят только из цифровых значений от 0 до 9, следовательно для их кодирования будет использоваться 4 бита (в калькулятор вводим десятичное значение и переводим в двоичное). Приемная сторона принимает посылку и выводит в СОМ порт стандартным UART в формате 9600,8,N,1. Возможно потребуется ввести стартовый бит\байт для инициализации приема. В качестве приемо-передатчиков будут использоваться радиостанции не имеющие встроенного модема. Канал односторонний. То есть на передатчике выход МК подключен на вход радиостанции, возможно через ФНЧ фильтр, что бы преобразовать в нечто похожее на синус. На приемной стороне радиостанция выходом динамика подключена на компаратор, который преобразует синус в нечто похожее на меандр, а микроконтроллер считает импульсы и если посылка имеет смысл (а не мусор из эфира) отправляет на компьютер.
    Какие мысли:
    1. Использовать стандартный UART преобразовав его ФНЧ в синус, а на приемной стороне компаратор и МК. Но получается в стандартном уарте слишком много лишней информации старт\стоп биты и видимо байт состоит из 8 бит, получается избыточность.
    2. Намного лучший вариант, но не могу понять как его реализовать в коде. Передающий МК генерит два разных сигнала с частотой 600 и 1200 герц (как пример) 600 герц это 0, 1200 герц это 1. Меандр выводим в синус ФНЧ, отправляем по эфиру, компаратором возвращаем в меандр и расшифровываем.
    Загвоздка возникла на самом первом пути: для генерирования сигнала пробовал код типа:
    Do
    port=1
    waitms=1
    port=0
    waitms=1
    Loop
    Синус получил, довольно правильный, но только при значениях waitms=0.8 около 500 Герц. Дальнейшие изменения не позволяют получить сигнал с частотой 1000-1200, видимо МК не успевает работать с такими задержками.
    Пробовал Sound, но не могу рассчитать корректные значения что бы издать звук с частотой 600 Герц длительностью 1 мс и 1200 такой же длительностью.
    Так же нет понимания как реализовать приемную сторону по 2 варианту. МК измеряет количество импульсов за определенное время, если их N, то это 600, если 2N, то 1200.
    Может кто подскажет еще варианты или отрезок кода по реализации обоих проектов. Заранее спасибо.


  2. #2
    Я конечно не знаю какая дальность нужна,если 1.5км хватит(дальше не пробывал,и то на пересечёнке) то можно использовать вот такие модули и хоть что можно передавать не замарачиваясь. Мощность небольшая 100мВт,но рабочая частота 433,4 – 473,0 МГц то есть можно спокойно приделать усилитель и антеннку на 430. Скорость там до 115200 бод так что с лихвой хватит.

  3. #3
    Думал о подобных модулях, но обычно там АМ манипуляция и радиостанцией их не принять. Вот если бы такой модуль передавал на базовую станцией с антенной 3х5/8, то на 100 мВт с выносной антенной 1/4 можно 5-10 км перекрыть запросто. А заводские приемники для них - сверхрегенеративные. Как подключишь внешнюю антенну, так все и затихнет...

  4. #4
    Цитата Сообщение от RA3MAH Посмотреть сообщение
    600 Герц длительностью 1 мс и 1200
    Длительность ОДНОГО периода Частоты 600 Гц 1.66.. миллисекунды и распознать эти 600 Гц не получится, хотя бы 4--8 мсек
    Цитата Сообщение от RA3MAH Посмотреть сообщение
    видимо байт состоит из 8 бит
    Тем не менее это 256 значений, а если передавать в этом байте десятичные значения в 4-х битном формате, то 100 значений (00--99), особо лишнего и нет.
    Леонид

  5. #5

    Регистрация
    28.04.2005
    Адрес
    Московская обл., г. Мытищи
    Сообщений
    3,923
    Позывной
    ex RW3DKC
    Цитата Сообщение от RA3MAH Посмотреть сообщение
    Загвоздка возникла на самом первом пути: для генерирования сигнала пробовал код типа:
    Do
    port=1
    waitms=1
    port=0
    waitms=1
    Loop
    Синус получил, довольно правильный, но только при значениях waitms=0.8 около 500 Герц. Дальнейшие изменения не позволяют получить сигнал с частотой 1000-1200, видимо МК не успевает работать с такими задержками.
    МК то успевает, а вот то, в чем вы код писали, может и нет. Генерировать лучше с использованием таймера, хотя вам видимо в момент передачи больше ничего не надо делать - тогда можно и на паузах. Можно на ардуине поэкспериментировать с библиотекой https://istarik.ru/blog/arduino/1.html - будет и 1000 и 10000 Гц. Какая скорость нужна, откуда взялось 1 мс ?

  6. #6
    Цитата Сообщение от RA3MAH Посмотреть сообщение
    АМ манипуляция и радиостанцией их не принять
    Да нормально там всё с ними, там стоит SI4463 ,всё там будет приниматься нормально,обрати внимание на схему приёмника,явно не сверхрегенеративный. Ладно моё дело предложить,ну а с рациями изобретать велосипед прядётся.

  7. #7
    А 1,5 км с родными спиральками?

    Добавлено через 6 минут(ы):

    Скорость нужна, 1200 бод достаточно...

    Принял к размышлениям, спасибо.
    Последний раз редактировалось RA3MAH; 04.03.2017 в 22:15.

  8. #8
    Когда-то давным-давно делались конструкции даже с DTMF-кодированием, модемы с частотной модуляцией применялись в любительской пакетной связи (вполне успешно). По своему опыту могу похвалить модемы, использованные в популярном некогда Smartrunk-2 (фазовая модуляция, синхронная передача с синхропреамбулой). Надежность была великолепна, много лучше, чем через DTMF. Там, правда, 560 bps было с несущей 1400 Hz. Система прекрасно работала даже на акустическом контакте "бипера" с микрофоном радиостанции, работала и по телефонной линии (с двойным акустическим контактом).

  9. #9
    Цитата Сообщение от RA3MAH Посмотреть сообщение
    А 1,5 км с родными спиральками?
    да с родными спирпльками


  10. #10
    Написал код на барсике, который разбирает 4х значный номер объекта на 16 бит и передает 0 как 800 Гц, 1 как 1600. Смущает очень большой код. Кто подскажет, как лучше реализовать приемную сторону? Посылка почти 200мс. В Архиве исходник, прошивка, модель в Proteus.
    Вложения Вложения

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Передача данных по радиоканалу
    от v_serg в разделе Для начинающих
    Ответов: 37
    Последнее сообщение: 07.10.2011, 16:13
  2. Передача данных через 8251
    от na1s в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 0
    Последнее сообщение: 03.06.2008, 18:08
  3. СС1000 (передача данных)
    от UN9GW в разделе Цифровые виды связи Новые технологии в электронике и связи
    Ответов: 0
    Последнее сообщение: 23.02.2008, 10:26
  4. Радиостанция GM340 и передача данных
    от Pngden в разделе Модификация радиостанций
    Ответов: 2
    Последнее сообщение: 10.11.2006, 08:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •