Перейти к содержанию
    

Разовая работа программисту. dump потока данных (20МБ/с) на SATA HDD

Требование сохранения/выдачи потока в 20МБ/с подразумевает, что целостность потока важна.

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

С HDD куда потом данные забираются? Или пдразумевается, что HDD в PC стоит ?

Управлять этим устройством все равно как-то надо. Мне видится такой вариан: ПЛИС -> 8 бит 20MHz в 32 бита 5MHz -> 32битный порт STM32 CorteX-M4 -> USB -> PC.

Плату с CorteX-M4 можно из какого-нибудь стартеркита изпользовать, главное, чтобы у нее один 32-х разрядный порт полностью

на разъем был выведен.

USB 2.0 full speed до 480 МБит/сек обеспечивает, а увас 160 МБит/сек. Один повтор вполне поместится.

Под ПЛИС можно платку разработать, непосредственно стыкующуюся с CorteX-M4 и источником сигнала.

Изменено пользователем _basile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Управлять этим устройством все равно как-то надо. Мне видится такой вариан: ПЛИС -> 8 бит 20MHz в 32 бита 5MHz -> 32битный порт STM32 CorteX-M4 -> USB -> PC.

ПЛИС по моему лишняя. Надо поискать контроллер который сумеет поток в ДМА загнать и со встроеным USB. Но это будет сложнее чем CY7C68013A. Для него кажись даже драйверов писать не нада.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПЛИС по моему лишняя. Надо поискать контроллер который сумеет поток в ДМА загнать и со встроеным USB. Но это будет сложнее чем CY7C68013A. Для него кажись даже драйверов писать не нада.

Железо сейчас дешевле, чем поиск готовой платы с экслюзивным МК, еще компилятора под него. Плюс программные извраты на предельных скоростях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Железо сейчас дешевле, чем поиск готовой платы с экслюзивным МК, еще компилятора под него. Плюс программные извраты на предельных скоростях.

20 мегагерц - предельная скорость? Вы действительно так думете? Я просто знаю из тех контроллеров которые умеют загнать в DMA поток с парралельной шины, только блекфин, что явно из пушки по воробьям.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вот именно. И не контроллер он ни разу, а DSP. Там и ПО поди найди, и средства отладки. И стоимость покупной платы нехилая.

А Кортексов - как грязи. И ПО - хочешь свободное, хочешь ворованное - ни вапрос. А отладка и заливка - через USART.

Ну, и платку с FPGA Альтерой прилепить, которая через самопальный шнурок шьется, или тем же Кортексом.

А для STM32F4xx 5 МГц прерывания обработать - как нефиг делать.

Тут, по крайней мере, все пройдено и ясно.

Изменено пользователем _basile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

isochronous - пакеты могут теряться.
Из-за помех? На bulk помехи не действуют? Вы реально видели такую помеховую обстановку, когда это происходит?

Если всё-таки помеховая обстановка так ужасна и вы надеетесь на ретрансмиссии bulk, то что будет со скоростью и как будете бороться с переполнением буфера?

bulk - быстрее в 2 раза чем isochronous

За счёт чего?

А если в этот-же хаб воткнули другое устройство с хорошим потоком данных, что будет со скоростью bulk? А ведь изохронной передаче это будет фиолетово....

 

С HDD куда потом данные забираются? Или пдразумевается, что HDD в PC стоит ?

USB 2.0 full speed до 480 МБит/сек обеспечивает, а увас 160 МБит/сек. Один повтор вполне поместится.

Малейшая активность на данном USB-хабе (например - втыкание флешки в соседний разъём), приведёт к задержке низкоприоритетного bulk. Соответственно - нужно иметь хороший буфер чтобы скомпенсировать эту задержку и запас по скорости, чтобы потом нагнать отставание. А если вдруг ещё и какой-то другой поток через данный USB-хаб пойдёт на соседнем разъёме?

 

bulk не предназначен самой спецификацией USB-шины для обеспечения минимальной постоянной скорости потока. Забывание этого факта всегда ведёт к проблемам.

 

С HDD куда потом данные забираются? Или пдразумевается, что HDD в PC стоит ?

Управлять этим устройством все равно как-то надо. Мне видится такой вариан: ПЛИС -> 8 бит 20MHz в 32 бита 5MHz -> 32битный порт STM32 CorteX-M4 -> USB -> PC.

Зачем так сложно? Если в каждый момент времени есть передача только между двумя абонентами, то достаточно (как тут уже посоветовали) двух CY7C68013A с двумя USB-шнурками к компу - через один данные пишутся на комп, через другой выдаются. Может даже второй и не понадобится, а можно данные с компа отдавать уже как захочется по другому (Ethernet к примеру).

 

Да собственно даже - один USB-шнурок, если сделать коммутацию линий GPIF-интерфейса у CY7C68013A

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем так сложно? Если в каждый момент времени есть передача только между двумя абонентами, то достаточно (как тут уже посоветовали) двух CY7C68013A с двумя USB-шнурками к компу - через один данные пишутся на комп, через другой выдаются. Может даже второй и не понадобится, а можно данные с компа отдавать уже как захочется по другому (Ethernet к примеру).

Да собственно даже - один USB-шнурок, если сделать коммутацию линий GPIF-интерфейса у CY7C68013A

 

Да ? Я с этой CY7C68013A дел не имел. Экслюзивно как-то. А вот любой кортекс-М3/4 в связке с FPGA это дело потянет.

Да, и как же собираетесь реализовать достоверность данных в изохронном режиме на этой CY7C68013A ?

Да что там кортекс, в связке с FPGA - даже ARM-7, со своей долбанутой обработкой прерываний. Делаем в FPGA (32-х бит х N) буфер FIFO и - вперед.

А насчет bulk / изохронный, все верно. Даже в спецификации USB так и пишут: " Балк - для принтеров, сканнеров, модемов. Изохронный - для голоса, видео и т.п." Гарантированность передачи изохронный не обеспечивает, но это реализуется программно. Балк обеспечивает гарантированность передачи, как Интернет, примерно. Ага, пакет через полчаса пришел, подтверждения от хоста в течении этого времени не было - все остальные данные пропали. Тут нужен реалтайм, а не Форточки/Пингвин (я не в смысле, какая операционка будет стоять, а в смысле USB).

 

За счёт чего?

А если в этот-же хаб воткнули другое устройство с хорошим потоком данных, что будет со скоростью bulk? А ведь изохронной передаче это будет фиолетово....

 

Малейшая активность на данном USB-хабе (например - втыкание флешки в соседний разъём), приведёт к задержке низкоприоритетного bulk. Соответственно - нужно иметь хороший буфер чтобы скомпенсировать эту задержку и запас по скорости, чтобы потом нагнать отставание. А если вдруг ещё и какой-то другой поток через данный USB-хаб пойдёт на соседнем разъёме?

А если Интернет камеру воткнуть - тоже фиолетово ? Понятно, что изохронные пакеты USB пропускает с наивысшим приоритетом. Ну, так дураку закон не писан...

 

Изменено пользователем _basile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте эти технические вопросы между собой обсуждать в соответствующем разделе. А тут это уже потеряло всякий смысл.

 

В приоритете вариант реализации без обычного компьютера, тк имеет преимущества и в принципе реализуем аппаратно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В приоритете вариант реализации без обычного компьютера, тк имеет преимущества и в принципе реализуем аппаратно.

Я бы тупо набил плату NAND флешками. Связываться с винтами, головками, цилиндрами, LBA и прочей фигней, автодетект, дануегонафиг.

А на SD карточку не хотите писать?

 

Из-за помех? На bulk помехи не действуют? Вы реально видели такую помеховую обстановку, когда это происходит?

Если всё-таки помеховая обстановка так ужасна и вы надеетесь на ретрансмиссии bulk, то что будет со скоростью и как будете бороться с переполнением буфера?

Читайте доки на USB, зачем сделан изохроннй и bulk режимы. Многое станет ясно.

 

 

реализуем аппаратно.

Думаете обойтись без софта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы тупо набил плату NAND флешками. Связываться с винтами, головками, цилиндрами, LBA и прочей фигней, автодетект, дануегонафиг.

А на SD карточку не хотите писать?

Заходим на второй круг. Требуется объем 1-2ТБ. Считаем стоимость аппаратной платформы не содержащей HDD.

Закрываем тему. Все вопросы с передачей данных на комп уже обсудили. Приоритет у автономного решения из-за удобства и реализуемости.

 

Пока все вопросы упираются в отсутствие накопленного подобного опыта у embedded программистов или отсутствие свободного времени у программистов, кто решал схожие задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте эти технические вопросы между собой обсуждать в соответствующем разделе. А тут это уже потеряло всякий смысл.

 

В приоритете вариант реализации без обычного компьютера, тк имеет преимущества и в принципе реализуем аппаратно.

Аппаратно - куда? Сбрасывать - куда ?

Предварительные требования, выложите уже. Хватит уже помаленьку высирать свои требования. А то, потом, и дальше "по еврейски" действовать будем ?

 

 

Заходим на второй круг. Требуется объем 1-2ТБ. Считаем стоимость аппаратной платформы не содержащей HDD.

Закрываем тему. Все вопросы с передачей данных на комп уже обсудили. Приоритет у автономного решения из-за удобства и реализуемости.

 

Пока все вопросы упираются в отсутствие накопленного подобного опыта у embedded программистов или отсутствие свободного времени у программистов, кто решал схожие задачи.

Свободного времени у нас, однозначно нет. Ты готов взять на постоянку? Вопрос обсуждаемый.

Опыт ? Не смеши мои тапки. Чо сам-то хочешь?

Изменено пользователем _basile

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заходим на второй круг. Требуется объем 1-2ТБ.

2 ТБ это сейчас 32 мелкосхемы.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предварительные требования, выложите уже.

Читаем первое сообщение внимательней.

Вопросы и дальнейшее обсуждение в личных сообщениях форума.

Все кто обратился и оставил координаты для связи получили подробное ТЗ.

Если заинтересованы, то напишите как связаться. Тогда смогу отправить ТЗ.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно купить кит на GX чипе и такую хрень :

 

http://www.altera.com/products/ip/iup/addi...-sata-host.html

 

если ТС готов потратиться на киты и IP то можно смело макаться ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...