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

 
 
 
Reply to this topicStart new topic
> STM32 & ISO-TP стратегия
MaxiGroup
сообщение May 16 2018, 10:19
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 28-04-05
Из: Russia, Moscow
Пользователь №: 4 581



Здравствуйте коллеги,

хочу спросить совета у повидавших виды: стоит задача реализации отправки-приема больших пакетов по CAN.

Приглянулась реализация ISO-TP но исходников нема.
На сайте Техаса предлагают некую контору, которая продает такие исходники за $17500, на гитхабе какие-то недоделки ужасные покопал и понял, что лучше писать самому.

Тут возник вопрос, коли отправляя пакет, нужно ждать подтверждения и затем решать - повторить его или дальше слать, или отмена. То по какому принципу делать? Использовать прерывания или писать тупо очередь в функции с ожиданием(типа отправил, таймаут, потом проверил не приходило ли чего, потом дальше. Но может я параноик, но мне кажется что в таком случае возможны пропуски пакетов)
А с прерываниями как-то оч сложно представляется, нужно очень много флагов разных... )))
Палка о двух концах...

А в современном мире как такие вещи делаются?

Что посоветуете?
Go to the top of the page
 
+Quote Post
pitt
сообщение May 16 2018, 11:36
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 325
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(MaxiGroup @ May 16 2018, 06:19) *
Что посоветуете?

Делюсь собственным опытом/мнением. Использую систему команда - статус, запрос - ответ. Обе стороны имеют тайм-аут, по-которому переходят в другой режим работы. Например, послана команда усановить какую-то величину на каком-то выходе. В ответ передатчику посылается статус приемника как подтверждение приема. Скорее всего, значениеуказанного выхода уже включено в статус устройства. Если нет, то посылается отдельный запрос на чтение данного значения. Про тайм-ауты я уже упоминал. Это все, наверное, очень просто и слишком в общем виде, ну так проработка деталей - Ваша работа. Данная методология отлично себя зарекомендовала на множестве проектов, в том числе и с коммуникацией по CAN с наличием более сотни устройств на одной шине и, соответственно, с коллизиями и потерями пакетов по различным причинам, которые необходимо анализировать и принимать меры. Запомните, потери неизбежны, а вот фиксирование таких потерь и устойчивость системы к ним - это уже другая история.

Успехов.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
MaxiGroup
сообщение May 16 2018, 12:18
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 28-04-05
Из: Russia, Moscow
Пользователь №: 4 581



Цитата(pitt @ May 16 2018, 14:36) *
Делюсь собственным опытом/мнением...


Спасибо!
Go to the top of the page
 
+Quote Post
Serge V Iz
сообщение May 16 2018, 19:15
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 3-05-18
Пользователь №: 103 639



А какого рода данные транспортируются? Если они эфемерны, и имеют значение только в пределах одного цикла работы системы, то, возможно их лучше вообще не квитировать, чтобы магистраль ерундой не засорять, в следующем цикле все равно будут отправлены более свежие. Если их потеря приводит к стойкому ухудшению характеристик системы или аварии/неработоспособности - нужно делать все возможное для их доставки, возможно даже предусматривать резервный канал/способ. Это ж все спецификой задачи определяется )
Go to the top of the page
 
+Quote Post
pitt
сообщение May 17 2018, 10:58
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 325
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(Serge V Iz @ May 16 2018, 15:15) *
А какого рода данные транспортируются?

А кто как не разработчик должен это определять?! Не надо смешивать доставку данных с их содержанием.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
Alechek
сообщение May 18 2018, 05:18
Сообщение #6


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

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



Цитата(MaxiGroup @ May 16 2018, 15:19) *
хочу спросить совета у повидавших виды: стоит задача реализации отправки-приема больших пакетов по CAN.

Вопрос встречный: насколько больших? Мегабайты? Терабайты?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd May 2018 - 00:40
Рейтинг@Mail.ru


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