Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

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

Вт апр 18, 2017 08:12:18

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


Ссылка на датчик на 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 KiB) Скачиваний: 171

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

Вт апр 18, 2017 10:03:54

Контрольная сумма. Младший байт суммы всех байт в строке должен быть равен 00h. Как в hex-формате.
Из вики:
Последний байт в записи является контрольной суммой. Рассчитывается так чтобы сумма всех байтов в записи была равна 0.

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

Вт апр 18, 2017 11:57:46

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, и снова совпадает :))

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

Вт апр 18, 2017 13:50:55

Я даже больше скажу. В переводе на английский контрольная сумма это CheckSum. Улавливаете? Те самые CS. Попадает, однако.

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

Вт апр 18, 2017 14:17:48

Я как бы и подозревал что это расшифровывается CheckSum (тем более расположена на конце команд), но так как в описании нигде не было функции как рассчитывать СS, то сомневался немного. Были мысли что это возвращаемый параметр константа при опросе (constant тоже немного с CS похоже чем-то). Но про расчёт контрольной суммы всё равно не понимал, а теперь разобрался, так что спасибо ещё раз.

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

Вт апр 18, 2017 19:18:04

Пожалуйста.
Ответить