Декодирование протокола парктроника

Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Декодирование протокола парктроника

Сообщение Dmitry888 »

Всем привет!
Прошу оказать непосильную помощь в декодировании протокола парктроника. От основного блока на дисплей передаются данные по 3-м проводам: DATA, CLK, CS . Планируется подключение основного блока к Arduino с последующим разбором полученных данных. Есть примерное представление как это работает, но на практике возникают затруднения.
Изображение

Изображение
Реклама
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Декодирование протокола парктроника

Сообщение igor-x »

очень похоже на SPI . а зачем вручную декодировать? принять это на туже ардуину, и смотреть данные
Реклама
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

20-ть бит на дисплей - вряд ли это SPI. Возможно в дисплее стоит обыкновенный сдвиговый регистр (или несколько последовательно) и его выходы подключены к светодиодам. А может быть и индикатор со вренным сдв. регистром...
Лучше открыть дисплей и посмотреть на его "внутренности". Часть вопросов сразу отпадёт.
P.S.
Проще, даже, вначале попытаться управлять дисплеем.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Да, я уже нарыл в инете, мне тоже видится что это SPI без линии MISO. Попробую принять на arduino, только вот не могу нормальный пример найти для SPI-slave. Экран конечно же вскрою, посмотрим что там.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Декодирование протокола парктроника

Сообщение igor-x »

ну уж если на ардуине делать собрались - загляните на SPI Library
http://arduino.cc/en/Tutorial/HomePage

или в дистрибутиве там этих примеров выше крыши
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Декодирование протокола парктроника

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Вскрыл дисплей, по маркировке микросхем - ничего не нашёл. Микросхема побольше: CH03 501 DOD1, поменьше: APS038 ...
Изображение

Изображение

Попытался считать данные ардуино в роли SPI-slave - тоже облом. Выкладываю здесь скетч, мож я чего не понимаю...

Код: Выделить всё

//SLAVE

//определяем пины SPI
#define MOSI_PIN 11    // Data
#define SCK_PIN  13    // CLK
#define SS_PIN 10      // CS
//определяем переменную для получаемого байта
byte recievedByte;

void setup() {
  //обнуляем регистр управления SPI
  SPCR = B00000000;
  //разрешаем работу SPI, фаза тактирования - по спаду (SPI MODE 1)
  SPCR = (1<<SPE)|(1<<CPHA);
 
  //инициализируем последовательное соединение
  Serial.begin(9600);
  //определяем пины для работы с SPI
  pinMode(MOSI_PIN, INPUT);
  pinMode(SCK_PIN, INPUT);
  pinMode(SS_PIN, INPUT);
}

void loop() {
  //пока пин slave select опущен
  while (digitalRead(SS_PIN)==LOW){
    //принимаем байт и записываем его в переменную
    recievedByte=spi_receive();
    //смотрим в мониторе полученный байт
    Serial.println(recievedByte,BIN);
  }
}

//функция для приема байта
byte spi_receive()
{
  //пока не выставлен флаг окончания передачи, принимаем биты
  while (!(SPSR & (1<<SPIF))){};
  //возвращяем содержимое регистра данных SPI
  return SPDR;                    
}
Minor/2
Вымогатель припоя
Сообщения: 536
Зарегистрирован: Пт ноя 05, 2010 12:53:36
Откуда: Беларусь Витебск
Контактная информация:

Re: Декодирование протокола парктроника

Сообщение Minor/2 »

На осциллограммах не видно (хотя, может только мне ...) режим SPI точно 1 ?
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Если посмотреть на осциллограмму , например 6-й бит и 17 , будет распознаваться однозначно по спаду тактового сигнала, хотя, я могу ошибаться . А Вы как считаете, какой режим?
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

Как мне кажется, они все по спаду.
Попробуйте, вначале, такую же посылку дать на индикатор. Потом имените в посылке 1 бит в первом. Сразу станет понятно: последние 4-е бита это контрольная сумма или что-то измениться на индикаторе.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

На какой минимальной частоте может работать spi в микроконтроллерах avr ? По осциллограммам - частота линии clk - 20 kHz , не слишком ли мало для аппаратного spi? Еще смущает то, что посылка 20 бит, в описании протокола spi везде пишут про 8 бит. Может поэтому я не могу получить данные?
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

Вот и я о том же. 20-ть бит с такой частотой - не похоже на SPI. Логичнее было бы сделать SPI на более высокой частоте и пакет длиной 16-ть или 24-ре бита.
Всё-таки, попробуйте не принимать а передавать пакеты в индикатор. На мой взгляд, так будет проще "расколоть" код посылки.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Albert_V писал(а):Вот и я о том же. 20-ть бит с такой частотой - не похоже на SPI. Логичнее было бы сделать SPI на более высокой частоте и пакет длиной 16-ть или 24-ре бита.
Всё-таки, попробуйте не принимать а передавать пакеты в индикатор. На мой взгляд, так будет проще "расколоть" код посылки.
Это конечно же сделаю, просто у меня недостаточно опыта в этих делах, я пока не представляю себе как это сделать, может подскажете?
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

Если у вас есть какой-нибудь PIC12, PIC16 или PIC18 и вы можете его прошить - могу чиркануть программку в тексте которой будете менять данные. Там делов то на 10-ть минут с двумя перекурам.
Условие одно: Вы выложите на форум результаты "раскола" пакета данных.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Есть PIC18F258, прошить тоже есть чем. Хотелось бы увидеть программку на си, о результатах отпишусь здесь.
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

На СИ не пишу. Только ASM.
Надо?
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

в асм вообще не разберусь, спасибо, не имеет смысла. Может объясните "не пальцах" логику программки?
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

Зачем вам разбираться в ASM?
В "шапке программы" просто будете менять значения трёх байт. При нажатии на кнопку будет передача пакета.
Dmitry888
Встал на лапы
Сообщения: 131
Зарегистрирован: Чт мар 05, 2015 07:14:58

Re: Декодирование протокола парктроника

Сообщение Dmitry888 »

Мне недостаточно знать какой бит за что отвечает, мне еще нужно научиться получать эти биты в своём проекте. Тоесть главный вопрос: как эти байты считать , а остальное - дело техники.
Аватара пользователя
Albert_V
Друг Кота
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Re: Декодирование протокола парктроника

Сообщение Albert_V »

Для приёма - задайте прерывания по спаду (CLK) на каком-либо входе и считывайте данные когда CS=LOW. Как только CS=LOW>HI - считаете что пакет принят и "разбираете" его.
Написать сдвиговый регистр на 20-бит (3 байта, перенос через флаг С) - что может быть проще?
Ответить

Вернуться в «АвтоМотоВело»