RS-485 + iCE40 для лучшего CAN-FD

Это идея, с которой я играл какое-то время и хотел узнать мнение. Когда я впервые услышал о CAN-FD, я подумал, что это решение этой проблемы. Однако большинство микроконтроллеров среднего класса не поддерживают CAN-FD (за исключением LPC546). У STM32H7 есть поддержка, но стоимость этого микроконтроллера слишком высока для большинства приложений. Есть некоторые устройства, такие как TCAN4550 и версия Microchip, которые неплохие, но не такие гибкие.

С приемопередатчиком RS-485 и iCE40 или другой ПЛИС можно создать собственную приемопередающую систему. Идея заключалась бы в том, чтобы связать микроконтроллер через SPI или UART с FPGA. FPGA будет обрабатывать фактический протокол, который будет похож на CAN.

Преимущества такой системы:

  • Гибкая системная скорость и стоимость (до 48 Мбит/с)
  • Множество устанавливаемых адресов на устройство
  • Вариант для многоадресной системы
  • Не ограничивается конкретной архитектурой

Мои вопросы:

  • Цена действительно того стоит или я просто пытаюсь заново изобрести велосипед?
  • Может ли арбитраж по-прежнему происходить на высоких скоростях или нужны очень точные часы?
  • Есть ли уже такой проект, который я просто пропустил?

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

Вы упускаете стоимость FPGA и разработки. Вам нужно будет изготовить тысячи или десятки тысяч таких устройств, чтобы окупить затраты. И FPGA легко будет стоить 5 долларов с достаточным количеством вентилей для поддержки CAN.
Также взгляните на STM32H750 — недавно выпущенную «дешевую» версию H7 — всего за 3,5 доллара США.
@janDorniak Вы правы, стоимость разработки и тестирования будет высокой. Я предполагаю, что если стоимость всей системы будет составлять ~ 10 долларов за трансивер, fpga и поддержку, это может не стоить того.
@JanDorniak Я взглянул на H750. Похоже, отличный контроллер. В 10$ за MCU 400Mhz с CAN-FD я думаю нет конкуренции. Похоже, они также работают над поддержкой цепочки инструментов ST для этих устройств.
спросите у своего дистрибьютора — для H750 указаны бюджетные цены менее 5 долларов США. Есть конкурент — I.MX RT, который фактически появился на рынке раньше и имеет дополнительную функцию шифрования в шине для QSPI. Но гораздо меньше оперативной памяти.
Похоже, вы хотите изобрести контроллер CAN FD, как этот? ti.com/product/TCAN4550-Q1 . У меня нет опыта его использования, я просто погуглил "can fd controller".
Сколько стоит iCE40? Например, родственник STM32H7?
@Lundin, этот контроллер упоминался в оригинальном посте. Это на столе как хорошая возможная альтернатива созданию чего-то нестандартного.

Ответы (1)

Я готовлю протокол на основе RS485 для автоматизации зданий; одиночный мастер, 250kbps. Ничто другое не соответствует моим потребностям. Это позволяет мне создавать крошечные и недорогие датчики/приводы, которые мне нужны. Изобретение велосипеда может быть в порядке, ИМО.

Физический уровень шины CAN поддерживает коллизии, что необходимо для поддержки нескольких мастеров. Физический уровень RS485 не предназначен для обработки коллизий, но более современные драйверы и приемники корректно ведут себя в условиях неисправности, поэтому вы можете заставить его работать. Но рассматривали ли вы возможность использования трансивера CAN-FD для своего пользовательского протокола?

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

Наконец, вы упоминаете 48 Мбит/с. У меня сложилось впечатление, что и CAN-FD, и RS485 достигают максимальной скорости около 10 Мбит/с?

FPGA с 7k вентилями и хороший MCU стоят примерно одинаково. И MCU не будет поддерживать ту же скорость передачи данных за деньги
Я думаю, что это зависит от длины кабеля. У Максима есть микросхемы, которые дадут вам RS485 на скорости 100 Мбит/с. Моя самая большая проблема заключалась в том, чтобы выяснить, как управлять столкновением. @JanDorniak Я все еще думаю, что 750 может быть решением моей проблемы.