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

Обсуждаем все что касается программ для персонального компьютера:
менеджер, логгер, автопостроитель кривых УОЗ и т.д.
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Последний релиз.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
dimonfish
Posts: 1181
Joined: 10 May 2013, 09:16
Your CAR: I go on foot
SECU version: DIY SECU-3T
Has thanked: 147 times
Been thanked: 186 times

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

Post by dimonfish »

хорошая тема! отмечусь :)
ЗАЗ 110247, Солекс, ДПКВ, SECU-3T (M644), ДКЗ, Статика и пр. плюшки :)
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Продолжаю разбираться как принять данные от СЕКУ.
Есть массив:

Code: Select all

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};
Правильно ли так искать начало пакета для датчиков и записывать пакет данных в массив?

Code: Select all

//Функция приёма данных
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-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
User avatar
donec
Posts: 121
Joined: 03 Jul 2013, 14:38
Been thanked: 88 times

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

Post by donec »

alvikagal wrote: Правильно ли так искать начало пакета для датчиков и записывать пакет данных в массив?

Code: Select all

//Функция приёма данных
void USART_Transmit(void)
{...
Для чего у тебя эта функция, для компьютера или микропроцессора?
ВАЗ-21093, Солекс, зажигание SUZ v6, дроссель-конденсаторное зажигание, катушка 2111.
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Делаю типа БК для СЕКУ, только вывод данных на экран и всё.
Связь МК-МК.
Это я копипастил из предыдущих уроков, а английский на 0 уровне у меня.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
User avatar
donec
Posts: 121
Joined: 03 Jul 2013, 14:38
Been thanked: 88 times

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

Post by donec »

Насколько Я понимаю СИ, а Я его практически не знаю, то из функции выхода не будет пока не будет принят весь пакет данных, как мне кажется правильнее вести прием данных в фоновом режиме, и по мере их поступления обрабатывать, так больше свободного времени у МК будет.
ВАЗ-21093, Солекс, зажигание SUZ v6, дроссель-конденсаторное зажигание, катушка 2111.
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

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
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Я его смотрел и сделал приём через функцию, позже можно будет и прерывание попробовать.
UART1 я понял как работает, а вот UART2 многое вообще не понял.
Мне сейчас нужно как-то сохранять полученные данные и потом их обрабатывать. Я попробовал через массив, т.к. понимаю. Моего уровня не хватает, чтобы разобраться в исходниках, т.к. не понимаю вообще некоторый код, что он делает.
Проверить полноценно написанную подпрограмму пока не смог, т.к. не получается в Протеусе создать модель Мега644, чтобы с СЕКУ получать пакет данных, а в железе ещё пока нет стенда для испытаний (собираю).
Как например сохранять полученные 8 бит, если переменная 16 бит и писать её сразу в переменную или в массив, как я это сделал?
Спасибо за помощь. ;)
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
Yurii
Posts: 279
Joined: 10 Jul 2013, 09:41
Your CAR: ВАЗ2106
SECU version: DIY SECU-3T
Location: Шебекино
Has thanked: 1 time
Been thanked: 123 times

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

Post by Yurii »

alvikagal wrote: создать модель Мега644
Начинал БК с графическим индикатором, создал примитив SECU в протезе.
Тормозит страшно, вродибы и машина не слабенькая.
На втором листе проц БК на 644, на третьем SECU (на 32) и иммитатор ДПКВ.
Будет от чего оттолкнуться.
Attachments
12864.rar
(165.07 KiB) Downloaded 185 times
ВАЗ 2106 -1.6, 60-2, SECU3-T rev6 mega644 + УВЗ, МЗ 2112-3705010, Солекс-21053-20.
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Полученные данные ГД и ВЗ:

Code: Select all

uint8_t choke_pos;
uint8_t gasdose_pos;

Что с ними нужно сделать? Умножить на шаг 0,5, чтобы получить проценты?
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
Post Reply

Return to “Программное обеспечение для ПК и релизы ПО”