- Сообщений: 74
- Спасибо получено: 17
Вопрос Интерфейс обмена данными между погружным и наземным блоками
21 окт 2019 12:28 #1256
от Ильдар
Доброго всем дня. Vasiliy писал: «Снял лог ИРЗ-2 но что с ним делать не понимаю.».
Посмотрел сигнал ИРЗ-2. И вот что получилось.
1. Первый кадр (скрин1) – пустой (синхронизация). Маркерная линия А1 - это начало этого и всех последующих кадров.
2. Далее идёт нулевой кадр (скрин2). Тут пока не стал разбираться. Похоже на константные данные.
3. Следующий - первый кадр (скрин3). Все кадры по десять байт + 5 контрольных бит. 1-ый байт номер кадра(1). 2-й байт константа - двойка. Это типа идентификатор типа кадра. 3, 4 и 5, 6-й байты – температура. 4-й байт старший, поэтому значение температуры рассчитывается так – умножаем значение 4-го байта на 256 и прибавляем значение 3-го байта. То, что получилось, делим на 100. Это и есть температура. В данном случае (8 х 256 + 130) / 100 = 21,78 гр. Аналогично рассчитывается температура для 5 и 6-го байт - (7 х 256 + 102) / 100 = 18,94 гр.
В байтах 7-8 и 9-10 передаётся давление - пластовое и масла. Рассчитываются аналогично. В данном случае (1 х 256 + 33) / 100 = 2,89.
4. Второй кадр (скрин4). 1-й байт – номер кадра(2). 2-й – константа 65. 3 и 4-й температура. 5, 6-й, 7, 8-й и 9, 10-й байты – вибрация по осям X, Y, Z соответственно. Рассчитываются аналогично предыдущему пункту.
Далее кадры с идентификаторами 2 и 65 просто чередуются (со сменой номера кадра).
5. После 10-го байта каждого кадра идут пять бит – контрольная сумма. Предполагаю, что это CRC-5. Стандартных версий CRC-5 три. Какая именно версия использована мне пока с наскоку определить не удалось.
Полезная ссылка leventozturk.com/engineering/crc/
Посмотрел сигнал ИРЗ-2. И вот что получилось.
1. Первый кадр (скрин1) – пустой (синхронизация). Маркерная линия А1 - это начало этого и всех последующих кадров.
2. Далее идёт нулевой кадр (скрин2). Тут пока не стал разбираться. Похоже на константные данные.
3. Следующий - первый кадр (скрин3). Все кадры по десять байт + 5 контрольных бит. 1-ый байт номер кадра(1). 2-й байт константа - двойка. Это типа идентификатор типа кадра. 3, 4 и 5, 6-й байты – температура. 4-й байт старший, поэтому значение температуры рассчитывается так – умножаем значение 4-го байта на 256 и прибавляем значение 3-го байта. То, что получилось, делим на 100. Это и есть температура. В данном случае (8 х 256 + 130) / 100 = 21,78 гр. Аналогично рассчитывается температура для 5 и 6-го байт - (7 х 256 + 102) / 100 = 18,94 гр.
В байтах 7-8 и 9-10 передаётся давление - пластовое и масла. Рассчитываются аналогично. В данном случае (1 х 256 + 33) / 100 = 2,89.
4. Второй кадр (скрин4). 1-й байт – номер кадра(2). 2-й – константа 65. 3 и 4-й температура. 5, 6-й, 7, 8-й и 9, 10-й байты – вибрация по осям X, Y, Z соответственно. Рассчитываются аналогично предыдущему пункту.
Далее кадры с идентификаторами 2 и 65 просто чередуются (со сменой номера кадра).
5. После 10-го байта каждого кадра идут пять бит – контрольная сумма. Предполагаю, что это CRC-5. Стандартных версий CRC-5 три. Какая именно версия использована мне пока с наскоку определить не удалось.
Полезная ссылка leventozturk.com/engineering/crc/
Вложения:
Пожалуйста Войти , чтобы присоединиться к беседе.
21 нояб 2019 19:02 #1288
от Ильдар
По предыдущему посту. В пункте 5 предположение по CRC5 оказалось неверным. Контрольная сумма состоит из 4-х бит. Пятый бит (крайний правый) всегда равен 0. Вычисляется побитовой xor начиная с первого полубайта до последнего (20-го). Проверено на калькуляторе, в железе пока не проверял. Прав был-таки Электоновский разработчик на счёт простой контрольной суммы.
Пожалуйста Войти , чтобы присоединиться к беседе.