Задний план
Я работаю с клиентом над большим проектом, для которого требуется специальный сетевой чип, разработанный для решения требований по передаче данных в рамках проекта. Сеть предназначена для отправки небольших пакетов на расстоянии нескольких дюймов от одной печатной платы на другую по одному кабелю витой пары. Мы будем разрабатывать и указывать сетевой протокол, а другая компания будет отвечать за внедрение кремния.
Я полагаю, что скорость передачи данных 20 Мбит / с между узлами легко справится с объемом данных, которые необходимо отправить, с большим запасом места, если в будущем объем данных увеличится.
проблема
Клиент спрашивает меня, почему я указываю только 20 Мбит / с. Почему не что-то вроде 1Gbps? Разве это не было бы лучше? Интуитивно я чувствую, что увеличение скорости передачи данных сверх того, что было бы необходимо, - плохая идея. Первоначально я думал, что кабель должен быть экранирован (что мне не нужно), но, глядя на категории кабелей Ethernet, я вижу, что Gigabit Ethernet может работать на кабеле Cat 6, который не нуждается в экранировании.
Другие ограничения
- Проект крайне ограничен в пространстве, и у нас нет места для таких вещей, как магнетизм, если только это не очень маленький компонент (макс. 0603).
- Кабели должны быть максимально тонкими и гибкими.
- Устройство будет работать от подключенного источника питания, поэтому особых требований к низкому энергопотреблению нет.
Вопрос
Какие проблемы, с точки зрения дизайна кремния, прокладки кабелей и всего остального, с которыми можно столкнуться при скорости 1 Гбит / с, не так уж и плохо при скорости 20 Мбит / с? Должен ли я пойти с предложением моего клиента о создании сети на скорости 1 Гбит / с или я должен настаивать на реализации только того, что требуется?
У нас строгий NDA, поэтому я не могу дать слишком много подробностей о наших требованиях. Но, пожалуйста, оставьте комментарий, если требуется уточнение.
источник
Ответы:
Несколько причин:
Сила
Более быстрая скорость означает большую мощность. Мало того, что вам нужны более быстрые аналоговые схемы, которые потребляют больше энергии, вся ваша электроника должна быть быстрее. Ваши цифровые системы, ваши защелки, управление часами и т. Д. Если вы получаете эти 1 Гбит / с с помощью многоуровневой сигнализации, вам теперь нужны лучшие АЦП и ЦАП. Возможно, вам придется начать заниматься более сложной фильтрацией. Вы можете начать требовать FEC, который также должен идти в ногу.
Размер чипа
Быстрее значит больше происходящего. Вам нужна лучшая стабильность часов, что означает большую цепь. Вам нужно лучшее время, что означает более сложную систему восстановления часов. Возможно, вам придется переключиться на использование DSP для выравнивания каналов. Ваш потенциально необходимый FEC нуждается в чипсете.
Чувствительность к окружающей среде
Если вы переключитесь с нескольких десятков мегабод на то, что нужно для гигабита, вы станете намного более чувствительными к окружающей среде. Небольшие несоответствия, которые могут быть незаметны на нескольких десятках МГц, становятся резонансными заглушками на более высоких частотах. Отражения могут начать вызывать прерывистую работу. Отрезанный кабель из-за неправильного использования в течение многих лет (я не знаю среды приложения для вашего продукта) может подойти для более низких скоростей, но может привести к снижению производительности при повышении производительности.
Проектное усилие
Я думаю, что из всех дополнительных вопросов, которые я обсуждал выше, очевидно, что время и усилия по созданию более быстрой линии связи значительны. Одного этого должно быть достаточно для причины.
EMI
Более высокая скорость означает, что удовлетворение требований EMI может быть сложнее.
источник
TTL-сигналы (односторонние, неопределенные) могут легко обрабатывать 20 Мбит / с или более - например, посмотрите на SPI. Если у вас всего несколько дюймов, ленточный кабель и разъемы IDC (или какая-либо задняя панель) доставят вас от платы к плате.
1 Гбит / с позволяет вам справиться с трассировками, разъемами и кабелями с контролируемым сопротивлением. Приемники должны будут использовать методы PLL / DLL для поддержания синхронизации и разделения тактовых импульсов / данных, тогда как на более медленной скорости будет достаточно нормальной синхронной логики. 50-кратное превышение и дополнительные головные боли просто не стоят того, если вы уверены, что в обозримом будущем будет достаточно 20 Мбит / с.
Однажды я разработал (около 25 лет назад) собственный протокол последовательной шины для межплатного управления и состояния между платами в телекоммуникационной стойке. Что-то вроде помехи между I 2 C и SPI - однонаправленные сигналы, такие как SPI, но адреса встроенных устройств, такие как I 2 C.
источник
Очевидный вопрос: «Означает ли 1 Гбит / с Ethernet 1000BASET?» Если это то, о чем думает клиент, то ваше требование, что «у нас нет места для таких вещей, как магнетизм», сразу же это исключает. Ethernet действительно использует магниты на физическом уровне, и когда я проектировал интерфейс несколько лет назад, магниты были частью примерно 1-дюймового куба.
Вы говорите, что используете FPGA, но не говорите, чьи. Если вы собираетесь использовать Xilinx, вы должны знать, что текущие модели изначально поддерживают LVDS, что может показаться идеальным для ваших целей. Ранние системы LVDS (телевизоры высокой четкости) работали со скоростью 122 Мбит / с, и эта технология может работать намного быстрее, если вам это действительно нужно. Будучи дифференциальным и предполагая, что ваши две доски не используют дико плавающие земли, помехоустойчивость превосходна.
Что касается вашего конкретного выбора тактовых частот, добавление большего запаса мощности, чем вы думаете, является одним из тех решений, которые могут спасти ваш бекон в будущем, поэтому я не исключаю, что выберу что-то вроде 100 МГц, но это ваше дело. Вы можете познакомить своего клиента с законом Роберджа (Джим Робердж был известным профессором электротехники в MIT несколько десятилетий назад): «Те, кто просит больше пропускной способности, чем им нужно, заслуживают того, что получают». Конечно, он говорил о сервосистемах, но этот принцип остается хорошим в удивительно широком диапазоне дисциплин.
источник
Приложение, которое вы описываете, не имеет смысла переходить прямо в пользовательское решение для кремния. Ожидаемые скорости передачи данных могут быть легко обработаны с помощью недорогой технологии FPGA, а FPGA может быть запрограммирована для реализации специального протокола, если вы действительно уверены, что такой протокол необходим.
Гораздо чаще вам следует подумать о стандартном физическом уровне, а затем создать настраиваемый протокол поверх этого. Для чистой полосы пропускания канала связи, равной 20 Мбит / с, вы должны планировать некоторые издержки протокола, поскольку кадрирование, кодирование с проверкой ошибок и синхронизация поглощают часть вашей пропускной способности. Поэтому, возможно, стоит рассмотреть вопрос о более высокой необработанной полосе пропускания, чтобы учесть эти издержки.
После того, как вы опробуете свой дизайн, вы можете обратиться к поставщику FPGA и попросить его изготовить дизайн жесткого чипа из программирования FPGA. Этот подход снижает все риски на ранних этапах разработки и снижает общие затраты на NRE в огромной степени по сравнению с «погружением в пользовательский кремний только потому, что он кажется крутым».
источник
Вопрос в том, зачем разрабатывать протокол, когда все уже существует.
Для решений Ethenet вы берете 10/100, а не 1GbE, потому что это все еще немного дешевле и намного проще для разметки. Кстати, Ethernet может работать без магнетизма. Но это требует MAC, который может быть дополнительной IC. Или у тебя есть один в микроконтроллере?
20 Мбит / с - это то, что соответствует Rs485 или тому подобному слою, который даже дешевле и проще. Витые пары поставляются со всеми видами кабелей, более или менее гибкими, с разъемами или просто припаяны к вашей печатной плате.
Ах, самое главное. Проще облажаться с 1Gb. Но если им нужно пространство для дальнейшего роста, это ограничивает меньше.
Итог: вы должны понимать ваши системные требования.
источник
Я бы предложил самый простой путь с наибольшей вероятностью успеха и наименьшими затратами на программное обеспечение - реализовать подключение Ethernet со скоростью 100 Мбит / с. Вы можете реализовать это без каких-либо магнетизма при малых расстояниях.
Начнем с информации о контроллере PCI-Ethernet Intel 8255 и замечаний по применению для соединений без магнетизма.
Я не предлагаю вам использовать 8255, но вы можете получить IP (10/100/1000 Мбит / с) для любой из ПЛИС, которую вы, вероятно, будете использовать очень легко, и она хорошо отлажена.
Предполагая, что у вас есть процессор в комбинации, поддержка стандартного контроллера Ethernet является очень простым программным способом для реализации двухточечной сети.
Мы использовали кучу таких соединений типа «точка-точка» на специализированных материнских платах Intel, они были просты в отладке и очень надежны.
источник
Ответы здесь технические, я даю перспективу разработки требований:
Мой взгляд на это прост
Вам нужно по крайней мере 20 Мбит / с, чтобы это работало, поэтому не указывайте 20, а "20 или более" для приложения.
любое более быстрое оборудование также выполняет ваши требования
если более быстрое HW дешевле / проще в разработке из-за существующих стандартов, то и эти требования могут быть выполнены и вами.
Если клиент хочет большего, попытайтесь выяснить, есть ли что-то за этим (возможно, они уже планируют обновления и хотят быть совместимыми между платами при замене)
источник
Мощность, целостность сигнала и время. Я работал над чипом с интерфейсом 25 Гбит / с, что означало тактовую частоту 1,6 ГГц и тонну энергии. Если бы мы могли работать на 19,2, тактовая частота была бы 1,2 ГГц. Больше чем 200ps дополнительного запаса за такт, это было бы огромной помощью.
Я никогда не занимался дизайном платы, но я ожидаю, что 20 Мбит / с не проблема Скорость 1 Гбит / с все еще не так высока, но намного выше 20 Мбит / с.
источник