Jump to content

    
Sign in to follow this  
MiD

Нужно разобраться в протоколе RS485 беговой дорожки.

Recommended Posts

1 hour ago, vguard said:

Все файлы логов абсолютно одинаковые.

Это не так. Если результаты выгрузить например в эксель и сверить то пакеты разные.

Share this post


Link to post
Share on other sites

@MiD, у вас есть возможность подпаяться к драйверу и переснять логи?

Анализатор уарта у салеае туповат (настоящий уарт такие помехи игнорирует). Рассматривать лог с кучей "левых" 0xFF не очень удобно.

Share this post


Link to post
Share on other sites
Quote

Это не так. Если результаты выгрузить например в эксель и сверить то пакеты разные.

Ну возьмите, например, первый и второй из опубликованных Вами файлов и сравните в WinMerge/WinHex или любым другим образом и убедитесь что файлы одинаковые. Все опубликованные. Или расскажите мне как эти Ваши файлы выгрузить в Excel?

Edited by vguard

Share this post


Link to post
Share on other sites
2 hours ago, esaulenka said:

В saleae они не вставляются. Для "чистого" сигнала надо просто подпаяться к RO/DI (а заодно и DE) драйвера 485.

да. А на "скрине" с saleae отображаются A-B линии RS485 (зачем-то). Очевидно чтобы видеть что на шине, если не один "мастер".

1 hour ago, MiD said:

Это не так. Если результаты выгрузить например в эксель и сверить то пакеты разные.

Я бы не был так уверен.

E:\tmp9\B>fc "16 MHz, 80 M _InlineDown.logicdata" "16 MHz, 80 M _InlineUP.logicdata" /b
Сравнение файлов 16 MHz, 80 M _InlineDown.logicdata и 16 MHZ, 80 M _INLINEUP.LOGICDATA
FC: различия не найдены


E:\tmp9\B>fc "16 MHz, 80 M _InlineUP.logicdata" "16 MHz, 80 M _Nothing.logicdata"  /b
Сравнение файлов 16 MHz, 80 M _InlineUP.logicdata и 16 MHZ, 80 M _NOTHING.LOGICDATA
FC: различия не найдены

Excel тут никак не поможет.

Share this post


Link to post
Share on other sites

Имхо, исходя из рассматривания единственного лога.

На шине общаются несколько устройств:

- постоянно бегает пакет

0x80 0x30 0x6F 0x00 0x45

 

- также постоянно бегает пакет

0x80 0x30 0x8F 0x00 0x30

 

- и некое третье устройство (пульт?) изредка отправляет пакеты вида

0x80 0x30 0x9F 0x40 0x00 0x15 0x86
0x80 0x30 0x9F 0x40 0x00 0x15 0x86
0x80 0x30 0x9F 0x40 0x00 0x35 0xA5
0x80 0x30 0x9F 0x40 0x00 0xF5 0x6F
0x80 0x30 0x9F 0x40 0x00 0xD5 0x4C
0x80 0x30 0x9F 0x40 0x00 0x55 0xC0
0x80 0x30 0x9F 0x40 0x00 0x25 0x38
0x80 0x30 0x9F 0x40 0x00 0xA5 0xB4
0x80 0x30 0x9F 0x40 0x00 0x65 0x7E

 

Ждём выяснений, соответствует ли это нажатию одной кнопки, или это "нажал всё что было". 

Share this post


Link to post
Share on other sites
15 minutes ago, esaulenka said:

Имхо, исходя из рассматривания единственного лога.

На шине общаются несколько устройств:

- постоянно бегает пакет

0x80 0x30 0x6F 0x00 0x45

 

- также постоянно бегает пакет

0x80 0x30 0x8F 0x00 0x30

 

- и некое третье устройство (пульт?) изредка отправляет пакеты вида

0x80 0x30 0x9F 0x40 0x00 0x15 0x86
0x80 0x30 0x9F 0x40 0x00 0x15 0x86
0x80 0x30 0x9F 0x40 0x00 0x35 0xA5
0x80 0x30 0x9F 0x40 0x00 0xF5 0x6F
0x80 0x30 0x9F 0x40 0x00 0xD5 0x4C
0x80 0x30 0x9F 0x40 0x00 0x55 0xC0
0x80 0x30 0x9F 0x40 0x00 0x25 0x38
0x80 0x30 0x9F 0x40 0x00 0xA5 0xB4
0x80 0x30 0x9F 0x40 0x00 0x65 0x7E

 

Ждём выяснений, соответствует ли это нажатию одной кнопки, или это "нажал всё что было". 

В файле, Nothing:  я не нажимал ничего на дорожке, но было все равно 9 пакетов 3-го типа. Дорожка работала в режиме по умолчанию после включения на мин скорости без изменений.

В остальных файлах. Нажимал соответствующие кнопки названиям. Т.е. SpeeUP кнопку увеличить скорость несколько раз. Я прбовал делать это определенное количество раз, но закономерностей в пакетах "3-го" типа не нашел.

image.thumb.png.91be96326fba2d4abf69ce73f2dbba8f.png

 

50 minutes ago, k155la3 said:

да. А на "скрине" с saleae отображаются A-B линии RS485 (зачем-то). Очевидно чтобы видеть что на шине, если не один "мастер".

Я бы не был так уверен.


E:\tmp9\B>fc "16 MHz, 80 M _InlineDown.logicdata" "16 MHz, 80 M _InlineUP.logicdata" /b
Сравнение файлов 16 MHz, 80 M _InlineDown.logicdata и 16 MHZ, 80 M _INLINEUP.LOGICDATA
FC: различия не найдены


E:\tmp9\B>fc "16 MHz, 80 M _InlineUP.logicdata" "16 MHz, 80 M _Nothing.logicdata"  /b
Сравнение файлов 16 MHz, 80 M _InlineUP.logicdata и 16 MHZ, 80 M _NOTHING.LOGICDATA
FC: различия не найдены

Excel тут никак не поможет.

Извиняюсь, видимо сделал экспорт из одной и той же закладки в Saleae. Могу переделать подъем опускание, или любые другие, но исходя из одинаковой структуры можно ориентироваться на файлы скорости.

Share this post


Link to post
Share on other sites
4 minutes ago, MiD said:

но исходя из одинаковой структуры можно ориентироваться на файлы скорости.

Файлы скорости тоже идентичные. Либо вы что-то не то сохранили, либо эти нажатия ваще не бегают по сети.

Share this post


Link to post
Share on other sites
1 hour ago, vguard said:

Ну возьмите, например, первый и второй из опубликованных Вами файлов и сравните в WinMerge/WinHex или любым другим образом и убедитесь что файлы одинаковые. Все опубликованные. Или расскажите мне как эти Ваши файлы выгрузить в Excel?

 

Может я что-то напутал с экпортом дампов. Вот мои выгрузки в Excel после наложени салевского анализатора. Взял разные типы событий в закладках. Последняя - пакеты.

Treadmill_analyse.xlsx

Share this post


Link to post
Share on other sites
34 minutes ago, esaulenka said:

Имхо, исходя из рассматривания единственного лога.

. . . .

Если у ТС есть возможность поотключать поочередно периферийные блоки, то нужны дампы после "холодного включения"

с каждым из отключенных. Так можно сориентироваться с адресацией.

ps TC - делать надо аккуратно, чтобы не спалить чего. Безопасно, если RS485 линии заводятся отдельным разъемом. Что маловероятно.

Share this post


Link to post
Share on other sites
3 minutes ago, k155la3 said:

Если у ТС есть возможность поотключать поочередно периферийные блоки, то нужны дампы после "холодного включения"

с каждым из отключенных. Так можно сориентироваться с адресацией.

Если под перефрийными блоками имеется в виду (пульсометр, музыка, вентилятор кнопки и т.д.) то нет. Всё распаяно на плате, даже отключив сами устройства например раъем колонок врядли что-то даст (кмк). А еще мне кажется что они не участвуют в передачи данных на силовой блок мотора и подъема.

Если речь об отключении мотора и подъема, то там есть разъемы - могу разъединить.

Еще есть собенность, что если я разрываю провода данных между верхним и нижнем блоком - дорожка сразу отключается. Видимо предусмотрена защита.

Share this post


Link to post
Share on other sites
12 minutes ago, MiD said:

Вот мои выгрузки в Excel

Ну так вы уже половину сделали.

Мне кажется, уже пора скрестить пальцы и попробовать самому кидать эти пакеты в шину. Синхронизацию с "тишиной" в шине на коленке не сделаешь, высока вероятность коллизий, но для первого опыта пойдёт.

Последний байт неинтересен, это контрольная сумма (алгоритм - в гугле, по слову 1-wire).

Возможно, нажатая кнопка кодируется половинкой предпоследнего байта, вторая половинка значит что-то другое.

4 minutes ago, MiD said:

если я разрываю провода данных между верхним и нижнем блоком - дорожка сразу отключается

Кстати, может быть полезным посмотреть обмен в этот момент.

Share this post


Link to post
Share on other sites
13 minutes ago, MiD said:

Если речь об отключении мотора и подъема, то там есть разъемы - могу разъединить.

Еще есть собенность, что если я разрываю провода данных между верхним и нижнем блоком - дорожка сразу отключается. Видимо предусмотрена защита.

Во включенном режиме не рекомендую что-либо дергать (как разъединять, так и соединять). Скорее всего последствий не будет, но есть риск.

Share this post


Link to post
Share on other sites
16 minutes ago, esaulenka said:

Ну так вы уже половину сделали.

Мне кажется, уже пора скрестить пальцы и попробовать самому кидать эти пакеты в шину. Синхронизацию с "тишиной" в шине на коленке не сделаешь, высока вероятность коллизий, но для первого опыта пойдёт.

Последний байт неинтересен, это контрольная сумма (алгоритм - в гугле, по слову 1-wire).

Возможно, нажатая кнопка кодируется половинкой предпоследнего байта, вторая половинка значит что-то другое.

Кстати, может быть полезным посмотреть обмен в этот момент.

А я могу отправлять пакеты подключившись парралельно (как сейчас снимаю данные)? Как я уже сказал, если любой из 2-х дата кабелей разрываю, она отключается до возвращения соединения и перезагруки.

Какое ПО лучше использовать для отправки пакетов ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this