Столкнулся с необходимостью объединить платы высокоскоростной шиной. Параметры задачи:
16 плат, стойка 19", пропускная способность шины менее 100Мбит, возможность передать данные от любой платы к любой. Желательно синхронную шину. Желательно не перегружать контроллеры плат большой скоростью обмена, т.е. если плата передаёт лишь 0.5Мбита, то пусть на такой скорости и передаёт в интерфейсную микросхему (с FIFO?).
Нравится идея CAN, но он к сожалению лишь до 1Мбита. Посмотрел IEEE1394 - он вроде только до 12Мбит для многоточечного применения. Может поставить Ethernet? Но как он будет работать на многоточке? Да и не нравится его решение конфликтов на шине. Пока остановился на LVDS (M-LVDS?), но к сожалению не вижу готовых решений для Backplane с адресами и FIFO. Пока предполагаю такую систему: LVDS ->DS92LV18->ATF1508->I2S. Параллельный 18+18 битный код получаемый от DS92LV18 будет представлять из себя 8 бит данных, 4 бита адреса источника, 4 бита адреса приёмника и синхру. PLD ATF1508 сравнив адрес с адресом платы - преобразует параллельные данные в последовательные (если получится - с FIFO) и выдаёт в микроконтроллер (AT91SAM7S). И хотя данный способ задачу решит, но выглядит коряво и громоздко (два кристала 16х16мм).
Не подскажите другое более компактное и эффективное решение для данной задачи, перерыв инет - что-то не заметил готовых вариантов вообще. Достаточно названий протоколов или микросхем.
|