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

 
 
> SPI интерфейс мк-мк, но как устроен протокол?, Пакет из 6 посылок по 8 бит. поллитра захватите :)
Alexeus
сообщение Jan 14 2009, 12:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 14-01-09
Пользователь №: 43 345



Введение: Разбираюсь с системой климат контроля автомобиля. Подцепился осциллографом (ну как осциллографом... звуковой картой smile.gif ) между СПИ интерфейсом двух МК. Один в режиме мастера передает второму, тот интерпретирует данные и отдает короче дальше, пусть на ЖК экран... Когда разберусь, планирую на МК AVR сделать подмену ведомого, так нужно... smile.gif

Описание: Данные передаются в пакете. пакет состоит из 6 посылок по 8 бит. Не все 8 бит используются под перенос данных, а, например первая посылка имеет вид "1ххх1ххх" где ххх- биты данных, 1 вначале и 1 посередине я так понимаю используется для контроля и распознавания вторым мк, что это посылка с информацией о скорости и положении заслонки вентилятора, за этой посылкой следуют еще 5 штук, у них соответственно другие биты неизменны, они несут информацию о температуре и др. (я еще не разобрался какие именно не меняются, пока анализирую), в последней посылке (шестой) первый бит неизменный "0"ххххххх -"х" я так и не понял к чему, так как все необходимые данные передаются в первых 5 посылках, но они меняются.

Непонятки: Может подскажете, каким образом второй мк узнает, что это посылка с инф. о скорости вентилятора, вторая о температуре и т.п. казалось бы, первая посылка имеет маску 1ххх1ххх, но и вторая может принять такой же вид, например при температуре 25 градусов, абстрактно: 10011101 - маска 1ххх1ххх та же, но посылка то вторая, а не первая, таким же образом и следующие посылки могут принимать вид предыдущих. Напомню что всего в пакете 6 посылок и последняя не поддается интерпретированию (я еще не допетрил что она несет, так как все что нужно передается в первых 5ти посылках)

Домыслы: И я так полагаю при смене режима, пакет может прерваться в любом месте и затем начинается передача уже новых данных сначала. Предполагаю, что последний пакет- контрольная сумма или что то в этом роде...

Вопрос: Как 6 посылок собираются в один пакет во втором МК? (ведь мк должен сохранить 5 посылок, затем получить 6ю и сравнить, все ли правильно, являются ли те посылки, что он принял действительными и не содержащими ошибок)

ЗЫ: Сорри, картинки одинаковыя, не ищите отличия. так получилось... как удалить не найду.

Модератор. Удалил лишнюю (вторую).
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexandr
сообщение Jan 15 2009, 12:46
Сообщение #2


Знающий
****

Группа: Модераторы
Сообщений: 804
Регистрация: 1-12-04
Пользователь №: 1 283



Alexeus все достаточно просто. Так как вы предложили тоже можно сделать, но тогда придется работать с битами. Проще работать с байтами. Вы принимаете все байты подряд, но стартовый байт Вашей последовательности имеет 0 в 7-ом разряде, 1 в 3-ем. Именно эти два разряда являются для нас значимыми. Поэтому мы делаем операцию AND с маской стартового байта (10001000). Получаем байт Х000Y000, где Х и Y интересующие нас биты. При этом для нас важно чтобы Х=0, Y=1. Для этого мы делаем операцию XOR данного байта и байта 00001000. Если результат операции равен 0 - значит принятый нами байт может являеться стартовым (я исхожу из того, что в линии может идти сплошной поток данных из которого нам надо выдрать только 6 байт). Далее принимаете и подсчитывае контрольную сумму (операцией xor или есть специальнвй алгоритм?) следующих 5 байт и сравниваете с контрольной суммой, принятой последней, как и предложил Палыч. Но можно и каждый принятый байт анализировать методом описанным в начале только маски будут меняться 10010010 10100000 10000010 11000000 10000000


--------------------
Иван Сусанин - первый полупроводник
Go to the top of the page
 
+Quote Post
Alexeus
сообщение Jan 15 2009, 12:52
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 14-01-09
Пользователь №: 43 345



Палыч, Александр, спасибо, действительно, опираясь на ваши подсказки вычислил, что если складывать все 6 байт пакета, как раз как предложил Палыч, отлавливая последний байт по старшему биту в 1, то при сложении всех 6ти, всегда получаю 0х80 или 0b10000000 !!!

Круто smile.gif Спасибо.

/а я голову ломал, что за данные в этом 6том байте...

Сообщение отредактировал Alexeus - Jan 15 2009, 12:53
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alexeus   SPI интерфейс мк-мк, но как устроен протокол?   Jan 14 2009, 12:16
- - Палыч   Цитата(Alexeus @ Jan 14 2009, 15:16) Непо...   Jan 14 2009, 12:52
|- - Alexeus   Цитата(Палыч @ Jan 14 2009, 15:52) По сче...   Jan 14 2009, 13:30
|- - Палыч   Цитата(Alexeus @ Jan 14 2009, 16:30) Явля...   Jan 15 2009, 11:10
|- - Alexeus   Цитата(Палыч @ Jan 15 2009, 14:10) Возмож...   Jan 15 2009, 11:42
|- - Палыч   Цитата(Alexeus @ Jan 15 2009, 14:42) судя...   Jan 15 2009, 12:37
|- - Alexeus   Я и сам придерживаюсь такой идеологии, что если чт...   Jan 15 2009, 13:32
- - Cyber_RAT   а какая собственно машина? и какой там протокол? а...   Jan 15 2009, 07:28
|- - Alexeus   Цитата(Cyber_RAT @ Jan 15 2009, 10:28) а ...   Jan 15 2009, 07:48
- - Alexeus   Циклично передается пакет с информацией из 48 бит ...   Jan 15 2009, 09:35
|- - Палыч   Поскольку последовательность - циклическая, то я б...   Jan 15 2009, 10:21
||- - Alexeus   Цитата(Палыч @ Jan 15 2009, 13:21) Поскол...   Jan 15 2009, 11:06
|- - Палыч   Цитата(Alexeus @ Jan 15 2009, 12:35) Как ...   Jan 15 2009, 11:16
- - Alexandr   В любом случае придется слушать линию и ждать байт...   Jan 15 2009, 10:43
|- - Alexeus   Цитата(Alexandr @ Jan 15 2009, 13:43) В л...   Jan 15 2009, 11:29
|- - Палыч   Цитата(Alexeus @ Jan 15 2009, 14:29) Алек...   Jan 15 2009, 11:52
- - Палыч   Цитата(Alexeus @ Jan 15 2009, 15:52) всег...   Jan 15 2009, 12:58


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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 23:36
Рейтинг@Mail.ru


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