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

 
 
 
Reply to this topicStart new topic
> Связка ISA + FIFO
8301
сообщение May 3 2005, 10:51
Сообщение #1





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Здравствуйте, уважаемые!

Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже sad.gif единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать.

Заранее благодарю, отвечу на любые вопросы по теме.
Go to the top of the page
 
+Quote Post
Apast
сообщение May 3 2005, 11:59
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 22-06-04
Из: Новосибирск
Пользователь №: 87



Цитата(8301 @ May 3 2005, 13:51)
Здравствуйте, уважаемые!

Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже sad.gif единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать.

Заранее благодарю, отвечу на любые вопросы по теме.
*

Я бы сделал на FPGA, т.к. все равно нужно делать интерфейсную часть ISA и FIFO, как я понимаю нужно двунаправленное т.е. туда и обратно.
Минимально можно поставить ACEX EP1K10... там 3 блока ОЗУ по 512 байт.
На двух можно сделать FIFO туда и обратно. При этом можно самому сформировать нужные сигналы типа FULL, EMPTY и т.д. можно даже вывести счетчик байт в FIFO. Но если нет опыта работы с программируемыми матрицами совсем, то это будет достаточно тяжело.
Можно поискать просто стандартные микросхемы FIFO, вообщем то они тоже есть в природе.
Go to the top of the page
 
+Quote Post
vvs157
сообщение May 3 2005, 15:07
Сообщение #3


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

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(8301 @ May 3 2005, 13:51)
Здравствуйте, уважаемые!

Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже sad.gif единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать.

Заранее благодарю, отвечу на любые вопросы по теме.
*


А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода.
Go to the top of the page
 
+Quote Post
8301
сообщение May 5 2005, 07:21
Сообщение #4





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Цитата(Apast @ May 3 2005, 14:59)
Можно поискать просто стандартные микросхемы FIFO, вообщем то они тоже есть в природе.
*


со стандартными тоже у меня проблема - как преобразовать параллельный поток данных идущий с ISA в последовательный, идущий на вход FIFO? Соответственно, возникает обратная задача - выдать последовательный поток на параллельную ISA.

в FPGA опыта нет совсем, да и времени нет разбираться.
Go to the top of the page
 
+Quote Post
8301
сообщение May 5 2005, 07:22
Сообщение #5





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Цитата(vvs157 @ May 3 2005, 18:07)
А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода.
*


можно поподробней, как и что? идея интересная...
Go to the top of the page
 
+Quote Post
vvs157
сообщение May 5 2005, 09:21
Сообщение #6


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

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(8301 @ May 5 2005, 10:22)
Цитата(vvs157 @ May 3 2005, 18:07)
А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода.
*


можно поподробней, как и что? идея интересная...
*



Шина ISA - штука очень простая, с PCI не сравнить. Очень близка по логике с внешним интерфейсом I8051. Берете к примеру макетку для ISA у которой уже есть все необходимые дешифраторы (раньше их было море). Думаю, что и в инете схему стандартной обвязки для ISA на рассыпухе найти можно.
Уточните, что Вас интересует поподробнее
Go to the top of the page
 
+Quote Post
8301
сообщение May 5 2005, 11:02
Сообщение #7





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Цитата(vvs157 @ May 5 2005, 12:21)
Шина ISA - штука очень простая, с PCI не сравнить. Очень близка по логике с внешним интерфейсом I8051. Берете к примеру макетку для ISA у которой уже есть все необходимые дешифраторы (раньше их было море). Думаю, что и  в инете схему стандартной обвязки для ISA на рассыпухе найти можно.
Уточните, что Вас интересует поподробнее
*


меня интересует, что значит "стандартная обвязка для ISA" и "макетка для ISA" huh.gif wacko.gif biggrin.gif

я бы и поискал в интернете, с радостью, но, непонимая, не знаю что искать.
Go to the top of the page
 
+Quote Post
vvs157
сообщение May 5 2005, 11:38
Сообщение #8


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

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(8301 @ May 5 2005, 14:02)
  меня интересует, что значит "стандартная обвязка для ISA" и "макетка для ISA"  huh.gif  wacko.gif  biggrin.gif

я бы и поискал в интернете, с радостью, но, непонимая, не знаю что искать.
*


Макетка для ISA - это плата с ISA'вым разъемом как минимум, оптимум - на ней уже есть эта самая минимальная обвязка. Остальная часть - поле отверстий с шагом 2.54 мм, на которых можно разпаять что угодно (не планарные корпуса, ясное дело)
Go to the top of the page
 
+Quote Post
8301
сообщение May 12 2005, 11:34
Сообщение #9





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Уважаемые, посмотрите пожалуйста на прикрепленное изображение. Задача в следующем: необходимо по шине ISA от мастер-устройства передавать для обработки данные подчиненному (в нашем случае МК 51-й) [на шине кроме нашего МК висят и другие устройства]. данные передаются через FIFO-память. мне непонятно, каким образом, схемотехнически можно определить, что данные на шине ISA предназначены для нашего устройства, иными словами, как можно обработать адрес, выставленный на шину ISA и определить, что обращаемся именно к нему.

буду благодарен за совет. и особенно благодарен, если ответ продублируете на ttl@mail2000.ru. спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
makc
сообщение May 12 2005, 11:55
Сообщение #10


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Рекомендую почитать, что такое шина ISA, хотябы вкратце. Можно сходить по линку http://www.techfest.com/hardware/bus/isa_sokos.htm, можно поискать что-то на русском.

Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон). И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ).


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
8301
сообщение May 13 2005, 07:22
Сообщение #11





Группа: Новичок
Сообщений: 12
Регистрация: 17-02-05
Пользователь №: 2 697



Цитата(makc @ May 12 2005, 14:55)
Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон).  И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ).
*


спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался...
Go to the top of the page
 
+Quote Post
vetal
сообщение May 13 2005, 07:45
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



На pal'ах можно реализовать дешифратор адреса. Не забудьте поставить 245 на шину данныхsmile.gif.

Лучше если вы реализуете интерфейс к isa на какой-нибудь epm3032alc44(или аналогичное), получится дешево и сердито.
Go to the top of the page
 
+Quote Post
vvs157
сообщение May 13 2005, 07:46
Сообщение #13


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

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(8301 @ May 13 2005, 10:22)
спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался...
*


Посмотрите в качестве примера как подключен 8255 (KP580BB55A) к шине ISA http://www.rlocman.ru/shem/rs.php?id=16965
Или Вы хотите, чтобы Вам нарисовали готорую схему? biggrin.gif
Go to the top of the page
 
+Quote Post
makc
сообщение May 13 2005, 07:49
Сообщение #14


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(8301 @ May 13 2005, 10:22)
Цитата(makc @ May 12 2005, 14:55)
Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон).  И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ).
*


спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался...
*



Все это, конечно, можно сделать на отдельных микросхемах, но лучше всего для этой цели подойдет любая FPGA которая может работать с 5V сигналами, например Xilinx Spartan, Spartan XL, Spartan 2. А если не нужно большое FIFO, а достаточно нескольких регистров - то тут хватит простой CPLD.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Genn
сообщение May 14 2005, 18:11
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 48
Регистрация: 14-04-05
Пользователь №: 4 146



Цитата(8301 @ May 12 2005, 14:34)
Уважаемые, посмотрите пожалуйста на прикрепленное изображение. Задача в следующем: необходимо по шине ISA от мастер-устройства передавать для обработки данные подчиненному (в нашем случае МК 51-й) [на шине кроме нашего МК висят и другие устройства]. данные передаются через FIFO-память. мне непонятно, каким образом, схемотехнически можно определить, что данные на шине ISA предназначены для нашего устройства, иными словами, как можно обработать адрес, выставленный на шину ISA и определить, что обращаемся именно к нему.
*


Прилагаю функциональную схему для решения вашей задачи. Эта схема может быть реализована как на ПЛИС (достаточно простых и не быстрых с поддержкой уровней ТТЛ 5В и выходным током 12mA), так и
на дискретной логике семейств 1533 (74ALSxxx), 1531 (74Fxxx). Из ПЛИС фирмы Хilinx подойдут семейства 4000E, Spartan, 9500.
По алгоритму работы хотелось бы добавить следующее:
1. Схема реализует алгоритм программного ввода-вывода, т.е. чтение даных производится по команде.
2. Для управления процессами записи-чтения в один из портов чтения следует вывести статусную информацию FIFO (флаги).
3. Если есть желание избежать постоянный цикл опроса статуса FIFO, можно воспользоваться установкой прерывания по заполнении FIFO чтения (например на 1/2 или 3/4) и по освобождению FIFO записи (например более, чем на 1/2).
Естественно в обработчике прерывания следует производить чтение порта, отображающего статус FIFO для определения дальнейших действий (запись или чтение).
4. В качестве адресов можно испольовать диапазон 300\h...320\h (или же другой, но его надо предварительно проверить хотя бы по справочным данным стандартного распределения адресов).
5. Использовать пространство памяти можно, но это усложнит задачу, т.к. потребует настройку системы (в DOS мы это делали, но это было очень давно), а использовать DMA на ISA тоже не рекомендую - потеряете много времени на программирование контроллера DMA (этим сейчас почти никто не занимается).
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:08
Рейтинг@Mail.ru


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