Реальные электронные продукты становятся всё умнее, как за счёт внедрения встроенных приложений, так и за счёт подключения к облачной платформе или приложению. Командам разработчиков встроенных систем необходимо работать вместе, чтобы создавать эти новые поколения продуктов. Одна из областей, где инженер по компоновке печатных плат, разработчик встроенных систем и даже инженер по машиностроению могут столкнуться с задержками в завершении проекта, - это выбор интерфейсов ввода-вывода. Это происходит всякий раз, когда у вас есть разъемы, периферийные устройства и основной процессор.
Поэтому, чтобы упростить задачу для обеих сторон, я хочу поделиться своим опытом работы с разработчиками встроенных систем для оптимизации выбора интерфейсов ввода-вывода и общего процесса завершения компоновки печатной платы. С небольшим сотрудничеством на начальном этапе вы можете упростить трассировку печатной платы и разработку встроенных систем на последующих этапах.
Я придерживаюсь мнения, что каждый член команды разработки должен понимать, что нужно другим членам команды для успешной работы. Это также касается эффективного использования ресурсов, избегания инженерных тупиков, которые требуют дней на решение, и быстрого выхода на рынок.
|
|
|
|
|
|
|
|
|
|
|
|
Я поставил звездочку (*) на записи списка выводов, потому что точный процесс назначения вводов/выводов зависит от конкретного компонента, используемого для запуска встроенного приложения. Это простой МК, где доступные вводы/выводы зафиксированы в определенных местах, или это FPGA, которая может иметь настраиваемый распиновку в определенных банках? Другой аспект - это разъемы: стандартизирована ли распиновка, устанавливается ли распиновка другой платой в сборке, или она может быть настраиваемой?
Вот где мы можем начать видеть сложность, с которой сталкиваются разработчик печатных плат и встроенный разработчик, работая вместе над выбором вводов/выводов. Как две стороны могут сойтись и определить распиновку, выбор вводов/выводов и, в конечном итоге, компоновку печатной платы?
По моему мнению, это работает лучше всего, когда распиновка на основном процессоре гибкая, т.е. приложение будет реализовано в FPGA. В этом случае вводы/выводы могут быть установлены разработчиком в логике устройства, и результатом будет то, что разработчику печатных плат придется работать с данными им назначениями выводов.
Проблема в следующем: если назначения контактов задаются для каждого контакта отдельно, оптимальная трассировка может не получиться, что приведет к путанице соединений, пересекающихся друг с другом для подключения к компонентам. Вместо этого, если встроенный разработчик просто назначает банки контактов дизайнеру печатной платы, тогда дизайнер печатной платы может выбрать контакты внутри банка для создания оптимальных соединений.
Назначая банки на FPGA вместо конкретного распиновки, дизайнер может использовать инструмент, такой как перестановка контактов, для перемещения назначений ввода/вывода внутри банка контактов. Если перестановка контактов желательна, тогда может потребоваться специальный символ схемы, чтобы правильно разделить контакты по их соответствующим банкам. Использование специального символа позволяет гораздо быстрее группировать контакты для операций перестановки при трассировке печатной платы.
На мой взгляд, это лучше всего работает, когда распиновка основного процессора фиксирована, то есть в случае с МК (микроконтроллером) и его периферией. В МК расположение входов/выходов фактически фиксировано. У вас может быть некоторая гибкость в том, как используется каждый вход/выход, например, при использовании группы GPIO. Однако назначение контактов или функций для стандартных интерфейсов может быть фиксированным (например, контакты SPI, ADC, PWM, I2C и т.д.).
В этом случае, я думаю, лучше всего, если разработчик печатной платы выбирает контакты, которые они будут использовать для соединения с различными компонентами. Разработчику печатной платы приходится выбирать из фиксированной распиновки, поэтому ему придется выяснить, как разместить компоненты таким образом, чтобы разводка печатной платы была выполнима. После размещения и трассировки задача разработчика печатной платы сообщить встроенному разработчику, какие контакты используются для определенных функций.
Когда распиновка вашего разъема стандартизирована, это немного неопределенность. Я говорю это потому, что "стандартизированный" может означать две разные вещи:
Если ни один из этих случаев не подходит, тогда ваша распиновка настраиваемая. В проектах, где я работал с другими платами в большой сборке, у нас часто была свобода установки распиновки, обычно потому, что мы разрабатывали обе платы. В любом случае, обе стороны должны работать вместе, чтобы выяснить объективно «лучшую» распиновку для разъема и как она соотносится с процессором.
Команды, которым необходимо сотрудничать над сложными продуктами, могут получить доступ к полному набору функций совместного проектирования при использовании Altium Designer®. Все заинтересованные стороны, участвующие в проектировании продукта, могут получить доступ к полному набору инструментов для проектирования печатных плат, которые могут поддерживать задачи встроенной разработки, а также функции проектирования кабелей и проводки. Когда вы закончили свой проект и хотите отправить файлы вашему производителю, платформа Altium 365™ упрощает сотрудничество и обмен проектами.
Мы только коснулись поверхности возможностей Altium Designer на Altium 365. Начните свою бесплатную пробную версию Altium Designer + Altium 365 сегодня.