Igor, ты ещё здесь сидишь?
Воскресенье Май 21 2006 11:53, George Shepelev wrote to Igor Ulanov:
IU>> Hужен "расширитель" портов. Что-то типа 8255, только с IU>> возможностью конфигурации каждого вывода (вход\выход) IU>> индивидуально. Hужно иметь около 40 таких выходов, но от IU>> микроконтроллера могу пожертвовать только выводов 12. Что можно IU>> применить? Даже не представляю что и на какое слово искать. Рад IU>> буду любым подсказкам. GS> Любой "многоногий" контроллер со спецпрошивкой, реализующей заданный GS> протокол конфигурирования и обмена "расширителя". К примеру
Другое дело, если требуется высокое быстродействие этого "расширителя". Тогда лучше реализовать его на программируемой логике. Кстати, задачка достаточно типична, для затравки кидаю вариант, который бы попробовал сделать сам, если бы было время и желание. Может у кого-то возникнут лучшие идеи реализации?
Общее описание
Для связи с процессором служит шина Data Bus (скорее всего 8-ми битная, но при желании можно сделать и 16-ти битный вариант) и линии управления
-Rd и -Wr (чтобы не делать отдельный сигнал для записи конфигурации, введено специальное обращение, когда оба эти сигнала активны - знаю, спорное решение). Для адресации конкретной группы линий (бит) предусмотрена
4-х битная шина адреса Addr, адрес конкретного регистра (или группы регистров, в зависимости от реализации) задаётся потенциалами на шине Sw. Для начального сброса внешних линий служит сигнал -Reset.
Возможные варианты реализации (8-ми битные)
------------------------------------------------------------------------------- Число
8-ми битных 1 2 4 8 16 регистров
------------------------------------------------------------------------------- Число внешних 4 3 2 1 0 линий Sw
------------------------------------------------------------------------------- Число внешних линий I/O 8 16 32 64 128
------------------------------------------------------------------------------- Общее число выводов "расширителя" (не считая земли 27 34 49 80 143 и питания)
-------------------------------------------------------------------------------
Возможные варианты реализации (16-ти битные)
------------------------------------------------------------------------------- Число
16-ти битных 1 2 4 8 16 регистров
------------------------------------------------------------------------------- Число внешних 4 3 2 1 0 линий Sw
------------------------------------------------------------------------------- Число внешних линий I/O 16 32 64 128 256
------------------------------------------------------------------------------- Общее число выводов "расширителя" (не считая земли 43 58 89 152 279 и питания)
-------------------------------------------------------------------------------
Поясняющие схемки и диаграммки идут следующим письмом...
Георгий