Здравствуйте, гость ( Вход | Регистрация )

> а в виндуз це кто-нить понимает?
 Вася
сообщение 2.12.2011, 14:01
Сообщение #1


Киса
есть дивайс, который с микрофона пишет сигнал и отдает в усб(ну грубо говоря 24 бита 130 кГц два канала, лучше 4), есть виндуз це машинка, которая должна засосать в себя этот сигнал по усб, но часть потока куда-то иногда деваицца, а если в простовиндуз, то не деваицца. Надо быстро понять куда-чего. Кто-нить понимает в вапросе напредмет посмотреть-поговорить по делу?

все разложено на столе и спаяно проводами, все байты разложены на экране smile.gif


--------------------
это мнение является частным и никоим образом не служит руководством к действию
Перейти в начало страницы
 
+Цитировать сообщение
3 страниц V   1 2 3 >  
Начать новую тему
Ответов (1 - 19)
 Imitator
сообщение 2.12.2011, 14:10
Сообщение #2


Продвинутый
Чисто интуитивно, в цевиндовс мелкий буффер. И надо самому рисовать программку по приему сигнала. Начиная прямо с аппаратной части на уровне обработки события при появлении данных. А быстродействия может и не хватить


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 Lexeus
сообщение 2.12.2011, 14:40
Сообщение #3


Живет здесь. Катается там.
Винуз це, похоже, не может этот поток схавать. 130кГц*24 бита*2 канала = 780 килобайт/сек. Многовато. Частоту дискретизации можно снаружи уменьшить, для проверки? Почему аппаратано нельзя поджать в девайсе? Каким образом в це забирается поток?
Перейти в начало страницы
 
+Цитировать сообщение
 Вася
сообщение 2.12.2011, 14:43
Сообщение #4


Киса
можно и уменьшить... у це там стоит двуядреный гигагерцовый или полуторагигагерцовый процессор. а вот поджать в девайсе никак - там ничо нет, чем жать...


--------------------
это мнение является частным и никоим образом не служит руководством к действию
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 14:50
Сообщение #5


Живет здесь
В давние времена делал я USB 1 driver для windows-95, и поддержку USB с довольно низкого уровня вручную в девайсе. Насколько я помню, порядка 700 KB/s получалось тогда для bulk transfer с разумного размера буферами.

Речь о USB1? (там всего 11Mbit/s) Bulk или isochronous transfer? Драйвер самописный? А в девайсе как реализовано?

Или это типа виртуальный компорт через конвертер типа от FTDI? (в последнем случае проблем могут быть много в разных местах, начиная от буферизации в девайсе, в сопряжении с кривым чипом).

USB-analyzer есть?

Но умного я все равно вряд ли что скажу smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 14:59
Сообщение #6


Живет здесь
Ну есс-но из девайса вместо аудиоданных гораздо полезнее счетчик передавать типа 1,2,3..., это позволит понять, что/как пропадает, и навести на доп. мысли.
Перейти в начало страницы
 
+Цитировать сообщение
 Вася
сообщение 2.12.2011, 15:00
Сообщение #7


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

а так да FTDI контроллер, к нему библиотека под це. Причем все работает почти всегда smile.gif Проблемы начинаются если ЦЕ начинать теребить... типа кнопок понажимать пока он сигнал принимает, или тачскрином повозить smile.gif Надо где-то что-то запретить нафик в этом це.

Что пропадает понятно - кадры пропадают. Случайным образом... Ну представь себе что передаешь синус, а на выходе из него куски пропали smile.gif Глазом видно, грубо говоря. Пропадает мало и случайно, типа меньше 1% данных.


--------------------
это мнение является частным и никоим образом не служит руководством к действию
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:04
Сообщение #8


Живет здесь
Если два мегабайта -- то это USB2 или круче. Правда чтоли?

Про це ничего не скажу; но в windows обычном можно задавать размер буферов для компорта.

Размер пропадающих кусков может навести на мысли, пропадает буфер в устройстве, в USB/драйвере на нижнем уровне, или на верхнем уровне в программени.
Перейти в начало страницы
 
+Цитировать сообщение
 Imitator
сообщение 2.12.2011, 15:07
Сообщение #9


Продвинутый
Я п сделал. что. Я б написал две программулины unix-style. Одна тупо занимается приемом данных из порта и передает их rуда угодно. Хоть в pid-file, хоть по сети на localhost, хоть куда. Это запускается в виде службы с хорошим таким приоритетом. Вторая софтина смотрит/слушает некий порт на локалхосте или смотрит этот pid-file (ксати, а в винде есть такая фигня?) и делает их этого выводы. А еще лучше, чтобы вторая софтина смотрела по сети на этот промежуточный цевиндовс. Но один фик может не хватить скорострельности - сеть тоже кушает процессорное время, причем в зависимости от глючности железа и драйверов весьма сильно может это делать


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:07
Сообщение #10


Живет здесь
Еще всякие flow control надо повключать, не знаю или не помню, насколько они криво сделаны в этих драйверах.
Перейти в начало страницы
 
+Цитировать сообщение
 Imitator
сообщение 2.12.2011, 15:08
Сообщение #11


Продвинутый
Цитата(Вася @ 2.12.2011, 16:00) *
Случайным образом... Ну представь себе что передаешь синус, а на выходе из него куски пропали smile.gif Глазом видно, грубо говоря. Пропадает мало и случайно, типа меньше 1% данных.

Преобразование Фурье натрави - пропажи кадра никто не заметит


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 Imitator
сообщение 2.12.2011, 15:09
Сообщение #12


Продвинутый
Цитата(DU @ 2.12.2011, 16:07) *
Еще всякие flow control надо повключать, не знаю или не помню, насколько они криво сделаны в этих драйверах.

Этого никто не знает.


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:11
Сообщение #13


Живет здесь
Не, не, это должен знать тот, кто этим занимается. Ну по крайней мере работает оно вообще или нет выясняется быстро, я думаю что работает (и соотв-но надо аккуратно проследить, что по всей цепочке используется нормально).
Перейти в начало страницы
 
+Цитировать сообщение
 Вася
сообщение 2.12.2011, 15:12
Сообщение #14


Киса
Цитата(Imitator @ 2.12.2011, 15:08) *
Преобразование Фурье натрави - пропажи кадра никто не заметит

гы... именно для фурье это все и делается, но когда у тя 120дБ динамического диапазитива в целях и задачах, то пропажа кадра тебе такой уровень нелинейных помех принесет в фурье, что пол диапазитива можно смело вынести на помойку... Именно так и отловили - прет нелинейщина, начали разбираться откуда - оказалось пропуски в сигнале.


--------------------
это мнение является частным и никоим образом не служит руководством к действию
Перейти в начало страницы
 
+Цитировать сообщение
 Imitator
сообщение 2.12.2011, 15:15
Сообщение #15


Продвинутый
Цитата(Вася @ 2.12.2011, 16:12) *
гы... именно для фурье это все и делается, но когда у тя 120дБ динамического диапазитива в целях и задачах, то пропажа кадра тебе такой уровень нелинейных помех принесет в фурье, что пол диапазитива можно смело вынести на помойку... Именно так и отловили - прет нелинейщина, начали разбираться откуда - оказалось пропуски в сигнале.

Если пропусков немного, то можно забить. Скажем, три процента точно можно забить. Всплески и пропажи сигнала просто устанавливаются в ближайший слева или справа или в среднее между ними, или в среднее по трем, пяти, семи точкам. Могу еще пачку вариантов сглаживания данных предложить перед тем как отдавать это всё Фурье

Я пропуски сигнала проходил, весьма похожие. Так и решал вопросы. На результат влияли только в смысле улучшения точности измерений


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:16
Сообщение #16


Живет здесь
Потому что все подобное надо начинать не с нелинейщины, а с отладки транспорта, и передачи счетчика для проверки smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
 Imitator
сообщение 2.12.2011, 15:22
Сообщение #17


Продвинутый
Цитата(DU @ 2.12.2011, 16:16) *
Потому что все подобное надо начинать не с нелинейщины, а с отладки транспорта, и передачи счетчика для проверки smile.gif

Начинать это надо с портирования всего с цевиндовс на QNX. И не будет ни пропаж, ни нелинойстей. И будет работа в реальном времени. Цевиндовс - это для страдающих начальной стадией геморроя


--------------------
Старые мосты могут еще пригодиться... Сжигайте лучше старые грабли.
Перейти в начало страницы
 
+Цитировать сообщение
 Вася
сообщение 2.12.2011, 15:26
Сообщение #18


Киса
Цитата(DU @ 2.12.2011, 15:04) *
Если два мегабайта -- то это USB2 или круче. Правда чтоли?

FT2232HL припаяли.

и в нормальном виндусе это все работает с ба-а-альшим запасом.... вопрос чтобы заработало на маленьком виндусе smile.gif


--------------------
это мнение является частным и никоим образом не служит руководством к действию
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:26
Сообщение #19


Живет здесь
Цитата(Imitator @ 2.12.2011, 15:22) *
Начинать это надо с портирования всего с цевиндовс на QNX. И не будет ни пропаж, ни нелинойстей. И будет работа в реальном времени. Цевиндовс - это для страдающих начальной стадией геморроя


Это все утопии и мечты. А отлаживать сначала транспортный уровень, а потом заниматься обработкой того, что по нему ходит -- единственная разумная методология безотносительно платформ и инструментов.
Перейти в начало страницы
 
+Цитировать сообщение
 DU
сообщение 2.12.2011, 15:32
Сообщение #20


Живет здесь
Цитата(Вася @ 2.12.2011, 15:26) *
FT2232HL припаяли.


Крута. До чего дошел прогресс smile.gif

И со стороны устройства все корректно с flow control? Я к тому, что вполне верю, что скажем имеет место такое:
- ce подзатыкается по какой-то своей причине (замучали его чем-то, переключается, хз что еще, не обязан smile.gif )
- ce соответственно не принимает данные по USB
- ftdi соотв-но не передает данные, буферизует в своем 4KB буфере.
- буфер заполняется, ftdi выставляет CTS (или как его там называют), что типа "девайс, не надо в меня лить данные больше, я полон".
- а real-time данные с ADC прут, жизнь не остановишь.
- как дальше девайс себя ведет, он это диагностирует хоть входом в вечный цикл с ярким миганием светодиода с кодом ошибки? smile.gif
Перейти в начало страницы
 
+Цитировать сообщение

3 страниц V   1 2 3 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 28.8.2026, 8:00