Pull to refresh

Comments 63

А зачем именно FSK?

Странный у него выбор.
Легче генерировать, чем сдвиг фаз. Помехоустойчивости в таком кротком кабеле достаточно для безболезненного использования.
На таком кабеле можно вообще спокойно делать фул дуплекс канал. =)
Самым простым вариантом было бы манчестерское кодирование. Я все равно не вижу смысла заморачиваться с FSK. кодирование ->Модуляция >-Демодуляция >-Декодирование. Зачем? Когда можно обойтись простым NRZI и не модулировать.
UART на 9600 спокойно потянет самый говенный DAC.
Что-то я не понимаю в этой жизни…
Сейчас мы начнем углубляться в теорему Котельникова и то что импульсы требуют бОльший спектр, но детишки балуются термометром и мигающим диодиком (хотя и Университет в Мичигане) и критиковать такое я бы не стал. Как говорится, чем бы дитя не тешилось, лишь бы лоб не разбило.
А давайте углубимся, хабр торт или не торт?
Про теорему Котельникова это я махнул, тут же ребята передают по аналоговому сигналу цифровой, а не наоборот.
Я не совсем понял почему они опираются на аналоговый сигнал и на синусоиду, видать были причины — аудио кабель не подходит для чистых цифровых сигналов, или, что вероятнее, они передают его как опорный сигнал, чтоб максимально упростить внешнее plug and pray устройство — ему нужно только играть на несущем сигнале и появляется возможность какого-то базового питания от телефона.

Совершенно согласен что манчестерское кодирование отлично подошло бы, но тут пока не встала проблема скорости передачи данных, а значит и эффективного использования спектра. Чтоб передать температуру и управляющий код диода пары бод будет за глаза.

Потом, написать программу которая смотрит на сдвиг частоты влево-вправо гораздо легче, чем детектировать и обрабатывать сдвиг фаз. Ещё это и более помехоустойчивое решение относительно амплитудной модуляции, не говоря про то что энергоэффективность будет в данном случае выше (меньше расход батареи).

Таким образом «кодирование ->Модуляция >-Демодуляция >-Декодирование» тут нужно чтоб использовать уже имеющийся девайс и писать только программу для декодирования, а не впаивать включать в цепь UARTы, а как следствие — упрощение схемы.
Аудио кабель прекрасно подходит для цифровых сигналов, хотя в природе их не существует. «Цифровой сигнал» — это сумма синусоид. Не помню точно, но уже при сложении пятка что ли синусоид правильной частоты сигнал выглядит вполне себе цифровым. Но дело не в этом. Дело в том, что этот аудио кабель они пихают в аудио разьем какого-нибудь айфона. Соответственно все, что они могут сделать — это подать некий звуковой сигнал на выход. И в этот некий звуковой сигнал надо зашить данные.
Почитать статью что ли, мож я вообще не про это.
«Цифровой сигнал» — это сумма синусоид.

image
Блин, периодический сигнал. Когда уже научусь не писать камменты на хабре, неуч же
Да, это все замечательно, но при этом значительно увеличиваются требования к ширине спектра и качеству кабеля, как и приемника/передатчика, а софт должен анализировать более широкий спектр т.е. или уменьшаем полосу пропускания --> увеличением длины импульса, или имеем мееееедленную и неэффективную систему. Этого всего можно избежать, воспользовавшись простой частотной модуляцией. Как я понимаю цель — сделать оборудование для существующего смартфона без изменений последнего --> модуляция must have. Почитайте про передачу сигналов в радио (быстрое гугление) никто не пихает туда импульсы — это неэффективно, а также жестоко и бесполезно.
Вопрос в целеполагании. Если задача связать хоть как-то, уменьшить вычислительную нагрузку, то да. Если стоит задача выжать максимум, организовать совместный доступ к среде, то подход меняется кардинально.
UFO just landed and posted this here
На таком кабеле? )))
Может что-то и получится. Но я бы не стал)
Кабель-то тут каким боком вам мешает?

Я бы больше боялся за аналоговый тракт, чтобы он там не попортил ничего.
Ну OFDM тут, пожалуй, не нужен, а вот если скорось понадобится поболее, QAM-64 или даже QAM-256 должен работать, исходники модулятора и демодулятора можно из GNU-Radio взять.
На выходе ЦАП смартфора стоит конденсатор (или другой фильтр). Попробуйте записать аудиофайл с переходом 0->1 и воспроизвести его, при этом измеряя выходное напряжение осциллографом. Получите скачёк напряжения в сам момент перехода, но через доли секунды напряжение снова вернётся в ноль.
КЭП?

Речь идет о несущей частоте 9600 Гц=)
Насколько я понял, имеется в виду частота дискретизации, а не несущая. Если дискретизации, то всё будет неплохо при попытке передачи последовательностей вида 010101, но станет плохо при попытке передать 00000 или 11111.
ШТА?!

UART c baud rate 9600 это периодический сигнал. С периодом в 104 микросекунды.
При чем тут частота дискретизации?
Это не периодический сигнал, а дискретный.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Киллер фича тут только в одном — в политике Apple в области разработки USB устройств/аксессуаров.
Передавать цифровой сигнал по аналоговой системе это из области 80-90х, еще и при наличии доступных цифровых каналов для подключения перефирии — это костыль для обхода всяких патентных других искуственных ограничений.
Телефонная линия еще имела искусственное ограничение в виде фильтрации ВЧ.
Аудиотракт тракт тоже имеет подобное ограничение.
Ну не 0.3...3.4 кГц же, как линия тональной частоты, применяемая в телефонии. ФВЧ если и есть то минимум на 22 кГц.
Разумеется, диапазон шире. Но и мегабиты все равно никак не передать.
Хотелось бы попросить автора статьи немного «причесать» перевод, смысл абзаца «Как извлечь энергию звуковых сигналов» уловить трудновато, это отвлекает от сути статьи) Спасибо!
зачем через аудиокабель? даешь wireless через микрофон!)
UFO just landed and posted this here
А теперь все дружно вспомним старый добрый ZX Spectrum и Радио-86РК :)
image
Печальная картинка, на самом деле. Столько раз было, что вставляешь наушники нокии в айфон — не работают, наоборот — жутко фонят. И ладно бы веская причина была, так нет, всего-то два контакта местами поменять…
Вы не поверите, но в Америке и «метры» с «литрами» не такие как у нас… Всегда отличаться — вот их девиз.
А еще они там ходят вниз головой :)
Не, это вы с Австралией перепутали.
«А в Европе четверьфунтовый чизбургер называется 'рояль с сыром', потому что у них метрическая система» )
Возможно, вот такой вариант подойдёт?
Упс… немножко ошибся пока рисовал, но смысл я думаю ясен.
Где этот рассказ был полтора года назад, когда я пытался понять как работает Jawbone :-) Спасибо.
А меня вопрос от новичка: а можно просто какой-то постоянный ток вывести через аудиоразьём? Не синусоиду, а чтобы там был 1 вольт, например.
Преобразовать переменный в постонный ток? Очень просто — диодный мост. Если не боитесь спалить, конечно.
То есть постоянный всё-таки нельзя без всяких диодов вывести?
Обычно после оконечного каскада усилителя ставится низкочастотный фильтр в виде конденсатора, которые обрезает частоты ниже 5гц (по разному). Одно из свойст конденсатора — пускать переменный ток и не пускать постоянный. Так что, если, чисто теоритически, Вы воспроизведете через устройство сигнал с максимальной амплитудой и частотой = 0Гц, фильтр все равно зарежет его. Если же фильтра нет, у Вас есть все шансы спалить оконечник.
… и конденсатор, иначе постоянного не получится.
Если после DAC внутри телефона стоят разделительные конденсаторы то нельзя, если их нет, то можно. Но чтобы не гадать, как там внутри реализован выход, надежней вывести синус и выпрямить, таким способом будет работать везде.
Некоторые реализации так вообще всегда имеют небольшую постоянку на выходе.
Разве на частоте 9600 эти конденсаторы окажут существенное влияние?
Не совсем понял, влияния на что и причем тут частота 9600?
Вопрос был в том, можно ли через аудиоразьем выдать постоянное напряжение.
RC фильтр.

А нам не нужно постоянное, у нас вполне себе периодический сигнал. С частотой 9600 Гц.
Это все безумно интересно, но только как оно касается текущей ветки, которая началась с вопроса пользователя Lopatoid о получении постоянного напряжения напрямую на аудиоразьеме?
Про непостоянное вроде как выше обсуждается.
Пишется про ATIS, но на картинке написано CTIA.
Эм, простите за неуместный вопрос, а зачем это надо если все смартфоны идут с USB. Или я чего-то не понимаю?
Присоединяюсь. И с bluetooth.
Единственная причина на мой взгляд это чтоб сделать универсальное устройство ios/android.
С блутусом всё понятно — питание.
Если не ошибаюсь, Apple в отличии от Google не позволяет кому угодно сделать USB аксессуары, которые могли бы обмениваться данными со своим приложением. Нужно получить одобрение и встраивать в каждое устройство их чип, который будет выполнять аутентификацию. Под личный DIY проект врядли возможно это сделать.
Это и под вполне себе коммерческий проект сделать не просто.
Только религия позволяет терпеть такое надругательство над здравым смыслом )
Про себестоимость не понимаете. Реализация через разъём наушников — грошовая, в отличие от USB host / bluetooth.
Sign up to leave a comment.