roboforum.ru

Технический форум по робототехнике.

dccharacter - Излить посильно

Блоги посетителей.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: dccharacter - Излить посильно

Сообщение elmot » 19 фев 2016, 12:21

Да, на сотках не инвертируется. Возьми поновее f0 какой-нить. Вот это для stm32f042
Вложения
t1.png
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: dccharacter - Излить посильно

Сообщение Madf » 19 фев 2016, 15:27

Ну что, молодец, вскрыл суслика! )
86 7C 0F 00 00 11 - обычная логика, 11 - контрольная сумма 8 бит из всех чисел (86 7C 0F 00 00)
Остальные команды надо наблюдать...

Добавлено спустя 2 часа 55 минут 24 секунды:
На самом деле, чтобы точно удостоверится, что правильно понят интерфейс, можно собрать "сквозняковый" порт из двух штук (на подобии loop), в разрыв и понаблюдать, будет ли всё работать. Если аномалий не будет выявлено - переходим к следующему плану по расшифровке протокола обмена.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: dccharacter - Излить посильно

Сообщение dccharacter » 19 фев 2016, 21:57

11 - контрольная сумма 8 бит из всех чисел (86 7C 0F 00 00)

А объясни мне вот это ПЛЗ?
86 56 0F 01 00 6C (0x6c) <-----
У меня этот результат (6с) получается только если не складывать первый бит, т.е. не 86+56+0f+01, а 06+56+0f+01

Добавлено спустя 1 час 34 минуты 24 секунды:
Понял, что это за первый бит - это заголовок пакета. Только в первом байте пакета этт бит выставлен
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение dccharacter » 20 фев 2016, 06:02

Блин, с информационными блоками еще как-то можно разобраться, когда данных много (нашел, например, 3 байта тайм-стэмпа :-)))
А вот какие-то служебные командные пакеты по 27 символов в каждом - шею свернешь :-(

Добавлено спустя 8 минут 13 секунд:
ПОнаписал парсеров :-)
Живые данные (STM32 двумя уартами ловит TX/RX, бьет данные по пакетам, вставляет разделитель (0xFF) и идентификатор линии (0xFD и 0xFE) и гонит на комп третим уартом.):
Код: Выделить всёРазвернуть
FE8560040F78FFFD86600F000075FFFE8561040F

Разбираем на пакеты:
Код: Выделить всёРазвернуть
hea: 8567040272
DVD: 86660F03007E
DVD: 9B670215106978697800000000000008106978007F7F000000187A
hea: 8568040172
DVD: A1680115127F7F7F0F7F0F7F7F7F7F7F00000F7F0F7F002000007F7F5C3E140C3A
hea: 8569040274

Смотрим на последовательность обмена (там есть сбой, но идентификаторы пакетов позволяют его увидеть)
Код: Выделить всёРазвернуть
61 (H) 04 0F  (d) 0F 00 00 
62 (H) 04 0F  (d) 0F 00 00
63 (H) 04 0F  (d) 0F 00 00  (d) 0F 01 00
64 (H) 04 01  (d) 01 10 02 7F 7F 7F 0F 7F 0F 7F 7F 7F 7F 7F 00 00 0F 7F 0F 7F 00 20 00 00 7F 7F 5C 3E 14 0C
65 (H) 04 0F  (d) 0F 00 00
66 (H) 04 0F  (d) 0F 00 00  (d) 0F 03 00
67 (H) 04 02
66 (d) 0F 03 00
67 (d) 02 15 10 69 78 69 78 00 00 00 00 00 00 08 10 69 78 00 7F 7F 00 00 00 18

Смотрим на все множество команд (в конкретной ситуации) от головы
Код: Выделить всёРазвернуть
040F
0401
0402

и от двд
Код: Выделить всёРазвернуть
0F0000
0F0700
031201382C790000006E000000630A4000000D04080201691C4000
0212006978697800000000000008106978007F7F00000018
0112027F7F7F0F7F0F7F7F7F7F7F00000F7F0F7F002000007F7F5C3E140C


Пойду потыркаю кнопки - задача минимум заставить голову думать, что к ней подключен ДВД, в котором нет диска :-)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение dccharacter » 22 фев 2016, 00:53

Гггг, я тут гнал на STM32
На pic16f1827 URAT инвертируется, НО ТОЛЬКО НА TX пине!!!!! Талантливо!
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение Dmitry__ » 22 фев 2016, 01:53

Косяк, да, но есть внутр. компаратор и SR LATCH, любым можно инвертнуть сигнал. Я вообще софтовые приемники люблю, ну прет меня от них :)

Добавлено спустя 2 минуты 59 секунд:
Во, например в PIC12F1822: RX совмещен с SRNQ, может прокатить...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: dccharacter - Излить посильно

Сообщение dccharacter » 22 фев 2016, 08:39

Блина, оно работает! Заборол я ее, ребяты!!!
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение elmot » 22 фев 2016, 14:23

:beer:

Добавлено спустя 1 минуту 35 секунд:
Это про тебя
http://www.networkworld.com/article/289 ... -cars.html
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: dccharacter - Излить посильно

Сообщение dccharacter » 22 фев 2016, 23:22

:-)
Проблема в том, что чтобы все это тестить я вчера раз 25 ходил в машину, подключал провода, тестировал, отключал провода, шел перешивал и т.д. Машина в разобранном состоянии, в час ночи сидел с фонариком и собирал консоль. Аккумулятор старый, дохнет за 20 минут включенного зажигания (это практически со всеми выключенными потребителями) - вот не знаю, заведется ли жена сегодня, держу кулаки.
еще одна проблема - в том, что под виндой есть софт, который умеет делать 9-ти битный обмен по уарту (риал терм - отличная прога, давно ее использую, путти только так - строчками покидаться), а под линухами - хрен.
Вот сейчас думаю, что использовать как источник сигнала, требования:
1) Максимально быстрая загрузка (raspberry pi - ну это совсем трагедия. до места доедешь, пока загрузится)
2) HDD (т.е. SATA)
3) USB (для флэшек)
4) Bluetooth (чтобы с телефона слушать)
5) Что-нить линуксовое с рутом, чтобы брать данные с микроконтроллера, обрабатывать команды и т.д.
6) Аналоговый видеовыход
7) UART (чтоб не через переходник общаться)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение Dmitry__ » 23 фев 2016, 00:37

Зачем на комп передавать 9 бит? Ты уже всяких парсеров написал вагон, неужели трудно на комп выдавать простую информацию обработанную контроллером? Вообще, на последней странице собрал все нетрадиционные способы извращения, что инвертировать rx для контроллера, что скармливать PC 9 бит...
А работать можно в машине с нетбуком долгоиграющим. я когда еду на работу, даже не беру бп для нетбука, хватает на весь день. А 220 вольт не дотащить до машины? Заодно зарядка для аккума машины, очень они не любят глубоких разрядов, осыпаются от этого.
Изврат на изврате...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: dccharacter - Излить посильно

Сообщение dccharacter » 23 фев 2016, 01:07

Странный вопрос - голова общается инвертированным уартом 9е1. Она вот такая есть и мне с ней вот такой надо говорить. Ты предлагаешь в провода азбукой морзе передать недовольство техническими решениями инженеров компании Матсушита Панасоник и надеятся, что голова осознает свою ошибку и перейдет на более удобный для меня формат 8n1?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение Dmitry__ » 23 фев 2016, 01:24

dccharacter писал(а):Странный вопрос - голова общается инвертированным уартом 9е1. Она вот такая есть и мне с ней вот такой надо говорить.

Инвертированным уартом ttl уровня? Или ты дешевым делителем пытаешься скормить стандартный уарт контроллеру? Если нет, то для этого существуют max232, которые как раз и инвертируют уарт с уровнями +/- 12v для ttl устройств.
dccharacter писал(а):Ты предлагаешь в провода азбукой морзе передать недовольство техническими решениями инженеров компании Матсушита Панасоник и надеятся, что голова осознает свою ошибку и перейдет на более удобный для меня формат 8n1?

В голову надо пихать уарт с контроллера, в котором можно сделать все. A все возможные варианты протоколов rs232 не впихнешь в PC. И есть анализаторы протоколов, на том же stm32:
forum40/topic14211.html
Был еще анализатор на лпт, но это все голимо по сравнению с контроллерами...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: dccharacter - Излить посильно

Сообщение dccharacter » 23 фев 2016, 04:20

Dmitry__ писал(а):Инвертированным уартом ttl уровня? Или ты дешевым делителем пытаешься скормить стандартный уарт контроллеру? Если нет, то для этого сущ

Я не пытаюсь, я скормил. Там схема такая - приемник подтягивает шину к VCC (2.5В). Передатчик с открытым коллектором роняет ее в ноль и держит, отпуская только для передачи. Получается инвертированный УАРТ, 9 бит (8 данных + парити), один стартовый и один стоповый бит. Есть еще периоды молчания по 5мс между посылками, я ж постил осциллограммы.

Добавлено спустя 1 минуту 54 секунды:
Dmitry__ писал(а):Зачем на комп передавать 9 бит?

На комп передавать 9 бит надо было в процессе отладки, потому что к машине не набегаешься
И под виндой есть прога, которая это умеет. И вообще что хочешь умеет. Даже сниффать открытый другим устройством порт.
А под линухами - нет.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: dccharacter - Излить посильно

Сообщение Dmitry__ » 23 фев 2016, 05:11

dccharacter писал(а):Я не пытаюсь, я скормил. Там схема такая - приемник подтягивает шину к VCC (2.5В). Передатчик с открытым коллектором роняет ее в ноль и держит, отпуская только для передачи. Получается инвертированный УАРТ, 9 бит (8 данных + парити), один стартовый и один стоповый бит.

Это не уарт, панимаш? Завтра тебе захочется колупать 12бит сериал с подтверждениями ack, ты будешь сетовать что в линухе нет вьювера для этого протокола? Такие вещи колупаются логическими анализаторами, уарт компа предназначен (был) для определенных устройств и для тупых юзеров, никто не собирался делать уарт для поддержки 12..100500 бит в слове, ack, и.т.д. и.т.п.
Что делает открытый коллектор в твоем девайсе думал? Ты уверен что голова не дает в конце каждого фрейма подтверждение - ack? Ты же его не можешь определить просто так осциллом, т.к. осцилл не видит в каком направлении течет ток в шине.
dccharacter писал(а):И под виндой есть прога, которая это умеет. И вообще что хочешь умеет. А под линухами - нет.

Еще ни одно твое утверждение про линух не было верным, это тоже ошибочно. Погугли "linux rs485"
Кста, линух без вопросов понимает 9 бит (8 данных + парити), но ты же говоришь не про парити, а про адресацию (это когда 1-й бит всегда "1"), а этого венды не умеют. А если ты на парити смотрел под вендами, то вперед с песнями тоже самое смотреть в линухе.
Вот открыл самый простой moserial, настройка кома: data bits: 5..8, stop bits: 1..2, parity: 5 типов. Итог, ты можешь в линухе принять 1 старт, 8 дата, 2 стоп, 1 парити = 12 бит :)
dccharacter писал(а):Даже сниффать открытый другим устройством порт.

Не поверишь, в линухе ВСЕ-ВСЕ-ВСЕ - есть файл, даже температура процессора :), такшта венды нервно курят по возможностям что-то сниффать.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: dccharacter - Излить посильно

Сообщение dccharacter » 23 фев 2016, 05:50

Dmitry__ писал(а):Что делает открытый коллектор в твоем девайсе думал? Ты уверен что голова не дает в конце каждого фрейма подтверждение - ack? Ты же его не можешь определить просто так осциллом, т.к. осцилл не видит в каком направлении течет ток в шине.

Да пофиг че он там дает. Работает главное, остальное - хоть трава не расти

Добавлено спустя 26 минут 1 секунду:
Похоже надо-таки распберри пихать:
https://www.youtube.com/watch?v=lDAucFgfp5Q
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Пред.След.

Вернуться в Блоги

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3