|
Ввод данных в компьютер., Бинарный поток. |
|
|
|
 |
Ответов
|
Sep 28 2012, 09:41
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Если не секрет, какую максимальную скорость получили?
|
|
|
|
|
Sep 28 2012, 16:13
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(andrew smirnov @ Sep 28 2012, 12:41)  Если не секрет, какую максимальную скорость получили? Цитата(SNR @ Aug 16 2012, 22:06)  ...Тестировал на домашнем компьютере, на разных скоростях (СLK от 3 до 24.5 МГц)... То есть, для данного применения достаточной была скорость обмена 4 Мбайта в секунду.
|
|
|
|
|
Sep 28 2012, 16:51
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Цитата(Konst_777 @ Sep 28 2012, 20:13)  То есть, для данного применения достаточной была скорость обмена 4 Мбайта в секунду. Интересуюсь не из праздного любопытства - стоит задача по вводу сигнала как раз со спутникового модема, но за основу взят отладочный модуль ftdi um232h. Пока темный лес - я скорее программист, чем схемотехник... Не подскажете, какую микросхемку можно использовать для преобразования из последовательного кода в параллельный на 8 бит и формировать управляющий сигнал при заполнении регистра, чтобы передать их в um232h (сдвиговый регистр и делитель частоты, так сказать, в одном флаконе)? Хотелось бы выжать из этой микросхемки максимум...
Сообщение отредактировал andrew smirnov - Sep 28 2012, 16:55
|
|
|
|
|
Sep 29 2012, 07:01
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Цитата(_pv @ Sep 29 2012, 01:40)  у ft232h есть режимы последовательного интерфейса. а если скорости до 20-30МГц то можно тупо параллельным интерфесом сэмплить и клоки и данные на максимально частоте а потом программно разбирать. Да нет, хотелось бы получить значение, близкое к теоретическому максимуму для ft232h. Да и программно разбирать клоки и данные - не лучшее занятие. После ввода сигнал еще обрабатывать программно.
|
|
|
|
|
Sep 29 2012, 08:23
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(andrew smirnov @ Sep 29 2012, 14:01)  Да нет, хотелось бы получить значение, близкое к теоретическому максимуму для ft232h. Да и программно разбирать клоки и данные - не лучшее занятие. После ввода сигнал еще обрабатывать программно. а что же это за последовательный интерфейс такой на ~300мбит? если сделать что-то вроде Код #define CLK_BIT 0x01 #define DATA_BIT 0x02
int bitCnt = 0; int b1, b2 = 0; char data[100500]; while(1){ b1 = GetByteFromFT232H(); if ((b1 & (b1 ^ b2)) & CLK_BIT){ if (b1 & DATA_BIT) data[bitCnt>>3] |= (1 << (bitCnt & 0x07)); // (1 << (7 - (bitCnt & 0x07))) если байт вносят ногами вперед. bitCnt++; } b2 = b1; } по сравнению с обработкой данных не сильно много процессорного времени займёт. хотя по скорости в режиме FT1248 или MPSSE быстрее получится. FT1248 вроде как spi slave можно заставить работать до 30МГц. в MPSSE только как мастер. Цитата Не подскажете, какую микросхемку можно использовать для преобразования из последовательного кода в параллельный на 8 бит и формировать управляющий сигнал при заполнении регистра. мелкую cpld
|
|
|
|
|
Sep 29 2012, 10:47
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Цитата(_pv @ Sep 29 2012, 12:23)  а что же это за последовательный интерфейс такой на ~300мбит? если сделать что-то вроде Код #define CLK_BIT 0x01 #define DATA_BIT 0x02
int bitCnt = 0; int b1, b2 = 0; char data[100500]; while(1){ b1 = GetByteFromFT232H(); if ((b1 & (b1 ^ b2)) & CLK_BIT){ if (b1 & DATA_BIT) data[bitCnt>>3] |= (1 << (bitCnt & 0x07)); // (1 << (7 - (bitCnt & 0x07))) если байт вносят ногами вперед. bitCnt++; } b2 = b1; } по сравнению с обработкой данных не сильно много процессорного времени займёт. хотя по скорости в режиме FT1248 или MPSSE быстрее получится. FT1248 вроде как spi slave можно заставить работать до 30МГц. в MPSSE только как мастер. мелкую cpldнужно знать частоту следования клоков, как я понял. а это величина не постоянная и заранее не известная. последовательный интерфейс на 300 мбит? есть стандарт спутниковой связи DVB-S2 - там скорость примерно 30МГц*5 (размерность модуляции - АФМ32) - т.е., за вычетом декодера (например 9/10), скорость потока составит порядка 135 МБит/с. Демодулятор выдает в последовательном виде. Перспективный стандарт DVB NS3 обеспечивает скорость передачи до 365 МБит/с. Хотелось бы быть к нему готовым  . Ну, а пока хватит и заявленных 200 МБит/с, если получится. а насчет CPLD - я думал, что простой логики должно хватить? или я не прав? вопрос только в скорострельности...
Сообщение отредактировал andrew smirnov - Sep 29 2012, 10:16
|
|
|
|
|
Sep 29 2012, 17:10
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(andrew smirnov @ Sep 29 2012, 17:47)  нужно знать частоту следования клоков, как я понял. а это величина не постоянная и заранее не известная. нет, ((b1 & (b1 ^ b2)) & CLK_BIT) выделяет положительный фронт и по нему защёлкивает данные. Цитата(andrew smirnov @ Sep 29 2012, 17:47)  Перспективный стандарт DVB NS3 обеспечивает скорость передачи до 365 МБит/с. Хотелось бы быть к нему готовым . Ну, а пока хватит и заявленных 200 МБит/с, если получится. я к тому что это, скорее всего, не cmos 3.3V на таких скоростях. и 365Мбит/с с ft232h пожалуй не получится. Цитата(andrew smirnov @ Sep 29 2012, 17:47)  а насчет CPLD - я думал, что простой логики должно хватить? или я не прав? вопрос только в скорострельности... хватит, только понадобится сдвиговый регистр, счётчик на 8, пара триггеров, может инвертор, даже такую простую логику как правило проще в одном корпусе мелкой cpld иметь. а скорострельности логики какой-нибудь LVC/AUC серии должно хватить.
|
|
|
|
|
Oct 5 2012, 07:44
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Так, просьба не пинать - схемотехника была когда-то давно в институте. Начнем с начала. Есть желание ввести сигнал (за скоростью пока не гонимся, дальше разберемся) от источника в PC через USB. Сигнал представляет собой данные в последовательном виде, непрерывные. Данные идут в сопровождении тактовой. Итого имеем две линии. Сигнал в линии представляет собой последовательность прямоугольных импульсов. Уровень "0" - где-то в районе 0 Вольт, уровень "1" - где-то 5 Вольт (вроде TTL, если я ничего не путаю). Есть отладочный модуль FTDI - FT2232H mini module (есть еще одноканальный вариант - FT232H). Сигнал и тактовая подаются по кабелю длиной до 5 метров (пока реально используем 1,5 метра). На выходе источника сигнала - прямоугольные импульсы. На выходе кабеля - импульсы теряют свою форму, дробятся. Плюс появляется "двойник" сигнала - что-то похожее на сигнал, сдвинутое по времени. Сделан вывод о необходимости согласования нагрузки на выходе линии - включили между сигнальной жилой и землей сопротивление порядка 50 Ом. Сигнал на выходе кабеля стал похож на исходный. Теперь пытаемся подключить это на вход FT2232H в режиме синхронного FIFO по следующей схеме (почти так, как советовали выше): сигнальные жилы такта и данных - на входы данных первого канал (биты 0 и 1 буфера); сигнал записи берем от встроенного генератора на 60 МГц. Землю от входных линий цепляем на землю платы. Плата по питаю в режиме Bus-powered. Ничего не получается. В схемотехнике не силен, поэтому, если кто-то может ткнуть, где почитать или просто подсказать, как подключить - помогите, пожалуйста.
|
|
|
|
|
Oct 5 2012, 09:50
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(andrew smirnov @ Oct 5 2012, 13:44)  Начнем с начала ... Теперь пытаемся подключить это на вход FT2232H в режиме синхронного FIFO по следующей схеме (почти так, как советовали выше): сигнальные жилы такта и данных - на входы данных первого канал (биты 0 и 1 буфера); сигнал записи берем от встроенного генератора на 60 МГц. Ничего не получается. самого главного - тактовую частоту приходящих данных не сказали. ft[2]232 не может в усб непрерывно передать поток 60МБайт/с. посмотрите на сигнал TXE#, он показывает когда у ft внутренний буфер закончился. поделите 60МГц пополам тогда возможно получится, при этом, частота последовательного интерфейса должна быть еще более чем в два раза меньше. либо попробуйте режим FT1248 - это как раз spi slave. до 30МГц. а по хорошему надо взять какой-нибудь быстрый сдвиговый регистр, вроде 74[F/AHC][594/595], и из пары 74ххх74 или еще одного сдвигового регистра и пары лог вентилей сделать счётчик на 8 чтобы он на один такт CLKOUT дергал WR по заполнению сдвигового регистра. ну или мелкую cpld.
|
|
|
|
|
Oct 5 2012, 10:11
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Цитата(_pv @ Oct 5 2012, 13:50)  самого главного - тактовую частоту приходящих данных не сказали. ft[2]232 не может в усб непрерывно передать поток 60МБайт/с. посмотрите на сигнал TXE#, он показывает когда у ft внутренний буфер закончился. поделите 60МГц пополам тогда возможно получится, при этом, частота последовательного интерфейса должна быть еще более чем в два раза меньше. либо попробуйте режим FT1248 - это как раз spi slave. до 30МГц. а по хорошему надо взять какой-нибудь быстрый сдвиговый регистр, вроде 74[F/AHC][594/595], и из пары 74ххх74 или еще одного сдвигового регистра и пары лог вентилей сделать счётчик на 8 чтобы он на один такт CLKOUT дергал WR по заполнению сдвигового регистра. ну или мелкую cpld. за микруху спасибо, поищем. вопрос в другом - правильно ли я подключаю (нужно ли еще где-нибудь что-нибудь навесить, емкость, например, сопротивление) с точки зрения схемотехники, чтобы заработало. а то модуль не всегда определяется системой. тактовая частота приходящих данных задается на источнике сигнала (аппаратный имитатор). скорость может быть от 32 кбит/с до 10 мбит/с. есть еще вариант на 40 мбит/с, но пока даже 1 мбит/с не получили. не могу понять, как ее подключать. в даташитах ничего не нашел...
Сообщение отредактировал andrew smirnov - Oct 5 2012, 10:12
|
|
|
|
|
Oct 5 2012, 10:35
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(andrew smirnov @ Oct 5 2012, 16:11)  вопрос в другом - правильно ли я подключаю (нужно ли еще где-нибудь что-нибудь навесить, емкость, например, сопротивление) с точки зрения схемотехники, чтобы заработало. а то модуль не всегда определяется системой. тактовая частота приходящих данных задается на источнике сигнала (аппаратный имитатор). скорость может быть от 32 кбит/с до 10 мбит/с. если это готовый модуль всё что надо там уже есть. а подключаете неправильно, нельзя в синхронном режиме гнать непрерывно поток 60МБайт/с и уж тем более таким образом: Цитата сигнал записи берем от встроенного генератора на 60 МГц для начала попробуйте в асинхронном режиме фифо, клоки последовательно интерфейса на WR, только с нужной полярностью, данные на D0, до 8 МГц должно работать. каждый бит - один байт. зы про режим FT1248 наврал, никакой это не spi slave, ему там команды еще надо в поток данных подмешивать. а режим Fast Serial Interface, хоть и slave и до 50МГц, требует старт/стоповых битов. то есть чесловеческого режима spi slave у ft232h похоже нету.
|
|
|
|
|
Oct 5 2012, 11:56
|
Группа: Новичок
Сообщений: 8
Регистрация: 28-09-12
Пользователь №: 73 719

|
Цитата(_pv @ Oct 5 2012, 14:35)  ... клоки последовательно интерфейса на WR, только с нужной полярностью ... что Вы имеете ввиду под нужной полярностью?  есть жила и земля (обмотка). Подаю клоки с жилы
|
|
|
|
|
Oct 5 2012, 13:23
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(andrew smirnov @ Oct 5 2012, 17:56)  что Вы имеете ввиду под нужной полярностью?  есть жила и земля (обмотка). Подаю клоки с жилы не электричекую, а в смысле логических уровней. в асинхронном режиме фифо, данные защелкиваются по отрицательному фронту на WR, то есть по переходу 1 -> 0. в Вашем последовательном интерфейсе они скорее всего в этот момент как раз изменяются на линии данных. то есть если не инвертировать клоки данные будут захватываться в момент перехода от одного бита к другому, что не есть хорошо.
|
|
|
|
Сообщений в этой теме
SNR Ввод данных в компьютер. Jul 19 2012, 09:15 demiurg_spb Можно наверное на чипе от ftdi придумать что-нибуд... Jul 19 2012, 09:47 SNR Смотрел в сторону ФТ245 но наверное не потянет. Jul 24 2012, 10:14  kolobok0 Цитата(SNR @ Jul 24 2012, 14:14) Смотрел ... Jul 24 2012, 10:45  iosifk Цитата(SNR @ Jul 24 2012, 14:14) Смотрел ... Jul 24 2012, 10:45   _4afc_ Цитата(iosifk @ Jul 24 2012, 14:45) а 223... Jul 24 2012, 13:03 Danis Цитата(SNR @ Jul 19 2012, 13:15) Здравств... Jul 27 2012, 10:43 SNR Вобщем пошарился по инету, подумал что проще и дос... Jul 28 2012, 17:19  iosifk Цитата(SNR @ Jul 28 2012, 21:19) Вобщем п... Jul 28 2012, 18:09   SNR Цитата(iosifk @ Jul 28 2012, 21:09) Вообщ... Jul 28 2012, 19:39 SNR Остановился на CY7C68013A. Подкорректировал для не... Aug 7 2012, 06:53 Konst_777 Цитата(SNR @ Aug 7 2012, 09:53) ...Может ... Aug 7 2012, 17:47 _pv Цитата(SNR @ Aug 7 2012, 12:53) Остановил... Aug 8 2012, 21:38 SNR Накрапал примитивную программу в Билдере 6. Читаю ... Aug 8 2012, 14:38 Konst_777 Вам нужно получить определенный объем данных (како... Aug 8 2012, 19:41 SNR Спасибо за ответы. Поток от устройства (спутниковы... Aug 9 2012, 06:37 Konst_777 Цитата(SNR @ Aug 9 2012, 09:37) ...А вот ... Aug 9 2012, 10:34 SNR Сделал в отдельном потоке, считываю по вишеописано... Aug 10 2012, 10:06 Konst_777 Цитата(SNR @ Aug 10 2012, 13:06) ...Иногд... Aug 10 2012, 13:11 SNR Большое спасибо Вам Konst_777 за разьяснение. Для ... Aug 12 2012, 20:33 Konst_777 Цитата(SNR @ Aug 12 2012, 23:33) ...А вот... Aug 13 2012, 15:08 SNR Буду разбираться с этими функциями. Нет это хобби,... Aug 13 2012, 16:54 Konst_777 Цитата(SNR @ Aug 13 2012, 19:54) ...Нет э... Aug 13 2012, 19:56 SNR Наборы от китайцев с ебея где-то в дороге едут. Бр... Aug 13 2012, 21:04 Konst_777 Цитата(SNR @ Aug 14 2012, 00:04) ...Пока ... Aug 14 2012, 05:57 SNR Полной схемы на CY7С68013A+EP1C6T144 к сожалению н... Aug 14 2012, 07:29 Konst_777 Цитата(SNR @ Aug 14 2012, 10:29) Полной с... Aug 14 2012, 07:53 SNR Вот весь проект: Aug 14 2012, 08:31 Konst_777 Цитата(SNR @ Aug 14 2012, 11:31) Вот весь... Aug 15 2012, 05:45 SNR Итак, результаты тестов на ноутбуке на работе: ант... Aug 15 2012, 08:13 SNR Дома более пристально изучил принятую структуру и ... Aug 15 2012, 19:23 Konst_777 Цитата(SNR @ Aug 15 2012, 22:23) Дома бол... Aug 16 2012, 07:47 SNR Спасибо за подсказку. Теперь все заработало.
Тести... Aug 16 2012, 19:06 Konst_777 Цитата(SNR @ Aug 16 2012, 22:06) Попутно ... Aug 16 2012, 20:20 SNR День добрый!
Вчера до поздней ночи тестил - на... Aug 17 2012, 08:37 Konst_777 Цитата(SNR @ Aug 17 2012, 11:37) ... при ... Aug 17 2012, 09:53 SNR Все доделал, теперь работает отлично. Большое спас... Aug 17 2012, 19:34 SNR В составе модема все работает отлично. Вот получен... Aug 28 2012, 20:58 _pv Цитата(SNR @ Aug 29 2012, 02:58) В состав... Aug 28 2012, 22:38 SNR Ответил в личку. Aug 30 2012, 10:13              andrew smirnov Цитата(_pv @ Oct 5 2012, 17:23) не электр... Oct 6 2012, 07:24
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|