Select language:

Протокол обмена данными

<<

alvikagal

Аватара пользователя

Сообщения: 2667

Зарегистрирован: 18 сен 2013, 01:58

Откуда: Украина, Павлоград

Машина: ВАЗ-21099 1,5л.

Версия SECU: самодельная SECU-3T


Благодарил (а): 320 раз.
Поблагодарили: 427 раз.

Сообщение 21 сен 2015, 00:39

Re: Протокол обмена данными

Последний релиз.
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

dimonfish

Сообщения: 1144

Зарегистрирован: 10 май 2013, 09:16

Откуда: Sevastopol UA


Благодарил (а): 120 раз.
Поблагодарили: 172 раз.

Сообщение 21 сен 2015, 10:13

Re: Протокол обмена данными

хорошая тема! отмечусь :)
ЗАЗ 110247, Солекс, ДПКВ, SECU-3T (M644), ДКЗ, Статика и пр. плюшки :)
<<

alvikagal

Аватара пользователя

Сообщения: 2667

Зарегистрирован: 18 сен 2013, 01:58

Откуда: Украина, Павлоград

Машина: ВАЗ-21099 1,5л.

Версия SECU: самодельная SECU-3T


Благодарил (а): 320 раз.
Поблагодарили: 427 раз.

Сообщение 07 окт 2015, 21:51

Re: Протокол обмена данными

Продолжаю разбираться как принять данные от СЕКУ.
Есть массив:
  Код:
uint16_t SENSOR_DAT[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26};


Правильно ли так искать начало пакета для датчиков и записывать пакет данных в массив?
  Код:
//Функция приёма данных
void USART_Transmit(void)
{
   while (!(UCSRA & (1<<RXC)));    // Ожидание буфера   
   if (UDR=0x40)
      {
      while (!(UCSRA & (1<<RXC)));    // Ожидание обуфера
      if (UDR=0x71)
         {
         for (int i=0;i<27;i++)      // Присваиваем переменной i значение 0 и выполняем тело цикла и каждый цикл прибавляем по 1 к i
            {
               while (!(UCSRA & (1<<RXC)));    // Ожидание буфера         
               uint8_t TempH=UDR;            // Копируем старший байт из буфера
               while (!(UCSRA & (1<<RXC)));    // Ожидание буфера         
               uint8_t TempL=UDR;            // Копируем старший байт из буфера
               Temp=TempH;         
               Temp=Temp<<8;               // Копируем первые 8 бит сдвинув их влево
               Temp=TempL;                  // Копируем последние 8 бит
               SENSOR_DAT[i]=Temp;            // Копируем 2 байта (16 бит) данных в массив
            }
         }
      }
   else   //игнорируем пакет
   {}   
}

60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

donec

Аватара пользователя

Сообщения: 100

Зарегистрирован: 03 июл 2013, 14:38


Благодарил (а): 0 раз.
Поблагодарили: 77 раз.

Сообщение 08 окт 2015, 10:36

Re: Протокол обмена данными

alvikagal писал(а):Правильно ли так искать начало пакета для датчиков и записывать пакет данных в массив?
  Код:
//Функция приёма данных
void USART_Transmit(void)
{...

Для чего у тебя эта функция, для компьютера или микропроцессора?
ВАЗ-21093, Солекс, зажигание SUZ v6, дроссель-конденсаторное зажигание, катушка 2111.
<<

alvikagal

Аватара пользователя

Сообщения: 2667

Зарегистрирован: 18 сен 2013, 01:58

Откуда: Украина, Павлоград

Машина: ВАЗ-21099 1,5л.

Версия SECU: самодельная SECU-3T


Благодарил (а): 320 раз.
Поблагодарили: 427 раз.

Сообщение 08 окт 2015, 10:48

Re: Протокол обмена данными

Делаю типа БК для СЕКУ, только вывод данных на экран и всё.
Связь МК-МК.
Это я копипастил из предыдущих уроков, а английский на 0 уровне у меня.
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

donec

Аватара пользователя

Сообщения: 100

Зарегистрирован: 03 июл 2013, 14:38


Благодарил (а): 0 раз.
Поблагодарили: 77 раз.

Сообщение 08 окт 2015, 11:32

Re: Протокол обмена данными

Насколько Я понимаю СИ, а Я его практически не знаю, то из функции выхода не будет пока не будет принят весь пакет данных, как мне кажется правильнее вести прием данных в фоновом режиме, и по мере их поступления обрабатывать, так больше свободного времени у МК будет.
ВАЗ-21093, Солекс, зажигание SUZ v6, дроссель-конденсаторное зажигание, катушка 2111.
<<

STC

Аватара пользователя

Сообщения: 6213

Зарегистрирован: 30 апр 2013, 23:41

Откуда: Ukraine

Машина: AZLK 2140

Версия SECU: самодельная SECU-3


Благодарил (а): 755 раз.
Поблагодарили: 1231 раз.

Сообщение 08 окт 2015, 12:42

Re: Протокол обмена данными

alvikagal, посмотри тот готовый пример что я скидывал на предыдущих страницам. Там уже все готово для работы в фоновом режиме.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

alvikagal

Аватара пользователя

Сообщения: 2667

Зарегистрирован: 18 сен 2013, 01:58

Откуда: Украина, Павлоград

Машина: ВАЗ-21099 1,5л.

Версия SECU: самодельная SECU-3T


Благодарил (а): 320 раз.
Поблагодарили: 427 раз.

Сообщение 08 окт 2015, 20:29

Re: Протокол обмена данными

Я его смотрел и сделал приём через функцию, позже можно будет и прерывание попробовать.
UART1 я понял как работает, а вот UART2 многое вообще не понял.
Мне сейчас нужно как-то сохранять полученные данные и потом их обрабатывать. Я попробовал через массив, т.к. понимаю. Моего уровня не хватает, чтобы разобраться в исходниках, т.к. не понимаю вообще некоторый код, что он делает.
Проверить полноценно написанную подпрограмму пока не смог, т.к. не получается в Протеусе создать модель Мега644, чтобы с СЕКУ получать пакет данных, а в железе ещё пока нет стенда для испытаний (собираю).
Как например сохранять полученные 8 бит, если переменная 16 бит и писать её сразу в переменную или в массив, как я это сделал?
Спасибо за помощь. ;)
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

Yurii

Аватара пользователя

Сообщения: 191

Зарегистрирован: 10 июл 2013, 09:41

Откуда: Шебекино

Машина: ВАЗ2106

Версия SECU: самодельная SECU-3T


Благодарил (а): 0 раз.
Поблагодарили: 85 раз.

Сообщение 09 окт 2015, 13:29

Re: Протокол обмена данными

alvikagal писал(а): создать модель Мега644

Начинал БК с графическим индикатором, создал примитив SECU в протезе.
Тормозит страшно, вродибы и машина не слабенькая.
На втором листе проц БК на 644, на третьем SECU (на 32) и иммитатор ДПКВ.
Будет от чего оттолкнуться.
Вложения
12864.rar
(165.07 КБ) Скачиваний: 62
ВАЗ 2106 -1.6, 60-2, SECU3-T rev6 mega644 + УВЗ, МЗ 2112-3705010, Солекс-21053-20.
<<

alvikagal

Аватара пользователя

Сообщения: 2667

Зарегистрирован: 18 сен 2013, 01:58

Откуда: Украина, Павлоград

Машина: ВАЗ-21099 1,5л.

Версия SECU: самодельная SECU-3T


Благодарил (а): 320 раз.
Поблагодарили: 427 раз.

Сообщение 24 янв 2016, 18:56

Re: Протокол обмена данными

Полученные данные ГД и ВЗ:
  Код:
uint8_t choke_pos;
uint8_t gasdose_pos;

Что с ними нужно сделать? Умножить на шаг 0,5, чтобы получить проценты?
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
Пред.След.

Вернуться в Программное обеспечение для ПК и релизы ПО

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Powered by phpBB® Forum Software © phpBB Group.