Как преобразовать 2 линии данных в полнодуплексном режиме в 1 линию данных в полудуплексе?

Я пытаюсь разработать схему, которая может преобразовывать двухпроводной полнодуплексный режим (например, SPI) с одной линией передачи и одной линией приема в однопроводной полудуплексный режим (например, i2c) с двунаправленной связью по той же линии, но мне не везет. Есть ли конкретный чип или схема, которую я могу использовать?

редактировать: два протокола (уничтожены и преобразованы в односторонние) SpaceWire (или, по крайней мере, аппаратное обеспечение SpaceWire, передающее сигналы I2C) и I2C. SpaceWire использует ввод данных и вывод данных, поэтому я хотел бы иметь возможность отправлять адрес или команду и т. Д. На устройство I2C по проводу DOUT и получать данные через провод DIN. SpaceWire — это сложный протокол для интерфейсных ИС, которые либо отсутствуют, либо стоят непомерно дорого. По 1-му и 2-му проводу я исключаю тактовую линию, так как она будет совместно использоваться двумя протоколами.

Устройство, которое вам понадобится, должно понимать протокол двух сторон, чтобы иметь возможность решать, у кого есть права на управление одним проводом. Это усложняет
I2C требует 2 линии... Как будет работать атрибуция шины?
Ваш вопрос слишком расплывчатый. Начните с того, что скажите, какой протокол вы хотите преобразовать. (Если есть один чип, который может преобразовывать произвольные дуплексные протоколы в один провод, дайте мне знать, и я номинирую его на Нобелевскую премию.) Я подозреваю проблему X/Y.
Чтобы на этот вопрос можно было ответить, вы не должны быть расплывчатыми в отношении протокола, с которым хотите работать. RS-422 и SPI могут быть полнодуплексными, но они очень разные (у одного есть часы, у другого нет). Как минимум, у одного есть часы, а у другого нет. Также велика вероятность, что вы не сможете сделать это без соответствующего программного обеспечения с обеих сторон. Так что не ждите слепого решения plug-and-play, если оно не включает процессоры на обоих концах линии, выполняющие всю трансляцию и управление.
Извините, я скопирую и вставлю сюда свое редактирование: два протокола (удалены стробоскопы и преобразованы в несимметричные) SpaceWire (или, по крайней мере, оборудование SpaceWire, передающее сигналы I2C) и I2C. SpaceWire использует ввод данных и вывод данных, поэтому я хотел бы иметь возможность отправлять адрес или команду и т. Д. На устройство I2C по проводу DOUT и получать данные через провод DIN. SpaceWire — это сложный протокол для интерфейсных ИС, которые либо отсутствуют, либо стоят непомерно дорого. По 1-му и 2-му проводу я исключаю тактовую линию, так как она будет совместно использоваться двумя протоколами.
Как вы, наверное, понимаете, периферийные устройства SpaceWire не слишком распространены, и мне не хотелось бы возиться с линиями выбора микросхем SPI. Спасибо за помощь.
Вам понадобится процессор, который поставляется с каждым устройством SpaceWire с специально разработанным программным обеспечением, которое специально преобразует указанную вами схему сообщений I2C в сообщения SpaceWire. Совместное использование часов spacewire также больше не требуется, и это только усложняет задачу.

Ответы (1)

Существует протокол, который разумно называется «1-Wire», в котором требуется только один провод. Этот протокол требует, чтобы мастер обеспечивал предотвращение коллизий. Я не знаю, как это обойти - у вас должен быть либо один мастер, либо вы должны разрешать столкновения и выполнять обнаружение столкновений.

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

Удачи!

Извините, я опустил линии часов, так как они будут общими для протоколов (см. мое редактирование). Я забыл упомянуть об этом. Это будет сеть master-slave с центральным процессором и различными датчиками.