Это идея, с которой я играл какое-то время и хотел узнать мнение. Когда я впервые услышал о CAN-FD, я подумал, что это решение этой проблемы. Однако большинство микроконтроллеров среднего класса не поддерживают CAN-FD (за исключением LPC546). У STM32H7 есть поддержка, но стоимость этого микроконтроллера слишком высока для большинства приложений. Есть некоторые устройства, такие как TCAN4550 и версия Microchip, которые неплохие, но не такие гибкие.
С приемопередатчиком RS-485 и iCE40 или другой ПЛИС можно создать собственную приемопередающую систему. Идея заключалась бы в том, чтобы связать микроконтроллер через SPI или UART с FPGA. FPGA будет обрабатывать фактический протокол, который будет похож на CAN.
Преимущества такой системы:
Мои вопросы:
Это могло бы стать отличным протоколом с открытым исходным кодом, в разработку которого я, безусловно, был бы готов приложить некоторые усилия.
Я готовлю протокол на основе RS485 для автоматизации зданий; одиночный мастер, 250kbps. Ничто другое не соответствует моим потребностям. Это позволяет мне создавать крошечные и недорогие датчики/приводы, которые мне нужны. Изобретение велосипеда может быть в порядке, ИМО.
Физический уровень шины CAN поддерживает коллизии, что необходимо для поддержки нескольких мастеров. Физический уровень RS485 не предназначен для обработки коллизий, но более современные драйверы и приемники корректно ведут себя в условиях неисправности, поэтому вы можете заставить его работать. Но рассматривали ли вы возможность использования трансивера CAN-FD для своего пользовательского протокола?
Возможно, вы сможете создать что-то похожее на вашу концепцию FPGA, выделив достаточно быстрый микроконтроллер ARM Cortex. Может быть проще в разработке, вполне может быть дешевле в производстве. Результат может быть легче для других работать.
Наконец, вы упоминаете 48 Мбит/с. У меня сложилось впечатление, что и CAN-FD, и RS485 достигают максимальной скорости около 10 Мбит/с?
яский
яский
Меозаа
Меозаа
яский
Лундин
Питер Мортенсен
Меозаа