|
Внешний контроллер прерываний |
|
|
|
 |
Ответов
|
Mar 6 2007, 13:15
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд. При использовании неподдерживающего этот режим микроконтроллера все нужно реализовывать программно - прочитать вектор, и ручками перейти по этому адресу. Время, затраченное на вызов прерывания, будет намного больше независимо от того, на чем контроллер делать - на ПЛИС, использовать старый из мусорки или что-то еще.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Mar 6 2007, 20:42
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Dog Pawlowa @ Mar 6 2007, 14:15)  Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд. При использовании неподдерживающего этот режим микроконтроллера все нужно реализовывать программно - прочитать вектор, и ручками перейти по этому адресу. Время, затраченное на вызов прерывания, будет намного больше независимо от того, на чем контроллер делать - на ПЛИС, использовать старый из мусорки или что-то еще. Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену. А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44. "...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...." Цитата Прерываний как раз 8 штук. Я, когда задавал вопрос, в даташите подробно не копаля в 8259, но принцип его работы знал. Плохо, конечно, что он заточен под 8080 и 8086. Про 8259 я упомянул, потому как внешне он красиво смотрится: 1.Наличие 8 линий прерываний 2.Наличие 8-и разрядной шины данных + набор стандартных сигналов (RD/WR/CS) 3.Настройка через внутренние регистры. Работа ч/з внутренние регистры Вам ничего не даст. То есть удобства не добавит. Это же не внутренняя переферия. Всё равно придётся опрашивать-анализировать-переходить на подвектор. Подвесить 8259A конечно можно, но ещё одна засада. Макс. F=5МГц.  Ну и в серийное изделие я бы не закладывал. Он будет дороже чем ATMEGA128.
|
|
|
|
|
Mar 7 2007, 11:40
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(SasaVitebsk @ Mar 6 2007, 21:42)  Цитата(Dog Pawlowa @ Mar 6 2007, 14:15)  Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд.
Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену. А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44. "...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...." Чего не люблю, так это подмены понятий и определений и такого ссылки на якобы авторитетов, которые быть может и с микропроцессорами то не работали. Уровень книжек в те времена был удручающе низкий. Теперь удручает цитирование этих книжек. Захват шины - это было сказано? Было. Было сказано даже про какой-то запрет ОЗУ. - "На сколько я помню 8259(кр580вн59) и 8259А (кр1810вн59а) банально отключают озу программы и выставляют код команды перехода по прерыванию." Ну что за бред? Если Вы это тоже вычитали, еще понятно. Но если Вы это помните??!!! Захват шины - это ситуация, когда вместо основного мастера работает другой. Например, вместо микропроцессора - контроллер прямого доступа. Или сервисный пульт, подключенный к шине. В процессе передачи вектора от контроллера прерываний в микроконтроллер мастером продолжает являться микроконтроллер. Конечно, "Контроллер формирует и подает", но только под управлением сигнала INTA, приходящего от микропроцессора. То есть захват шины отсутствует напрочь. А уж блокировка ОЗУ... Какая еще блокировка, если в этот момент обращение к ОЗУ не производится, чего его блокировать? Так что Вы лучше определитесь - или Вы спорите, или что ... Очень не хотелось бы наблюдать тут пропаганду безграмотности. Успехов
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Mar 7 2007, 13:21
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Dog Pawlowa @ Mar 7 2007, 12:40)  Цитата(SasaVitebsk @ Mar 6 2007, 21:42)  Цитата(Dog Pawlowa @ Mar 6 2007, 14:15)  Про захват шины загнули, конечно... Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд.
Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену. А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44. "...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...." Чего не люблю, так это подмены понятий и определений и такого ссылки на якобы авторитетов, которые быть может и с микропроцессорами то не работали. Уровень книжек в те времена был удручающе низкий. Теперь удручает цитирование этих книжек. Захват шины - это было сказано? Было. Было сказано даже про какой-то запрет ОЗУ. - "На сколько я помню 8259(кр580вн59) и 8259А (кр1810вн59а) банально отключают озу программы и выставляют код команды перехода по прерыванию." Ну что за бред? Если Вы это тоже вычитали, еще понятно. Но если Вы это помните??!!! Захват шины - это ситуация, когда вместо основного мастера работает другой. Например, вместо микропроцессора - контроллер прямого доступа. Или сервисный пульт, подключенный к шине. В процессе передачи вектора от контроллера прерываний в микроконтроллер мастером продолжает являться микроконтроллер. Конечно, "Контроллер формирует и подает", но только под управлением сигнала INTA, приходящего от микропроцессора. То есть захват шины отсутствует напрочь. А уж блокировка ОЗУ... Какая еще блокировка, если в этот момент обращение к ОЗУ не производится, чего его блокировать? Так что Вы лучше определитесь - или Вы спорите, или что ... Очень не хотелось бы наблюдать тут пропаганду безграмотности. Успехов  1) Эта книга является найболее точной, полной, грамотной из всех мной использованной. Это как раз тот редкий случай, когда очевидно, что авторы точно знают о чём пишут. А также они знают как изложить свои знания на бумаге. Ничего лишнего - всё кратко и точно. Тоэтому, прошу, не надо охаивать авторов и книгу, которую вы даже не читали. 2) Формально вы правы. Мы "подменили понятия" с zltigo. Я бы предпочёл выражение "выразились не точно".  Я имел ввиду то, что они в этот момент сидят на шине данных. Скажем понятие захвата шины действительно более подходит к ПДП. С другой стороны вы тоже осуществляете "тут пропаганду безграмотности". Вот пример: "Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд". МК не читает вектор, а читает по INTA код команды перехода по вектору. Причём это может быть и код команды RST. Поэтому, я считаю что я выразился точнее. 3) Насчёт блокировки озу и т.п. - я просто уже подзабыл что-то требовалось для ПДП, но не в этом дело. Я просто хотел отметить, что многое там требовалось сделать аппаратно. Сейчас конечно многое изменилось. Сжемки мои конечно так - баловство.  Я бы не стал применять более одного, ну максимум двух вспомогательных корпусов. Конечно грамотнее и правильней использовать CPU со встроенной аналогичной ф-ией. Ну и prottoss это понимает, а мы просто по энерции обсуждаем прикольную тему. Цитата Кроме того, что будет, если IRQn будет достаточно продолжительным по времени, по сравнению с временем обработки всех прерываний? Можно поставить разделительные кондёры по входу. Цитата Все это можно заменить 8 диодами и 1 конденсатором .Я так и делаю. Никакими кондёрами или диодами нельзя сесть на шину. Это бред. Бывают схемотехники которые на шину данных подключаются ч/з резисторы. Я к их числу не принадлежу.
|
|
|
|
|
Mar 7 2007, 16:51
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(SasaVitebsk @ Mar 7 2007, 14:21)  1) Эта книга является найболее точной, полной, грамотной из всех мной использованной. Это как раз тот редкий случай, когда очевидно, что авторы точно знают о чём пишут. А также они знают как изложить свои знания на бумаге. Ничего лишнего - всё кратко и точно. Тоэтому, прошу, не надо охаивать авторов и книгу, которую вы даже не читали. 2) Формально вы правы. Мы "подменили понятия" с zltigo. Я бы предпочёл выражение "выразились не точно".  Я имел ввиду то, что они в этот момент сидят на шине данных. Скажем понятие захвата шины действительно более подходит к ПДП. С другой стороны вы тоже осуществляете "тут пропаганду безграмотности". Вот пример: "Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд". МК не читает вектор, а читает по INTA код команды перехода по вектору. Причём это может быть и код команды RST. Поэтому, я считаю что я выразился точнее. Я в те годы заказывал и читал все книги, относящиеся к микроконтроллерам, и эта книга действительно не самая плохая. Были гораздо хуже. В которых, как сейчас помню, писалось про "программируемый контроллер системной шины". В этой просто размытость понятий. По себе знаю - человек или пишет книги, или же непосредственно работает, и ему не до книг Что касается Вашей поправки... Мы о каком контроллере прерываний говорим? 8259 или 8259A? В каком режиме? Действительно, все начиналось с 8080 и 8259, сигнал INTA варабатывался в течение трех циклов шины, и первым кодом был код 0CDh - код команды вызова подпрограммы. Потом появился процессор 8086, с другой системой команд, и появился контроллер 8259A. Разработчики исключили первый байт из последовательности получения вектора прерывания в режиме 8086, поскольку он не информативен и никогда не был информативен(микропроцессор и так знает, что он делает - получает вектор прерывания). Он, вероятно, был введен для упрощения структуры микроконтроллера. Быть может, какие-то извращенцы и использовали его для передачи в микроконтроллер других команд. Если Вы настаиваете на значимости этого факта, и найдете случаи такого использования, не буду с Вами спорить.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Mar 7 2007, 17:22
|

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

|
Цитата(Dog Pawlowa @ Mar 7 2007, 15:51)  Быть может, какие-то извращенцы и использовали его для передачи в микроконтроллер других команд. А это как? CD (CALL), вроде как аппаратно было впендюрено в ВН59, или путаю чего?
|
|
|
|
|
Mar 7 2007, 17:52
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Alex_Pol @ Mar 7 2007, 17:22)  А это как? CD (CALL), вроде как аппаратно было впендюрено в ВН59, или путаю чего? Вся информация заносится в контроллер программно. Во-первых, задается вид вектора прерываний: RST или CALL. Во-вторых, адресная часть инструкций CALL заносится в контроллер прерывания, опять же, по программе. Ведь 8259 не зря же называется программируемым.
|
|
|
|
Сообщений в этой теме
prottoss Внешний контроллер прерываний Mar 5 2007, 17:11 Alex_Pol Цитата(prottoss @ Mar 5 2007, 16:11) Hi A... Mar 5 2007, 17:36 prottoss Цитата(Alex_Pol @ Mar 5 2007, 21:36) Цита... Mar 5 2007, 17:39 GDI Новые меги имеют прерывания на ВСЕХ ногах, наприме... Mar 5 2007, 19:08 Dopler Цитата(GDI @ Mar 5 2007, 19:08) Новые мег... Mar 5 2007, 19:15 prottoss Цитата(GDI @ Mar 5 2007, 23:08) Новые мег... Mar 5 2007, 19:16 zltigo Цитата(prottoss @ Mar 5 2007, 16:11) Есть... Mar 5 2007, 20:10 prottoss Цитата(zltigo @ Mar 6 2007, 00:10) Цитата... Mar 5 2007, 20:43 prottoss Цитата(zltigo @ Mar 6 2007, 00:10) Цитата... Mar 5 2007, 20:58  SasaVitebsk Цитата(prottoss @ Mar 5 2007, 21:58) Цита... Mar 5 2007, 23:58   prottoss Цитата(SasaVitebsk @ Mar 6 2007, 03:58) П... Mar 6 2007, 11:27 tag Цитата(zltigo @ Mar 5 2007, 20:10) Цитата... Mar 7 2007, 13:26 bomick Цитата(prottoss @ Mar 5 2007, 17:11) Hi A... Mar 5 2007, 21:46 Alex_Pol Вот описания работы программируемого контроллера п... Mar 5 2007, 22:41 Nanobyte Цитата(Alex_Pol @ Mar 5 2007, 22:41) ... ... Mar 6 2007, 00:01  SasaVitebsk Цитата(Nanobyte @ Mar 6 2007, 01:01) Да п... Mar 6 2007, 00:14  Alex_Pol Цитата(Nanobyte @ Mar 5 2007, 23:01) Да п... Mar 6 2007, 04:43   prottoss Цитата(Dog Pawlowa @ Mar 6 2007, 17:15) П... Mar 6 2007, 14:01   muravei Цитата(Dog Pawlowa @ Mar 6 2007, 13:15) И... Mar 6 2007, 15:06    m16 Цитата(muravei @ Mar 6 2007, 15:06) А бер... Mar 6 2007, 15:15     Dog Pawlowa Цитата(m16 @ Mar 6 2007, 16:15) Цитата(mu... Mar 6 2007, 15:59      Nanobyte Цитата(Dog Pawlowa @ Mar 6 2007, 15:59) .... Mar 6 2007, 17:00    prottoss Цитата(muravei @ Mar 6 2007, 19:06) Цитат... Mar 6 2007, 15:30     Alex_Pol Цитата(prottoss @ Mar 6 2007, 14:30) Пода... Mar 6 2007, 16:22        m16 Цитата(Alex_Pol @ Mar 7 2007, 17:22) А эт... Mar 7 2007, 17:31      prottoss Цитата(SasaVitebsk @ Mar 7 2007, 17:21) 2... Mar 8 2007, 15:58       SasaVitebsk Цитата(prottoss @ Mar 8 2007, 16:58) Цита... Mar 8 2007, 16:37   _Bill Цитата(Dog Pawlowa @ Mar 6 2007, 13:15) П... Mar 7 2007, 17:12    SasaVitebsk Последним постом вы сами себя и опровергаете. Кома... Mar 7 2007, 21:49     _Bill Цитата(SasaVitebsk @ Mar 7 2007, 21:49) П... Mar 9 2007, 17:03      SasaVitebsk Цитата(_Bill @ Mar 9 2007, 18:03) Цитата(... Mar 9 2007, 22:59       mse Цитата(SasaVitebsk @ Mar 9 2007, 22:59) Т... Mar 10 2007, 13:15       _Bill Цитата(SasaVitebsk @ Mar 9 2007, 22:59) В... Mar 10 2007, 14:48 kv_addr Если существует определенная детерминированность и... Mar 6 2007, 16:59 prottoss Цитата(kv_addr @ Mar 6 2007, 20:59) Если ... Mar 6 2007, 17:22  kv_addr Цитата(prottoss @ Mar 6 2007, 18:22) Прер... Mar 6 2007, 18:21   prottoss Цитата(kv_addr @ Mar 6 2007, 22:21) Цитат... Mar 6 2007, 18:39 GDI Так а чем тогда мега 1280/1281/... не катит? Mar 6 2007, 18:52 prottoss Цитата(GDI @ Mar 6 2007, 22:52) Так а чем... Mar 6 2007, 19:01 aesok Цитата(prottoss @ Mar 5 2007, 17:11) Hi A... Mar 6 2007, 18:54 kamedi_clab Цитата(prottoss @ Mar 5 2007, 17:11) Hi A... Mar 6 2007, 19:19 prottoss Цитата(kamedi_clab @ Mar 6 2007, 23:19) м... Mar 6 2007, 19:33 SasaVitebsk Критикуйте. Mar 6 2007, 21:49 =GM= Цитата(SasaVitebsk @ Mar 6 2007, 18:49) К... Mar 7 2007, 02:10 upc2 Цитата(SasaVitebsk @ Mar 6 2007, 21:49) К... Mar 7 2007, 12:33 Alex_Pol Дык, ног свободных у prottossа, в смысле, у его ме... Mar 7 2007, 00:20 aesok Чего-то я prottossа не понимаю. Вместо 128 меги по... Mar 7 2007, 00:31  Dopler Цитата(aesok @ Mar 7 2007, 00:31) Чего-то... Mar 7 2007, 08:22  prottoss Цитата(aesok @ Mar 7 2007, 04:31) Чего-то... Mar 7 2007, 14:53   klop Цитата(prottoss @ Mar 7 2007, 14:49) Я во... Mar 7 2007, 15:01   Dopler Цитата(prottoss @ Mar 7 2007, 14:53) Во п... Mar 7 2007, 16:09   tag [quote name='tag' post='220658' da... Mar 9 2007, 10:20 SasaVitebsk Цитата(Alex_Pol @ Mar 7 2007, 01:20) Дык,... Mar 7 2007, 00:33 beer_warrior ЦитатаСамая дешевая (и маленькая) плис Altera буде... Mar 7 2007, 10:28 beer_warrior ЦитатаВсе это можно заменить 8 диодами и 1 конденс... Mar 7 2007, 12:55 upc2 Цитата(beer_warrior @ Mar 7 2007, 12:55) ... Mar 9 2007, 08:49 Alex_Pol Я бы решал так. Тинька 2313. В цикле опрашиваю пор... Mar 7 2007, 15:03 klop Цитата(Alex_Pol @ Mar 7 2007, 15:03) Я бы... Mar 7 2007, 15:05  Alex_Pol Цитата(klop @ Mar 7 2007, 14:05) Довольно... Mar 7 2007, 15:21 SasaVitebsk Так об этом и был спор. Дело в том, что уже в 8259... Mar 10 2007, 19:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|