|
|
|
Сориентируйте по протоколам/транспортам для связи 2 микроконтроллеров |
|
|
|
Sep 23 2018, 20:02
|
Участник
Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099
|
Цитата(jcxz @ Sep 23 2018, 22:20) JSON то зачем? Чтоб максимально усложнить себе жизнь? Почему бы не прочитать сначала документацию повнимательнее, и не сообразить что к протоколу в рамках данной темы это не относится?
|
|
|
|
|
Sep 23 2018, 20:48
|
Участник
Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099
|
Вы всерьез считаете, что всем важно знать что вам как попахивает? Лучше б написали во что обойдется гальваноразвязка SPI, за который вы тут топили. По деталям и деньгам.
|
|
|
|
|
Sep 23 2018, 22:03
|
Участник
Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099
|
У меня вопрос по CAN. Не уверен, насколько вообще критична автоматическая ретрансмиссия битых фреймов, но в принципе было бы интересно заюзать эту штуку вместо UART. Возможно, не столько по большой нужде сколько из любопытства.
1. Насколько стабильными должны быть частоты самих микроконтроллеров? Можно например их оба запустить на внутренних RC-генераторах?
2. Правильно ли я понимаю, что если точек только две и токовая петля не нужна, то можно заюзать все тот же дешевый ADUM1201 от UART?
Надо ли при этом городить схему с диодами и резистором, или можно просто can_tx/can_rx крест на крест соединить?
|
|
|
|
|
Sep 24 2018, 05:37
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(p_v @ Sep 24 2018, 01:03) Возможно, не столько по большой нужде сколько из любопытства. Для "любопытства", имхо, лучше купить пару отладочных плат и на них в полной мере утолить свое любопытство Цитата 1. Насколько стабильными должны быть частоты самих микроконтроллеров? Можно например их оба запустить на внутренних RC-генераторах? Тут все упирается в стабильность этого самого RC-генератора на всем диапазоне рабочих температур и требуемой скорости CAN-шины. Подробности как всегда см. в гуглях. Цитата 2. Правильно ли я понимаю, что если точек только две и токовая петля не нужна, то можно заюзать все тот же дешевый ADUM1201 от UART? Наверно можно, если удастся правильно понять вашу мысль Цитата Надо ли при этом городить схему с диодами и резистором, или можно просто can_tx/can_rx крест на крест соединить? Не вижу никакого смысла соединять два MK голым CAN без соотв. трансиверов и защит - это как из пушки по воробьям. Для подобной цели вполне хватит и обычных USART. Хотя ничто не мешает извратиться и по такой "методе" соединить даже два ETH Дабы далее не "гадать на кофейных гущах", опишите сразу топологию этой "шины": как и что это выглядит и как это все должно запитываться, какие расстояния и т.п.?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Sep 24 2018, 06:09
|
Ally
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050
|
Цитата(p_v @ Sep 23 2018, 23:48) Вы всерьез считаете, что всем важно знать что вам как попахивает? Лучше б написали во что обойдется гальваноразвязка SPI, за который вы тут топили. По деталям и деньгам. Здесь не консультационное бюро. Качество ответов зависит от качества вопроса. Так что сначала сами потрудитесь. Ссылка на то что вы нашли вам в минус в профессиональной ветке. Вашей теме в такой постановке место в ветке про ардуино или о чем-то подобном, о возможности туда ее перенести я и намекнул. CAN контроллеры не могут соединятся по линиям tx и rx напрямую, нужна как минимум логика И на каждый rx от двух tx. От RC генераторов CAN контроллеры врядли будут работать, поскольку там каждый бит делится еще на 13 точных квантов минимум, хотя и есть ресинхронизация по 3-м квантам. Но опять же, это не консультация и все сказанное может быть неточным.
|
|
|
|
|
Sep 24 2018, 07:04
|
Участник
Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099
|
Цитата(AlexandrY @ Sep 24 2018, 09:09) Здесь не консультационное бюро. Качество ответов зависит от качества вопроса. Так что сначала сами потрудитесь. Ссылка на то что вы нашли вам в минус в профессиональной ветке. Я вас вроде силой в эту тему не затаскивал, и вещать на целую страницу об офигительной важности чтения кнопок через DMA тоже не заставлял. Вы б как-то различали что ли, когда ждут конкретные подробности, а когда хотят просто поговорить на общие темы.
|
|
|
|
|
Sep 24 2018, 11:01
|
Местный
Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333
|
Цитата(Сергей Борщ @ Sep 23 2018, 00:41) modbus - кошмар для программиста. Поясните в чем заключается кошмар? Старый и очень простой и понятный протокол передачи данных.
|
|
|
|
|
Sep 24 2018, 15:10
|
Гуру
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095
|
QUOTE (sidy @ Sep 24 2018, 14:01) Поясните в чем заключается кошмар? Старый и очень простой и понятный протокол передачи данных. CODE struct config { typedef uint8_t version; static version const VERSION = 3; version Version;
struct localhost { uint8_t MAC_address[6]; // big endian uint8_t Built_in_MAC :1; uint8_t DHCP_enabled :1; ip_addr_t IP_address; // big endian ip_addr_t Netmask; // big endian ip_addr_t Gateway; // big endian ip_addr_t DNS[2]; // big endian char Hostname[64]; } Localhost;
struct telnet { in_port_t Port; char Password[21]; // 20 symbols + trailing '\0' } Telnet;
struct ademco685 { uint32_t Baudrate; uint8_t Receiver_ID; // Receiver ID uint8_t System_enabled; // bitset uint8_t Keep_alive_timeout; uint16_t Copy_filter_timeout; // seconds } ADEMCO685; Все данные (кроме оговоренных в комментариях) в маленьких индейцах. Напишите чтение/запись через modbus. Только честно - чтобы можно было менять как один параметр через Preset Single Register, так и произвольную группу через Preset Multiple Registers. И чтобы в процессе записи группы или через Preset Single Register не допускалась запись половины 32-битного числа. Любопытно глянуть на простоту реализации. А это только малая часть настроек моего устройства.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 24 2018, 16:24
|
Профессионал
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882
|
Цитата(mantech @ Sep 24 2018, 17:29) То же самое, так и не понял кошмарности. Там 1 таймаут и то, +-лапоть. В таймауте как раз и кошмарность. Вроде и ничего сложного, но почему-то возникают проблемы на "поделках" Цитата(Сергей Борщ @ Sep 24 2018, 20:10) Напишите чтение/запись через modbus. Только честно - чтобы можно было менять как один параметр через Preset Single Register, так и произвольную группу через Preset Multiple Registers. И чтобы в процессе записи группы или через Preset Single Register не допускалась запись половины 32-битного числа. Любопытно глянуть на простоту реализации. А это только малая часть настроек моего устройства. А что сразу функции 4/6/16? MODBUS ими не ограничивается! Кто мешает использовать 20/21 (Read File Record/Write File Record)? Или даже (при действительно необходимости) свои функции, стандарт ведь это допускает.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|