Полную версию с разгону - дохлый номер. не перепилили ещё, и это похоже надлго.
кое кто урезаную ЕМС уже запустил, вроде работает, но это на уровне проб и экспериментов пока .
Но будем ждать и надеяться
Дуина с поддержкой убунту.
-
Yur_ra
- Опытный
- Сообщения: 161
- Зарегистрирован: 04 мар 2013, 16:09
- Репутация: 8
- Контактная информация:
Re: Дуина с поддержкой убунту.
Ломается всё, даже то что в принципе никогда не ломается... А я чиню.
-
serg_io
- Кандидат
- Сообщения: 44
- Зарегистрирован: 23 мар 2013, 11:15
- Репутация: 0
- Контактная информация:
Re: Дуина с поддержкой убунту.
Добрый день всем.
С моей точки зрения существую 2 сложность при портирования EMC2 на другие ( не х86) платформы.
1) Первая это привязанность RTAI к платформе х86. Это доволно старое расширение и оно уже практически не подерживается. Варианты решения - использование Xenomai или PREEMPT_RT.
2) Производительность не-х86 МСU. EMC2 очень требовательна к ресурсам ЦПУ. Здесь и вычисления с плавающей точкой, и обработка GUI, и конечно-же задачи реального времени с высоким преемистостью, а именно программные генераторы шагов для приводов. К примеру, на 400Мгц ARM920T удалось запустить нормально только EMC2 довольно ранней версии без видеоподсистемы и со специально разработанным ( и единственно поддерживаемым) драйвером железа. И, к слову, не-x86 архитекутра практически означает, что про все стандратные аппаратные HAL драйверы можно забыть.
К счастью, разработчики LinuxCNC прекрасно понимают сложившуюся ситуацию, а имеено необходимость расширять кросплатформенность системы и начали движение в этом направлении. Не уверен, включено ли следующее в официальные релиз, но в бранчах git ( http://git.mah.priv.at/gitweb?p=emc2-de ... n-preview3 ) уже есть поддержка упомянутых Xenomai и PREEMPT_RT, что позволило уже некоторым энтузиастам запустить его на Raspberry PI ( без GUI или с WEB-фронтендом от miniEMC2). Однако видится, что эта платформа не самая лучшая, вернее ее производительсность хоть и лучше, но все равно имеет те-же ограничения, что и mini2440 ( да собственно и х86) - сложности с обеспечением режима жесткого реального времени. Вообще для решение этой задачи гораздо более разумно было-бы использовать внешнюю плату расширения, которая могла-бы подключаться непосредственно к системной шине устрйства ( варианты на FPGA ) либо, в худшем случае, через последовательную шину USB, Ethernet, UART, CAN.... Варинты последних решений сущетсвуют в разных инкарнация, но обычно с дополнительными буферами координат дабы хоть как-то гарантировать ( надеяться что все будет хорошо ) непрерывность процесса движения из-за неизбежных повреждений данных в линиях передачи. А этот самый буфер создает дополнительну задержку между вычисленной и фактически отрабатываемой позицией, что негативно сказывается на работы как некоторых HAL модулей ( програмных PID регуляторов) так и системы в целом ( отработка нажатия концевиков и другие специфические задачи ( синхронное дивжение оси и шпинделя) ). И хотя эти огранчения могут быть преемлемыми в некоторых случаях, разработчики linuxcnc не спешать использовать в релизах подобные драйверы.
Возращаясь к идее платы расширения на системной шине. Благодаря ребятам из TI мы теперь имеем семейство интересных процессоров, а именно AM335x. Как видно это Cortex™-A8 процессор с макс. частотой 720MHz, что не очень много по нынешним временам ( хотя разработчики вроде-бы обещают варианты 1000Мгц к середине 2013), но зато набор переферии просто отлиный. И 6 UART, 2 CAN, 2 USB, 2 Ethernet MAC, ШИМы и модули захвата ( можно подумать об энкодерах). Но самое "вкусное" конечно-же дргуое. Сей девайс имеет на борту 2 модуля PRU. Это по сути 2 32-х разрядный RICS процессор работающие на частоте до 200 Мгц и имееющие архитектуру оптимизированную для быстрых операций ввода/вывода. По данным производителя максимальная частота переключения ножек GPIO до 100 Мгц, на практике получено около 20 Мгц. Память PRU может быть напрямую доступна основному процессоры и наоборот - PRU имеют прямой доступ к памяти и периферии чипа, правда несколько медленнее чем доступ к внутренним ресурсам. Т.е. это по сути тот самый вариант платы на системной шине, но уже интегрированный в котроллер. Кроме прочего, PRUs имеют отдельную переферию: Ethernet MAC, таймер и высокоскоростной UART ( до 12Mbit). Получается, что можно реализовать уйму всевозможных интерфейсов в реальном времени. Самы простой вариант это генератор шагов для приводов (stepgen) с довольно высокой скоростью, более сложные варанты это CAN, какой-ли собственный протокол на основе UART и конечно-же Ethernet-based протоколы. TI предлагает готовые решения( библиотеки для PRU и ARM) для Profibus, EtherCAT и прочих. Кстати, EtherCAT очень интересный вариант, так как разработчики заявляют о возможности управляние сервоприводами с частотой сервоцикла до 10 кГц. В общем поле для деятельности обширное, тем более что сущетсвую довльно недорогие отладочные платы (BeagleBone ).
Ну и что очень важно, сущетсвует git branch linuxcnc для am335x контроллеров. Там уже добавлена базовая поддержка PRU ( примеры HAL, Assembler для PRU). Не хватает самого интересного - кода PRU реализующих эти самые задачи жесткого реального времени. Но всему свое время, думаю люди сейчас заняты коммерческими решениями в этом направлении, но уверен что появятся и открытые реализации, как минимум stepgen.
С моей точки зрения существую 2 сложность при портирования EMC2 на другие ( не х86) платформы.
1) Первая это привязанность RTAI к платформе х86. Это доволно старое расширение и оно уже практически не подерживается. Варианты решения - использование Xenomai или PREEMPT_RT.
2) Производительность не-х86 МСU. EMC2 очень требовательна к ресурсам ЦПУ. Здесь и вычисления с плавающей точкой, и обработка GUI, и конечно-же задачи реального времени с высоким преемистостью, а именно программные генераторы шагов для приводов. К примеру, на 400Мгц ARM920T удалось запустить нормально только EMC2 довольно ранней версии без видеоподсистемы и со специально разработанным ( и единственно поддерживаемым) драйвером железа. И, к слову, не-x86 архитекутра практически означает, что про все стандратные аппаратные HAL драйверы можно забыть.
К счастью, разработчики LinuxCNC прекрасно понимают сложившуюся ситуацию, а имеено необходимость расширять кросплатформенность системы и начали движение в этом направлении. Не уверен, включено ли следующее в официальные релиз, но в бранчах git ( http://git.mah.priv.at/gitweb?p=emc2-de ... n-preview3 ) уже есть поддержка упомянутых Xenomai и PREEMPT_RT, что позволило уже некоторым энтузиастам запустить его на Raspberry PI ( без GUI или с WEB-фронтендом от miniEMC2). Однако видится, что эта платформа не самая лучшая, вернее ее производительсность хоть и лучше, но все равно имеет те-же ограничения, что и mini2440 ( да собственно и х86) - сложности с обеспечением режима жесткого реального времени. Вообще для решение этой задачи гораздо более разумно было-бы использовать внешнюю плату расширения, которая могла-бы подключаться непосредственно к системной шине устрйства ( варианты на FPGA ) либо, в худшем случае, через последовательную шину USB, Ethernet, UART, CAN.... Варинты последних решений сущетсвуют в разных инкарнация, но обычно с дополнительными буферами координат дабы хоть как-то гарантировать ( надеяться что все будет хорошо ) непрерывность процесса движения из-за неизбежных повреждений данных в линиях передачи. А этот самый буфер создает дополнительну задержку между вычисленной и фактически отрабатываемой позицией, что негативно сказывается на работы как некоторых HAL модулей ( програмных PID регуляторов) так и системы в целом ( отработка нажатия концевиков и другие специфические задачи ( синхронное дивжение оси и шпинделя) ). И хотя эти огранчения могут быть преемлемыми в некоторых случаях, разработчики linuxcnc не спешать использовать в релизах подобные драйверы.
Возращаясь к идее платы расширения на системной шине. Благодаря ребятам из TI мы теперь имеем семейство интересных процессоров, а именно AM335x. Как видно это Cortex™-A8 процессор с макс. частотой 720MHz, что не очень много по нынешним временам ( хотя разработчики вроде-бы обещают варианты 1000Мгц к середине 2013), но зато набор переферии просто отлиный. И 6 UART, 2 CAN, 2 USB, 2 Ethernet MAC, ШИМы и модули захвата ( можно подумать об энкодерах). Но самое "вкусное" конечно-же дргуое. Сей девайс имеет на борту 2 модуля PRU. Это по сути 2 32-х разрядный RICS процессор работающие на частоте до 200 Мгц и имееющие архитектуру оптимизированную для быстрых операций ввода/вывода. По данным производителя максимальная частота переключения ножек GPIO до 100 Мгц, на практике получено около 20 Мгц. Память PRU может быть напрямую доступна основному процессоры и наоборот - PRU имеют прямой доступ к памяти и периферии чипа, правда несколько медленнее чем доступ к внутренним ресурсам. Т.е. это по сути тот самый вариант платы на системной шине, но уже интегрированный в котроллер. Кроме прочего, PRUs имеют отдельную переферию: Ethernet MAC, таймер и высокоскоростной UART ( до 12Mbit). Получается, что можно реализовать уйму всевозможных интерфейсов в реальном времени. Самы простой вариант это генератор шагов для приводов (stepgen) с довольно высокой скоростью, более сложные варанты это CAN, какой-ли собственный протокол на основе UART и конечно-же Ethernet-based протоколы. TI предлагает готовые решения( библиотеки для PRU и ARM) для Profibus, EtherCAT и прочих. Кстати, EtherCAT очень интересный вариант, так как разработчики заявляют о возможности управляние сервоприводами с частотой сервоцикла до 10 кГц. В общем поле для деятельности обширное, тем более что сущетсвую довльно недорогие отладочные платы (BeagleBone ).
Ну и что очень важно, сущетсвует git branch linuxcnc для am335x контроллеров. Там уже добавлена базовая поддержка PRU ( примеры HAL, Assembler для PRU). Не хватает самого интересного - кода PRU реализующих эти самые задачи жесткого реального времени. Но всему свое время, думаю люди сейчас заняты коммерческими решениями в этом направлении, но уверен что появятся и открытые реализации, как минимум stepgen.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Дуина с поддержкой убунту.
Добрый день! Приветствую на этом форуме!serg_io писал(а):С моей точки зрения существую 2 сложность при портирования EMC2 на другие ( не х86) платформы.
1) Первая это привязанность RTAI к платформе х86. Это доволно старое расширение и оно уже практически не подерживается. Варианты решения - использование Xenomai или PREEMPT_RT.
2) Производительность не-х86 МСU. EMC2 очень требовательна к ресурсам ЦПУ. Здесь и вычисления с плавающей точкой, и обработка GUI, и конечно-же задачи реального времени с высоким преемистостью, а именно программные генераторы шагов для приводов. К примеру, на 400Мгц ARM920T удалось запустить нормально только EMC2 довольно ранней версии без видеоподсистемы и со специально разработанным ( и единственно поддерживаемым) драйвером железа. И, к слову, не-x86 архитекутра практически означает, что про все стандратные аппаратные HAL драйверы можно забыть.
На мой взгляд при реализации ЕМС на платформе АРМ нужно вообще уйти от использования какой бы ни было ОС и реализовать все потоки на аппаратных средствах с аппаратными приоритетами. Естественно о всех драйверах ХАЛ нужно забыть. Но в АРМ контроллерах много своей периферии использовать которую проще, чем в платформе х86. Например тот-же степген легко реализуется на любом таймере КОРТЕКСА при тактовой более 200мгц с точностью по скорости не более 0.1%. С GUI конечно посложнее, но это задача второстепенная если есть время.
Оставить библиотеку ХАЛа и просто написать новые компоненты, ориентированные на конкретную периферию. В общем это несложно сделать.
С уважением.
-
serg_io
- Кандидат
- Сообщения: 44
- Зарегистрирован: 23 мар 2013, 11:15
- Репутация: 0
- Контактная информация:
Re: Дуина с поддержкой убунту.
Если есть желание сделать свой проект и потом его поддерживать, то конечно можно и так. Но в таком случае вам придется самому ( или группе разработчиков ) поддерживать проект в соответствии с изменениями в EMC2. Более разумно сообразить некий уровент абстракции от ОС и попытаться убедить разработчегрировать его в основную ветвь EMC2. Тогда все последующие изменения будут гарантированно работать на всех ОС, в том числе и на используемой вами.Impartial писал(а):Добрый день! Приветствую на этом форуме!
На мой взгляд при реализации ЕМС на платформе АРМ нужно вообще уйти от использования какой бы ни было ОС и реализовать все потоки на аппаратных средствах с аппаратными приоритетами. Естественно о всех драйверах ХАЛ нужно забыть. Но в АРМ контроллерах много своей периферии использовать которую проще, чем в платформе х86. Например тот-же степген легко реализуется на любом таймере КОРТЕКСА при тактовой более 200мгц с точностью по скорости не более 0.1%. С GUI конечно посложнее, но это задача второстепенная если есть время.
Оставить библиотеку ХАЛа и просто написать новые компоненты, ориентированные на конкретную периферию. В общем это несложно сделать.
С уважением.
Однако эта задача довольно сложна и потребует немалых ресурсов как для разработки, так и тестирования. Возможно когда-то EMC2 ( кстати, как я понял теперь его официальное название LinuxCNC или LCNC из-за каких-то правовых недоразумений) придет к этому эволюционным путем, тем более что движение уже начато. Главное теперь что-бы не потерялся интерес к этой теме у разработчиков.
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: Дуина с поддержкой убунту.
вот, наткнулся на это: http://www.ebay.com/itm/UDOO-Android-Li ... 1057976120
Обсуждаем!
Обсуждаем!
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Дуина с поддержкой убунту.
Всё просто! если знаешь КАК!