Отговори на тема  [ 18 мнения ]  Отиди на страница 1, 2  Следваща
USB<->CAN converter? 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение USB<->CAN converter?
Здравейте! Имам за курсова работа да осъществя USB - CAN конвертор. Не съм съвсем сигурен дали правилно съм го наименувал, но общо взето идеята е с това устройство човек да се закачи към CAN мрежа, отдругата страна посредством USB, да отвори някакъв Сериен порт и изпращайки някакви байти посредством USB да се препратят по CAN шината. На пръв поглед може да изглежда лесно или дори да е, но проблемът е, че до сега не съм се занимавал с CAN. Имам бегла представа за това що за животно е, каква е идеята и прочие, обаче точно тук идват и моите притеснения:

1. Какви елементи ми трябва за реализиране на заданието (ще се наложи сам да си направя и платката)?

Идеите ми за реализация на заданието към момента са:
1.1 PC <---------> MCU, което да има USB & CAN модули <-------------> CAN BUS. За целта, използвайки някакъв USB стек, създавам ACM Virtual COM порт. Инициализирам CAN модула и почвам да слушам в двете посоки. Като MCU-то да препредава информацията.
Тук отново се появява притеснение - От предишен опит с подобно създаване на Virtual COM Port имам патене с драйверите под Windows, което означава че трябва да си пиша и подържам драйверите, за да може да работи надеждно устройството.

1.2. FTDI/CH340 <--------> MCU с UART & CAN <-----------> CAN BUS
При този подход елиминирам нуждата от самостоятелно инициализиране на ком портове и писане на драйвери. Производителите на двата чипа или подобни чипове имат достатъчно добра поддръжка за различните ОС.

От гледна точка на CAN, трябват ли ми други компоненти?

2. До колкото разбирам има различни стандарти за CAN. Различни стандарти и различни честоти. Как мога да направя устройството да е универсално? От гледна точка на UART/USB мога да сетна автоматично baudrate-а според това с какъв бауд е отворен комп порта или при смяна на баудрейта, докато е отворен порта. Обаче откъм CAN как мога да знам на каква честота си говорят устройствата, без да познавам мрежата?

Общо взето ме пратиха в трета глуха.... Та се надявам за малко разяснение, аджеба как работи този CAN и може ли реално да се създаде такова животно, каквото се иска от мен.


Пон Сеп 02, 2019 2:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 10:49 pm
Мнения: 4379
Местоположение: София
Мнение Re: USB<->CAN converter?
В случай, че обръщането в USB не е задължително условие, тук има доста добро описание, как е направено с Raspberry Pi, mcp2515 и can трансивър (TJA1050)

https://harrisonsand.com/can-on-the-raspberry-pi/

Ценното в случая са вградените в линукс can инструменти.

Иначе това е полезен инструмент за логване на USB комуникацията:

https://desowin.org/usbpcap/

Аз също съм на тази вълна в момента, макар и да нямам курсова работа :)
На този етап съм стигнал до логване на can комуникацията посредством китайски can-usb адаптер и wireshark (под win10). Предстои ми по-тежката задача - анализа на събраните данни.

Ще следя темата с интерес. :D


Пон Сеп 02, 2019 3:11 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Вто Окт 25, 2005 9:54 am
Мнения: 865
Мнение Re: USB<->CAN converter?
Признавам си че ти четох поста по диагонал... ама нещо не ми става ясно, от теб се изисква да направиш само HW или и SW на горното устройство, щото ако е първото едно ФТДИ и един ЕЛМ327 и си готов ама е твърде тривиално.


Пон Сеп 02, 2019 3:58 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
И двете. Като гледам, трябва да си направя платка + софтуер за нея. Задължително трябва да е като самостоятелно устройство, така, че Linux базирани платки не важат. Wireshark също oтпада.


Пон Сеп 02, 2019 5:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 10:49 pm
Мнения: 4379
Местоположение: София
Мнение Re: USB<->CAN converter?
Един вариант е да ползваш схемата на can контролера с трансивъра.

https://harrisonsand.com/static/CAN_module.pdf

После трябва да обърнеш SPI в USB. Примерно с това:

https://store.comet.bg/Catalogue/Product/18507/


Последна промяна lcr на Пон Сеп 02, 2019 5:19 pm, променена общо 1 път



Пон Сеп 02, 2019 5:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 2:25 pm
Мнения: 4979
Местоположение: София
Мнение Re: USB<->CAN converter?
kalata23, нещо странна ми се вижда тази курсова задача. Да речем, че вече имаш зададения дивайс ведно със софта му. Към каква CAN шина ще го закачиш за демонстрация, а и преди това за тест? Нали трябва да се знае какво ще се изпраща от компа към CAN-a и какво ще се получава в отговор.


Пон Сеп 02, 2019 5:18 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
Предполагам, че ще трябва да направя две платки и да ги свържа в CAN мрежа. Едната като изпрати, другата трябва да вижда на терминала какво съм изпратил. После другата като изпрати, трябва да се появи на едната.


Пон Сеп 02, 2019 5:37 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
И все пак не ми е ясно, как ще разбере това устройство на каква честота си говорят устройствата в тази въпросна мрежа. Нали има различни стандарти и протоколи, как и дали е възможно да се подържат повечето? Не ми е ясно, как CAN устройствата се синхронизират?


Пон Сеп 02, 2019 5:40 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: USB<->CAN converter?
В най-глупавия сценарий се очаква лузерите на двете пц-та да зададат ръчно един и същ бодрейт на двете платки. Все едно имаш rs232 и по него са закачени два компютъра - ако не настроиш в терминалните програми и от двете страни еднакъв бод рейт и формат няма да имаш комуникация.
Има протоколи (стандарти) и специфични реализация за авто бод рейт - следят бъса като поредица от импулси и по първите съобщения смятат колко да е бод рейта.
За ориентация може да се хванеш да разгледаш готово такива конвертори - на ixxat, peak, vector, kvaser, 8devices, lawicel (мисля така се пишеше). Тия последните мисля че ползваха усб-то като виртуален ком и бяха дефинирали протокол - и понеже е документиран някой други се възползваха и правеха техни си устройства, които в ембедед страната спазваха тоя протокол и по този начин можеше да се ползва всичкия софтуер на първите за хардуера на вторите.
Има един тул на бош - busmaster се казва:
https://rbei-etas.github.io/busmaster/
Отворен код е и има поддръжка на много адаптери на различни фирми. Сравнително лесно се добавя друг адаптер, но за теб може да е полезно да видиш как са направени другите - в тоя тул се ползват API-тата на различните фирми. Ако ти хареса някой от протоколите можеш да се опиташ да се правиш на такова устройство.
Покрай това трябва да ти е станало ясно че освен хардуер и фирмуер ще се наложи да правиш или ползваш/скраднеш ПЦ софтуер който да ползват хората за да работят с адаптера ти. Можеш да го пишеш от нулата, но понеже казваш че не си навътре с КАН ще е по-добре да се водиш от някаква готова концепция.
По-напредничави аспекти са енумерация и работа с повече от един адаптер (представи си че кажат "закачи двете платки към едно и също пц и пусни два копия на програмата - едното за единия адаптер, другото за другия"), също така адаптер с няколко КАН контролера зад едно УСБ (многоканален). Ефективната и лесна работа с адаптера (като API) изисква да предложиш лесен и удобен достъп до филтрите, които има всеки КАН контролер, както и за настройка на бод рейт/бъс таиминг, броячи на грешки и т.н. Някой предлагат и 'time triggered send" - да изискваш от адаптера да прати точно определено съобщение в точно определено време. Също има екстри за автоматична реакция (автоматичен отговор) при определени съобщения и т.н.
А това че трябва да е самостоятелно устройство не мисля че еднозначно изключва линукс базирана система:
Изображение
Изображение
esp32 също има can контролер, но е просто sja1000 - не е много ефективен и може да се окаже тясна точка ако имаш високи цели за устройството. Но пък иначе може да ти предложи директно bt, wifi и eternet достъп (е, и усб през уарт).


Пон Сеп 02, 2019 9:40 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
Благодаря ти много! Довечера ще ги разгледам. Иначе в заданието, моята е работа е само да осигуря USB-CAN bridge. PC софтуера не е моя грижа. АКо ползвам FTDI/CH340 няма никакъв проблем да добавиш 1/2/10 устройства, кой как ще си форматира данните и как ще ги интерпретира си е негова работа. Аз си мислих, за слушане на съобщения по CAN и измерване на прехода 0-1-0 или 1-0-1 и измерване на дължината на 0-та / 1-цата после някаква калкулация на честотата.


Вто Сеп 03, 2019 5:47 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 10:41 am
Мнения: 1664
Мнение Re: USB<->CAN converter?
Брей, съвременна смислена курсова работа...
Къде това?


Вто Сеп 03, 2019 2:55 pm
Профил ICQ WWW
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
ТУ-Пловдив.


Вто Сеп 03, 2019 3:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 2:25 pm
Мнения: 4979
Местоположение: София
Мнение Re: USB<->CAN converter?
kalata23 написа:
ТУ-Пловдив.

Що ли не се учудвам... :lol: Преди четвърт век и нищо си техен асистент беше дал задание за дипломна работа на студентка по електроника, което имаше незпълнимо (за онова време) изискване за консумация на тоци.


Вто Сеп 03, 2019 4:48 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Дек 15, 2014 10:05 pm
Мнения: 324
Мнение Re: USB<->CAN converter?
Мен единствено ме дразни, че в заданието няма никакви спецификации. Вариант едно е каквото направя такова - подържа един стандарт и една скорост - работи ли? работи!. Другият вариант е да се напъна да го направя по-интелигентно и да успея да го направя колкото се повече по-универсално. От една страна, не си заслужава допълнително да си усложнявам животът, от друга ми е съвестно. Както и да е. Сега преглеждам модулите, които @gicho спомена.

Офтопик: За жалост в ТУ-Пловдив, кадърните, умните и истински добри преподаватели или ги уволняват, или се пенсионират или умират. Към момента да са останали шепа преподаватели, от които човек наистина може да научи нещо и от които можеш да гребеш знания с пълни шепи.
Имахме навремето един много готин асистент Иван Кънев, който лека му пръст почина наскоро. Неговата курсова работа беше да се направи терморегулатор с някакво PIC-че. Направих му схема, направих му платката (тогава със съдействието на баща ми по хардуера) и софтуера му написах и му демонстрирах, че работи. (В университета имаше общо 5-6 китчета за около 14 човека група, а всеки самостоятелно трябваше да си прави курсовата). Около 2 години се търкаляше регулаторът вкъщи, докато не падна една люта зима, не се появи един конденз в спалнята и тогава да видиш как ми послужи цяла зима. Уви релето беше малко слабичко и бързо му нагоряха контактите, та оттам и спря да комутира силовата верига. И все се каня и все не ми остава време да седна да си направя регулатора наново, даже мислех да го подобря, да му вкарам дистанционно управление (през LAN/Internet).


Вто Сеп 03, 2019 5:31 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 8:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: USB<->CAN converter?
kalata23 написа:
Другият вариант е да се напъна да го направя по-интелигентно и да успея да го направя колкото се повече по-универсално.

Направи го универсално, сега му е времето да се забавляваш и да навлезнеш в подробностите. Като завършиш и тръгнеш да обикаляш за работа ще вземеш преходника с тебе на интервюто за работа. И като те попитат дали е универсално, ще хванеш преходника за USB кабела, ще го удариш в главата на интервюиращия и ще отговориш:
"Не само е универсално ами и е удароустойчиво. Аз никога не върша работата само за да отбия номера, ами правя завършени решения."
И гледай другия ден да ти е свободен, защото от 8 сутринта ще почваш работа.

_________________
Warriors of the Night, ASSEMBLER!!!


Вто Сеп 03, 2019 11:28 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 18 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


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

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни