Форум РадиоКот https://radiokot.ru/forum/ |
|
Как сделать несколько CAN звездой https://radiokot.ru/forum/viewtopic.php?f=61&t=188839 |
Страница 1 из 1 |
Автор: | slesar [ Ср июн 21, 2023 22:16:43 ] |
Заголовок сообщения: | Как сделать несколько CAN звездой |
Приветствую всех. Собственно вопрос в теме поста, как по простому физически реализовать несколько отдельных CAN шин под управлением одного микроконтроллера (с помощью микросхем трансиверов/мостов/буфферов/ретрансляторов)? У контроллеров обычно 1-2 CAN интерфейсов, а требуется больше отдельных линий. С учетом, что контроллер будет управлять всеми абонентами, и общение между абонентами будет отсутствовать. Ну и чтобы минимизировать количество арбитража, т.е. вариант когда два трансивера сидят на одном CAN контроллера не очень радует. RS-485 тоже рассматриваю как вариант, но проблема в принципе та же, абонентов много, а значит требуется несколько линий, которые нужно физически организовать. Но интереснее CAN. |
Автор: | Martian [ Ср июн 21, 2023 22:57:27 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
ну, 1-2 CAN для мк - это совсем не догма. Берем SPC56 (ST) или XMC4000 (Infineon) - там штук шесть. Или Инфинеоновские Аурих (AURIX) - там и 12 штук есть, а мож и больше или вот опять стм - Chorus 10M SPC58NH9X - там какого-то MCAN аж 16 Конечно, это всё пипец денег, но раз и задача специфичная, то... да и у китая наверняка что-то есть. https://www.infineon.com/cms/en/product ... 9xxa-adas/ |
Автор: | u37 [ Ср июн 21, 2023 23:15:40 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
Если вы не собираетесь принимать сообщения от slave и сам обмен будет строго по направлениям - ставьте несколько трансиверов с переключателем типа CD4052 для подключения одного-из-кучи трансивера к выходу CAN контроллера. Учтите, что отключенный трансивер должен переходить в адекватное состояние. Кроме того, учитывайте вхождение-выход. Вообще, я не совсем понимаю, почему нельзя сделать одну шину, с бОльшем кол-вом устройств. Если нужна надежность и устойчивость, возьмите шину/трансиверы FT CAN. |
Автор: | slesar [ Ср июн 21, 2023 23:29:06 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
Вообще, я не совсем понимаю, почему нельзя сделать одну шину, с бОльшем кол-вом устройств. Так у большинства трансиверов вроде ограничение около 100 абонентов. Или я не прав? Переключать не вариант, идея в простой топологии, чтобы все слушали широковещательное сообщение, но исполнял только тот абонент, кому оно подходит. Добавлено after 9 minutes 39 seconds: Chorus 10M SPC58NH9X - там какого-то MCAN аж 16 ![]() |
Автор: | Martian [ Ср июн 21, 2023 23:41:01 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
это я наспех глядел. вполне возможно, есть что-то подешевле у китайцев Добавлено after 8 minutes 50 seconds: Chorus 10M SPC58NH9X - 45,5 долл. от 1 штуки в магазине ST... ну, в принципе, терпимая цена. Вот только купить сейчас выйдет за сам процесс ещё ого-го |
Автор: | u37 [ Чт июн 22, 2023 07:20:02 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
Гм. Широковещательные сообщения вполне "отравляются". Впрочем, обсуждать сетку из сотЕН абонентов как-то не интересно. |
Автор: | tonyk [ Чт июн 22, 2023 09:34:40 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
Не понял, в чём проблема. И в 485, и в CAN всё равно ведь используются отдельные микросхемы трансиверов. Что мешает соединять их линии Rx через пару последовательных инверторов с открытым коллектором для получения монтажного "И"? Ну или ставьте трансиверы с SPI и/или I2С, коих полно у Maxim и TI. |
Автор: | GARMIN [ Ср июн 28, 2023 18:10:41 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
идея в простой топологии, чтобы все слушали широковещательное сообщение, но исполнял только тот абонент, кому оно подходит. 1. CAN с длинным заголовком логически поддерживает до 2^28 абонентов. Физически поменьше конечно. 2. Вы что-то путаете. Широкополосные сообщения затем и нужны, чтобы всем слушать. Нужно сообщение кому-то одному - посылаете адресное сообщение. Зачем использовать наоборот? 3. Коммутировать CAN не лучшая идея, так как нужны подтверждения на ответы, терминальные резисторы и подтяжка линий драйверами. |
Автор: | Martian [ Ср июн 28, 2023 20:31:06 ] |
Заголовок сообщения: | Re: Как сделать несколько CAN звездой |
2. Вы что-то путаете. Широкополосные сообщения затем и нужны, чтобы всем слушать. Нужно сообщение кому-то одному - посылаете адресное сообщение. Зачем использовать наоборот? например, как сигнал SOS: слышат все, но бегут спасать те, кто рядом, кто могут и т.д. То есть, отправляющий широковещательное не обязан знать всех условий у получателей. ТС так и сказал: slesar писал(а): чтобы все слушали широковещательное сообщение, но исполнял только тот абонент, кому оно подходит. что логично и экономичней.
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |