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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> usb uart с большим буфером, выход из uart с постоянной скоростью
ramil111
сообщение Feb 22 2013, 08:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Вопрос такой:

нужно от компьютера управлять с периодом 1 миллисекунда - выдавать через 1мс управляющие байты

но! комп на винде не система реального времени, и работает с интервалами 20-100мс

Задача:
- создать usb-uart преобразователь с внутренним буфером (фифо) порядка 100кбайт
- и из буфера выдавать по одному байту строго через 1 миллисекунду

--------------
Подскажите, как это наиболее просто сделать?
Go to the top of the page
 
+Quote Post
VCO
сообщение Feb 22 2013, 08:59
Сообщение #2


Voltage Control Output
******

Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436



На мой взгляд, проще, чем на USB-шном микроконтроллере с нужным количеством ОЗУ, это вряд ли на чём ещё можно сделать.


--------------------
Слово - не воробей, вылетит - не пощадит
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 22 2013, 09:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ramil111 @ Feb 22 2013, 12:44) *
Подскажите, как это наиболее просто сделать?

Прежде всего нужно спросить себя, что будет (c объектом управления), если компьютер зависнет, и в результате поток байтов прервется. А ведь это абсолютно реально. На этом фоне замирание передачи на 20мС просто незаметно, вам не кажется ? Я уже молчу о том, что для реализации надежной передачи данных USB вообще не подходит. Можете рассказать, зачем вам потребовалась такая экзотика ?
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Feb 22 2013, 09:59
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(ramil111 @ Feb 22 2013, 12:44) *
Задача:
- создать usb-uart преобразователь с внутренним буфером (фифо) порядка 100кбайт
- и из буфера выдавать по одному байту строго через 1 миллисекунду
Подскажите, как это наиболее просто сделать?

Берёте контроллер USB Cortex M3 что нить из топовых NXP или STM с 96 кб ОЗУ на борут
делает хитрое УСБ устройство. Схемотехника простая.

Если число экземпляров маленькое -- берёте NXP там перифирия проще
если важан цена и серия берёте STM.


--------------------
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 13:39
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(kovigor @ Feb 22 2013, 13:50) *
Прежде всего нужно спросить себя, что будет (c объектом управления), если компьютер зависнет, и в результате поток байтов прервется. А ведь это абсолютно реально. На этом фоне замирание передачи на 20мС просто незаметно, вам не кажется ? Я уже молчу о том, что для реализации надежной передачи данных USB вообще не подходит. Можете рассказать, зачем вам потребовалась такая экзотика ?

задача самая простая - сделать генератор сигналов на цап на частоту 50Гц 8 каналов

хотелось взять dac8800 и соединить его с компьютером,
но! мне рассказали про интервал для потока 20мс

нужен буфер порядка на 1 секунду, за которое комп успеет накачать еще данных
------------
"USB вообще не подходит" - на стандартном компе - только он и есть!
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 22 2013, 14:12
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ramil111 @ Feb 22 2013, 16:39) *
"USB вообще не подходит" - на стандартном компе - только он и есть!

Тогда эта задача не должна решаться таким образом. Берете обычный переходник USB <-> COM, и загружаете в ваш генератор данные, хоть из любой стандартной терминалки. Естественно, в генераторе должно быть достаточно памяти для хранения этих данных, что позволит не зависеть от машины и ее тайм-аутов. Для генерации сигналов такой низкой частоты вам хватит обычной микросхемки Serial EEPROM требуемого объема (на скорости 115200 Бит/Сек. секунда примерно соответствует 12 КилоБайтам) и дешевого AVR ...
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 14:19
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(kovigor @ Feb 22 2013, 18:12) *
Тогда эта задача не должна решаться таким образом. Берете обычный переходник USB <-> COM, и загружаете в ваш генератор данные, хоть из любой стандартной терминалки. Естественно, в генераторе должно быть достаточно памяти для хранения этих данных, что позволит не зависеть от машины и ее тайм-аутов. Для генерации сигналов такой низкой частоты вам хватит обычной микросхемки Serial EEPROM требуемого объема (на скорости 115200 Бит/Сек. секунда примерно соответствует 12 КилоБайтам) и дешевого AVR ...

CY7C64225
USB to UART Bridge Controller
Integrated 64-byte transmit and 64-byte receive buffer
-------------
вот как это прочитал - подумал: может есть такие контьроллеры с буфером в 100 килобайт?

было бы идеально!
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 22 2013, 14:21
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ramil111 @ Feb 22 2013, 17:19) *
было бы идеально!

Зачем ? Копеечный переходник + стандартная терминалка. На стороне генератора - обычный UART, дешевая AVRка и микросхема Serial EEPROM. Какой смысл создавать себе трудности на ровном месте ?
P.S. А зачем 100 КБайт ??? Чтобы хранить отсчеты синусоиды, внутренней памяти той же ATMega88 с головой достаточно ...
P.P.S. Я уже молчу о том, что вам вполне может хватить ЦАПа на резисторах с повторителем на ОУ:
http://easyelectronics.ru/parallelnyj-cifr...sxeme-r-2r.html
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 15:30
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(kovigor @ Feb 22 2013, 18:21) *
Зачем ? Копеечный переходник + стандартная терминалка. На стороне генератора - обычный UART, дешевая AVRка и микросхема Serial EEPROM. Какой смысл создавать себе трудности на ровном месте ?
P.S. А зачем 100 КБайт ??? Чтобы хранить отсчеты синусоиды, внутренней памяти той же ATMega88 с головой достаточно ...
P.P.S. Я уже молчу о том, что вам вполне может хватить ЦАПа на резисторах с повторителем на ОУ:
http://easyelectronics.ru/parallelnyj-cifr...sxeme-r-2r.html

1) стандартное решение - контроллер с усб интерфейсом и большой памятью, просто хотелось не делать вручную - а максимально использовать готовыt чипы.

2) р-2р - это не кошерно (любительство какое то), dac8800 (или любые dac) - значительно проще и дешевле
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 22 2013, 15:36
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(ramil111 @ Feb 22 2013, 18:30) *
1) стандартное решение - контроллер с усб интерфейсом и большой памятью, просто хотелось не делать вручную - а максимально использовать готовыt чипы.
2) р-2р - это не кошерно (любительство какое то), dac8800 (или любые dac) - значительно проще и дешевле

Вам виднее. Хотите использовать дорогую и экзотическую элементную базу ? Используйте. Смысла в этом лично я не вижу ...
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 16:32
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(kovigor @ Feb 22 2013, 19:36) *
Вам виднее. Хотите использовать дорогую и экзотическую элементную базу ? Используйте. Смысла в этом лично я не вижу ...

- чем больше стандартных компонент - тем проще в проектировании,
- цена пока не играет роли
------------------
"экзотическую элементную базу" - так я и спрашиваю - как проще сделать (не дешевле - а проще для меня).
задача в общем тривиальная, но не хочется самому руками что то городить.
тем более - что мне нужно минимум 8 каналов цап
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Feb 22 2013, 16:52
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



USB имеет режим доставки данных с заданным темпом: изохронная передача данных. 1 мс - период передачи кадров. Это требование стандарта. Если точность частоты кварца ПК устраивает, то в принципе вопросов нет.
Другое дело, сможете ли сделать функцию в соответствии со стандартом.
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 19:35
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(Дмитрий_Б @ Feb 22 2013, 20:52) *
USB имеет режим доставки данных с заданным темпом: изохронная передача данных. 1 мс - период передачи кадров. Это требование стандарта. Если точность частоты кварца ПК устраивает, то в принципе вопросов нет.
Другое дело, сможете ли сделать функцию в соответствии со стандартом.

Другое дело, сможете ли сделать функцию в соответствии со стандартом -

- уточните, пожалуйста, что Вы имеете ввиду (где проблема): программную реализацию выдачи в usb порт,

или аппаратную реализацию usb контроллера (подключенного к usb порту компьютера)?
Go to the top of the page
 
+Quote Post
kovigor
сообщение Feb 22 2013, 20:26
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Дмитрий_Б @ Feb 22 2013, 20:52) *
USB имеет режим доставки данных с заданным темпом: изохронная передача данных. 1 мс - период передачи кадров.

Еще один экскаватор в детской песочнице. Задача решается на подвернувшейся под руку АВРке, вообще без внешнего ОЗУ, за один вечер. Записывается в ПЗУ или во внутреннее ОЗУ МК массив отсчетов синусоиды и выдается на ЦАП. Фазу менять можно очень просто - сдвигая указатели в массиве. А можно и без ЦАП обойтись, достаточно использовать ШИМ и затем ФНЧ. У Атмела даже есть такой апп.ноут - генерация DTMF посредством ШИМ.
P.S. Решение на спец. МК выйдет гораздо сложнее и гораздо дороже ...
Go to the top of the page
 
+Quote Post
ramil111
сообщение Feb 22 2013, 20:55
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 21-11-12
Пользователь №: 74 496



Цитата(kovigor @ Feb 23 2013, 00:26) *
Еще один экскаватор в детской песочнице. Задача решается на подвернувшейся под руку АВРке, вообще без внешнего ОЗУ, за один вечер. Записывается в ПЗУ или во внутреннее ОЗУ МК массив отсчетов синусоиды и выдается на ЦАП. Фазу менять можно очень просто - сдвигая указатели в массиве. А можно и без ЦАП обойтись, достаточно использовать ШИМ и затем ФНЧ. У Атмела даже есть такой апп.ноут - генерация DTMF посредством ШИМ.
P.S. Решение на спец. МК выйдет гораздо сложнее и гораздо дороже ...

вот две штуки подсказали:

The TUSB3200A integrated circuit (1С) is a universal serial bus (USB) peripheral interface device designed specifically for applications that require isochronous data streaming.

PCM2900 texas instruments. стандартное usb audio устройство.
---------------
оба устройства работают в "Изохронные передачи (Isochronous Transfers) "
-----------------
осталось демо платы подобные найти!
----------------------------------------
вот могут FT232H или FT2232H - работать в изохронном режиме? было бы идеально!

Сообщение отредактировал ramil111 - Feb 23 2013, 10:36
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:21
Рейтинг@Mail.ru


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