Протокол управления датчика расстояния

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Родился
Сообщения: 6
Зарегистрирован: Вт апр 18, 2017 07:57:46

Сообщение Андрей362 »

Добрый день всем. Возникла необходимость разобраться с протоколом управления датчиком расстояния из китая.


Ссылка на датчик на aliexpress :
https://ru.aliexpress.com/item/Fast-Fre ... 7f47&tpp=1

К данному датчику продавец сбросил документ с командами ( прикрепил к сообщению файл .doc)

Так как опыта мало возник следующий вопрос:
Что за байт в данном протоколе "CS?
Например команда "single measurement(1mm) " вызывается отправкой сдедующего набора байт "ADDR 06 02 CS". Если что такое "ADDR" это понятно (по умолчанию этот байт равен "80"), то что такое CS пока не могу понять. Подскажите пожалуйста.
Вложения
communication protocol.doc
Протокол управления от продавца
(65.54 КБ) 240 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Контрольная сумма. Младший байт суммы всех байт в строке должен быть равен 00h. Как в hex-формате.
Из вики:
Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.
Docendo discimus
Контактная информация:
Реклама
Родился
Сообщения: 6
Зарегистрирован: Вт апр 18, 2017 07:57:46

Сообщение Андрей362 »

pyzhman, спасибо огромное :)
Действительно так, сходится с примерами:
Single measure:80 06 02 78 -- 0x80+0x06+0x02=0x88 -> 0x00-0x88=0x78 (по модулю) что совпадает с последний байтом исходной команды
Set the measure range 5m: FA 04 09 05 F4 -- 0xFA+0x04+0x09+0x05=0x10C -> Последний байт получается 0x0С -> 0x00-0x0С=0xF4 (по модулю), снова совпадает

Пример полученного значения: 80 06 83 30 30 33 2E 35 34 34 99
0x80+0x06+0x83+0x30+0x30+0x33+0x2E+0x35+0x34+0x34=0x267 -> Последний байт получается 0x67 > 0x00-0x67=0x99, и снова совпадает :))
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Я даже больше скажу. В переводе на английский контрольная сумма это CheckSum. Улавливаете? Те самые CS. Попадает, однако.
Docendo discimus
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 6
Зарегистрирован: Вт апр 18, 2017 07:57:46

Сообщение Андрей362 »

Я как бы и подозревал что это расшифровывается CheckSum (тем более расположена на конце команд), но так как в описании нигде не было функции как рассчитывать СS, то сомневался немного. Были мысли что это возвращаемый параметр константа при опросе (constant тоже немного с CS похоже чем-то). Но про расчёт контрольной суммы всё равно не понимал, а теперь разобрался, так что спасибо ещё раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Пожалуйста.
Docendo discimus
Контактная информация:
Реклама
Ответить

Вернуться в «Интеграция с ПК»