реклама на сайте
подробности

 
 
> Программный UART на микрофонном входе
Lost_Viking
сообщение Jan 20 2012, 16:51
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091



Есть идея реализовать прием данных через микрофонный вход телефона. Гораздо проще по ЮСБ, но мы не ищем легких путей =))
Интересует вот что:
Частота дискретизации входного сигнала = 44100гц.
Скорость передачи данных с микроконтроллера = 9600 бод/сек

На осциллограмме в VMLAB'е видно, что 1 пакет данных (10 бод) передается за 1мс. Длительность 1 бода = 100мкс.
В документации на atmega16 указано, что внутренний usart делает замеры (отсчеты) 16 раз за 1 пакет. Почему - не помню, но мне голова подсказывает, что надо делать 20 замеров, 2 раза за один бод, учитывая старт-бит и стоп-бит.

С другом собираемся поступить так:
Оцифрованный сигнал с микрофона будет записываться в буфер определенной длинны. Далее, будет алгоритм выборки из этого буфера.
Но, для более высокой точности необходимо "щупать" сигнал с частотой 20кГц. Не каждый УНЧ может похвастаться работой на такой частоте, а тем более микрофонный усилитель. То есть вряд ли получится каждый бод щупать по два раза.
Отсюда вопрос: а что если "щупать" всего один раз? То есть изначально устройства будут как-то синхронизироваться между собой, на приемнике будет высчитываться длительность импульса, длительность всего пакета, и исходя из расчетов будет корректироваться шаг выборки из буфера?

Какова вероятность приема с ошибкой? Какие есть алгоритмы исправления? И т.д.

Сообщение отредактировал Lost_Viking - Jan 20 2012, 16:56
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lost_Viking
сообщение Jan 20 2012, 20:48
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091



Идея началась с этой статьи: http://www.eecs.umich.edu/~prabal/pubs/pap...kuo10hijack.pdf

На одной из диаграмм видно, что импульсы модулированы импульсами. Этот модулированный сигнал подается на вход телефона, где потом обрабатывается. Почему здесь применили модуляцию? Я думаю, что из-за того, что с выхода УНЧ сложно получить хорошие импульсы, и это тоже показано на одной из диаграмм. В результате двунаправленной передачи данных будет трудно добиться. Как я понял, импульсы все-таки на вход УНЧ подать можно. Да, там стоит разделительный конденсатор. Но, однако, как-то импульсы получают в программах!?

Цитата(Taradov Alexander @ Jan 21 2012, 00:40) *
А теперь представьте передачу не меандра, а последовательности символов 0x00 или 0xff,

wacko.gif smile3046.gif
А об этом я не подумал. =))) Спасибо! Ха... Тогда придется разбираться с алгоритмами демодуляции FSK сигнала... Или , действительно, манчестером пользоваться.
Цитата(Taradov Alexander @ Jan 21 2012, 00:40) *
А потом в UART-е нормальный уровень - высокий, так что нужен как минимум инвертер, а то межсимвольный интервал точно убьется.

Нормальный уровень - это постоянная составляющая что ли? Расскажите подробней, пожалуйста.
Цитата(Taradov Alexander @ Jan 21 2012, 00:40) *
Ну и засинхонизировать их тоже не так легко и особенно если поток не непрерывный. 16 точек на бит для того и берутся, что даже аппаратно синхронизация теряется очень быстро.

Передача будет непрерывной. В том-то и проблема.

Может кто-нибудь посоветовать алгоритм демодуляции FSK сигнала? Хотя бы с чего начать штудировать книгу "Цифровая обработка сигналов". Не зря же я ее два года назад купил =))
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 20 2012, 20:56
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Lost_Viking @ Jan 20 2012, 23:48) *
Нормальный уровень - это постоянная составляющая что ли? Расскажите подробней, пожалуйста.
Да, уровень сигнала когда ничего не передается. Стартовый бит определяется переходом в низкий уровень.

QUOTE (Lost_Viking @ Jan 20 2012, 23:48) *
Передача будет непрерывной. В том-то и проблема.
Тогда точно про модемы читать, в непрерывном потоке вы с ходу даже стартовый бит так не найдете.

Еще учитывайте, что это уже не стандартный UART, а свое изобретение, следовательно нагрузка на микроконтроллер увеличивается из-за необходимости програмно модулирвать сигнал. Ну и скорости большой тоже не поучится, хорошо если 1 кБод выйдет в итоге.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Lost_Viking   Программный UART на микрофонном входе   Jan 20 2012, 16:51
- - andrewkrot   Наверное так мало сообщений потому что никто ничег...   Jan 20 2012, 19:03
|- - Lost_Viking   Цитата(andrewkrot @ Jan 20 2012, 23:03) Н...   Jan 20 2012, 19:35
|- - Taradov Alexander   В первую очередь ни один микрофонный вход ваш DC с...   Jan 20 2012, 19:49
||- - Lost_Viking   Цитата(Taradov Alexander @ Jan 20 2012, 23...   Jan 20 2012, 20:31
||- - Taradov Alexander   QUOTE (Lost_Viking @ Jan 20 2012, 23:31) ...   Jan 20 2012, 20:40
|- - andrewkrot   Цитата(Lost_Viking @ Jan 20 2012, 22:35) ...   Jan 20 2012, 20:10
|- - Lost_Viking   Цитата(Taradov Alexander @ Jan 21 2012, 00...   Jan 20 2012, 21:24
- - Taradov Alexander   Из всех этих статей видно, что нужно экспериментир...   Jan 20 2012, 21:48
|- - Lost_Viking   Цитата(Taradov Alexander @ Jan 21 2012, 01...   Jan 20 2012, 22:09
- - Lost_Viking   такой вопрос: как лучше ослабить сигнал с выхода к...   Jan 21 2012, 16:54
|- - jcxz   Несколько лет назад делал радиомодем с примерно по...   Jan 31 2012, 16:05
- - Lost_Viking   Цитата(jcxz @ Jan 31 2012, 20:05) Да - и ...   Feb 10 2012, 08:42
- - Lost_Viking   Ура! Реализовали при помощи манчестера. Частот...   Feb 26 2012, 20:12
- - jcxz   И насколько это телефононезависимо?   Feb 27 2012, 02:04
- - Lost_Viking   Цитата(jcxz @ Feb 27 2012, 06:04) И наско...   Feb 29 2012, 13:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016