IPB

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> Прерывания в МК., Нужно ли их бояться?
Прохожий
сообщение 18.6.2010, 19:59
Сообщение #1


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Собственно все.
Прошу высказываться.
Особенно хотелось бы заслушать уважаемого Harbinger-а.
Про автоматы, работающие по прерываниям.
ПМСМ, это наиболее правильная методика.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 18.6.2010, 20:27
Сообщение #2


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 18.6.2010, 22:12) *
Нет. Но _вместо_ прерываний предпочел бы иметь несколько ядер(алу) и работать по опросу.

А более развернуто?
С примерами?
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 19.6.2010, 0:18
Сообщение #3


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 19.6.2010, 0:45) *
Которое слово ? Есть общее ОЗУ и флеш, и несколько наборов регистров, в т.ч. (столько же) PC и SP. Все заморочки с параллельной работой (такие, как одновременный доступ к одной ячейке) решаются легко, в виду того, что все ОЗУ на том же кристалле и размер его измеряется в килобайтах, в лучшем случае, а не в гигабайтах. В конце концов для этого можно ограниченный блок выделить, а не использовать все ОЗУ.

В общем, идея ясна. К каждому порту свой интеллект. И мэйл бокс в придачу.
Но мир-то идет по иному пути...
Всякие там контроллеры прерываний. В Вашем любимом AVR - даже векторный.
Уже и DMA поставили.
Считаю важным обсудить параллельную работу различных алгоритмов на принципиально последовательном девайсе.
Перейти в начало страницы
 
+Цитировать сообщение
Harbinger
сообщение 19.6.2010, 12:39
Сообщение #4


посіпака Хунти
Иконка группы

Группа: Мод
Сообщений: 20016
Регистрация: 21.11.2009
Из: Vinnitsa
Пользователь №: 11



Цитата(Прохожий @ 18.6.2010, 20:59) *
Про автоматы, работающие по прерываниям.
ПМСМ, это наиболее правильная методика.
А она вынужденная.
Просто на практике имею дело не с МК самими по себе, а обвешанными всевозможной периферией. Приёмопередатчики, модемы и т.п. Они живут своей жизнью, сообщая о своём состоянии изредка. wink.gif
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 19.6.2010, 16:36
Сообщение #5


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Огурцов @ 18.6.2010, 21:12) *
Нет. Но _вместо_ прерываний предпочел бы иметь несколько ядер(алу) и работать по опросу.

Как насчет иметь неколько камней отдельно?
И каждый обслуживает свою критичную область, если она критична, конечно.
То есть уже можно не ждать, а доставить пару мелочей 50-центовых по потребности...
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 20.6.2010, 10:42
Сообщение #6





Гости






Цитата(Огурцов @ 19.6.2010, 0:45) *
Которое слово ? Есть общее ОЗУ и флеш, и несколько наборов регистров, в т.ч. (столько же) PC и SP. Все заморочки с параллельной работой (такие, как одновременный доступ к одной ячейке) решаются легко, в виду того, что все ОЗУ на том же кристалле и размер его измеряется в килобайтах, в лучшем случае, а не в гигабайтах. В конце концов для этого можно ограниченный блок выделить, а не использовать все ОЗУ.

Дык, есть же - Proreller
Чудо о восьми головах
7.99 в розницу, 7.59 - от 20шт.
фришиппинг от 100$
Цитата
Features:

* Model Number: P8X32A-Q44
* Processors (cogs): Eight
* Architecture: 32-bits
* System Clock Speed: DC to 80 MHz
* Global RAM/ROM: 64 K bytes; 32 K RAM / 32 K ROM - маловато будет :(
* Cog RAM: 512 x 32 bits each - а вот это куул
* I/O Pins: 32 (simultaneously addressable by all eight cogs)
* Current Source/Sink per I/O: 40 mA
* Clock Modes: (a) External crystal 4 -8 MHz (16 x PLL) (b) Internal oscillator ~12 MHz or ~20 kHz © Direct drive
* Package Type: 44-pin QFP

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

Я вот что-то не понимаю сути темы.
Совсем отказаться от прерываний нельзя. Да и зачем?
Чем они так помешали?
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 20.6.2010, 23:20
Сообщение #7


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 20.6.2010, 14:31) *
Прерывания, как и организация многозадачности на одном ядре жрет очень много времени (и вычислительного ресурса, если часто) на переключение контекстов. В режиме опроса задержки минимальны, а так же можно орагнизовать точные временные процессы.

Вы тут не совсем правы.
Если подходить традиционно, ОС, семафоры и прочая, то таки да.
Но есть и иные подходы...
Без всех этих не нужных никому затрат.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 20.6.2010, 23:23
Сообщение #8


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Огурцов @ 20.6.2010, 13:31) *
Прерывания, как и организация многозадачности на одном ядре жрет очень много времени (и вычислительного ресурса, если часто) на переключение контекстов. В режиме опроса задержки минимальны, а так же можно орагнизовать точные временные процессы.

Смотря по задаче, у кого какая.
Харбиндеру вон потребление надо минимизировать, и это понятно.
А пожарники хоть тоже события ждут иногда больше, чем срок службы прибора -
но на опросах все же работают...Из соображений надежности, что ли - там еще постоянно
самотестирование, нормально ли опрашивается оно все...
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 20.6.2010, 23:47
Сообщение #9


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 21.6.2010, 1:23) *
Смотря по задаче, у кого какая.
Харбиндеру вон потребление надо минимизировать, и это понятно.
А пожарники хоть тоже события ждут иногда больше, чем срок службы прибора -
но на опросах все же работают...Из соображений надежности, что ли - там еще постоянно
самотестирование, нормально ли опрашивается оно все...

Прерывания, в основном, используются, когда надо минимизировать скорость реакции на событие.
К примеру.
Прием телеграммы от управляющей машины.
Пропустить нельзя. Ни одного бита.
А в то же время, управление процессами, возложенными на МК никто не отменяет.
Здесь без прерываний от приемника USART практически никак...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 21.6.2010, 12:44
Сообщение #10


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Прохожий @ 21.6.2010, 0:47) *
Прерывания, в основном, используются, когда надо минимизировать скорость реакции на событие.
К примеру.
Прием телеграммы от управляющей машины.
Пропустить нельзя. Ни одного бита.
А в то же время, управление процессами, возложенными на МК никто не отменяет.
Здесь без прерываний от приемника USART практически никак...

Примерно так. Копия из очень старого журнала smile.gif
Извините за оффтоп...
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 21.6.2010, 13:19
Сообщение #11





Гости






Цитата(orthodox @ 21.6.2010, 14:44) *
Примерно так. Копия из очень старого журнала smile.gif
Извините за оффтоп...

Не знаю, какие там проблемы с ресурсами и издержками, у меня среднестатистическая программа большую часть времени мается бездельем в основном цикле. При том что задач много, разнообразных, некоторые реалтайм, даже несколько раз в секунду надо сосчитать логарифм. smile.gif
И вот как раз распараллеливание алгоритма с помощью прерываний вместо тупого ожидания, когда же там зарядится ёмкость или пройдёт импульс, существенно освободило процессор и уменьшило задержки и время отклика.
Ибо по прерываниям выполняются неотложные действия, а между ними неторопливо разгребается рутина.

Или я вообще суть темы не понял?

Вообще, чтобы рассуждать об издержках, допустимых, излишних или малых, надо иметь хотя бы условия задачи.
Без этого все рассуждения просто ни о чём.
Какая мне разница, сколько времени уйдёт на сохранение контекста, если процессор успевает отработать событие?
И опять же, вопрос: где издержки больше - на прерывание раз в секунду от УАРТа или на опрос его флагов с частотой 100кГц?
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 21.6.2010, 14:26
Сообщение #12





Гости






Цитата(Огурцов @ 21.6.2010, 16:11) *
На все про все - 256 тактов. Если разрешить прерывания, то моментально наступает зверек. И даже без логарифма.

Ну так, я ж и говорю - сначала задача, потом обсуждение.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 21.6.2010, 16:28
Сообщение #13


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 21.6.2010, 15:26) *
Ну так, я ж и говорю - сначала задача, потом обсуждение.

Согласен.
на этой оптимистичной ноте можно и...
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 21.6.2010, 18:06
Сообщение #14


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 21.6.2010, 18:28) *
Согласен.
на этой оптимистичной ноте можно и...

Хорошо, давайте задачу.
Вот типовая, поэтому несколько искусственная.
Имеется источник питания, управляемый ШИМ каналом.
ЖКИ индикатор в две строки, где пользователь может задать выходное напряжение, ток защиты, тип защиты и еще ряд параметров.
Так же он может посмотреть выходное напряжение, ток нагрузки и может чего еще.
Для этого есть кнопки. Их количество каждый определяет для себя сам.
Тут же имеется связь с PC или PLC по RS485 полудуплекс.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 21.6.2010, 20:44
Сообщение #15


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(Огурцов @ 21.6.2010, 20:57) *
Элементарно. Берем первую попашуюся картинку http://sharaga.org/index.php?act=attach&am...ost&id=1179 и видим...процессоров, минимум, два. В данном конкретном случае я бы осмелился воткнуть три (или даже четыре). Ибо. 1 - пфц, 2 - мост, (3 - выпрямитель), 4 - юзерский интерфейс, в т.ч. с PC + бизнес-логика (ака характеристика источника, типо наклон U vs I, как для сварочника). Первые три - рубят жестко, без каких-либо прерываний, увязаны через кан и мэйл-боксы путем опроса, четвертый - весь на прерываниях, ибо мало за что отвечает и никуда не спешит.

А вот в этой конструкции все с точностью до наоборот.
Прерывания там, где надо спешить. Причем, где надо особо спешить, программы обслуживания написаны на ASM с применением DSP ядра.
В остальном Вы правы - два процессора.
Хотя в простейших случаях можно обойтись и одним...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 21.6.2010, 21:08
Сообщение #16


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Огурцов @ 21.6.2010, 19:57) *
Элементарно. Берем первую попашуюся картинку http://sharaga.org/index.php?act=attach&am...ost&id=1179 и видим...процессоров, минимум, два. В данном конкретном случае я бы осмелился воткнуть три (или даже четыре). Ибо. 1 - пфц, 2 - мост, (3 - выпрямитель), 4 - юзерский интерфейс, в т.ч. с PC + бизнес-логика (ака характеристика источника, типо наклон U vs I, как для сварочника). Первые три - рубят жестко, без каких-либо прерываний, увязаны через кан и мэйл-боксы путем опроса, четвертый - весь на прерываниях, ибо мало за что отвечает и никуда не спешит.


Во! А я говорил, а Вы - многоядерный да многоядерный...

Цитата(Прохожий @ 21.6.2010, 19:06) *
Хорошо, давайте задачу.
Вот типовая, поэтому несколько искусственная.
Имеется источник питания, управляемый ШИМ каналом.
ЖКИ индикатор в две строки, где пользователь может задать выходное напряжение, ток защиты, тип защиты и еще ряд параметров.
Так же он может посмотреть выходное напряжение, ток нагрузки и может чего еще.
Для этого есть кнопки. Их количество каждый определяет для себя сам.
Тут же имеется связь с PC или PLC по RS485 полудуплекс.


На шим развес, на защиты - развес, остальное - процессором.
разве что параметры задать , лишь бы не путался в ногах при работе на полной скорости...
Не, то есть статью я сохранил, буду изучать и разбираться конечно...
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 21.6.2010, 21:19
Сообщение #17


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 21.6.2010, 23:08) *
Не, то есть статью я сохранил, буду изучать и разбираться конечно...

Это только завлекаловка.
Там еще исходники имеются, схемы и плата, а так же два аппноута.
Если хотите - сброшу отдельно.

Цитата(orthodox @ 21.6.2010, 23:08) *
На шим развес, на защиты - развес, остальное - процессором.
разве что параметры задать , лишь бы не путался в ногах при работе на полной скорости...

В настоящий момент так и поступлено для многофазной системы.
Но при таком подходе полная скорость не нужна...
МК в данном случае - регистратор.
Мы же решаем гипотетическую задачу, где МК или их группа - это все.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 21.6.2010, 21:48
Сообщение #18


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Прохожий @ 21.6.2010, 22:19) *
Это только завлекаловка.
Там еще исходники имеются, схемы и плата, а так же два аппноута.
Если хотите - сброшу отдельно.

Да
Цитата
МК в данном случае - регистратор.
Мы же решаем гипотетическую задачу, где МК или их группа - это все.

Да, пока что упирается в то, что и так все работает.
Сделать на одной микросхеме весь блок - не более чем забавно.
При хорошей трассировке на 2 слоя и так маломощной части не видать за радиаторами...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 21.6.2010, 21:57
Сообщение #19


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Огурцов @ 21.6.2010, 22:51) *
Не совсем два. Число процессоров - по числу модулей. Хотя бы для исключения длинных соплей до МК от модулей, ибо надежности совсем не добавят.

Во.
Так же думаю.
люблю аккуратный монтаж к тому же.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 21.6.2010, 22:29
Сообщение #20


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 21.6.2010, 23:48) *
Да

Прикрепленный файл  WinRAR38_081007_21_49.rar ( 4,65 мегабайт ) Кол-во скачиваний: 15


Цитата(orthodox @ 21.6.2010, 23:48) *
Да, пока что упирается в то, что и так все работает.
Сделать на одной микросхеме весь блок - не более чем забавно.
При хорошей трассировке на 2 слоя и так маломощной части не видать за радиаторами...

Я с этим согласен. Более того, пока использую МК только в режиме регистратора.
Но это только пример, как надо использовать прерывания.
И поскольку нам всем ближе SMPS, то и пример оттуда.

Цитата(Огурцов @ 21.6.2010, 23:51) *
Ну да, ну да. Только если есть десятикратный запас по производительности.

Я Вам говорю. Бросайте Вы эти ATMEG-и. И все будет...
Перейти в начало страницы
 
+Цитировать сообщение

4 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 16:04