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

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Андрей362
Родился
Сообщения: 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 скачиваний
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

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

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

Сообщение Андрей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, и снова совпадает :))
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

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

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

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

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

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

Сообщение pyzhman »

Пожалуйста.
Docendo discimus
Реклама
Ответить

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