|
Внешний контроллер прерываний |
|
|
|
 |
Ответов
(1 - 14)
|
Mar 5 2007, 17:39
|

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

|
Цитата(Alex_Pol @ Mar 5 2007, 21:36)  Цитата(prottoss @ Mar 5 2007, 16:11)  Hi All! Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные.
Возьми ещё один контроллер, Мегу8, к примеру, и на ней реализуй что надо. Хм...Идея  , надо будет подумать
--------------------
|
|
|
|
|
Mar 5 2007, 19:15
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

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

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Mar 5 2007, 20:58
|

Гуру
     
Группа: Свой
Сообщений: 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. Какой захват шины то???
--------------------
|
|
|
|
|
Mar 5 2007, 21:46
|
Группа: Участник
Сообщений: 6
Регистрация: 8-12-06
Пользователь №: 23 300

|
Цитата(prottoss @ Mar 5 2007, 17:11)  Hi All!
Есть ли в природе внешние контроллеры прерываний типа 8259, только, может, более современные. Есть необходимость использовать таковой с ATmega128, т.к. практически все внешние линии INTx прерываний задействованны под другие функции Интересовался подобным вопросом пару лет назад. Полных аналогов 8259 не нашел (кроме советских). Дело втом что с 286 компьтеров стали истользовать итегрированные микросхемы т.е. два контроллера прерываний , контроллера прерываний , пара таймеров(8253) и часы реального времени в одном флаконе. Название микросхемы не помню. Но если надо то могу уточнитью
|
|
|
|
|
Mar 5 2007, 23:58
|
Гуру
     
Группа: Свой
Сообщений: 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 к примеру. Боже! До чего банально. Принцип реализуется одной микросхемой сумматора.
|
|
|
|
|
Mar 6 2007, 00:01
|

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

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

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

|
Цитата(Nanobyte @ Mar 5 2007, 23:01)  Да приладить то как раз можно. Не спорю. Всё можно приладить.  Но выйдет не кузяво. На ПЛИСене, наверное, будет совсем красиво, но я с ними дело не имел. Посему, решал бы проблему с помощью ещё одного контроллера.
Сообщение отредактировал Alex_Pol - Mar 6 2007, 04:45
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|