20.04.2012, Процессорный модуль для Альпаки-3
Korogodin (обсуждение | вклад) (→VAR-SOM-AM35) |
Korogodin (обсуждение | вклад) |
||
(не показаны 28 промежуточных версий 2 участников) | |||
Строка 2: | Строка 2: | ||
[[File:20120420_product_ecobase_norm.jpg|center]] | [[File:20120420_product_ecobase_norm.jpg|center]] | ||
</summary> | </summary> | ||
+ | {{TOCright}} | ||
− | Что нам это дает? | + | == Что нам это дает? == |
− | * Значительно '''упрощается разводка платы'''. По словам [[Болденков|Жени]] развести шину между процессором и памятью - основная сложность. Мы покупаем готовый процессорный модуль и ваяем к нему | + | * Значительно '''упрощается разводка платы'''. По словам [[Болденков|Жени]] развести шину между процессором и памятью - основная сложность. Мы покупаем готовый процессорный модуль и ваяем к нему baseboard, включающий ПЛИС и интерфейс с фронтендом. |
− | * При изменении задач мы всегда сможем сделать '''другой | + | * При изменении задач мы всегда сможем сделать '''другой baseboard''': с большим числом ПЛИСин, дополнительными ЦАПами и т.д. При этом весь базовый софт останется отработанным, не нужно будет паять бОльшую часть железа и т.д. |
* Вместе с готовым процессорным модулем мы получим '''готовый bsp, драйвера, сообщество пользователей'''. По-максимуму сократим системное программирование. | * Вместе с готовым процессорным модулем мы получим '''готовый bsp, драйвера, сообщество пользователей'''. По-максимуму сократим системное программирование. | ||
− | * '''Стоимость''' процессорных модулей сопоставима со стоимостью компонентов для | + | * '''Стоимость''' процессорных модулей сопоставима со стоимостью компонентов для их сборки. |
* Мы сможем '''начать работу''' над новой Альпакой хоть с завтрашнего дня. | * Мы сможем '''начать работу''' над новой Альпакой хоть с завтрашнего дня. | ||
Строка 19: | Строка 20: | ||
− | Слова для гугла: ''процессорный модуль'', ''Computer-on-module (CoM)'', ''System-on-module (SoM), ''CPU Board'', ''CPU-on-board'' | + | Слова для гугла: ''процессорный модуль'', ''Computer-on-module (CoM)'', ''System-on-module (SoM)'', ''CPU Board'', ''CPU-on-board'' |
== Критерии == | == Критерии == | ||
Строка 32: | Строка 33: | ||
== Претенденты == | == Претенденты == | ||
− | Гуглил долго и много. Выкладываю сухой остаток. | + | Гуглил долго и много. Выкладываю сухой остаток. |
− | === | + | === [http://variscite.ru/company/ Variscite] === |
− | Израильская контора, собирающая SoM. Есть [http://variscite.ru/ | + | Как ни странно, модули, представленные в статье, кажутся самыми интересными. Израильская контора, собирающая SoM. Есть представительство у нас, [http://wiki.variscite.ru wiki]. |
+ | |||
+ | Цены [http://www.efind.ru/icsearch/?search=variscite тут]. | ||
+ | |||
+ | [http://wiki.variscite.ru/doku.php?id=public:som-comparison Сводная таблица] по модулям. | ||
==== [http://variscite.ru/products/som/var-som-am35 VAR-SOM-AM35] ==== | ==== [http://variscite.ru/products/som/var-som-am35 VAR-SOM-AM35] ==== | ||
+ | Достаточная для нас функциональность, в розницу цена порядка $120. Под 3517 есть [http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/TiAm3517Evm готовый bsp] QNX'а. | ||
+ | |||
+ | ==== [http://variscite.ru/products/som/var-som-om37 VAR-SOM-ОM37] ==== | ||
+ | |||
+ | Гигагерцовый. | ||
+ | |||
+ | ==== [http://variscite.ru/products/som/var-som-om44 VAR-SOM-OM44] ==== | ||
+ | |||
+ | Два ядра, полтора гигагерца. Позиционируется как самый мощный SoM, есть [http://habrahabr.ru/post/140925/ статья] на Хабре. [[Шатилов|Саше]] для 27-компонентного комплексирования =) | ||
+ | |||
+ | === [http://www.mentorel.ru/ Mentor Electronics] === | ||
+ | |||
+ | Отечественная контора. Полуподвальное производство, судя по всему. Зато дешево) [http://www.mentorel.ru/index.php/about/36 Старт-кит стоит] 10.5 т.р. | ||
+ | |||
+ | Нас интересует '''BlueShark'''. На [http://www.mentorel.ru/index.php/products/som/blueshark-omap3 сайте], в [http://wiki.mentorel.ru/doku.php?id=wiki:blueshark вики]. Судя по всему, это переделка знаменитой платформы [http://ru.wikipedia.org/wiki/Beagle_board BeagleBoard] под SO-DIMM формат. По Beagle Board куча информации, есть bsp QNX'a. | ||
+ | |||
+ | === Terraelectoronica === | ||
+ | |||
+ | У них тоже есть образчики разные: http://www.terraelectronica.ru/catalog.php?ID=1177&Search=1&Text=som&Gde=2&PageS=1 | ||
+ | |||
+ | === За бугром === | ||
+ | |||
+ | Есть куча других няшек, но их надо везти: | ||
+ | * http://www.toshiba-mikrocontroller.de/ | ||
+ | * http://www.secoqseven.com/en/itemlist/arm-modules/ (их возит www.eltech.spb.ru) | ||
+ | * http://emtrion.de/dimm_mx53_en.php | ||
+ | * http://www.voipac.com/#X25-DMM-265 | ||
+ | |||
+ | |||
+ | Кстати, вот список модулей, с которыми не должно быть вообще никаких проблем с QNX: http://service.swd.ru/sup_hardware/boards.php?cat_id=1 | ||
+ | |||
+ | Есть список модулей на базе TI: http://processors.wiki.ti.com/index.php/ARM_MPU_SOM/SBC | ||
+ | |||
+ | == Выводы и предложения == | ||
+ | eugene: | ||
+ | |||
+ | Похоже, среди процессорных модулей того, что нам идеально подходит, не найти. Эти модули, как правило, мультимедийно-ориентированные. Как результат, туда закладывают большое количество периферийных устройств, таких, как возможность воспроизведения видео, звука, подключения графических экранов и прочие подобные вещи. Нам всё это не нужно. | ||
+ | |||
+ | С другой стороны, в большинстве модулей вообще отстутствует внешняя шина, на которую можно повесить коррелятор. В приложениях, на которые ориентированы данные модули, шина просто не нужна. Они так и создаются - чтобы поменьше было всяких шин, сразу подключаем внешние устройства и всё. | ||
+ | |||
+ | Приведённые выше модули - это больше похоже на исключение. Но и здесь шина всего лишь 16 разрядная. Конечно, это решаемо. Со стороны процессора разницы большой вообще не будет, со стороны ПЛИС - надо будет немного поковыряться. Возникнут новые эффекты, например, первую половину слова прочитали, а вторая успела измениться. В общем, минусы есть. | ||
+ | |||
+ | Среди достоинств - мощные процессоры (правда, опять же, мультимедийно-ориентированные), уже решена куча схемотехнических проблем, есть готовые BSP и дёшево. | ||
+ | |||
+ | Ничего более подходящего за приемлимые деньги в приемлемом исполнении пока не проглядывается. Поэтому предлагаю не тратить время и действовать. | ||
+ | |||
+ | Не ставить на данном этапе амбициозных задач, просто сделать базовый модуль, которого у нас на данный момент нет, и из-за чего стоят многие проекты. | ||
+ | Состав примерно такой: | ||
+ | # процессорный модуль [http://variscite.ru/products/som/var-som-am35 VAR-SOM-AM35]; | ||
+ | # ПЛИС Xilinx Spartan6 XC6SLX150T - одна! (корпус FG484, меньше, чем в Альпаке); | ||
+ | # посадочное место под внешний фронт-энд (на латунных стойках); | ||
+ | # пару каналов АЦП (желательно в одном корпусе с последовательным интерфейсом, например, [http://www.analog.com/en/analog-to-digital-converters/ad-converters/ad9633/products/product.html AD9633] - 12 р, 105 MSPS, LVDS-Ser); | ||
+ | # два канала ЦАП (тоже желательно с последовательным интерфейсом, но их, похоже, не бывает); | ||
+ | # питание 12 В (с возможностью работы от автомобильной сети или Wall-cube); | ||
+ | # каналы ввода внешних сигналов (с регулируемым усилением и порогом - много раз было нужно); | ||
+ | # PPS I/O; | ||
+ | # RTC; | ||
+ | # RS232; | ||
+ | # USB-serial; | ||
+ | # Ethernet (на халяву - нужен только разъём, а дрова в BSP уже есть); | ||
+ | # SD/MMC (для прошивок вместо флешки); | ||
+ | # GPIO (куда же без них). | ||
+ | |||
+ | Итак, повторюсь, моё предложение - сделать лишь базовый приёмник. Если подобрать АЦП/ЦАП c последовательным интерфейсом, количество слоёв (а также цена и сроки) сократиться. Предлагаю на ёлку себя на данном этапе не загонять! Решётку всё равно на этом не сделать. В общем - минимально возможный набор. Такая плата будет заметно проще в проектировании и производстве, чем Альпака. | ||
+ | |||
+ | Да, еще, - минимум 3 экземпляра! | ||
+ | |||
+ | Спорить можно долго, пора действовать. Если у кого есть предложения по сути, другой модуль, например, вносите сейчас. | ||
+ | [[Категория:Альпака-3]] | ||
{{wl-publish: 2012-04-20 14:02:42 +0400 | Korogodin }} | {{wl-publish: 2012-04-20 14:02:42 +0400 | Korogodin }} |
Текущая версия на 12:35, 27 мая 2013
После прочтения статьи Применение процессорных модулей в приборостроении возникла идея использовать процессорный модуль в дизайне Альпаки-3.
|
[править] Что нам это дает?
- Значительно упрощается разводка платы. По словам Жени развести шину между процессором и памятью - основная сложность. Мы покупаем готовый процессорный модуль и ваяем к нему baseboard, включающий ПЛИС и интерфейс с фронтендом.
- При изменении задач мы всегда сможем сделать другой baseboard: с большим числом ПЛИСин, дополнительными ЦАПами и т.д. При этом весь базовый софт останется отработанным, не нужно будет паять бОльшую часть железа и т.д.
- Вместе с готовым процессорным модулем мы получим готовый bsp, драйвера, сообщество пользователей. По-максимуму сократим системное программирование.
- Стоимость процессорных модулей сопоставима со стоимостью компонентов для их сборки.
- Мы сможем начать работу над новой Альпакой хоть с завтрашнего дня.
Слова для гугла: процессорный модуль, Computer-on-module (CoM), System-on-module (SoM), CPU Board, CPU-on-board
[править] Критерии
Гугл подсказывает, что процессорных модулей производится великое множество. Мне бы хотелось видеть модуль:
- Включающий CPU с float point (желательно ARM), RAM, RTC, flash
- Удобный коннектор к baseboard, возможность нормально заводить прерывания и внешние данные (шина данных/адреса на коннекторе?)
- Поддержку QNX Non Commercial из коробки, нормальное сообщество пользователей и разработчиков (лучше русскоязычное)
- Приемлемую цену за модуль и отладочную baseboard
- Долговременной поддержкой, возможностью купить
[править] Претенденты
Гуглил долго и много. Выкладываю сухой остаток.
[править] Variscite
Как ни странно, модули, представленные в статье, кажутся самыми интересными. Израильская контора, собирающая SoM. Есть представительство у нас, wiki.
Цены тут.
Сводная таблица по модулям.
[править] VAR-SOM-AM35
Достаточная для нас функциональность, в розницу цена порядка $120. Под 3517 есть готовый bsp QNX'а.
[править] VAR-SOM-ОM37
Гигагерцовый.
[править] VAR-SOM-OM44
Два ядра, полтора гигагерца. Позиционируется как самый мощный SoM, есть статья на Хабре. Саше для 27-компонентного комплексирования =)
[править] Mentor Electronics
Отечественная контора. Полуподвальное производство, судя по всему. Зато дешево) Старт-кит стоит 10.5 т.р.
Нас интересует BlueShark. На сайте, в вики. Судя по всему, это переделка знаменитой платформы BeagleBoard под SO-DIMM формат. По Beagle Board куча информации, есть bsp QNX'a.
[править] Terraelectoronica
У них тоже есть образчики разные: http://www.terraelectronica.ru/catalog.php?ID=1177&Search=1&Text=som&Gde=2&PageS=1
[править] За бугром
Есть куча других няшек, но их надо везти:
- http://www.toshiba-mikrocontroller.de/
- http://www.secoqseven.com/en/itemlist/arm-modules/ (их возит www.eltech.spb.ru)
- http://emtrion.de/dimm_mx53_en.php
- http://www.voipac.com/#X25-DMM-265
Кстати, вот список модулей, с которыми не должно быть вообще никаких проблем с QNX: http://service.swd.ru/sup_hardware/boards.php?cat_id=1
Есть список модулей на базе TI: http://processors.wiki.ti.com/index.php/ARM_MPU_SOM/SBC
[править] Выводы и предложения
eugene:
Похоже, среди процессорных модулей того, что нам идеально подходит, не найти. Эти модули, как правило, мультимедийно-ориентированные. Как результат, туда закладывают большое количество периферийных устройств, таких, как возможность воспроизведения видео, звука, подключения графических экранов и прочие подобные вещи. Нам всё это не нужно.
С другой стороны, в большинстве модулей вообще отстутствует внешняя шина, на которую можно повесить коррелятор. В приложениях, на которые ориентированы данные модули, шина просто не нужна. Они так и создаются - чтобы поменьше было всяких шин, сразу подключаем внешние устройства и всё.
Приведённые выше модули - это больше похоже на исключение. Но и здесь шина всего лишь 16 разрядная. Конечно, это решаемо. Со стороны процессора разницы большой вообще не будет, со стороны ПЛИС - надо будет немного поковыряться. Возникнут новые эффекты, например, первую половину слова прочитали, а вторая успела измениться. В общем, минусы есть.
Среди достоинств - мощные процессоры (правда, опять же, мультимедийно-ориентированные), уже решена куча схемотехнических проблем, есть готовые BSP и дёшево.
Ничего более подходящего за приемлимые деньги в приемлемом исполнении пока не проглядывается. Поэтому предлагаю не тратить время и действовать.
Не ставить на данном этапе амбициозных задач, просто сделать базовый модуль, которого у нас на данный момент нет, и из-за чего стоят многие проекты. Состав примерно такой:
- процессорный модуль VAR-SOM-AM35;
- ПЛИС Xilinx Spartan6 XC6SLX150T - одна! (корпус FG484, меньше, чем в Альпаке);
- посадочное место под внешний фронт-энд (на латунных стойках);
- пару каналов АЦП (желательно в одном корпусе с последовательным интерфейсом, например, AD9633 - 12 р, 105 MSPS, LVDS-Ser);
- два канала ЦАП (тоже желательно с последовательным интерфейсом, но их, похоже, не бывает);
- питание 12 В (с возможностью работы от автомобильной сети или Wall-cube);
- каналы ввода внешних сигналов (с регулируемым усилением и порогом - много раз было нужно);
- PPS I/O;
- RTC;
- RS232;
- USB-serial;
- Ethernet (на халяву - нужен только разъём, а дрова в BSP уже есть);
- SD/MMC (для прошивок вместо флешки);
- GPIO (куда же без них).
Итак, повторюсь, моё предложение - сделать лишь базовый приёмник. Если подобрать АЦП/ЦАП c последовательным интерфейсом, количество слоёв (а также цена и сроки) сократиться. Предлагаю на ёлку себя на данном этапе не загонять! Решётку всё равно на этом не сделать. В общем - минимально возможный набор. Такая плата будет заметно проще в проектировании и производстве, чем Альпака.
Да, еще, - минимум 3 экземпляра!
Спорить можно долго, пора действовать. Если у кого есть предложения по сути, другой модуль, например, вносите сейчас.
[ Хронологический вид ]Комментарии
Да, это было бы просто, за 4 т.р. решить кучу проблем...
Как бы сказать - я тоже ничего подходящего не нашёл! Понимаешь, всё это нам не подходит. Все эти отладочные платы имеют кучу различной периферии - аудио, видео, экраны сенсорные и прочее, что нам не нужно.
А что нам нужно? Сделать приёмник. А основная часть приёмника - это не процессор, а блок цифровой обработки, который мы будем делать на ПЛИС. Для общения с ПЛИС нужна шина. Мне бы сейчас хотелось бы видеть PCI-Express, т.к. это многое бы упростило, но если параллельную шину - то 32 разрядную.
Из всех готовых модулей вообще мало в каких есть шина в принципе. Среди тех, что приведены в заметке, внешная шина есть у плат VAR-SOM-AM35 и VAR-SOM-ОM37. У топового модуля Varicate внешней шины уже нет - они там напихали ещё больше периферии, на шину места не осталось, а обычно она никому не нужна, всем нужно навешивать много периферии. Эти модули - они, как готовые навигационные приёмники, продукт почти для конечного потребителя. Они мультимедийно-ориентированные.
Так вот, в перечисленных платах шина данных нам не подходит. Там 16 разрядов данных и 10 разрядов адреса. 10 разрядов адреса пережить можно (в Альпаке была 21 линия). Но вот 16 линий данных - это уже через чур. У нас внутренние регистры - принципиально 32-разрядные. И процессор 32-разрядный. Значит, чтобы преодолеть "бутылочное горлышко" из 16 разрядов, придётся поработать.
В принципе, это возможно, но стоит ли на это закладываться?
Отсутствие PCI-E и 16-разрядные данные меня тоже огорчили. Но не обязательно же вешать ПЛИС на шину процессорную. Помимо PCI-E есть и другие интерфейсы. SPI, I2C, Ethernet. Всякие electronix да хабры говорят, что их можно вместо PCI-E использовать. Но так ли это - тебе виднее.
Все шины - они для обмена данными. Но ты предлагаешь общаться с коррелятором по SPI?!
Судя по сарказму, скорости по SPI не хватит... I2C, я так понимаю, ещё медленнее. Нужен PCI-E и только он (акромя полноценной шины данных)? Буду тогда искать PCI-E платы. Обойдемся без SO-DIMM, воткнем в PCI-E слот.
Или как насчет LVDS? В BlueShark есть.
SPI и I2C - последовательные шины, не предназначенные для применений, подобных нашим. Даже если не принимать во внимание полосу, с ними просто сложно будет работать.
Про полноценные - нет, не только PCI-Express. Откуда PCI-Express возник? Аппаратная поддержка PCI-Express есть и в MPC8640 с одной стороны, и в Xilinx Xpartan6 с другой. Т.е. не нужно городить ничего лишнего. А чем интересна PCI-Express вообще, почему не обычная параллельная шина? Меньше проводов. Для PCI-Express 1x достаточно развести две дифференциальные пары - четыре провода. А параллельная шина - в Альпаке сейчас шина - это 32+21+4=57 проводов. Больше проводов - это и больше сложностей при разводке, больше шансов накосячить. И потом, дифференциальные линии позволяют "проще" гонять высокоскоростные потоки данных, для обычных линий больше шансов нарваться на звон фронтов и прочие прелести жизни. Но PCI-Express - не единственная подобная шина, просто это стандарт сегодня. Есть в Spartan6 ещё выскоскоростной последовательный приёмо-передатчик GTP, из которого, в частности, можно PCI-Express, Ethernet, DisplayPort и другие интерфейсы сделать - но такой штуки нет на стороне процессора.
На счёт LVDS - это слишком общее название, электрический интерфейс на физическом уровне. PCI-Express - это тоже LVDS, как и USB, HDMI и куча всёго другого. Нам нужена именно процессорная шина. Тут надо конкретнее смотреть. Я посмотрел - там они LVDS-ом называют интерфейс с LCD.
А что они подразумевают под Ethernet?
Ну как - Ethernet и подразумевают. Практически у всех 10/100 МБит/с. На мой взгляд, очень полезная фича для нашего макета.
К сожалению, сколько я не смотрел в сети, на данный момент я не нашёл подходящего нам готового модуля. Они все ориентированны на другое применение.
PS Был там ещё вариант с PC104 - это вообще 8-разрядная шина ISA из IBM PC/XT 1981 года. На это закладываться - уже совсем ни к чему.
Картинка с профитом (Profit -> profit -> profit) позабавила. Этот подход больше подходит для экспериментальных макетов, как у нас. При производстве серий на продажу это уже совсем не то. Но нам бы как раз подошло.
Ещё, насчёт QNX - я против. Ты не поверишь, мы занимаемся коммерческой деятельностью! QNX Non-commercal быть может, можно ещё применить в учебном процессе - но и тогда, скорее всего, придётся приобретать какую-нибудь академическую лицензию. На западе учебный процесс - это тоже коммерческая деятельность! А нам НИРы и ОКРы сдавать. QNX - это ДОРОГО.
А потом, она хоть и реального времени, но уже тяготеет к полудесктоповой, даже к десктоповой системе.
Зато: 1) Будет возможность получить полноценную поддержку от развитого сообщества 2) Мы и наши студенты поимеем опыт работы с одной из самых распространенных RTOS 3) Системная часть заработает "из коробки", а не после года приседаний
О лицензиях: http://qnx.org.ru/wiki/QNX_license
Да, идея взять всё на готовенькое была ещё во времена первой Альпаки, но и тогда ничего не нашлось :( Думаю, мы заходим не с того бока. PCI-Express сейчас есть в любом PC. Обработка прерываний наверняка есть в прототипе драйвера устройства PCI-Express под Линукс. Девайсов с FPGA+PCI-Express, подобных вот этому: http://www.hitechglobal.com/Boards/Stratix4GX.htm много. Необходимо выбрать такой, у которого на I/O заведены GCLK для тактирования от фронтенда. Наша задача сведётся к созданию мезонинного модуля с фронтендом.
Да, можно так, я думал об этом. Но хочется, чтобы устройство было переносимым, а не плата, вставляемая в компьютер. Можно ли что-нибудь подходящее отыскать?
Войдите, чтобы комментировать.