8301 0 3 мая, 2005 Опубликовано 3 мая, 2005 · Жалоба Здравствуйте, уважаемые! Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже :( единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать. Заранее благодарю, отвечу на любые вопросы по теме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Apast 0 3 мая, 2005 Опубликовано 3 мая, 2005 · Жалоба Здравствуйте, уважаемые! Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже :( единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать. Заранее благодарю, отвечу на любые вопросы по теме. <{POST_SNAPBACK}> Я бы сделал на FPGA, т.к. все равно нужно делать интерфейсную часть ISA и FIFO, как я понимаю нужно двунаправленное т.е. туда и обратно. Минимально можно поставить ACEX EP1K10... там 3 блока ОЗУ по 512 байт. На двух можно сделать FIFO туда и обратно. При этом можно самому сформировать нужные сигналы типа FULL, EMPTY и т.д. можно даже вывести счетчик байт в FIFO. Но если нет опыта работы с программируемыми матрицами совсем, то это будет достаточно тяжело. Можно поискать просто стандартные микросхемы FIFO, вообщем то они тоже есть в природе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 3 мая, 2005 Опубликовано 3 мая, 2005 · Жалоба Здравствуйте, уважаемые! Занимаюсь одной интересной разработкой (я студент 3-го курса), и столкнулся с задачей приема/передачи данных между 8-разрядной шиной ISA и микроконтроллером DS80C400 (семейство 8051). Никаких зацепок, как реализовать аппаратно нет, опыта тоже :( единственно что известно, точно нужно FIFO, как буфер. посоветуйте, пожалуйста, подкиньте идей, поделитесь опытом, как можно проще и надежней это реализовать. Заранее благодарю, отвечу на любые вопросы по теме. <{POST_SNAPBACK}> А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
8301 0 5 мая, 2005 Опубликовано 5 мая, 2005 · Жалоба Можно поискать просто стандартные микросхемы FIFO, вообщем то они тоже есть в природе. <{POST_SNAPBACK}> со стандартными тоже у меня проблема - как преобразовать параллельный поток данных идущий с ISA в последовательный, идущий на вход FIFO? Соответственно, возникает обратная задача - выдать последовательный поток на параллельную ISA. в FPGA опыта нет совсем, да и времени нет разбираться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
8301 0 5 мая, 2005 Опубликовано 5 мая, 2005 · Жалоба А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода. <{POST_SNAPBACK}> можно поподробней, как и что? идея интересная... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 5 мая, 2005 Опубликовано 5 мая, 2005 · Жалоба А зачем FIFO? Какая скорость обмена нужна? Если не предельная - то делаете стандартную обвязку (дешифратор адреса, защелку итд), при записи байта - выдаете прерывание на 51-ю. 51-я считывает байт. если надо - что-то пишет во внешний регистр. Далее по усмотрению. На всидку пара-тройка регистров типа LS373, пара LS245 и рассыпуха для дешифратора адреса в пространстве портов ввода-вывода. <{POST_SNAPBACK}> можно поподробней, как и что? идея интересная... <{POST_SNAPBACK}> Шина ISA - штука очень простая, с PCI не сравнить. Очень близка по логике с внешним интерфейсом I8051. Берете к примеру макетку для ISA у которой уже есть все необходимые дешифраторы (раньше их было море). Думаю, что и в инете схему стандартной обвязки для ISA на рассыпухе найти можно. Уточните, что Вас интересует поподробнее Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
8301 0 5 мая, 2005 Опубликовано 5 мая, 2005 · Жалоба Шина ISA - штука очень простая, с PCI не сравнить. Очень близка по логике с внешним интерфейсом I8051. Берете к примеру макетку для ISA у которой уже есть все необходимые дешифраторы (раньше их было море). Думаю, что и в инете схему стандартной обвязки для ISA на рассыпухе найти можно. Уточните, что Вас интересует поподробнее <{POST_SNAPBACK}> меня интересует, что значит "стандартная обвязка для ISA" и "макетка для ISA" :huh: я бы и поискал в интернете, с радостью, но, непонимая, не знаю что искать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 5 мая, 2005 Опубликовано 5 мая, 2005 · Жалоба меня интересует, что значит "стандартная обвязка для ISA" и "макетка для ISA" :huh: я бы и поискал в интернете, с радостью, но, непонимая, не знаю что искать. <{POST_SNAPBACK}> Макетка для ISA - это плата с ISA'вым разъемом как минимум, оптимум - на ней уже есть эта самая минимальная обвязка. Остальная часть - поле отверстий с шагом 2.54 мм, на которых можно разпаять что угодно (не планарные корпуса, ясное дело) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
8301 0 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба Уважаемые, посмотрите пожалуйста на прикрепленное изображение. Задача в следующем: необходимо по шине ISA от мастер-устройства передавать для обработки данные подчиненному (в нашем случае МК 51-й) [на шине кроме нашего МК висят и другие устройства]. данные передаются через FIFO-память. мне непонятно, каким образом, схемотехнически можно определить, что данные на шине ISA предназначены для нашего устройства, иными словами, как можно обработать адрес, выставленный на шину ISA и определить, что обращаемся именно к нему. буду благодарен за совет. и особенно благодарен, если ответ продублируете на [email protected]. спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 12 мая, 2005 Опубликовано 12 мая, 2005 · Жалоба Рекомендую почитать, что такое шина ISA, хотябы вкратце. Можно сходить по линку http://www.techfest.com/hardware/bus/isa_sokos.htm, можно поискать что-то на русском. Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон). И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
8301 0 13 мая, 2005 Опубликовано 13 мая, 2005 · Жалоба Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон). И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ). <{POST_SNAPBACK}> спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 13 мая, 2005 Опубликовано 13 мая, 2005 · Жалоба На pal'ах можно реализовать дешифратор адреса. Не забудьте поставить 245 на шину данных:). Лучше если вы реализуете интерфейс к isa на какой-нибудь epm3032alc44(или аналогичное), получится дешево и сердито. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 13 мая, 2005 Опубликовано 13 мая, 2005 · Жалоба спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался... <{POST_SNAPBACK}> Посмотрите в качестве примера как подключен 8255 (KP580BB55A) к шине ISA http://www.rlocman.ru/shem/rs.php?id=16965 Или Вы хотите, чтобы Вам нарисовали готорую схему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 190 13 мая, 2005 Опубликовано 13 мая, 2005 · Жалоба Про реакцию на адреса: Ваша плата с МК должна реагировать на обращения в строго определенном диапазоне адресов (база+диапазон). И при наличии транзакции с адресом, лежащим в этой области, будет происходить либо запись в FIFO, либо чтения из него. Например, если диапазон адресов 0x350+0x10 (0x350-0x360) и он принадлежит к диапазону адресов ввода-вывода (сигналы IOR/IOW), то при наличии на шине адреса 0x350 и сигнала IOW должно происходить чтение в FIFO (это упрощенная картина, т.к. в транзакции учавствует большее число сигналов - ALE, IOCS16 и другие... ). <{POST_SNAPBACK}> спасибо. это все хорошо, но как это реализовать схемотехнически? какие схемы?микросхемы защелкивают/обрабатывают адрес? совсем запутался... <{POST_SNAPBACK}> Все это, конечно, можно сделать на отдельных микросхемах, но лучше всего для этой цели подойдет любая FPGA которая может работать с 5V сигналами, например Xilinx Spartan, Spartan XL, Spartan 2. А если не нужно большое FIFO, а достаточно нескольких регистров - то тут хватит простой CPLD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Genn 0 14 мая, 2005 Опубликовано 14 мая, 2005 · Жалоба Уважаемые, посмотрите пожалуйста на прикрепленное изображение. Задача в следующем: необходимо по шине ISA от мастер-устройства передавать для обработки данные подчиненному (в нашем случае МК 51-й) [на шине кроме нашего МК висят и другие устройства]. данные передаются через FIFO-память. мне непонятно, каким образом, схемотехнически можно определить, что данные на шине ISA предназначены для нашего устройства, иными словами, как можно обработать адрес, выставленный на шину ISA и определить, что обращаемся именно к нему. <{POST_SNAPBACK}> Прилагаю функциональную схему для решения вашей задачи. Эта схема может быть реализована как на ПЛИС (достаточно простых и не быстрых с поддержкой уровней ТТЛ 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 (этим сейчас почти никто не занимается). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться