реклама на сайте
подробности

 
 
> Внешний контроллер прерываний
prottoss
сообщение Mar 5 2007, 17:11
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Hi All!

Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции


--------------------
Go to the top of the page
 
+Quote Post
5 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 14)
Alex_Pol
сообщение Mar 5 2007, 17:36
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Цитата(prottoss @ Mar 5 2007, 16:11) *
Hi All!
Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные.
Возьми ещё один контроллер, Мегу8, к примеру, и на ней реализуй что надо. smile.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 5 2007, 17:39
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Alex_Pol @ Mar 5 2007, 21:36) *
Цитата(prottoss @ Mar 5 2007, 16:11) *

Hi All!
Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные.
Возьми ещё один контроллер, Мегу8, к примеру, и на ней реализуй что надо. smile.gif
Хм...Идея smile.gif , надо будет подумать


--------------------
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 5 2007, 19:08
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Новые меги имеют прерывания на ВСЕХ ногах, например мега 48, да и мега 1280, 1281, наверняка также (нет мануалов под рукой чтобы точно сказать).


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Dopler
сообщение Mar 5 2007, 19:15
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425



Цитата(GDI @ Mar 5 2007, 19:08) *
Новые меги имеют прерывания на ВСЕХ ногах, например мега 48, да и мега 1280, 1281, наверняка также (нет мануалов под рукой чтобы точно сказать).


Подтверждаю, имеют. Они к тому же пин совместимые со 128, правда не такие распространенные.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 5 2007, 19:16
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(GDI @ Mar 5 2007, 23:08) *
Новые меги имеют прерывания на ВСЕХ ногах, например мега 48, да и мега 1280, 1281, наверняка также (нет мануалов под рукой чтобы точно сказать).
Да нет, не на всех (1280, 1281 etc)... "Всего" на 24 smile.gif . Но всеж хотса узнать про внешний контроллер. Заманчиво иметь прерывания с задаваемым приоритетом


--------------------
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 5 2007, 20:10
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(prottoss @ Mar 5 2007, 16:11) *
Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции

Мил человек, ну почитайте PDF хоть по диагонали на 8259 и почие внешние контролеры. Это КОНТРОЛЛЕРЫ, которые ЗАХВАТЫВАЮТ ШИНУ ПРОЦЕССОРА и выставляют на нее команду чтения области векторов прерывания. Ну и причем здесь ATmegа???


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 5 2007, 20:43
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(zltigo @ Mar 6 2007, 00:10) *
Цитата(prottoss @ Mar 5 2007, 16:11) *

Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции

Мил человек, ну почитайте PDF хоть по диагонали на 8259 и почие внешние контролеры. Это КОНТРОЛЛЕРЫ, которые ЗАХВАТЫВАЮТ ШИНУ ПРОЦЕССОРА и выставляют на нее команду чтения области векторов прерывания. Ну и причем здесь ATmegа???
Аха... Это где про захват шины то писанно???


--------------------
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 5 2007, 20:58
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(zltigo @ Mar 6 2007, 00:10) *
Цитата(prottoss @ Mar 5 2007, 16:11) *

Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции

Мил человек, ну почитайте PDF хоть по диагонали на 8259 и почие внешние контролеры. Это КОНТРОЛЛЕРЫ, которые ЗАХВАТЫВАЮТ ШИНУ ПРОЦЕССОРА и выставляют на нее команду чтения области векторов прерывания. Ну и причем здесь ATmegа???
На сколько я знаю, ни какого захвата шины они не производят, (я про 8259), имеют 8-бит шину данных, сигналы RD/WR/CS/A0 для общения выход прерывания INT. Для считывания вектора существует вход INTA. По отрицательным стробам от МК по этой линии, с линий данных 8253 считывается вектор и код команды для 8080. Какой захват шины то???


--------------------
Go to the top of the page
 
+Quote Post
bomick
сообщение Mar 5 2007, 21:46
Сообщение #10





Группа: Участник
Сообщений: 6
Регистрация: 8-12-06
Пользователь №: 23 300



Цитата(prottoss @ Mar 5 2007, 17:11) *
Hi All!

Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции


Интересовался подобным вопросом пару лет назад. Полных аналогов 8259 не нашел (кроме советских).
Дело втом что с 286 компьтеров стали истользовать итегрированные микросхемы т.е. два контроллера прерываний , контроллера прерываний , пара таймеров(8253) и часы реального времени в одном флаконе. Название микросхемы не помню. Но если надо то могу уточнитью
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 5 2007, 22:41
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Вот описания работы программируемого контроллера прерываний КР580ВН59, он же 8259. "Схема управления формирует сигнал запроса на прерывание на вход INT МП. Если ему разрешено прерывание, он отвечает контроллеру сигналом на вход INTA. По этому сигналу на шину данных выдаётся первый байт команды CALL. Входящий в состав МП системы системный контроллер формирует ещё 2 сигнала, на вход INTA, по которым выдаются 2-й и 3-й байты команды CALL, содержащий адрес подпрограммы обработки прерываний." К.Г Самофалов, О.В. Викторов. "Микропроцессоры". Кіев, Тєхніка. 1989г.
Так шта... Не приладить его к AVR. А на каком нить мелком авре сделаешь контроллер прерываний, какой хошь.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 5 2007, 23:58
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(prottoss @ Mar 5 2007, 21:58) *
Цитата(zltigo @ Mar 6 2007, 00:10) *
Цитата(prottoss @ Mar 5 2007, 16:11) *

Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции

Мил человек, ну почитайте PDF хоть по диагонали на 8259 и почие внешние контролеры. Это КОНТРОЛЛЕРЫ, которые ЗАХВАТЫВАЮТ ШИНУ ПРОЦЕССОРА и выставляют на нее команду чтения области векторов прерывания. Ну и причем здесь ATmegа???
На сколько я знаю, ни какого захвата шины они не производят, (я про 8259), имеют 8-бит шину данных, сигналы RD/WR/CS/A0 для общения выход прерывания INT. Для считывания вектора существует вход INTA. По отрицательным стробам от МК по этой линии, с линий данных 8253 считывается вектор и код команды для 8080. Какой захват шины то???


По-моему zltigo прав. На сколько я помню 8259(кр580вн59) и 8259А (кр1810вн59а) банально отключают озу программы и выставляют код команды перехода по прерыванию. А именно RSTx её код был до 0fh. Или код входа в п/п типа 0cdh xxh xxh. Начальный адрес задавался. А вектора шли с определённым шагом. Кстати похоже работал и ПДП типа 8257. Да и ещё один не очень приятный момент для Вас. 8259 не имел приоритетов.

Теперь по сути вопроса. Такую структуру контроллера прерываний в принципе не сложно создать самому. Достаточно поставить элемент ИЛИ ну и регистр защёлкивающий состояние в момент его вызова. Регистр читается с порта либо по шине. Таким образом Вы можете расширить базу векторов прерываний.
Как сделать контроль приоритетов прерываний я в принципе описывал кратко в статье на http://nix-06.nm.ru/ и где-то здесь мы спорили с defunct.

Кстати в этой теме вообще нет ничего невозможного. Так я к примеру создавал систему с тремя МП работающими на общей памяти. Реализовывал работу 8515 с динамической памятью. Странично расширял ОЗУ для 8051 до 1Мб. Вполне представляю как включить внешний сопроцессор. Возможно и использование ПДП. (Видел в инете схему, сварганенную японцем для прямого доступа к графическому контроллеру)

А вообще если разобраться все идеи - банальны. (я о 8259, 8257, 8087). Когда смотришь на принципы обращения к полному ОЗУ из-под i8086, то сразу становится понятной схема контроллера память в самом CPU к примеру. Боже! До чего банально. Принцип реализуется одной микросхемой сумматора. smile.gif
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Mar 6 2007, 00:01
Сообщение #13


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(Alex_Pol @ Mar 5 2007, 22:41) *
... Не приладить его к AVR. А на каком нить мелком авре сделаешь контроллер прерываний, какой хошь.

Да приладить то как раз можно. Но у ВН59 (Soviet) ошибочка во внутренней логике, он не формирует все 3 байта команды перехода к обработке прерывания. В 1987 году прошли с этим контроллером всю камасутру, так и не удалось заставить правильно работать. А вот 1810ВН59 вроде уже был правильный.
Если действительно нужно много прерываний, наверное лучше использовать ПЛИС. Внутри неё можно реализовать любую логику и приоритеты. Повесить его как внешнее ОЗУ и прерывать МК в нужный момент. Явно будет работать быстрее, чем дополнительный МК.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 6 2007, 00:14
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Nanobyte @ Mar 6 2007, 01:01) *
Да приладить то как раз можно. Но у ВН59 (Soviet) ошибочка во внутренней логике, он не формирует все 3 байта команды перехода к обработке прерывания. В 1987 году прошли с этим контроллером всю камасутру, так и не удалось заставить правильно работать. А вот 1810ВН59 вроде уже был правильный.
Если действительно нужно много прерываний, наверное лучше использовать ПЛИС. Внутри неё можно реализовать любую логику и приоритеты. Повесить его как внешнее ОЗУ и прерывать МК в нужный момент. Явно будет работать быстрее, чем дополнительный МК.


Применяли серийно. Шли - сотнями. Никаких ошибок не было. Правда было это после 88 года. 8259А самостоятельно я уже не применял.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 6 2007, 04:43
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Цитата(Nanobyte @ Mar 5 2007, 23:01) *
Да приладить то как раз можно.

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

Сообщение отредактировал Alex_Pol - Mar 6 2007, 04:45
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01492 секунд с 7
ELECTRONIX ©2004-2016