Проектирование моего собственного автобуса


8

Этот вопрос является дополнением к моему предыдущему вопросу: альтернативы SPI из-за EMI . Я играю над идеей создать собственную коммуникационную шину. Я был бы признателен, если бы кто-то мог взглянуть на мой предварительный дизайн и сказать мне, где я схожу с ума ...

В настоящее время я использую SPI 2 МГц, по которому протянулись провода длиной 10 см к семи АЦП на отдельных печатных платах (совместно используемая CS, но у каждого АЦП есть своя линия MISO. Она разбита на биты), но я бы хотел заменить ее чем-то дифференциальным, чтобы уменьшить EMI. Проблема в том, что не так много АЦП с дифференциальной шиной, поэтому мне интересно, возможно ли спроектировать мою собственную шину. По крайней мере, физический уровень и, возможно, протокол тоже.

Цели дизайна нового автобуса:

  • использовать физически небольшие компоненты
  • низкий уровень электромагнитных помех
  • не более 4-х проводов данных (две пары)
  • пропускная способность> 300 кбит / с от каждого АЦП. (> Всего 2,1 Мбит / с)

Прежде чем списывать меня с ума от размышлений об этом, подумайте, что это не так сложно сделать на PSoC5 . На этом чипе я, конечно, могу разработать свой собственный протокол в Verilog и реализовать его аппаратно. И в какой-то степени я также могу включить компоненты физического уровня. Более того, я могу иметь одновременно семь таких устройств, все они работают параллельно в ведущем устройстве, по одному на каждое ведомое устройство, чтобы я мог получить хорошую общую пропускную способность.

И вот моя предварительная идея:

введите описание изображения здесь

Он будет основан на I2C, слегка модифицирован, чтобы помочь ему подключиться к компонентам физического уровня. Линии SDA и SCL теперь являются дифференциальными парами. Пара SDA имеет свойство OR-ing. Это достигается с помощью одного штифта, который может двигаться только высоко, и одного, который может двигаться только низко. Пара SCL управляется исключительно мастером. Скорость передачи данных будет увеличена как минимум до 1 Мбит / с.

Мастер будет PSoC5 с 7 мастер-модулями. Подчиненные устройства также будут PSoC5 с одним подчиненным модулем и будут использовать встроенный АЦП.

Мысли:

  • Не слишком уверен, что это лучший способ реализовать подтягивающие резисторы и компоненты, ограничивающие скорость нарастания.
  • Я предполагаю, что мне не нужно никакого прекращения. Если я ограничу скорость нарастания до 80 нс, это будет хорошо для кабеля длиной 10 см.
  • Это, очевидно, не правильный дифференциальный приемопередатчик. Я трачу свое время, пытаясь сделать один из ворот?
  • Эти Не Врата вызывают перекос. Это может быть проблемой?

Может быть, LVDS стоит посмотреть, если вы хотите дифференциальной сигнализации?
Саад

Я не думаю, что видел какие-либо подчиненные устройства в стиле I2C с отдельными входами и выходами SDA. Кроме того, если вы используете микропроцессорное ведомое устройство I2C, вы должны разрешить ведомым устройствам удерживать SCK на низком уровне таким образом, чтобы мастер мог его видеть (мастер будет удерживать при отправке следующего бита до тех пор, пока подчиненный не будет выпускает SCK). В противном случае, если мастер отправляет данные, не дожидаясь готовности подчиненных, все будет плохо. В качестве альтернативы вы можете использовать SPI и использовать только определенные байтовые значения для отправки данных (поэтому каждый байт «реальных» данных будет передаваться как два байта). Если ты это сделаешь ...
суперкат

... так как большинство реализаций SPI будут сбрасывать кратные целые байты в случае переполнения / опустошения данных, вы можете иметь мастер, который обнаруживает, когда ведомый не может поддерживать, и повторно передавать отдельные байты, пока ведомый не сможет их подтвердить.
суперкат

Ответы:


4

Ну, если вы собираетесь использовать PSoC5, я недавно читал о IEEE 1355 . DS-SE-02 вариант канала связи может делать то, что вы хотите. Он требует 4 сигнальных линии: линия данных и стробоскопическая линия в каждом направлении. Единственное выделенное аппаратное обеспечение, которое я могу найти, которое реализует 1355, - это защищенное от радиуса оборудование Spacewire , но в этой презентации IEEE утверждается, что оно может быть реализовано на FPGA с 1/3 воротами UART и работать на скоростях, в 100 раз превышающих скорость UART. ,

Публичная копия полного стандарта доступна благодаря CERN, если вы хотите немного легкого чтения. У меня не было возможности сесть за столик, поэтому я не могу говорить о его эффективности в отношении электромагнитных помех. Просматривая секцию DS-SE, кажется, что вы должны контролировать импеданс в линии передачи и заканчивать на приемном конце.


Спасибо за эту идею. Звучит интересно. Все, что называется Spacewire, хорошо для меня. Я посмотрю на это сейчас ...
Ракетный магнит

4

Вы рассматривали возможность использования RS485?

Уже есть много компонентов, предназначенных для работы на шинах RS485.


Да, я думал об этом. Это конечно вариант. Я не думаю, что они делают OR, но мастер мог передавать асинхронно по одной паре, в то время как ведомые по очереди по другой паре. Единственная проблема заключалась в том, что я не мог найти действительно маленькие трансиверы. Я упоминал, что я отчаянно ограничен в космосе.
Ракетный магнит

2
SOIC 8 слишком велик для вас? Недавно я рассматривал возможность использования трансивера Intersil ISL83485IBZ или Texas Instruments SN65HVD11D в одном из моих проектов. Оба имеют пакеты SOIC 8.
Бруно Феррейра

@ Бруно - SOIC-8, ты шутишь? :-) PCB 11 мм х 13 мм .
Stevenvh

@stevenvh Не заметил размеры по другому вопросу. Я полагаю, что пакет MSOP не решит вашу проблему. Если это произойдет, возможно, вы могли бы использовать ADM1485
Бруно Феррейра
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.