roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 13:09

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 31 мар 2009, 22:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Виталий: Это конечно хорошо искать вопрос на свой ответ :) думаю обсуждение было бы более предметным, если бы оппоненты обсуждали не гипотетические задачи, а примеры конкретных задач из жизни :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 31 мар 2009, 23:27 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
Виталий писал(а):
ОС.
1. У вас есть многоканальная система управления, а контроллер всего один.
2. Во время работы ваша система должна запускать и останавливать некоторые задачи (процессы).
3. Опрос каналов должен производится с определенным темпом.

Как тут использовать прерывания? Посчитать все по тактам? А как тогда быть с новыми процессами в контроллере? А для того чтобы добавить процесс нужно перекраивать систему прерываний? Как долго проживут вложенные друг в друга прерывания?

у меня 2 двигателя, на каждый 3 контура управления в каждом ПИД...+ опрос концевиков + прием команд по уарту, ретрансляция на и2ц(возможно) + вазможно будут расчеты... катит под ваше описание? планируется писать все ручками на асме...

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

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 31 мар 2009, 23:27 
Не в сети
Аватара пользователя

Зарегистрирован: 04 фев 2008, 13:18
Сообщения: 1060
Откуда: Москва
прог. языки: PHP
DeaD Может он новую клавиатуру разрабатывает ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 01:59 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Duhas, а почему ты всегда ставишь многоточие? :)

Добавлено спустя 1 минуту 27 секунд:
Кстати, ИМХО в законченном устройстве может быть функция добавления задач, смотря что ты понимаешь под законченным устройством

Добавлено спустя 49 секунд:
Вероятно мы просто говорим о разных вещах, ты походу говоришь об "автономных модулях"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 02:23 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
да, я выше писал что, имхо, конструкция должна состоять из законченных модулей с четко определенным функционалом...
если функционал модуля должен быть гибким по природе, тут свои заморочки могут быть.. и то вряд ли это будет ОСь..
многоточие - не полная законченность мысли + процесс размышления..

просто привычка..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 07:32 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
А что такое законченное устройство? Вопрос философский :)

В любой системе выполняющей несколько задач необходимы механизмы координации и взаимодействия между задачами. И они присутствуют всегда, даже когда формально ОС не выделена - но в последнем случае эти механизмы настолько привязаны к специфике задач, что расширение системы наверняка повлечет за собой изменение этих механизмов. Понятно, что универсальные механизмы взаимодействия привносят накладные расходы. Поэтому например использование отдельной ОС в контроллере двигателя вряд ли оправдано. Круг задач четко очерчен, взаимодействие между ними элементарное, можно сделать оптимизированный софт на минимальном железе.

Применение ОС ИМХО оправдано именно в системах, где состав задач заранее не известен, и может меняться с развитием системы. В таком случае применение готовой ОС может снизить затраты на разработку ПО за счет применения удобных механизмов взаимодействия, особенно при разработке единичных и мелкосерийных изделий - где компенсировать накладные расходы ОС можно применением более мощного процессора, при этом конечная стоимость продукта может даже снизиться за счет уменьшения затрат на разработку софта.

никак не могу приучить себя писать предложения покороче :)

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 10:09 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
В роутерах Линь стоит на какомнить ARM9, хотя по сути то круг задач ограничен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 10:12 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Просто как оказывается адаптировать ядро линя к арму проще чем переписать весь нужный для роутера софт на "чистом СИ".

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 10:13 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Конечно, имеет смысл ставить готовое отлаженное ПО

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 10:57 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Да, потому что отладка занимает 80% времени разработки, и его нужно сокращать. Верификация - один из способов.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 13:57 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Ща расскажу про конкретную задачу.

Есть контроллер электропривода, мощным инвертором управляет. У него есть несколько (2 или 3) каналов связи для подключения пультов управления или связи с АСУ, по всем этим каналам логически он слейв (то есть ему шлют запросы и он на них отвечает). У него есть память параметров (EEPROM) с достаточно медленной (единицы мс) записью. Ну и задача - обеспечить поддержку этих каналов связи, плюс расчет и выдачу всех управляющих сигналов (собственно ШИМ на инвертор, сигналы на дискретные и аналоговые выходы). По каждому каналу связи может прийти запрос на запись параметра или на чтение. Параметрами - 16-битными числами - считаются как уставки, типа максимальной и минимальной рабочей частоты, или параметров S-образной кривой разгона-торможения, так и текущие значения типа текущей частоты или выходного тока. Но при запросе чтения параметра мы его берем прямо из ОЗУ, а вот при записи надо подождать, пока он запишется в еепром, а только потом ответить на запрос. И при этом хотелось, чтобы другие запросы на чтение (по другим каналам) обрабатывались пока оно пишет. А, еще журнал оно должно было вести - это датафлеш на SPI, из этого журнала тоже надо было уметь отдавать записи по запросам.

Вот для такой задачи мы использовали самодельный шедулер, который в принципе можно назвать простейшей ОС. Ядро шедулера быо частично на ассемблере (ARM LPC21xx), частично на С. Навеяно это все было известной uCOS, но за счет ассемблера и оптимизации время полного переключения с одной задачи на другую было менее 1 мкс на 60 МГц. Из сервисов были мьютексы, с помощью которых защищалось общение с епромом, флешкой, еще вроде какими-то аппаратными ресурсами, а также сообщения, передаваемые от процесса или обработчика прерывания другому (ожидающему) процессу. А, еще кажется атомарные операции со счетчиками и флагами были. Ессно адресное пространство общее, поскольку арм7 без мму. Приоритеты фиксированные.

То есть один процесс занимался расчетом управления, по одному процессу на каждый канал связи, один процесс на журналирование, кажись еще что-то было - щас не помню, это года 2 или 3 назад было. Я даже не буду спорить, что все это можно забабахать на флагах, автоматах состояний и т.п. без шедулера. Но насколько с шедулером проще! А - понадобилось нам потом дорисовать одну расчетную задачу туда же, некритичную по времени, но которая тупо долго (десятки секунд) считает некие настроечные параметры, там куча вложенных циклов и все такое. Нет проблем! Низкоприоритетный процесс создали, и не надо думать, как это все считать так, чтобы не мешало управлению.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 14:04 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
boez писал(а):
Я даже не буду спорить, что все это можно забабахать на флагах, автоматах состояний и т.п. без шедулера. Но насколько с шедулером проще! А - понадобилось нам потом дорисовать одну расчетную задачу туда же, некритичную по времени, но которая тупо долго (десятки секунд) считает некие настроечные параметры, там куча вложенных циклов и все такое. Нет проблем! Низкоприоритетный процесс создали, и не надо думать, как это все считать так, чтобы не мешало управлению.

Вот про это я и говорил.

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 14:10 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Конкретный пример сразу всё расставил по своим местам, все сразу осознали, что оно бывает нужно и поняли даже куда, например :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 17:43 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
на ваш конкретный пример - отвечу... если это единичное изделие, и проще и выгоднее использовать ОСь - пожалуйста... но использовать в серии я считаю неправильным...

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Микрооперационная система реального времени
СообщениеДобавлено: 01 апр 2009, 18:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Duhas: А почему в серии это неправильно? Если это позволяет писать более надежные и верифицируемые программы - почему нет?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO