1

Тема: i-bus и canny7

И снова здравствуйте
Прощу совета для решения следующей задачи.
Есть желание работать с помощью Canny с шиной BMW I-bus
Из описания http://web.comhem.se/mulle2/IBUSInsideDRAFTREV5.pdf  выяснил, что
Serial communications on the bus are 9600 bps, 8 data bits, Even parity, 1 stop bit
Очень похоже на LIN.
Но, не все так просто оказалось. Lin монитор при переборе конфигураций подключается и даже выдает какие-то данные.
http://i.piccy.info/i9/499d359c53b31ef1f8703b76cc7c5a80/1487344630/41203/1119957/0_02_05_e9304054288dc9167f988211444b90dc9c64fd86679a5f56f54f2fd36ca0cc4e_full_800.jpghttp://i.piccy.info/a3/2017-02-17-15-17/i9-10857270/800x450-r/i.gif
http://i.piccy.info/i9/25ba2d21288640d6230105da120c1229/1487344663/36436/1119957/0_02_05_dc3fbbca1149c92ffd1e3457f5a3eb059a581d43b5b3dc63df869f274c062b20_full_800.jpghttp://i.piccy.info/a3/2017-02-17-15-17/i9-10857278/800x450-r/i.gif

При чем что-то есть в режиме 1.3 и скорости 10, и 2.0 и скорости 20. Если поставить режим 2.0 и скорость 10 - просто зависает, в режиме 1.3 скорость 20 ничего не видит.
Проблема в том, что показанное LIN монитором ничего не имеет общего с реальностью. Параллельно подключен заточенный под эту шину девайс - и там все есть.
http://i.piccy.info/i9/b4a6961654c7ba094ea356dc60200827/1487344821/83759/1119957/0_02_05_5f63b5a3575d21b03d8a10237b9df74d030217337b166fa3aaf48e50ff01301a_full_800.jpghttp://i.piccy.info/a3/2017-02-17-15-20/i9-10857300/800x450-r/i.gif

Понятное дело, что никто не обещал работу с этой шиной. Но, раз лин монитор хоть что-то ловит - то может есть возможность настроить этот процесс?
Ведь по сути своей посылки и структура примитивные.
Буду очень признателен за советы, мнения.
Спасибо

2 (19-02-2017 13:56:12 отредактировано alex_engine)

Re: i-bus и canny7

Почитав мануалы дальше, понимаю, что идея использовать лин монитор (и конфигуратор приема лин шины на диаграмме) для этой задачи изначально не корректная.

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

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

Ну уж очень хочется реализовать несколько задумок на этой шине.
Спасибо

UPD Может мне попробовать через uart? Пните в нужном направлении, плиз

3

Re: i-bus и canny7

Вы рассуждаете правильно. Для работы с I-Bus вам необходимо использовать драйвер UART. В CANNY7 принимаемые и передаваемые данные UART буферизируются по 32 байта. Вы можете в принципе обрабатывать пакеты любой длины в диаграмме кусками по 32 байта. Если вас интересуют только короткие пакеты, всё упрощается. По приему анализируйте лишь те пакеты, которые имеют необходимую вам длину и ID, проверяйте контрольную сумму и при совпадении обрабатывайте данные.

4 (22-02-2017 15:01:48 отредактировано alex_engine)

Re: i-bus и canny7

Спасибо. Кое-что начало получаться.
Можно ли как-то просмотреть принятое через uart? По аналогии с лин монитором?
Очень нужно видеть и понимать, что и как canny принял.

Экранчик цеплять и выводить в строку? Или можно как-то проще?

Спасибо

Еще вопрос как выделить ID?  отдельного регистра такого не обнаружил. Брать нулевой байт?

5

Re: i-bus и canny7

Пересылайте во второй UART и смотрите на ПК при наличии RS-232 или USB-COM преобразователя через программу-терминал. Или отправляйте в CAN  и при наличии второго CANNY7 или другого CAN-сниффера смотрите на ПК.

6

Re: i-bus и canny7

Прикрутил экранчик
В шине посылка ай-бас  50 04 68 31 11 1F
на экране
D1, D0 --- 1104
D3, D2 --- 12904
D4,D5 ---- 7953

Пробую переводить калькулятором - чушь получается. Что не так, подскажите, плиз.

http://i.piccy.info/i9/ec3fea066c99983c5a7eb2593907cf41/1487768326/16153/1079312/Bezymiannyi.pnghttp://i.piccy.info/a3/2017-02-22-12-58/i9-10876158/713x246-r/i.gif

Вот такая диаграммка. Мне бы получить в понятном виде то, что отправил в шину. Пока не пойму что получаю

7

Re: i-bus и canny7

alex_engine пишет:

В шине посылка ай-бас  50 04 68 31 11 1F
на экране
D1, D0 --- 1104
D3, D2 --- 12904
D4,D5 ---- 7953

50 04 68 31 11 1F
D0 D1 D2 D3 D4 D5

D1:D0 = 1104 (dec) = 04 50 (hex)
                                   D1 D0

D3:D2 = 12904 (dec) = 32 68 (hex).
                                     D3 D2

D5:D4 = 7953 (dec) = 1F 11 (hex)
                                   D5 D4

Все сходится, за исключением опечатки в байте D3.

Можно при выводе на экранчик попробовать применить конвертер "Число в строку (ITOA)", преобразующий значение в символьный вид по нужному основанию. В данном случае, для получения строки символов, отображающих значение в шестнадцатеричном формате,  нужно применить основание 16.

8

Re: i-bus и canny7

Спасибо, я пробовал поштучно, а оказалось надо попарно переводить.
Попробую с конвертером, спасибо за подсказку.

9

Re: i-bus и canny7

Привет всем!

Я тоже пытаюсь разобраться с шиной I-BUS, а точнее получить из нее информацию о времени и дате.
Время и дата в ней представлены в виде кода из таблицы ASCII.
Сообщение в шине I-BUS выглядит так.

24 01 00 32 31 3A 30 35 20 20
  $  .   .     2   1  :    0   5       
Full Packet - - - - - - - - -
80 0C E7 24 01 00 32 31 3A 30 35 20 20 72

Можете подсказать как преобразовать код из таблицы ASCII в десятичный вид, а затем его
преобразовать в HEX для отправки в CAN.

10

Re: i-bus и canny7

Можете воспользоваться для перевода ASCII в HEX этой таблицей. Так, ASCII символ  '1' (цифра один) имеет шестнадцатеричный код 0x31, ASCII символ  ':' (двоеточие) имеет шестнадцатеричный код 0x3A

В ваших данных:

24 01 00 32 31 3A 30 35 20 20
  $  .   .     2   1  :    0   5       
Full Packet - - - - - - - - -
80 0C E7 24 01 00 32 31 3A 30 35 20 20 72

Вложений в сообщении

code_ASCII.png, 10.86 кб, 422 x 180
code_ASCII.png 10.86 кб, скачивался 401 раз, последний раз 2017-03-02 

11

Re: i-bus и canny7

Можно ли проще реализовать, если мне нужны только цифры?
сообщение 31 - 1, 35 - 5, т.е. отделить полбайта и потом их в НЕХ?

12

Re: i-bus и canny7

Alex.Br пишет:

Можно ли проще реализовать, если мне нужны только цифры?
сообщение 31 - 1, 35 - 5, т.е. отделить полбайта и потом их в НЕХ?

Реализовать что?