Nedir bu CANBUS?

Başlatan JOKERAS, 09 Şubat 2024, 13:56:51

JOKERAS

CanBus Protokolünü Anlatacak bir arkadaş varmı?Sistem nasıl çalışıyor?
Arabalardaki yapı nasıl?CanOpen ne demek?Tüm arabalardaki yapı Standarmı?
Bunu Atölye ortamında nasıl test edeceğiz vs vs.
Bilenlerden Rica ederim.Teşekkürler.

parametre

Alıntı yapılan: JOKERAS - 09 Şubat 2024, 13:56:51CanBus Protokolünü Anlatacak bir arkadaş varmı?Sistem nasıl çalışıyor?
Arabalardaki yapı nasıl?CanOpen ne demek?Tüm arabalardaki yapı Standarmı?
Bunu Atölye ortamında nasıl test edeceğiz vs vs.
Bilenlerden Rica ederim.Teşekkürler.
Canbus nedırr


Umarım işinize yarar

JOKERAS

Alıntı yapılan: parametre - 09 Şubat 2024, 16:50:19Canbus nedırr


Umarım işinize yarar
Parametre, alakan için teşekkürler.Onların çoğunu araştırdım.Protokolü az çok kafamda canlandırdım.
Ama bu sistemi nasıl kuracağız?Arbalardaki CanBus Standartmı?Bunu nasıl test edeceğiz vs.
Onun için, hani uğraşmış bilgi sahibi arkadaşlar varsa yön gösterebilirler diye düşündüm.

Tagli

#3
Aslında CAN Bus'ın tam anlamıyla bir protokol olduğunu söylemek çok doğru olmaz. Tek başına CAN Bus oldukça alt seviyede, yani "OSI Model" olarak bilinen katmanlardan en alttaki bir kaç tanesini kapsıyor gibi. Asıl protokol olarak adlandırılabilecek şeyler, CAN Bus üzerine inşaa edilen CANopen, DeviceNet, SAE J1939 vs. gibi protokoller.

Bildiğim kadarıyla binek otomobillerde kullanılan CAN Bus protokollerinin bir standartı yok, her üretici kendi kafasına göre at koşturuyor. Ancak ağır vasıtalarda SAE J1939 protokolü yaygın diye biliyorum.

CAN Bus'ı yeni yeni yaygınlaşmaya başlayan CAN FD isimli daha hızlı ve gelişmiş bir şekli olduğunu da belirtmek gerekiyor. Hatta daha da yakın zamanda CAN XL diye bir şey daha ortaya çıktı ama henüz destekleyen pek cihaz yok diye biliyorum.

Ben şahsen CANopen (CiA 301) ve buna bağlı hareket kontrol profili olan CiA 402 ile epey uğraştım. Bunlar birkaç forum mesajında anlatılamayacak kadar geniş konular. Ancak spesifik sorularınız varsa yanıtlayabilirim.
Gökçe Tağlıoğlu

Okan AKÇA

Hocam CANopen biraz açıklarmisiniz. CANopen can üzerine nasıl inşaa edildigi.

papsukkal

@JOKERAS Arduino ve canbus shield ile epeyce mesaim oldu. Hazır kütüphane kullandım. Bazı otomobil parçalarını tezgahta çalıştırmayı başardım. Biraz tersine mühendislik ile parçaların PID lerini tespit ettim ve bilgisayardan ve/veya arduino üzerinden data gönderdim, aldım. Şu an üzerinde çalıştığım proje arduinoda yazdığım kodları geliştirip STM platformuna taşımak üzerine.
Mühendislik seviyesinde cevaplar veremem. Ama tecrübelerime dair soruların olursa bildiğim kadarıyla cevaplarım.

a.zorba

bugunlerde şu proje dikkatimi çekdi opensoruce bir proje. henuz ne nedir tam anlamadım

https://canable.io/
Bilenler bilir . Biz maraşlilar için şehir olarak şubat ay' i bayram ,kurtuluş ,yaz in gelmesiydi. Şimdi karalar in yas in ayı oldu.

JOKERAS

Alıntı yapılan: Tagli - 09 Şubat 2024, 22:02:04Aslında CAN Bus'ın tam anlamıyla bir protokol olduğunu söylemek çok doğru olmaz. Tek başına CAN Bus oldukça alt seviyede, yani "OSI Model" olarak bilinen katmanlardan en alttaki bir kaç tanesini kapsıyor gibi. Asıl protokol olarak adlandırılabilecek şeyler, CAN Bus üzerine inşaa edilen CANopen, DeviceNet, SAE J1939 vs. gibi protokoller.

Bildiğim kadarıyla binek otomobillerde kullanılan CAN Bus protokollerinin bir standartı yok, her üretici kendi kafasına göre at koşturuyor. Ancak ağır vasıtalarda SAE J1939 protokolü yaygın diye biliyorum.

CAN Bus'ı yeni yeni yaygınlaşmaya başlayan CAN FD isimli daha hızlı ve gelişmiş bir şekli olduğunu da belirtmek gerekiyor. Hatta daha da yakın zamanda CAN XL diye bir şey daha ortaya çıktı ama henüz destekleyen pek cihaz yok diye biliyorum.

Ben şahsen CANopen (CiA 301) ve buna bağlı hareket kontrol profili olan CiA 402 ile epey uğraştım. Bunlar birkaç forum mesajında anlatılamayacak kadar geniş konular. Ancak spesifik sorularınız varsa yanıtlayabilirim.
Tagli, detaylı açıklaman için teşekkürler.

Arabalarda bir Standart yoksa bu kötü bir şey.
O zaman bunları duruma göre kendimizmi analiz edeceğiz?Aliexpresste satılan CanBus Analizör aletleride bunun içinmi?Anladığım kadarıyla önce Katmanları çözeceğiz.En alt fiziksel katmandan
üst mesaj katmanına kadar.CanOpen de sanırım bir uygulama Paketi ve Standart edilmiş.
Sisteme göre, duruma göre ne yapılmak isteniyorsa, hangi Can Standardı varsa bahsettiğiniz CanFd,CanXl
de CanOpen gibi bir Uygulama standardı oluyor doğru anladıysam.Sonra biz Standardı analiz edip
diyeceğiki bu CanOpen yada CanFd veya CanXl...Duruma göre yapıyı yapımızı bu standartlara göre
İnşaa edeceğiz diye anladım.Bir de Arabalar için CanBus Şemalarında LinBus görüyorum bu nedir?

Evet bu böyle Forumda anlatılacak,anlaşılacak kadar basit değil haklısınız.

Alıntı yapılan: papsukkal - 10 Şubat 2024, 02:57:17@JOKERAS Arduino ve canbus shield ile epeyce mesaim oldu. Hazır kütüphane kullandım. Bazı otomobil parçalarını tezgahta çalıştırmayı başardım. Biraz tersine mühendislik ile parçaların PID lerini tespit ettim ve bilgisayardan ve/veya arduino üzerinden data gönderdim, aldım. Şu an üzerinde çalıştığım proje arduinoda yazdığım kodları geliştirip STM platformuna taşımak üzerine.
Mühendislik seviyesinde cevaplar veremem. Ama tecrübelerime dair soruların olursa bildiğim kadarıyla cevaplarım.
Siz de çözmüşsünüz işi.Araba parçalarını Atölyede çalıştırıp mesaj gönderip aldıysanız gerisi daha da kolaylaşır diye düşünüyorum.Bence burada en önemli nokta  Mesajlara erişmek Mesaj gönderip almak networke bağlanmak.Siz ECU(Elektronik Control Unit) olmuşsunuz zaten.
bence büyük başarı.Ben şu an araştırma aşamasındayım.Başladığım anda anlamadığım noktalarda sizlere ve bilgi sahibi arkadaşlara müracat ederim.Teşekkürler.

Bu yol bayağı uzun gibi görünüyor.




papsukkal

@JOKERAS hocam youtube üzerinde arduino ile değişik anlatımlar ve github ta farklı işlemcilere göre kütüphaneler mevcut. Size tavsiyem bilgisayar icin öncelikle bir canbus hack yazılımı bulmanız. Zira trafiği okusanız da belirli bir sıralamaya sokup görüntüyü stabil hale getiremezseniz çok zor oluyor. Ben ilk seri terminal üzerinden okudum gözlerim şaşı oldu. Çok hızlı akıyor bilgiler.
Arabalarda ağırlıklı olarak motor sistemi icin 500 kbps hız kullanılıyor. Konfor sistemi için 125 kbps kullanılıyor. Ama bunun tersini kullanan ve 250 kbps kullanan araçlar var. Son 3-4 sene içinde üretilen modeller ve benim incelemedigim markalar hariç can-fd  ve sonrası versiyonu kullananı görmedim.

Linbus a gelince bazı ufak tefek birimler ile ECU arasında haberleşmek için kullanılıyor. Geri görüş kamerasının çizgileri, far yagmur sensörü datalarının iletimi gibi. Donanım olarak seri haberleşmeye benziyor. Bir master birden fazla Slave ünite var. Master cihaz bilgi isteyeceği zaman ilgili birimin ID sini gönderiyor, birim bu IDnin peşine dataları yapıştırıyor.


JOKERAS

Teşekkürler papsukal.
Youtube de 2 video buldum,arkadaş çok açıklayıcı anlatmış.


papsukkal

#10
Benim de ilk izlediğim videolardan. Tane tane ve anlaşılır bir anlatımı var.


M.Salim GÜLLÜCE

CANBUS yapısı gereği çakışmalara çok müsait.
Esas protokol gönderilen datanın yerine ulaşabililiğini garantilemek.
Bunun için ayrıca bir protokol olması gerek.
Zira birden fazla master, birden fazla slave durumunda ortalık "saldım çayıra mevla kayıra protokolü"ne döner.
ID olmazsa olmazı muhakkak ama herkes aynı anda konuşursa sıkıntılar çok büyük olur.
Herkes aynı anda konuşsa bile datanın yerine ulaşmasını sağlayacak bir protokol nasıl ortaya çıkar.
Sır biraz burada gibi.
Hayati iletişimin asla kesilmemesi ve gecikmemesi gerek.
farların durumu hayati değil ancak motora verilen güç talebi ve direksiyona verilen hareket talebi çok çok hayati olsa gerek.

ByTEK

Bir ara Arduino ile CANBUS modülü kullanarak aracıma kadran selamlama yapmak istemiştim. Benim araç 2004 model citroen xsara ve dahili olarak öyle bir özellik yok. iç elektronik aksam VANBUS sisteminde çalışıyor. ECU ile BSI beyni arasında CANBUS hattı var. onu bulup modüle girdim ve dinlemeye başladım. Deneme yanılma yaparak kontak durumu, motor devri, km hızı gibi verileri yakaladım. aynı verileri ibreleri kontrol edecek şekilde kontak açılınca gönderdim. Evet sistem çalıştı ama sonrasında motor arıza lambası yandı.

Beyne bağlanınca ECU ve BSI tarafında geçersiz CANBUS iletişimi şeklinde hatalar üretti. Yani Beyinler fake dataları ayırt etti ama gösterge istediğimi yaptı :)

Tam emin değilim ama giden verileri alıcı alınca geriye veri dönüyordu diye hatırlıyorum. "Veri gönder(Yap) - Veri alındı dön(tamam abi/yaptım)" şeklinde bir akış hatırlıyorum ama akan veriler standart CANBUS ID lerine göre olmadığı için net bir şey söyleyemem. Arabam Full CANBUS ile haberleşse daha güzel olurdu ama bir kısmı VANBUS olunca işlerimi karıştırıyor.

Sadece kendi halinde takılan biri..

JOKERAS

Alıntı yapılan: M.Salim GÜLLÜCE - 12 Şubat 2024, 16:25:28CANBUS yapısı gereği çakışmalara çok müsait.
Esas protokol gönderilen datanın yerine ulaşabililiğini garantilemek.
Bunun için ayrıca bir protokol olması gerek.
Zira birden fazla master, birden fazla slave durumunda ortalık "saldım çayıra mevla kayıra protokolü"ne döner.
ID olmazsa olmazı muhakkak ama herkes aynı anda konuşursa sıkıntılar çok büyük olur.
Herkes aynı anda konuşsa bile datanın yerine ulaşmasını sağlayacak bir protokol nasıl ortaya çıkar.
Sır biraz burada gibi.
Hayati iletişimin asla kesilmemesi ve gecikmemesi gerek.
farların durumu hayati değil ancak motora verilen güç talebi ve direksiyona verilen hareket talebi çok çok hayati olsa gerek.
Salim abi,CanBus NOD'larının Recessive Ve Dominant olma durumu var.
Bu sayede bir cihaz bir cihazla mesajlaşıyorsa Diğer cihazlar Çekingen davranıyordu.
Bu ise Bit katmanındaydı,CanH ve CanL hattının H-L durumu, mesaj önem derecesine göre belirleniyordu diye hatırlıyorum.
Ayrıca CanBus'ta her NOD, hem Master veya Slave olabiliyordu diye hatırımda kalmış.
Yanlış hatırlıyor olabilirim!

İşin uzmanı arkadaşlar daha iyi bilecektir.


papsukkal

CanBusta 0 domimanttır. Öncelik sıralaması PID id ler ile belirlenir. Öncelik sahibi bir id hatta mesaj gönderiyor ise diğeri beklemede kalır.
Örnek:

0001 ve 0011 iki adet PID id olsun. 0.bit her iki id de 1 olduğu için iki si de mesaj için hattı kullanmak ister. Sıra 1. Bitlere gelince 0001 olan id 0011 olana baskın gelir ve 0011 olan id beklemeya başlar.

Can-h ile Can-l aslında aynı bilgiyi taşır. Sadece birbirlerinin tersidirler. Cihaz Can-h ya da Can-l nin high ya da low olduğuna bakmaz. Can-h ile Can-l arasındaki farka bakar. Fark var ise 1 yok ise 0 kabul eder. Bu yapı sayesinde parazitli ortamlardan minimum etkilenir. Parazit hem h hem de l hattına aynı anda etki edeceğinden h ile l arasındaki fark stabil kalmış olacaktır.