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

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Внешний контроллер прерываний
beer_warrior
сообщение Mar 7 2007, 12:55
Сообщение #46


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
Все это можно заменить 8 диодами и 1 конденсатором .Я так и делаю.

А как вы различаете источник?


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 7 2007, 13:21
Сообщение #47


Гуру
******

Группа: Свой
Сообщений: 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, приходящего от микропроцессора. То есть захват шины отсутствует напрочь. А уж блокировка ОЗУ... Какая еще блокировка, если в этот момент обращение к ОЗУ не производится, чего его блокировать?
Так что Вы лучше определитесь - или Вы спорите, или что ... Очень не хотелось бы наблюдать тут пропаганду безграмотности.
Успехов smile.gif


1) Эта книга является найболее точной, полной, грамотной из всех мной использованной. Это как раз тот редкий случай, когда очевидно, что авторы точно знают о чём пишут. А также они знают как изложить свои знания на бумаге. Ничего лишнего - всё кратко и точно. Тоэтому, прошу, не надо охаивать авторов и книгу, которую вы даже не читали.
2) Формально вы правы. Мы "подменили понятия" с zltigo. Я бы предпочёл выражение "выразились не точно". smile.gif Я имел ввиду то, что они в этот момент сидят на шине данных. Скажем понятие захвата шины действительно более подходит к ПДП. С другой стороны вы тоже осуществляете "тут пропаганду безграмотности". Вот пример: "Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд". МК не читает вектор, а читает по INTA код команды перехода по вектору. Причём это может быть и код команды RST. Поэтому, я считаю что я выразился точнее.
3) Насчёт блокировки озу и т.п. - я просто уже подзабыл что-то требовалось для ПДП, но не в этом дело. Я просто хотел отметить, что многое там требовалось сделать аппаратно.

Сейчас конечно многое изменилось. Сжемки мои конечно так - баловство. smile.gif Я бы не стал применять более одного, ну максимум двух вспомогательных корпусов. Конечно грамотнее и правильней использовать CPU со встроенной аналогичной ф-ией. Ну и prottoss это понимает, а мы просто по энерции обсуждаем прикольную тему.

Цитата
Кроме того, что будет, если IRQn будет достаточно продолжительным по времени, по сравнению с временем обработки всех прерываний?

Можно поставить разделительные кондёры по входу. smile.gif

Цитата
Все это можно заменить 8 диодами и 1 конденсатором .Я так и делаю.

Никакими кондёрами или диодами нельзя сесть на шину. Это бред. Бывают схемотехники которые на шину данных подключаются ч/з резисторы. Я к их числу не принадлежу.
Go to the top of the page
 
+Quote Post
tag
сообщение Mar 7 2007, 13:26
Сообщение #48


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

Группа: Свой
Сообщений: 151
Регистрация: 21-02-06
Пользователь №: 14 561



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

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

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



...а если еще внимательнее почитать и посмотреть, то... есть режим опроса, в этом случае на процессор заводится от контроллера сигнал INT, шина данных/адреса и все управляющие кроме подтверждения запроса контроллера от процессора. Когда на контроллере возникает прерывание, контроллер генерирует его для процессора, процессор не подтверждает (в этом случае захвата шины не происходит), а переводит контроллер в режим опроса и считывает номер прерывания на контроллере...
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 7 2007, 14:53
Сообщение #49


Гуру
******

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



Цитата(aesok @ Mar 7 2007, 04:31) *
Чего-то я prottossа не понимаю. Вместо 128 меги поставить 1280-ную и получить дополнительно 32 линии ввода выводы из них 16 с прерываниями по изменению состояния он не может. А поставить рядом плисину с которыми не работал или микросхему 30-летней свежести пожалуйста.... странно.

Анатолий.
Во первых, как я уже говорил выше, ноги все (почти) заняты, а мне надо 8 полноценных прерываний. Во вторых, про то, что я собираюсь цеплять 8259 речи не было. Я вопрошал про аналоги, и ВООБЩЕ, есть ли таковые (КП) в природе. А то что я не работал с ПЛИСинами, не говорит о том, что я сам, либо с чьей то помощью, не смогу реализовать собственный КП

Цитата(Dopler @ Mar 7 2007, 12:22) *
Цитата(aesok @ Mar 7 2007, 00:31) *

Чего-то я prottossа не понимаю. Вместо 128 меги поставить 1280-ную и получить дополнительно 32 линии ввода выводы из них 16 с прерываниями по изменению состояния он не может. А поставить рядом плисину с которыми не работал или микросхему 30-летней свежести пожалуйста.... странно.

Анатолий.


Согласен, Мега1280 со всех сторон новее, в два раза больше таймеров, ОЗУ, USART, внешних прерываний, 100! ножек корпуса, за дополнительные 3$ по сравнению с устаревающей мегой 128.
Самая дешевая (и маленькая) плис Altera будет иметь те же 100 ножек и стоить минимум 6$, а ей еще нужны такты подавать.
Ну про 6 баксов и сто ножек Вы, конечно, загнули :-)

Цитата(Dog Pawlowa @ Mar 7 2007, 15:40) *
Цитата(SasaVitebsk @ Mar 6 2007, 21:42) *

Цитата(Dog Pawlowa @ Mar 6 2007, 14:15) *

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

Собственно спорить я не собираюсь, но так в порядке ответа Чемберлену.
А.Г.Алексенко и др. "Проектирование радио-электронной аппаратуры на микропроцессоре". стр.44.
"...с возможностью маскирования и динамического изменения дисциплины обслуживания. Для перехода к подпрограммам обслуживания прерываний контроллер формирует и подаёт на ШД процессора код команды CALL. Каскадированием БИС ...."

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

Захват шины - это было сказано? Было. Было сказано даже про какой-то запрет ОЗУ. - "На сколько я помню 8259(кр580вн59) и 8259А (кр1810вн59а) банально отключают озу программы и выставляют код команды перехода по прерыванию."
Ну что за бред? Если Вы это тоже вычитали, еще понятно. Но если Вы это помните??!!!

Захват шины - это ситуация, когда вместо основного мастера работает другой. Например, вместо микропроцессора - контроллер прямого доступа. Или сервисный пульт, подключенный к шине.
В процессе передачи вектора от контроллера прерываний в микроконтроллер мастером продолжает являться микроконтроллер. Конечно, "Контроллер формирует и подает", но только под управлением сигнала INTA, приходящего от микропроцессора. То есть захват шины отсутствует напрочь. А уж блокировка ОЗУ... Какая еще блокировка, если в этот момент обращение к ОЗУ не производится, чего его блокировать?
Так что Вы лучше определитесь - или Вы спорите, или что ... Очень не хотелось бы наблюдать тут пропаганду безграмотности.
Успехов smile.gif
Всеми конечностями жму Вам руку

Цитата(tag @ Mar 7 2007, 17:26) *
...а если еще внимательнее почитать и посмотреть, то... есть режим опроса, в этом случае на процессор заводится от контроллера сигнал INT, шина данных/адреса и все управляющие кроме подтверждения запроса контроллера от процессора. Когда на контроллере возникает прерывание, контроллер генерирует его для процессора, процессор не подтверждает (в этом случае захвата шины не происходит), а переводит контроллер в режим опроса и считывает номер прерывания на контроллере...
Что то я это выпустил... И, хотя, опять поправлю Вас, что НЕТУ ТО ЗАХВАТА ШИНЫ НУ НИ КАК!!!, обязательно изучу это...



PS: В дорогом магазине радиокомпонентов в моем городе 82С59 от Winbond стоит 59 рублей 96 копеек в розницу


--------------------
Go to the top of the page
 
+Quote Post
klop
сообщение Mar 7 2007, 15:01
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(prottoss @ Mar 7 2007, 14:49) *
Я вопрошал про аналоги, и ВООБЩЕ, есть ли таковые (КП) в природе.


Аналогичных 8259 (с паралельными шинами и тд) сейчас нету

Цитата(prottoss @ Mar 7 2007, 14:49) *
А то что я не работал с ПЛИСинами, не говорит о том, что я сам, либо с чьей то помощью, не смогу реализовать собственный КП


Сам по себе КП ничего сложного из себя не представлет. 40-50 строчек на HDL. обычно висит на внутренней паралельной шине (APB в ARM). Навороченные варианты позволяют например ARMам эмулироввать множество векторов.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 7 2007, 15:03
Сообщение #51


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

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



Я бы решал так. Тинька 2313. В цикле опрашиваю порт В, если что то изменилось - байт состояния порта через УАРТ в главный контроллер, и пусть он с ним разбирается.
Go to the top of the page
 
+Quote Post
klop
сообщение Mar 7 2007, 15:05
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788



Цитата(Alex_Pol @ Mar 7 2007, 15:03) *
Я бы решал так. Тинька 2313. В цикле опрашиваю порт В, если что то изменилось - байт состояния порта через УАРТ в главный контроллер, и пусть он с ним разбирается.


Довольно разумный подход но только если прерывания возникают не слишком часто.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 7 2007, 15:21
Сообщение #53


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

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



Цитата(klop @ Mar 7 2007, 14:05) *
Довольно разумный подход но только если прерывания возникают не слишком часто.
В ТЗ было заявлено 1 мс. smile.gif Времени с. головой хватит

Сообщение отредактировал Alex_Pol - Mar 7 2007, 15:23
Go to the top of the page
 
+Quote Post
Dopler
сообщение Mar 7 2007, 16:09
Сообщение #54


Местный
***

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



Цитата(prottoss @ Mar 7 2007, 14:53) *
Во первых, как я уже говорил выше, ноги все (почти) заняты, а мне надо 8 полноценных прерываний. Во вторых, про то, что я собираюсь цеплять 8259 речи не было. Я вопрошал про аналоги, и ВООБЩЕ, есть ли таковые (КП) в природе. А то что я не работал с ПЛИСинами, не говорит о том, что я сам, либо с чьей то помощью, не смогу реализовать собственный КП

Тогда я что-то не понял, вы ведете речь о меге128 у которой 64 вывода, которые и так все заняты, вам советуют применить мегу1280 у которой 100 выводов, т.е. у нее 32 дополнительных вывода по сравнению со 128.

Цитата
Ну про 6 баксов и сто ножек Вы, конечно, загнули :-)


Посмотрел в прайс. Я думал max7000 умерли безвозвратно, ан нет, еще есть...
Я давно перешел на MAX II, а там действительно самый маленький - 100 ног, 6$.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 7 2007, 16:51
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SasaVitebsk @ Mar 7 2007, 14:21) *
1) Эта книга является найболее точной, полной, грамотной из всех мной использованной. Это как раз тот редкий случай, когда очевидно, что авторы точно знают о чём пишут. А также они знают как изложить свои знания на бумаге. Ничего лишнего - всё кратко и точно. Тоэтому, прошу, не надо охаивать авторов и книгу, которую вы даже не читали.
2) Формально вы правы. Мы "подменили понятия" с zltigo. Я бы предпочёл выражение "выразились не точно". smile.gif Я имел ввиду то, что они в этот момент сидят на шине данных. Скажем понятие захвата шины действительно более подходит к ПДП. С другой стороны вы тоже осуществляете "тут пропаганду безграмотности". Вот пример: "Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор. И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд". МК не читает вектор, а читает по INTA код команды перехода по вектору. Причём это может быть и код команды RST. Поэтому, я считаю что я выразился точнее.

Я в те годы заказывал и читал все книги, относящиеся к микроконтроллерам, и эта книга действительно не самая плохая. Были гораздо хуже. В которых, как сейчас помню, писалось про "программируемый контроллер системной шины". В этой просто размытость понятий. По себе знаю - человек или пишет книги, или же непосредственно работает, и ему не до книг wink.gif

Что касается Вашей поправки... Мы о каком контроллере прерываний говорим? 8259 или 8259A? В каком режиме?
Действительно, все начиналось с 8080 и 8259, сигнал INTA варабатывался в течение трех циклов шины, и первым кодом был код 0CDh - код команды вызова подпрограммы. Потом появился процессор 8086, с другой системой команд, и появился контроллер 8259A. Разработчики исключили первый байт из последовательности получения вектора прерывания в режиме 8086, поскольку он не информативен и никогда не был информативен(микропроцессор и так знает, что он делает - получает вектор прерывания). Он, вероятно, был введен для упрощения структуры микроконтроллера. Быть может, какие-то извращенцы и использовали его для передачи в микроконтроллер других команд. Если Вы настаиваете на значимости этого факта, и найдете случаи такого использования, не буду с Вами спорить. smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
_Bill
сообщение Mar 7 2007, 17:12
Сообщение #56


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(Dog Pawlowa @ Mar 6 2007, 13:15) *
Про захват шины загнули, конечно...
Сигнал INTA работает как признак, означающий, что контроллеру нужно передать вектор.
И микроконтроллер своей логикой сразу после сохранения старого значения счетчика команд помещает этот вектор в счетчик команд.

В порядке уточнения. Вектором прерывания принято называть любую информацию от периферийного устройства, которая позволяет идентифицировать источник запроса на прерывание. В частности, такой информацией может быть специальная инструкция типа RST или CALL, которая действительно может быть передана в счетчик команд процессора. Именно эти команды выдает контроллер прерываний типа 8259 в ответ на выдачу процессором сингнала подтверждения прерывания INTA.
В других случаях, в качестве вектора прерывания может быть использовано смещение относительно начала таблицы векторов прерывания. В этих случаях в счетчи команд заносится соответсвующи адрес, выбираемый из таблицы векторов.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Mar 7 2007, 17:22
Сообщение #57


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

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



Цитата(Dog Pawlowa @ Mar 7 2007, 15:51) *
Быть может, какие-то извращенцы и использовали его для передачи в микроконтроллер других команд.
А это как? CD (CALL), вроде как аппаратно было впендюрено в ВН59, или путаю чего?
Go to the top of the page
 
+Quote Post
m16
сообщение Mar 7 2007, 17:31
Сообщение #58


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



Цитата(Alex_Pol @ Mar 7 2007, 17:22) *
А это как? CD (CALL), вроде как аппаратно было впендюрено в ВН59, или путаю чего?

всё так , а таблица векторов задаётся программно с шагом в 4 байта , если не ошибаюсь
Go to the top of the page
 
+Quote Post
_Bill
сообщение Mar 7 2007, 17:52
Сообщение #59


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(Alex_Pol @ Mar 7 2007, 17:22) *
А это как? CD (CALL), вроде как аппаратно было впендюрено в ВН59, или путаю чего?

Вся информация заносится в контроллер программно. Во-первых, задается вид вектора прерываний: RST или CALL. Во-вторых, адресная часть инструкций CALL заносится в контроллер прерывания, опять же, по программе. Ведь 8259 не зря же называется программируемым.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 7 2007, 21:49
Сообщение #60


Гуру
******

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



Последним постом вы сами себя и опровергаете. Команда CALL и команда RST (RST0-RST7 кстати).

Цитата(_Bill @ Mar 7 2007, 18:12) *
В порядке уточнения. Вектором прерывания принято называть любую информацию от периферийного устройства, которая позволяет идентифицировать источник запроса на прерывание. В частности, такой информацией может быть специальная инструкция типа RST или CALL, которая действительно может быть передана в счетчик команд процессора. Именно эти команды выдает контроллер прерываний типа 8259 в ответ на выдачу процессором сингнала подтверждения прерывания INTA.
В других случаях, в качестве вектора прерывания может быть использовано смещение относительно начала таблицы векторов прерывания. В этих случаях в счетчи команд заносится соответсвующи адрес, выбираемый из таблицы векторов.


Не надо передёргивать. НИКОГДА КОМАНДА НЕ ЯВЛЯЛАСЬ ВЕКТОРОМ. Действительно не плодите безграмотность. Вдумайтесь что вы пишете:
Цитата
...инструкция типа RST или CALL, которая действительно может быть передана в счетчик команд процессора

На экзамене за такое ставят 2 бала без дополнительных вопросов. Вы вообще себе счётчик команд представляете? Если представляете зачем пишете ахинею?

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

Я настаиваю на значимости данного факта. Это вполне увязывается с моими постами о примитивности построения данного микропроцессорного комплекта. Я не пробовал подсовывать МП другие команды. Но думаю, что они бы выполнились.
Ещё раз повторяю, что остальные базовые микросхемы комплекта (речь идёт о 8080) оставляли такое же ощущение. (Простоты решения)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 10:47
Рейтинг@Mail.ru


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