реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Сориентируйте по протоколам/транспортам для связи 2 микроконтроллеров
jcxz
сообщение Sep 23 2018, 19:20
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(p_v @ Sep 23 2018, 22:08) *
Тут текущий протокол, который с точки зрения управления в принципе устроил бы. Но там совсем дешево и сердито, точилось под немного другую задачу, и под внутреннюю коммуникацию нюансы не обдумывал.

JSON то зачем? wacko.gif Чтоб максимально усложнить себе жизнь?
Go to the top of the page
 
+Quote Post
p_v
сообщение Sep 23 2018, 20:02
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



Цитата(jcxz @ Sep 23 2018, 22:20) *
JSON то зачем? wacko.gif Чтоб максимально усложнить себе жизнь?

Почему бы не прочитать сначала документацию повнимательнее, и не сообразить что к протоколу в рамках данной темы это не относится?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 23 2018, 20:08
Сообщение #33


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(p_v @ Sep 23 2018, 23:02) *
Почему бы не прочитать сначала документацию повнимательнее, и не сообразить что к протоколу в рамках данной темы это не относится?

Попахивает arduino. biggrin.gif
Go to the top of the page
 
+Quote Post
p_v
сообщение Sep 23 2018, 20:48
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



Вы всерьез считаете, что всем важно знать что вам как попахивает? Лучше б написали во что обойдется гальваноразвязка SPI, за который вы тут топили. По деталям и деньгам.
Go to the top of the page
 
+Quote Post
p_v
сообщение Sep 23 2018, 22:03
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



У меня вопрос по CAN. Не уверен, насколько вообще критична автоматическая ретрансмиссия битых фреймов, но в принципе было бы интересно заюзать эту штуку вместо UART. Возможно, не столько по большой нужде сколько из любопытства.

1. Насколько стабильными должны быть частоты самих микроконтроллеров? Можно например их оба запустить на внутренних RC-генераторах?

2. Правильно ли я понимаю, что если точек только две и токовая петля не нужна, то можно заюзать все тот же дешевый ADUM1201 от UART?

Надо ли при этом городить схему с диодами и резистором, или можно просто can_tx/can_rx крест на крест соединить?
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 24 2018, 05:37
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(p_v @ Sep 24 2018, 01:03) *
Возможно, не столько по большой нужде сколько из любопытства.

Для "любопытства", имхо, лучше купить пару отладочных плат и на них в полной мере утолить свое любопытство sm.gif

Цитата
1. Насколько стабильными должны быть частоты самих микроконтроллеров? Можно например их оба запустить на внутренних RC-генераторах?

Тут все упирается в стабильность этого самого RC-генератора на всем диапазоне рабочих температур и требуемой скорости CAN-шины.
Подробности как всегда см. в гуглях.

Цитата
2. Правильно ли я понимаю, что если точек только две и токовая петля не нужна, то можно заюзать все тот же дешевый ADUM1201 от UART?

Наверно можно, если удастся правильно понять вашу мысль sm.gif

Цитата
Надо ли при этом городить схему с диодами и резистором, или можно просто can_tx/can_rx крест на крест соединить?

Не вижу никакого смысла соединять два MK голым CAN без соотв. трансиверов и защит - это как из пушки по воробьям. Для подобной цели вполне хватит и обычных USART.
Хотя ничто не мешает извратиться и по такой "методе" соединить даже два ETH sm.gif

Дабы далее не "гадать на кофейных гущах", опишите сразу топологию этой "шины": как и что это выглядит и как это все должно запитываться, какие расстояния и т.п.?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 24 2018, 06:09
Сообщение #37


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-м квантам.
Но опять же, это не консультация и все сказанное может быть неточным. laughing.gif
Go to the top of the page
 
+Quote Post
p_v
сообщение Sep 24 2018, 07:04
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 16-06-18
Из: СПб
Пользователь №: 105 099



Цитата(AlexandrY @ Sep 24 2018, 09:09) *
Здесь не консультационное бюро.
Качество ответов зависит от качества вопроса.
Так что сначала сами потрудитесь.
Ссылка на то что вы нашли вам в минус в профессиональной ветке.


Я вас вроде силой в эту тему не затаскивал, и вещать на целую страницу об офигительной важности чтения кнопок через DMA тоже не заставлял. Вы б как-то различали что ли, когда ждут конкретные подробности, а когда хотят просто поговорить на общие темы.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 24 2018, 10:28
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(p_v @ Sep 23 2018, 23:02) *
и не сообразить что к протоколу в рамках данной темы это не относится?

Если это не относится к обсуждаемой теме, то почему бы не подумать немного и не сообразить что тогда нет и смысла постить это сюда?
Go to the top of the page
 
+Quote Post
sidy
сообщение Sep 24 2018, 11:01
Сообщение #40


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Цитата(Сергей Борщ @ Sep 23 2018, 00:41) *
modbus - кошмар для программиста.

Поясните в чем заключается кошмар? Старый и очень простой и понятный протокол передачи данных.
Go to the top of the page
 
+Quote Post
mantech
сообщение Sep 24 2018, 12:29
Сообщение #41


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(sidy @ Sep 24 2018, 14:01) *
Поясните в чем заключается кошмар? Старый и очень простой и понятный протокол передачи данных.


То же самое, так и не понял кошмарности. Там 1 таймаут и то, +-лапоть. biggrin.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 24 2018, 15:10
Сообщение #42


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Alechek
сообщение Sep 24 2018, 16:24
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(mantech @ Sep 24 2018, 17:29) *
То же самое, так и не понял кошмарности. Там 1 таймаут и то, +-лапоть. biggrin.gif


В таймауте как раз и кошмарность.
Вроде и ничего сложного, но почему-то возникают проблемы на "поделках"


Цитата(Сергей Борщ @ 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)?
Или даже (при действительно необходимости) свои функции, стандарт ведь это допускает.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 24 2018, 17:30
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Alechek @ Sep 24 2018, 19:24) *
Или даже (при действительно необходимости) свои функции, стандарт ведь это допускает.
И что потом делать с этими функциями, если готовые программы о них не знают? Так почему не использовать свой протокол целиком, если нет жесткого требования использовать именно modbus?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 24 2018, 18:50
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Sep 24 2018, 20:30) *
И что потом делать с этими функциями, если готовые программы о них не знают? Так почему не использовать свой протокол целиком, если нет жесткого требования использовать именно modbus?

Из modbus-а имеет смысл использовать только его механизм деления на кадры. Я говорил уже.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 07:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016