LINUX.ORG.RU
ФорумTalks

Как я не поддержал ipv6

 ,


0

2

Пишу постепенно код для свей системы управления чпу. Добавляю ip стек, чтобы не по com порту команды гнать, а по быстрому ethernet. Железка - stm32f103, 20кб озу.

Потыкал lwip - вроде работает, но при совмещении с моим кодом не влезает в память. Потыкал uip - слишком примитивно и проблемы были.

Делаю свою реализацию. И что-то так лениво мне стало делать ipv6....

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

Таварищ Берия, расстрэляйте этого таварища, который нам далэко не таварищ.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от cvs-255

частота меняется, но в целом до 50 кгц

А если это запихнуть в ядро Linux, быстродействия не хватит?

Deleted
()
Ответ на: комментарий от Deleted

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

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

линукс может в любой момент чем то заняться, что задержит

Есть методы борьбы с этим. Например, убрать чужие прерывания с того ядра процессора, где будет крутиться твое творение. В итоге твое ядро будет только твоим, когда захочешь.

На одной из прошлых работ видел еще один подход - на одном ядре Линукс, на втором ядре своя прошивка реального времени. Общаются через общую память, насколько помню.

Deleted
()
Ответ на: комментарий от Deleted

вот именно, что с этим всем на линуксе нужно бороться. в то время как на микроконтроллере это изкоробки все.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от Dark_SavanT

dhcp нет

Есть и работает. Использую uip, который развивалася в составе Contiki. (А с недавних пор продолжает развиваться в её форке, Contiki-NG).

gag ★★★★★
()
Ответ на: комментарий от cvs-255

Какова точность исходных данных, вычислений над ними? Не глотают ли двигатели изредка шаги?

gag ★★★★★
()
Ответ на: комментарий от cvs-255

Можно с помощью Jailhouse от Siemens отдать одно ядро целиком bare-metal-программке.

gag ★★★★★
()
Ответ на: комментарий от cvs-255

вот именно, что с этим всем на линуксе нужно бороться. в то время как на микроконтроллере это изкоробки все.

Юзай PREEMPT RT патч, будет maximal latency на каком-нибудь ARMе микросекунд 50

alx777 ★★
()
Ответ на: комментарий от cvs-255

Жесткий реалтайм при приеме/передаче данных поверх IP на ЧПУ?

Нет, это не требует реалтайма. А вот код, который дергает шаговики - требует реалтайма.

Вот ты сам и ответил на свой вопрос:

  • «Управление шаговиками» - микроконтроллер,
  • «Сеть» - процессор

Хочешь дёшево: поставь рядом NanoPI NEO2

Есть чуть больше денег: замени всё на BeagleBone с TI AM3358 на борту, который ещё лет десять производиться будет. Зато будет и Linux с современным ядром и два PRU для реалтайм управления.

Иначе ты две задачи смешиваешь в одну и портишь обе (реалтайм управление будет страдать из-за сети, а сеть будет урезанной)

AlexVR ★★★★★
()

Зачем? Гоняй голый ethernet.

gadfly ★★
()
Ответ на: комментарий от AlexVR

Pru это в некоторых случаях неудобно. Но да, там реалтайм ты выдержишь точно в любом случае, прерываний-то нет

Dark_SavanT ★★★★★
()
Ответ на: комментарий от Deleted

Обычно такое делается выносом риалтаймовой части на МК, а интерфейсная часть на комп/одноплатник с линуксом. А между ними максимально примитивный канал передачи данных. Обычно uart.

KivApple ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Ну вот смысла заморачиваться с чем-то сложнее uart нет. Если хочется далеко отнести управляющий терминал, то на сам станок ставится одноплатник, который уже преобразует высокоуровневый протокол в uart. Заодно можно на него целиком грузить задание, чтобы при уходе терминала в офлайн станок продолжил работу.

Да и вообще Ethernet как альтернатива usb/uart такое себе. Хотя бы потому что если захочется подключить управляющий комп к сети (хоть к интернету, хоть к внутренней локалке предприятия), то потребуется две сетевых карты, что достаточно редко встречаются из коробки.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от KivApple

вот у меня как раз раньше и был uart (rs232) между ноутом и железкой, но тк помехи от шаговиков и шпинделя, то я вот и стал искать более помехоустойчивую, и при этом удобную, альтернативу

C rs232 стабильный обмен на 9600 был, что явно недостаточно

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 3)
Ответ на: комментарий от cvs-255

1) Экранировка кабеля

2) rs485

3) Как уже сказано - коротенький uart до одноплатника, а уже с него хоть Ethernet, хоть что. Профит: возможность дать задание, а потом отключить ноут и унести.

KivApple ★★★★★
()
Ответ на: комментарий от Dark_SavanT

Чо б нет-то? Если точка-точка нет большой проблемы.

Крнечно через роутер то он свой rt поток пускать не будет.

torvn77 ★★★★★
()
Ответ на: комментарий от KivApple

Да вполне можно и в свитч воткнуть девайс. Сетка у меня дома гигабитная, сам девайс 10 мбитный, запаса пропускной способности хватит.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от mersinvald

И вот в контроллер, который с реалтаймом, надо как-то передавать команды. uart медленный и помехи ловит.

В общем, пока убрал сетевой стек, оставил чистый ethernet, работает стабильно. В роли «контроллера посерьезнее» - ноут

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от mersinvald

Вообще, у меня есть 3 концепции использования моего кода и устройства:

1) Управление шаговиками на микроконтроллере, управление с ноута, вкл/выкл шпинделя и прочего (свет, СОЖ итд) с ноута

2) Управление шаговиками на микроконтроллере, управление с ноута, вкл/выкл шпинделя и прочего (свет, СОЖ итд) тоже через микроконтроллер, который проксирует запросы от ноута на шину rs485 (выбор 485 обусловлен тем, что частотник по 485 управляется)

3) В дополнение к микроконтроллеру ставится плата с линуксом, которая связывается с микроконтроллером, а также сама управляет шпинделем

Сейчас у меня вариант 1, но я склоняюсь к варианту 2, чтобы уменьшить количество проводов, выходящих из ноута.

В то же время, вариант 3 дороже (хотя не сильно), сложнее и все равно требуется нормальный экран для интерфейса управления. А на ноуте он уже есть

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от anto215

для мсдос (640 кб достаточно всем) было 2 или 3 реализации tcpip. они работали, пока все стояло на столе. как только это выставляли в продакшен, работать переставало.

Неправда ваша. Во всяком случае на том варианте который шел с NT4 работало. И подключение к шарам smb тоже работало. Вот что считай не работало, это подключение к DC, точнее оно работало только на стенде, памяти сжирало дофига поэтому в прод ну никак было.

anc ★★★★★
()
Ответ на: комментарий от cvs-255

NT4 не имеет никакого отношения к мсдос

Так и знал что кто-то не поймет и напишет именно эти слова. Хотя старался, что бы такого не возникло.
«на том варианте который шел с NT4» - в ней был «набор» для msdos, жмякаеш создать дискетки и вперед, на дискетках получаешь то что нужно установить уже в msdos.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)

А что в ТЗ про это написано?

aiqu6Ait ★★★★
()
Ответ на: комментарий от cvs-255

более помехоустойчивую, и при этом удобную, альтернативу

у... да дело совсем не в ТЗ. Похоже на горизонте очередной велосипед.

Ну смотри. Помехи просто так не возникают. Определяй, откуда они (скорее всего по питанию, может быть эфир), и борись с ними. Стабилизируй питание контроллера, развяжись от шаговиков, экранируй контроллер и/или шлейфы. RS232 до скорости 115200 должен работать без проблем по определению, если разное питание у ПК и станка (по постоянке, само собой) - попробуй 2-wire rs485, с гальванической развязкой.

aiqu6Ait ★★★★
()
Ответ на: комментарий от Dark_SavanT

Если ядер несколько, jailhouse лучше.

Любопытная штука, насколько я понял что-то вроде этого ?

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841668/Multi-OS Suppo...

По поводу Zynq AMP могу сказать что работать с ним довольно сложно, в одном из виденных мной проектов команда разработчиков так и не смогла это дело осилить и выкинула его после полугода безуспешных попыток заменив на PREEMPT RT патч

Было бы интересно узнать о реальном опыте использования jailhouse и посмотреть какие-нибудь результаты измерения производительности

alx777 ★★
()
Ответ на: комментарий от cvs-255

Помехи от шаговиков и шпинделя идут, и судя по всему в виде радиопомех

Как определил, что радиопомехи? Овцелографом на линию питания пробовал встать? Спектроанализатором эфир слушал?

aiqu6Ait ★★★★
()
Последнее исправление: aiqu6Ait (всего исправлений: 1)
Ответ на: комментарий от aiqu6Ait

Питание осциллографом смотрел. Нормально. И шаговики у меня питаются от другой линии БП, чем управляющая плата (12в и 5в), плюс куча конденсаторов по 1000мкф и керамических (для сглаживания иголок) на линии шаговиков

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 3)
Ответ на: комментарий от cvs-255

А теперь возьми ноль от ПК и подключись к нолю платы на станке (у микроконтроллера или даже у конвертера ttl/rs232), включи вход в режим с закрытым входом, запуск однократный по превышению напряжения на 200 мВ и включи шаговик. Мне кажется, что садится напряжение при начале работы двигателей, при этом сечения провода gnd в rs232 не хватает для выравнивания.

aiqu6Ait ★★★★
()
Последнее исправление: aiqu6Ait (всего исправлений: 1)
Ответ на: комментарий от aiqu6Ait

Может и садится. Но вот по ethernet работает прекрасно. Тк дифференциальный сигнал и гальваническая развязка

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

По 2-wire 485 тоже диф. сигнал и гальваническая развязка (с правильными драйверами), а реализация проще. И логичнее использовать именно его, если нет задачи выпускать станок в интернеты. Иначе надо пилить полноценный tcp/ip стек.

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

Для ethernet взял модуль enc28j60 и гоняй себе кадры. Плюс можно воспользоваться локалкой, уже проложенной в квартире.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

воспользоваться локалкой, уже проложенной в квартире

это многое объясняет (% удачи в начинаниях.

aiqu6Ait ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.