Контроллер LinuxCNC на базе FPGA?
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Контроллер LinuxCNC на базе FPGA?
Сейчас по работе работаю с интересным чипом Intel (Altera) Cyclone V SOC FPGA.
По сути это ПЛИСина с двумя ядрами ARM Cortex-A9. Линукс на ядрах завёлся с пол пинка, на ПЛИС можно написать любые генераторы сигналов/интерфейсы и без проблем их подключить к ядрам с очень низкой задержкой и очень простым управлением. Появилась идея реализовать на данном чипе компактный контроллер на базе LinuxCNC.
С железной стороны всё довольно очевидно, ставим плис с обвязкой, выводим наружу все доступные интерфейсы арм-подсистемы (езернеты, usb, uart, i2c, spi и прочие). Память, питание, генераторы, картридер для загрузки, часы с батарейкой распаиваем на плате. Видеовыход делаем на плисине, например eDP (есть ip-core + куча дешёвых матриц от ноутбуков, причём много с встроенным ёмкостным сенсором). Все свободные ноги плисины выводим на мезанинный разъём, к которому можно подключить либо плату опторазвязки, либо кому что захочется.
В итоге получим компактную плату с LinuxCNC подключаемую к дешёвым сенсорным матрицам и железным генератором управляющих сигналов по стоимости сравнимой с некоторыми платами mesa.
С программной стороны несколько сложнее, так как LCNC я никогда не использовал и нужно время на чтение документации, но явных проблем не вижу.
Теперь к вопросам:
1)Из опыта использования LCNC, сколько необходимо оперативной памяти и вычислительных ресурсов (частоты/количество ядер/поддержка float) для комфортной работы пользовательского интерфейса? Про латенси можно забыть так как генерация сигналов будет в плис.
2)Будет ли интерес к проекту?
3)За какую стоимость вы купили бы подобную плату при условии открытого проекта и наличии всех исходников?
			
			
									
									
						По сути это ПЛИСина с двумя ядрами ARM Cortex-A9. Линукс на ядрах завёлся с пол пинка, на ПЛИС можно написать любые генераторы сигналов/интерфейсы и без проблем их подключить к ядрам с очень низкой задержкой и очень простым управлением. Появилась идея реализовать на данном чипе компактный контроллер на базе LinuxCNC.
С железной стороны всё довольно очевидно, ставим плис с обвязкой, выводим наружу все доступные интерфейсы арм-подсистемы (езернеты, usb, uart, i2c, spi и прочие). Память, питание, генераторы, картридер для загрузки, часы с батарейкой распаиваем на плате. Видеовыход делаем на плисине, например eDP (есть ip-core + куча дешёвых матриц от ноутбуков, причём много с встроенным ёмкостным сенсором). Все свободные ноги плисины выводим на мезанинный разъём, к которому можно подключить либо плату опторазвязки, либо кому что захочется.
В итоге получим компактную плату с LinuxCNC подключаемую к дешёвым сенсорным матрицам и железным генератором управляющих сигналов по стоимости сравнимой с некоторыми платами mesa.
С программной стороны несколько сложнее, так как LCNC я никогда не использовал и нужно время на чтение документации, но явных проблем не вижу.
Теперь к вопросам:
1)Из опыта использования LCNC, сколько необходимо оперативной памяти и вычислительных ресурсов (частоты/количество ядер/поддержка float) для комфортной работы пользовательского интерфейса? Про латенси можно забыть так как генерация сигналов будет в плис.
2)Будет ли интерес к проекту?
3)За какую стоимость вы купили бы подобную плату при условии открытого проекта и наличии всех исходников?
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Для полноценной работы текущих интерфейсов LinuxCNC нужен настольный проц от 1.6 ГГц с настольным видеочипом, который полноценно поддерживает OpenGL. Что-то мне подсказывает, что в вышеуказанных чипах есть поддержка только OpenGL ES. Ну и память для комфортной работы должна быть от 2 Гб и выше.
Ну и как показала практика, люди хотят уже готовые решения. Есть ли исходники там или нет - дело десятое, т.к. из всех потенциальных пользователей туда заглянет только 2-3 человека за всё время.
			
			
									
									
						Ну и как показала практика, люди хотят уже готовые решения. Есть ли исходники там или нет - дело десятое, т.к. из всех потенциальных пользователей туда заглянет только 2-3 человека за всё время.
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
MX_Master, да, с OpenGL засада. OpenGL ES тоже нет, хотя существует возможность реализовать его на ПЛИС.
Не могу найти информацию, можно ли собрать LinuxCNC без графики. Вроде при какой-то ошибке конфигурирования он мне выдал что мол можно использовать опцию --disable-python, но видимо в текушей версии такого варианта нет.
			
			
									
									
						Не могу найти информацию, можно ли собрать LinuxCNC без графики. Вроде при какой-то ошибке конфигурирования он мне выдал что мол можно использовать опцию --disable-python, но видимо в текушей версии такого варианта нет.
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Думаю, питон отключать не надо, в LinuxCNC на нём работает не только графика, но и много чего интересного. Если надо только для пробы, можно не собирая LinuxCNC, просто установить Machinekit (клон LinuxCNC) - http://www.machinekit.io/docs/getting-s ... -packages/. Если для управления юзать не графический интерфейс, а, скажем, Python Interface, то графика в чипе будет не нужна.
			
			
									
									
						Re: Контроллер LinuxCNC на базе FPGA?
И сколько будет стоить подобное творение в партии несколько десятков. Сколько сам чип стоит?
			
			
									
									Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
						http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Спасибо, полезная для меня информация. Попробую запустить на отладке чтоб оценить жизнеспособность задуманного. Правильно я понимаю что собрать LinuxCNC без пакетного менеджера нереально? В своих эксперементах с различными платами, Вы собирали непосредственно на плате или использовали кросс-компиляцию?MX_Master писал(а):Думаю, питон отключать не надо, в LinuxCNC на нём работает не только графика, но и много чего интересного. Если надо только для пробы, можно не собирая LinuxCNC, просто установить Machinekit (клон LinuxCNC) - http://www.machinekit.io/docs/getting-s ... -packages/. Если для управления юзать не графический интерфейс, а, скажем, Python Interface, то графика в чипе будет не нужна.
Попробую прикинуть. Возможно несколько вариантов:mmv писал(а):И сколько будет стоить подобное творение в партии несколько десятков. Сколько сам чип стоит?
1) Отладка с плис 50 тыс. логических ячеек (без GX-ов) продаются от 100 долларов, например https://www.terasic.com.tw/cgi-bin/page ... 205&No=941 (при стоимости чипа например в дижикее 145 долларов). С доставкой в Россию отладка будет стоить 130. Если выбрать дисплей с параллельным интерфейсом (или с не очень высокочастотным LVDS), то всего-то нужно сделать мезаниную плату к отладке с опторазвязкой (или необходимым интерфейсом) и разъёмами, думаю в 40 долларов уложится можно + стоимость дисплея. Из минусов - сложно найти недорогой дисплей который не снят с производства с более менее нормальным разрешением, подключение дисплея займёт 15-30 IO из 40 доступных.
2) Выбрать отладку чуть подороже, за 130 (162 с доставкой в рф), вот такую https://www.terasic.com.tw/cgi-bin/page ... 05&No=1046
В ней есть HDMI что упростит задачу, так как не понадобится возится с выбором дисплея, все IO доступны под интерфейсы. Но придётся делать поддержку различных разрешений мониторов, добавлять драйвера различных тачей, городить usb-hub. Тогда нужна крайне простая интерфейсная плата, можно даже готовую китайскую выбрать если не лень возится с жгутами.
3) Разработать полностью свою плату. Тут уже можно выбрать чип с GX, что позволит подключить дешёвые ноутбучные матрицы с высоким разрешением по интерфейсу eDP, можно получить плату более компактную и энергоэффективную, с любыми интерфейсами и хотелками. Стоимость такого решения сказать затрудняюсь, но это будет явно дороже предыдущих вариантов, но такой вариант более красивый с инженерной точки зрения.
Но вначале нужно запустить на данном чипе LCNC, может он просто не потянет его...
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Я никогда LinuxCNC не собирал (: Cобирал только Linux c помощью Armbian. Только кросс-компиляция. На ARM платах собирать такое можно целый день, не стоит оно того.R6MF49T2 писал(а):Правильно я понимаю что собрать LinuxCNC без пакетного менеджера нереально? В своих эксперементах с различными платами, Вы собирали непосредственно на плате или использовали кросс-компиляцию?
По поводу цены.. лично я уже всё посчитал (: комплект Orange Pi (H3/H5) + STM32 будет самым лучшим по соотношению цены и производительности. 4-5 МГц - без проблем. Чтобы было красивее с инженерной точки зрения, я планирую сделать платку с STM32 в виде шильдика для Orange Pi.
- donvictorio
 - Мастер
 - Сообщения: 2457
 - Зарегистрирован: 11 окт 2012, 16:26
 - Репутация: 683
 - Настоящее имя: Виктор
 - Откуда: Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
100-150 баксов. выше уже нет смысла, полно интегрированных решений, типа ddcsv.R6MF49T2 писал(а):3)За какую стоимость вы купили бы подобную плату при условии открытого проекта и наличии всех исходников?
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Ну ядро и rootfs понятно что компилить с компа. А вот LinuxCNC для сборки (компиляции из исходников) требует много всяческих библиотек и пакетов. Всё это ставить через make очень не хочется, а пакетного менеджера на подобии apt-get у меня в rootfs нет (голый linux). Предполагаю что можно собрать rootfs на базе например debian или ubuntu, тогда при помощи apt-get собрать LinuxCNC будет проще. Но возникла мысль кросс-скомпилировать LinuxCNC на стационарном компе под Arm и засунуть их в rootfs, но не уверен что такое возможно.MX_Master писал(а):Я никогда LinuxCNC не собирал (: Cобирал только Linux c помощью Armbian. Только кросс-компиляция. На ARM платах собирать такое можно целый день, не стоит оно того.
Спасибо за мнение. У меня есть ddcsv, и по сравнению с LCNC его возможности крайне бедны.donvictorio писал(а):100-150 баксов. выше уже нет смысла, полно интегрированных решений, типа ddcsv.
Re: Контроллер LinuxCNC на базе FPGA?
Как коммерческий продукт при такой себестоимости не прокатит. Потому что есть более простые решения: PC+меса,PC+STM,PC+to_pci(ethernet), вместо PC может быть и orange pi. В сравнении с которыми ваш проект с пользовательской точки зрения не даёт никаких преимуществ. Пользователь выберет более распространенный продукт, по которому много чего написано.
Как проект, что бы попробовать свои силы да, наверно не плохо. Но ресурсов (время) будет потрачено очень много.
			
			
									
									Как проект, что бы попробовать свои силы да, наверно не плохо. Но ресурсов (время) будет потрачено очень много.
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
						http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
- Lexxa
 - Мастер
 - Сообщения: 2703
 - Зарегистрирован: 16 дек 2011, 16:48
 - Репутация: 319
 - Настоящее имя: Алексей
 - Откуда: ryazan
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
А главное зачем? На рынке полно законченных вполне бюджетных промышленных решений
			
			
									
									- 
				aftaev
 - Зачётный участник

 - Сообщения: 34042
 - Зарегистрирован: 04 апр 2010, 19:22
 - Репутация: 6194
 - Откуда: Казахстан.
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Если есть интерес, могу разобрать и сфоткать на каких чипах собран ЧПУ Сименс 808Д. Работает под Linux.
			
			
									
									Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
						Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Александр, думаю, не надо. Всё равно казахский сименс будет работать на STM'ахaftaev писал(а):Если есть интерес, могу разобрать и сфоткать на каких чипах собран ЧПУ Сименс 808Д. Работает под Linux.
- Lexxa
 - Мастер
 - Сообщения: 2703
 - Зарегистрирован: 16 дек 2011, 16:48
 - Репутация: 319
 - Настоящее имя: Алексей
 - Откуда: ryazan
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
aftaev, я разбирал.
Там Intel Atom процессор впаяный, оперативка тоже впаяная, Altera Cyclone IV fpga на природную часть, s7-200 впаяная для PLC, ну и драйверы RS232, RS485, I/O.
Но на самом деле там хитро как-то работает linux.
Ядро ЧПУ на linux, а HMI приложения windows'a.
			
			
									
									Там Intel Atom процессор впаяный, оперативка тоже впаяная, Altera Cyclone IV fpga на природную часть, s7-200 впаяная для PLC, ну и драйверы RS232, RS485, I/O.
Но на самом деле там хитро как-то работает linux.
Ядро ЧПУ на linux, а HMI приложения windows'a.
- 
				aftaev
 - Зачётный участник

 - Сообщения: 34042
 - Зарегистрирован: 04 апр 2010, 19:22
 - Репутация: 6194
 - Откуда: Казахстан.
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Я тоже разбирал, но не фоткал. Раз народу не интересно, фоткать не буду.Lexxa писал(а):aftaev, я разбирал.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
						Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Wine? Кстати, если кто-то захочет свою стойку сделать под Windows, есть ReactOSLexxa писал(а):Но на самом деле там хитро как-то работает linux.
Ядро ЧПУ на linux, а HMI приложения windows'a.
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Ну какая стоимость получится комплекта PC+меса? Если рассматривать именно pci/pcie решения? PC+STM не рассматриваю, так как они просто не смогут обеспечить такую стабильность и скорость генерации сигналов как fpga.mmv писал(а):Как коммерческий продукт при такой себестоимости не прокатит. Потому что есть более простые решения: PC+меса,PC+STM,PC+to_pci(ethernet), вместо PC может быть и orange pi. В сравнении с которыми ваш проект с пользовательской точки зрения не даёт никаких преимуществ. Пользователь выберет более распространенный продукт, по которому много чего написано.
Как проект, что бы попробовать свои силы да, наверно не плохо. Но ресурсов (время) будет потрачено очень много.
Главное преимущество именно моего решения - минимальные задержки передачи данных между cpu и fpga (пропускная способность 16-17 Гбит/c) абсолютно без нагрузки на cpu. Ну и конструкция получится значительно более компактная, законченная, пользователю просто не нужно что либо устанавливать, компилировать и так далее. Записал обаз на флешку, включил и работай. По крайней мере задумка такая. За счёт того что stepgen переносится из cpu на fpga, linuxcnc должен работать значительно шустрее, латенси минимальный, почти как в случае c linuxcnc + mesa только быстрее за счёт значительно более быстрого интерфейса между cpu и fpga. Ну и сам Linux тут будет скомпилирован только с самым необходимым, что так же должно сказаться на скорости работы и надёжности. Если конечно доведу проект до конца.
В качестве хобби. Вторая причина - по недосмотру купил 100-ватные сервопаки с интерфейсом RTEX (Realtime Express), а готовые pci платы для этого интерфейса стоят от 500$.Lexxa писал(а):А главное зачем? На рынке полно законченных вполне бюджетных промышленных решений
Микруху этого интерфейса MNM1221 заказал по дешёвке, но реализовывать конвертер step/dir -> RTEX почти так же по сложности как и сделать готовую стойку с этим интерфейсом, характеристики которой будут значительно более лучшими.
- R6MF49T2
 - Мастер
 - Сообщения: 235
 - Зарегистрирован: 14 июл 2016, 17:18
 - Репутация: 32
 - Откуда: Великий Новгород/Санкт-Петербург
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Ну специально ради этого думаю нет смысла разбирать, но при случае фото будут интересныaftaev писал(а):Я тоже разбирал, но не фоткал. Раз народу не интересно, фоткать не буду.Lexxa писал(а):aftaev, я разбирал.
- MX_Master
 - Мастер
 - Сообщения: 7488
 - Зарегистрирован: 27 июн 2015, 19:45
 - Репутация: 3113
 - Настоящее имя: Михаил
 - Откуда: Алматы
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
И степмастер от Михаила Юрова наглядное тому опровержение (:R6MF49T2 писал(а):PC+STM не рассматриваю, так как они просто не смогут обеспечить такую стабильность и скорость генерации сигналов как fpga.
Когда буду тестировать свой новый генератор на STM32H7, обязательно покажу фотки вывода. Я, чесслово, без понятия каким таким драйверам нужно на вход больше 4-5 МГц, но для STM'ов это не проблема. При этом всём процессор может свободно заниматься и другими делами 
- Serg
 - Мастер
 - Сообщения: 21923
 - Зарегистрирован: 17 апр 2012, 14:58
 - Репутация: 5183
 - Заслуга: c781c134843e0c1a3de9
 - Настоящее имя: Сергей
 - Откуда: Москва
 - Контактная информация:
 
Re: Контроллер LinuxCNC на базе FPGA?
Как раз это и не нужно, тут вполне хватает скоростей ethernet. А вот быстродействия для работы нормального пользовательского интерфейса (gmoccapy) катастрофически недостаточно. Я уже год-два назад пробовал и DE10-Nano и DE0-Nano-SoC - шевелится довольно печально...R6MF49T2 писал(а):Главное преимущество именно моего решения - минимальные задержки передачи данных между cpu и fpga (пропускная способность 16-17 Гбит/c) абсолютно без нагрузки на cpu.
Я пробовал разные платы, минимальные требования получаются такими: от 1.8GHz, лучше 2GHz, от 1GB RAM, лучше 2GB.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...