Mesajlar Etiketlendi ‘canbus’

Artık CAN Blue ve CAN Black modülleri WireShark üzerinden dinlenebiliyor…


Kurulum ve çalıştırma:
wireshark 2.4.7 32bit/64bit indir ve kur (Kurulumda “Wireshark 1” seçilecek)
CANvas indir ve çalıştır, “LiveView” seç (dll dosyaları, plugin altına kopyalanacak)
Wireshark’ı çalıştır, capture filter ekle (\\.\pipe\CAN)
“SKYCAN ws tool” çalıştır.
Wireshark menüsünden Decode > CAN Live view seçilecek.

Linkler:

BUS (CAN/LIN)
wireshark

Daha önce yapmış olduğum, High speed CAN ve Low speed (fault tolerent) CAN arabirimlerini, bir karta toplama planımı sonunda gerçekleştirebildim. Yeni PC arayüzü, artık tek arabirimden, LS veya HS CAN hattına erişebiliyor.

20151218_221723

 

Devre, 125kbps’a kadar fault tolerent CAN ve 1mbps’a kadar high speed CAN hızlarını destekliyor. Genel özellikler, eski sürüm ile aynı. Besleme USB üzerinden veya harici 12V giriş ile sağlanıyor. PC’den bağımsız kullanım istenirse, devre üzerindeki harici I/O portlarına, buton, seri LCD vs. bağlanarak farklı amaçlar için kullanılabilir.

sniffer15
Bu yazılım ile, FT/LS ve HS CAN destekleyen tüm araçların dataları okunabilir, data gönderilebilir.

Test edilen araçlar:
Wolksvagen
Seat
Skoda
Audi
Opel
Mercedes
BMW
Fiat
Chrysler
Jeep

Modül, ayrıca, ağır vasıtaların CAN protokolünü de desteklemektedir.
(bkz.  CAN Truck) Benzer uygulama (kilometre okuması), Mercedes kamyonlar (actros, axor) için yapılmıştır.

Birden fazla CAN hattını (comfort, instruments vs) aynı anda okumak veya
datayı değiştirmek için CAN Black modülünü inceleyebilirsiniz.

sniffercmd
Bazı araçların multimedya sistemleri araç dışında çalışmamaktadır.
Modül ve yazılıma ek Acc kodları sayesinde bu sistemleri, araca bağlı olmadan da çalıştırabilirsiniz.

CAN Truck

Yayınlandı: Ağustos 7, 2015 / Hardware & Software
Etiketler:, , , , , , , , , , , ,

CAN Sniffer devresi artık ağır vasıtaları da okuyor.

Ağır vasıtalarda kullanılan, J1939/FMS protokolü, CAN sniffer yazılımı ile çözülebiliyor. Bu hattan alınan bilgiler arasında,
Araç Km bilgisi (odometre), motor çalışma saati, motor verileri (hız, tork, devir, sıcaklıklar) vs. mevcut.

merdash

Araç bakımı, takibi, akaryakıt  alımı gibi işlemlerde, kontrol ve takip amaçlı kullanılabilir. CAN Black modülü kullanıldığında,
kablosuz (bu devrede Bluetooth) veri alış verişi sağlanabilir.

CAN Black

Yayınlandı: Temmuz 15, 2015 / Hardware & Software
Etiketler:, , , , , , , , ,

Yeni bir BUS kontrol devresi. Temel olarak HS-CAN için tasarlandı ancak istenirse LS-CAN, Single-CAN ve LIN (I-BUS) için genişleyebiliyor. Devre üzerinde 2 adet HS-CAN portu var. Bu iki port aynı anda çalışabiliyor.
PC haberleşmesi, RS232 yerine, bu kez USB üzerinden yapılıyor. Besleme (5V) yine USB üzerinden sağlanıyor. Harici besleme için 12V girişi de mevcut.
Devrenin alt yüzünde bir de Bluetooth 2.0 modülü var (isteğe bağlı).

Temel Özellikler:
2x HS-CAN
1x USB 
1x Bluetooth (serial profile)
1x Serial Port (TTL)

Daha önceki CAN modülü ve Sniffer yazılımı 1 CAN portu desteklediğinden aynı noktada yapılan okumalarda, sorgu ve cevapları ayırmak mümkün olmuyordu. Bu modül ile istenirse 2 ayrı hat, aynı anda dinlenebilir, filtrelenebilir, dinlenen hattaki sorgu veya cevap değiştirilebilir. (TV Free vs.)
Kullanılmadığında, bir süre sonra uyku moduna geçiyor ve akım harcaması 10mA civarına düşüyor. bu nedenle farklı amaçlar için programlandığında, araç üzerinde bağlı kalması mümkün. CAN sinyali geldiğinde, 1 saniyeden kısa bir sürede tekrar aktif oluyor.

20151205_225923

PCB Bottom

20151205_225932

PCB Top

Modül, Windows uyumlu bir arayüz ile çalışıyor. CAN hattına seri olarak bağlandığında, gönderilen dataları ve cevapları ayrı ayrı yakalamak ve istenilen tarafa, yeniden mesaj göndermek mümkün.  Devre üzerindeki Bluetooth modül ile, mobil uygulamalara istenilen datalar gönderilebilir. Mobil cihaz üzerinden araç bilgileri izlenebileceği gibi, komut da gönderilebilir.
Aynı zamanda 8 adet farklı komutun, datasını analiz eden ve istenilen kriterlere göre değiştirerek tekrar gönderen bir program da mevcut.

Temel devre üzerine takılan genişleme kartları ile farklı ihtiyaçları karşılamak mümkün.
İstenirse LIN-BUS modül ile CAN/LIN geçiş devresi olarak çalıştırılabilir. Ya da, video switcher modülü ile 3 adet video kaynağı, önceden tanımlanmış duruma göre otomatik seçilebilir.
(bazı araçlarda, multimedya sisteminde 1 video girişi mevcut. Ön kamera veya harici kaynak (TV, DVD, Android vs) takılmak istendiğinde arada bir seçici kullanmak gerekiyor.)

Başka bir konu başlığında bunları detaylı olarak yazacağım.

Linkler:
CAN Gambit – Data değiştirme yazılımı
3 kanal Video Switcher
CAN Blue

 

28.10.2015
Low speed (LS/FT) CAN  (83kb/s ve 125kb/s) Chrysler ve Jeep multimedya sistemleri de emülatöre dahil edildi.

Mercedes, WV, Seat, Chrysler, Fiat vs. araçların multimedya donanımlarını araç dışında da çalıştırabilmek için, araç içindeki can hattını taklit etmek gerekiyor.

Aşağıdaki devre, LCD üzerinde, menüden seçilen marka/modele göre
gerekli “kontak açık” bilgilerini canbus hattına göndererek cihazın araç dışında da çalıştırılabilmesini sağlıyor. Kontak bilgisi dışında, diğer donanımları da taklit etmek mümkün. Örneğin direksiyon kumandası komutları da da bu hat üzerinden gönderilebilir.

can similator1 can similator2

Emülatör devresi, mikrokontrolcü tabanlı bağımsız bir canbus alıcı-vericiden oluşuyor.
12V harici adaptörle veya USB üzerinden çalıştırılabiliyor.
Sisteme gönderilmesi gereken datalar ve haberleşme hızları, araç marka ve modele göre farklılık gösterdiğinden, bu bilgilerin önceden tanımlanıp, modüle yüklenmiş olması gerekiyor. Önceden tanımlanmış kodlar haricinde, yeni kod eklenmek istenirse, bir PC yazılımı ile usb üzerinden gerekli yüklemeleri yapmak mümkün. Önceki konularda bahsettiğim, sniffer devresi ve yazılımı bu konuda büyük kolaylık sağlıyor.

CAN-USB (sniffer/sender):
https://skyblg.wordpress.com/2014/04/19/canbus-usb-arabirimi/

 

yeni sürüm için: LS/HS CANBUS

Bu sayfada, USB-CAN arabirimiyle ilgili güncellemeleri paylaşacağım.Araçlardaki CAN haberleşmesi için gerekli olmasa da, diğer can protokolü kullanan cihazlar için CAN 2.0B (29 bit) desteğini ekledim. Ayrıca “sniffer” modunda daha kolay çalışabilmek için bana göre gerekli ve kullanımı kolaylaştıracak özellikler ekledim.

Arayüz yazılımı, hem Atmega hem de PIC kullanılan modülleri destekliyor. 29 bit desteği sadece PIC ile yapılmış modülde var.

Untitled-1Modül ve PC haberleşmesi USB/sanal seri port üzerinden yapılıyor. Ana ekranda, port ve CANBUS’a ait tüm ayarlamalar yapılabiliyor. Yine alınan ve gönderilen datalar, ana ekrandaki tabloya yazılıyor. Alınan veya gönderilen datalar dosyaya kaydedilebildiği gibi, bu datalar başka bir tabloya aktarılarak üzerinde işlem yapılabiliyor.

CAN hattı için hız seçimi (83kbps-1mbps arası) filtre/maske ve frame ayarları.
Hem 11 bit hem de 29 bit maskeleme ve filtreleme yapılabiliyor. 
Untitled-6
Gelen dataların aktarıldığı (veya kullanıcı tarafından oluşturulabilen) komut ekranı.
Bu ekranda, aktarılmış veya girilmiş datalar üzerinde işlem yapmak, isim vermek, kaydetmek, tekrar göndermek veya belirli periyodlarla tüm listeyi (veya seçilenleri) can hattına göndermek ve yanıtını dinlemek mümkün.

Untitled-4Scrool ve overwrite modlarıyla, gelen dataların tümü tabloya yazılabilir veya aynı datalar, aynı satıra eklenebilir.Özellikle –dinleme– modunda, tekrarlanan komutlarla başa çıkmak için bu özellik gerekli.
Araç için dinleme yaparken, tekrarlanan datalar haricinde gelen bilgileri almak için (örneğin kilit aç/kapat, direksiyon tuşları vs.) komutlarını yakalamak için “capture” ekranı kullanılabilir.
Untitled-3
Komut ekranında, alınan ve tanımlanan datalara, isim verilebilir. Aşağıda, diagnostik portundan okunan ve tanımlanan araç bilgilerine ait komutları görebilirsiniz.
Untitled-7

Devre beslemesini USB üzerinden alıyor. Tek yapmanız gereken CAN uçlarını sisteminizdeki doğru yere bağlamak.

IMG_1825

İhtiyaçlar doğrultusunda güncellemeler ve eklemeler devam ediyor.
Birkaç devrede MCP2551’in arızalandığına şahit oldum ve bu nedenle
EMI/ESD koruması için önerilen yöntemlerden birini uygulamaya karar verdim.
Canbus uçlarına “Common mode choke” ve TVS ekledim.
Canbus hattlarının korunması konusunda bu linke bakabilirsiniz.

Sırada bir türlü fırsat bulup yapamadığım, yine aynı kontrol devresi baz alınarak yapılacak CAN-Bluetooth modülü var. Aslında daha önceki çalışmalarımda bir tane yapmıştım.
(eski konuya buradan ulaşabilirsiniz)

canbus_bt1IMG_1801Araç içinde 12V beslemeye sürekli bağlı kalacağından, az akım çekecek, gerekirse uyku moduna geçebilecek bir modül yapmam gerekiyor. Bağlantıyı “convenience bus” a yapmayı düşünüyorum. (aracımda diagnostik portundan istediğim datalara erişemediğim için) Bu da radyonun arkasına veya direksiyon altında bir alana koymamı gerektiriyor.
Modül, kendi başına önceden tanımlanmış işlemleri yapabileceği gibi, bluetooth üzerinden
harici bir ekranla (veya bir tablet, telefon) haberleşebilecek. Bu modülde, BT üzerinden firmware güncellemesi de yapmak mümkün. Yapılabilecekler hayal gücünüzle sınırlı.

Bu modül gibi, araçta olmayan donanımsal özellikler de araca eklenebilir ve aracın can hattına dahil edilebilir.

IMG_1806

CAN-USB Modül

-devam edecek-

Bluetooth CANBUS Modül

Yayınlandı: Aralık 17, 2013 / Hardware & Software
Etiketler:, , , ,

Daha önce yapmış olduğum canbus alıcı-verici devresinin bluetooth versiyonu.
Devrede Atmel yerine PIC kullandım, PC bağlantısı için de HC-05 Bluetooth modül kullandım.
HC-05’in kullanımı oldukça kolay. Hiç bir ayar yapmadan, slave modunda, 9600 baud hızda kullanabiliyorsunuz. Ben sadece haberleşme hızını ve modül ismini değiştirdim. (sayfa sonunda HC-05 döküman linkini bulabilirsiniz)

Fotoğraf0665

Fotoğraf0666Fotoğraf0667Devre yaklaşık 4x4cm ebadında. Küçük bir kutuya konup, araç üzerinde can hattına yakın bir noktada, can ve 12V bağlantısı yapılacak. Windows üzerinden bir yazılımla data akışına erişilebileceği gibi, android ile yazılmış bir uygulama ile, telefon/tablet üzerinden veya
android sistemli multimedya donanımından erişim mümkün olacak. Ayrıca modülün, istenilen bazı işler için de programlanması mümkün. (kumandadan camların kapatılması vs. gibi)

canbus_bt1

canbus_bt2

HC-05 datasheet:

http://www.instructables.com/files/orig/F3O/K70G/H1LWQ0PO/F3OK70GH1LWQ0PO.pdf

Arduino ve CAN BUS

Yayınlandı: Mart 7, 2013 / arduino, bus, CAN, CANBUS, mcp2515, mcp2551, OBD, VAG
Etiketler:, , ,
Yeni eklenenler: BUS (CAN/LIN/K-LINE)

Elm ve OBD konusunda bahsetmiştim, araç bilgilerini okumanın başka bir yolu da, araç içinde dolaşan farklı canbus hatlarına girmektir. Bus sayısı, hızları, ve içerdiği bilgiler farklı olabiliyor ancak genelde tüm araçlarda CANBUS protokolü kullanılıyor.

Farklı hatlar, farklı bilgiler topluyor ve bu hatlar aynı zamanda, gateway ünitesi üzerinden birbirleri ile de haberleşiyor. 

gateway

OBD portundan alınan bilginin fazlasını, diğer hatlardan almak mümkün. VAG araçlarına ait canbus diagramı aşağıdaki gibi.

Burada şeması verilen devre, bir CAN kontrolcü ve mikrokontrolcüden oluşuyor.
CAN kontrolcü olarak Mikrochip firmasının MCP2515 entegresi, mikrokontrolcü olarak da, Arduino nano kartı kullandım. 

Arduino’nun (veya ATMEGA’nın) MCP2515 bağlantısı için SPI ve INT pinleri kullanılıyor. 
MCP2515’in RST ucu, arduino kartının reset ucuna bağlanacak. (hardware reset için)

Devre 3 modda çalışabiliyor.

  • mod-1 Sniffer
  • mod-2 OBD2 Reader
  • mod-3 Sender

Mod seçimi D6 ve D7 pinlerine bağlı switch ile yapılıyor. Şemada göstermedim ama D6 ve D7 pinleri 10k direnç ile şaseye çekilmeli.

anahtar “B” konumunda ise; devre, periyodik olarak, bazı OBD komutlarını gönderiyor ve bu komutların yanıtlarını alıyor. Bu, bağlantı testi için kullanılabilir. Aynı kodları veya daha fazlasını “C” konumunda da gönderebilirsiniz.

OBD için gönderilen komutlar:
ENGINE_COOLANT_TEMP  (0x05) 
ENGINE_RPM           (0x0C)  
VEHICLE_SPEED        (0x0D)  
INTAKE_AIR_TEMP      (0x0F)  
CONT_MODULE_VOLT     (0x42) 
AMBIENT_AIR_TEMP     (0x46)  
CATALYST_TEMP_B1S1   (0x3C)  

Switch “A” konumunda ise, canbus hattındaki data trafiği dinleniyor. Filtre veya mask tanımlanmamış ise, hat üzerindeki tüm datalar izlenebilir.

Switch “C” konumunda ise, yazılan komutu can hattına gönderiyor ve yanıtını bekliyor.

Hattan alınan tüm datalar, tanımlanmış bir formatta, arduino’nun seri çıkışına gönderiliyor.
PC arayüzü bu dataları alıp tabloya yazıyor. Bu arayüz üzerinden, hat hızı, maske ve filtre tanımlamak ve komut göndermek de mümkün.
cantools
Başta da dediğim gibi, araç içindeki tüm can hatları gateway’de birleşiyor ve gateway
bu hatlar üzerinde geçiş sağlıyor. OBD soketi üzerinden de bu hatlara geçiş olduğunu düşünüyorum ama bu konuda fazla deneme imkanım olmadı. Bazı markalarda, OBD soketinde, diagnostik hattının haricindeki hatlar da bulunabiliyor. Şayet yoksa, yapılması gereken, hattın geçtiği bir noktadan, paralel uç almak.
Örneğin, vw grubunda, radyo soketindeki can hattına bağlanıp data akışını dinlemek ve
buradan bazı işlemler yapmak mümkün. (direksiyondaki butonları okumak, radyo veya yol bilgisayarı ekranına yazı yazmak gibi) Diğer bilgiler için başka hatlara bağlanmak gerekiyor.

OBD-II Araç Bilgi Ekranı

Yayınlandı: Ocak 3, 2013 / CANBUS, ELM327, OBD, OBD2, VAG, VAG-COM
Etiketler:, , ,
Aracın bilgi ekranında gösterilmeyen bazı verileri izlemek, bazılarını da bir araya toplamak için küçük bir projeye başlamıştım. Henüz tam olarak bitmese de sona yaklaştım.
OBD2 soketi bazı markalarda farklılık gösterse de genelde resimdeki gibi 16 pinli bir soket.
Direksiyonun alt taraflarında veya orta konsolda oluyor, C4’lerde kül tablasının altındaydı örneğin. Astra’da vitesin arkasında, kapağın altına gizlenmişti. Seat’da sol altta, yine kapağın altında.
Donanım 2 bölümden oluşuyor.
1.bölüm, OBD portundan verileri alıp işleyen ve seri olarak displaye gönderen modül
2.bölüm, seri dataları işleyip ekrana basan 3.2″ lik grafik ekran ve 320×240 çözünürlükte. Üzerinde kendi kontrolcüsü ve donanımsal seri portu var. 
 
Alınan datalar:
Hız
Motor devri
Motor suyu sıcaklığı
Dış ortam sıcaklığı
Turbo hava girişi sıcaklığı
CAT sıcaklığı

AKÜ voltajı

Yakıt tüketimi ile ilgili bilgiler maalesef hazır olarak gelmiyor. Saatteki yakıt tüketim (lt/h) bilgisi alınabiliyor. ancak anlık tüketim, ortamalama tüketim vs. bilgilerin,
bazı datalardan hesaplanarak çıkartılması gerekiyor. (Araç hızı, MAF sensör bilgisi gibi) Bunların dışında, OBD2’den gelen birçok data var, istenirse bunlar da işlenip kullanılabilir.


Verileri diagnostik portundan okumanın bir kaç yolu var.
ELM çipli bir devre (veya hazır modül) kullanabilirsiniz veya PIC/Ardunio gibi bir kontrolcü kullanabilirsiniz.
ELM kullanacaksanız, daha önceki konularda anlattığım gibi, AT komutlarını kullanabilirsiniz. Bağlantı kurulduktan sonra, mod ve pid değerlerini sorgulamanız yeterli.

Mode: 0x01 için sorgulanacak pid değerleri:

#define ENGINE_COOLANT_TEMP 0x05  //A-40
#define ENGINE_RPM          0x0C  //((A*256)+B)/4
#define VEHICLE_SPEED       0x0D  //A
#define INTAKE_AIR_TEMP     0x0F  //A-40
#define CONT_MODULE_VOLT    0x42  //((A*256)+B)/1000
#define AMBIENT_AIR_TEMP    0x46  //A-40
#define ENGINE_OIL_TEMP     0x5C  //A-40
#define CATALYST_TEMP_B1S1  0x3C  //(((A*256)+B)/10)-40
ELM entegresini veya hazır devreleri kullanmak istemezseniz, diagnostik portla bağlantı kuracak bir arabirime ihtiyacınız olacak. Bunun için microchip firmasının 2515 ve 2551 canbus entegrelerini kullanabilirsiniz. 

Canbus haberleşmesi, bir-iki satırla geçiştirilmeyecek kadar kapsamlı. O nedenle, bunu daha sonraya bırakıyorum. Ben, test için daha önce yaptığım CANBUS arabirimini kullandım.

 


Modül, OBD2/CANBUS hattına sürekli olarak yukarıdaki sorgu komutlarını gönderiyor ve aşağıdaki şekilde yanıt alıyor. Bu datalar belirli bir formata çevrilip, seri port üzerinden grafik LCD’ye gönderiliyor.

Display devresi, seri porttan gelen bilgileri işleyerek ekrana yazıyor.
Arabirim ve GLCD 5V ile çalışıyor. Deneme için diagnostik portundaki 12V çıkışını kullandım. Kontak kapalı olduğunda bile bu uçta gerilim var. Test için kullanılabilir ancak kalıcı bir uygulama için başka bir yerden +12V almak daha mantıklı.

Yukarıda bahsettiğim grafik display, ELM327 modülünü AT komutları ile sorgulayacak ve gelen dataları işleyecek kapasitede. ELM modülü ile ek bir devre olmadan da okuma yapılabilir.

Burada karşıma çıkacak en büyük sorun, kullandığım ekrana, araç içinde uygun ve güzel bir yer bulmak. tabi bu her model araç için farklı çözümler gerektiriyor.
Proje istediğim gibi gelişirse, ilerleyen zamanlarda, aracın kendi multimedya sistemini kullanmayı düşünüyorum.

VAG araçlarında (vw, seat, audi, skoda) kullanılan RCD/RNS510 medya cihazının, geri görüş kamerası için bir video girişi bulunuyor. Bu giriş bir kontak girişiyle tetikleniyor.

 
Okunan ve işlenen dataları PAL formatında göndermek, -zahmetli olsa da- mümkün. Yine bu bilgiler, MFD üzerinde de izlenebilir. 

devam edecek…


linkler:
ELM327 ile OBD-II Haberleşmesi -1
ELM327 ile OBD-II Haberleşmesi -2
ARDUINO-CANBUS
CAN-Blue
CAN-Black