Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: ArifAhmet - 21 Temmuz 2014, 15:18:50

Başlık: STM32F4 ve OBDII
Gönderen: ArifAhmet - 21 Temmuz 2014, 15:18:50
Merhabalar. Stm32f4 kullnarak arabadaki sensörleri OBDII üzerinden okumak istiyorum. Bunun için internette ne örnek nede kütüphane bulabildim. Yardımcı olabilecek birileri varmı?
İyi çalışmalar.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: Mucit23 - 21 Temmuz 2014, 15:40:00
CanBus Haberleşmesi yapacaksın. Bu konuda araştırma yapman gerekiyor.

İnternette bir dünya örnek ve kod var.
Bu link yeterli
https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=https%3a%2f%2fmy%2est%2ecom%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fSTM32Discovery%2fSTM32F4%20DISCOVERY%20CAN%20bus%20controller%20problem&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F&currentviews=6126

STM32F407'nin içerisinde CAN interface modülü var. Bu modülün RX ve TX çıkışlarına Can TransReciever Çipi bağlaman gerekir.

Yukarıda verdiğim linkte Bu modül kullanılarak CAN haberleşmesi yapılmaya çalışılmış. Can TransReciever Çipi olarakda AMIS30663 kullanılmış. Bunun yine Microchip'in MCP2551 Çipide kullanılabilir.

Eğer Donanım konusunda sıkıntın var ise ilk önce CANBUS haberleşmesi için hangi donanım kurulması gerekiyor onu öğren. Yazılımı halledersin.

Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 21 Temmuz 2014, 15:44:39
Alıntı yapılan: Mucit23 - 21 Temmuz 2014, 15:40:00
CanBus Haberleşmesi yapacaksın. Bu konuda araştırma yapman gerekiyor.

İnternette bir dünya örnek ve kod var.
Bu link yeterli
https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=https%3a%2f%2fmy%2est%2ecom%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fSTM32Discovery%2fSTM32F4%20DISCOVERY%20CAN%20bus%20controller%20problem&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F&currentviews=6126

STM32F407'nin içerisinde CAN interface modülü var. Bu modülün RX ve TX çıkışlarına Can TransReciever Çipi bağlaman gerekir.

Yukarıda verdiğim linkte Bu modül kullanılarak CAN haberleşmesi yapılmaya çalışılmış. Can TransReciever Çipi olarakda AMIS30663 kullanılmış. Bunun yine Microchip'in MCP2551 Çipide kullanılabilir.

Eğer Donanım konusunda sıkıntın var ise ilk önce CANBUS haberleşmesi için hangi donanım kurulması gerekiyor onu öğren. Yazılımı halledersin.



CAN Bus ile haberleştiğini biliyorum ama şöyle bi sorun var. Ben can bus yapısını öğrenince direkt olarak istediğim veriyi obdII portundan okuyabilecekmiyim. Yani durum nasıl olacak?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: Mucit23 - 21 Temmuz 2014, 16:12:09
Tam olarak bende bilmiyorum ama tahimince yaptığın cihazı arabanın OBD2 portuna bağlayınca Hızlı birşekilde Datalar gelmeye başlayacaktır.
Can bus veri yapısını bilmek gerekiyor. Aşağıdaki resimde güzel bir şekilde anlatılmış.
(https://farm4.staticflickr.com/3900/14705824744_4655717cd0_o.png)
Can bus veri paketinin başında 11Bit uzunluğunda tanımlayıcı bulunur. Yukarıda yeşil ile renklendirilmiş kısım bu tanımlayıcıdır.
Tanımlayıcı bi anlamda mesajı gönderen kişinin kimliğidir. Bu kimliğin hangi sensöre ait olduğunu sen kendin tespit etmelisin.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 21 Temmuz 2014, 16:19:56
Alıntı yapılan: Mucit23 - 21 Temmuz 2014, 16:12:09
Tam olarak bende bilmiyorum ama tahimince yaptığın cihazı arabanın OBD2 portuna bağlayınca Hızlı birşekilde Datalar gelmeye başlayacaktır.
Can bus veri yapısını bilmek gerekiyor. Aşağıdaki resimde güzel bir şekilde anlatılmış.
(https://farm4.staticflickr.com/3900/14705824744_4655717cd0_o.png)
Can bus veri paketinin başında 11Bit uzunluğunda tanımlayıcı bulunur. Yukarıda yeşil ile renklendirilmiş kısım bu tanımlayıcıdır.
Tanımlayıcı bi anlamda mesajı gönderen kişinin kimliğidir. Bu kimliğin hangi sensöre ait olduğunu sen kendin tespit etmelisin.

İşte, OBDII'nin tam çlışma yapısını bilmeden birşeyler yapamıyorum. Ama veriler hemen gelmiyor diye biliyorum. PID denen verileri yolluyoruz onlar bize ilgili sensördeki veriyi geitiriyor.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: CLR - 21 Temmuz 2014, 16:30:50
obdII'de sadece can bus yok, değişik K-line,PWM vs. protokollerde var, önce hangi araçla ve o araç hangi protokolü kullanıyor bilmen lazım, aşağıdakilerden biri olacaktır. Eğer araç 2003 veya daha yeni ise muhtemelen can bus ile SAE J1939' protokolünü kullanıyordur. Bu protokolde araç içindeki her modülün bir ID'si ve struct yapısı var, o yapıya göre data basmak ve almak gerekir. SAE J1939 ilgili microchip notları ve projesi var inceleyebilirsin. SAE J1939 protokol kitabı satın alırsan veya free bulursan(biraz zor olabilir) daha detaylı inceleyebilirsin ama kek bir proje değildir biraz uğraştırabilir(yani bir kaç ay). 

ISO 9141-2
KWP 2000-4
SAE J1850 PWM
SAE J1850 VPW
ISO 15765-4 (CAN 11-bit & 29-bit)
SAE J1939
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: cuneytatay - 22 Temmuz 2014, 13:37:35
Hazır OBDII modül alarakta bu işi daha basit şekilde halledebilirsin. Bu şekilde sadece rs232 deki at komutlarıyla ilgilenirsin.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: muhittin_kaplan - 22 Temmuz 2014, 15:28:07
elm327
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 22 Temmuz 2014, 17:44:43
Alıntı yapılan: cuneytatay - 22 Temmuz 2014, 13:37:35
Hazır OBDII modül alarakta bu işi daha basit şekilde halledebilirsin. Bu şekilde sadece rs232 deki at komutlarıyla ilgilenirsin.
Evet onu düşünüm. Sparkfun'ın aruino için CAN BUS sehield'i var ama ben bu shieldi ARM'da nasıl kullanacağım bilmiyorum. Yani bu sheild benimle SPI üzerindenmi haberleşiyor? yada bunun haberleşme şekli nedir, nasıldır?

Alıntı yapılan: muhittin_kaplan - 22 Temmuz 2014, 15:28:07
elm327

Bunuda duydum ama üstüne pek düşmedim.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: Mucit23 - 22 Temmuz 2014, 17:56:41
Alıntı yapılan: ArifAhmet - 22 Temmuz 2014, 17:44:43
Evet onu düşünüm. Sparkfun'ın aruino için CAN BUS sehield'i var ama ben bu shieldi ARM'da nasıl kullanacağım bilmiyorum. Yani bu sheild benimle SPI üzerindenmi haberleşiyor? yada bunun haberleşme şekli nedir, nasıldır?

Arduino için yapılmış benzer bir modül bendede var.

Haberleşme şekli modülün üzerindeki çipe göre değişiyor.
mesela bende bu modülden var.
http://www.seeedstudio.com/wiki/CAN-BUS_Shield (http://www.seeedstudio.com/wiki/CAN-BUS_Shield)
Üzerinde MCP2515 Var. CanBus ile ilgili bütün işlemleri bu tek başına yapıyor. Sen sadece SPI'dan mesaj gönderip alıyorsun.

Ama STM32'lerin içerisinde bu enteğrenin yaptığı işi yapan modül zaten var. Çipin içinde böyle bir modül varken ekstradan böyle bir enteğre kullanmaya gerek yok.  STM32'nin CAN_RX ve CAN_TX çıkışlarına  MCP2551 CAN transceiver bağladınmı tamamdır.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 22 Temmuz 2014, 18:00:37
Alıntı yapılan: Mucit23 - 22 Temmuz 2014, 17:56:41
Arduino için yapılmış benzer bir modül bendede var.

Haberleşme şekli modülün üzerindeki çipe göre değişiyor.
mesela bende bu modülden var.
http://www.seeedstudio.com/wiki/CAN-BUS_Shield (http://www.seeedstudio.com/wiki/CAN-BUS_Shield)
Üzerinde MCP2515 Var. CanBus ile ilgili bütün işlemleri bu tek başına yapıyor. Sen sadece SPI'dan mesaj gönderip alıyorsun.

Ama STM32'lerin içerisinde bu enteğrenin yaptığı işi yapan modül zaten var. Çipin içinde böyle bir modül varken ekstradan böyle bir enteğre kullanmaya gerek yok.  STM32'nin CAN_RX ve CAN_TX çıkışlarına  MCP2551 CAN transceiver bağladınmı tamamdır.

Benim elimde şu var; http://skpang.co.uk/catalog/arduino-canbus-shield-with-usd-card-holder-p-706.html (http://skpang.co.uk/catalog/arduino-canbus-shield-with-usd-card-holder-p-706.html) Şimdi deiğinize göre stm32f4'e bunun mosi, miso bacaklarını bağlarsak herşey çok kolay olacak. Peki bu bize sürekli verimi aktaracak yoksa bizmi isteyecez. İsteyeceksek neye göre?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: Mucit23 - 22 Temmuz 2014, 18:07:41
Sana sürekli veri akacak ihtimal. Ama bende hiç araç üzerinde deneme yapmadım. Tahmin ediyorum sadece.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 22 Temmuz 2014, 18:09:31
İnternette bir tane bile örnek bulamadım. Deneme yanılma yapacaz galiba. Ama sürekli veri aktaracağını sanmıyorum. Çünkü PID denen bir olay var.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: CLR - 22 Temmuz 2014, 18:47:32
Yukarıda yazmıştım ama çok önemsemedin galiba, hangi aracın obd2 portu ile heberleşeceksin(VW, opel vs) , kaç model ? Hangi protokolü kullanıyor? bunları bilmeden deneme yanılma ile birşey bulamazsın.
sae j1939 can protokolü ise ki şuan birçok araç onu kullanıyor pic serisi için örnek var o referans olacaktır.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en020237 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en020237)

Başlık: Ynt: STM32F4 ve OBDII
Gönderen: ArifAhmet - 22 Temmuz 2014, 18:56:18
Alıntı yapılan: CLR - 22 Temmuz 2014, 18:47:32
Yukarıda yazmıştım ama çok önemsemedin galiba, hangi aracın obd2 portu ile heberleşeceksin(VW, opel vs) , kaç model ? Hangi protokolü kullanıyor? bunları bilmeden deneme yanılma ile birşey bulamazsın.
sae j1939 can protokolü ise ki şuan birçok araç onu kullanıyor pic serisi için örnek var o referans olacaktır.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en020237 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en020237)



Ben sadece ISO 15765-4 ile haberleşeceğim.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: saucompeng - 24 Kasım 2015, 13:53:05
Merhaba Arif,   ISO 15765-4 ile haberleşmeyi gerçekleştirebildin mi ?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: mr.root - 10 Haziran 2019, 15:54:14
Alıntı yapılan: Mucit23 - 21 Temmuz 2014, 16:12:09Tam olarak bende bilmiyorum ama tahimince yaptığın cihazı arabanın OBD2 portuna bağlayınca Hızlı birşekilde Datalar gelmeye başlayacaktır.
Can bus veri yapısını bilmek gerekiyor. Aşağıdaki resimde güzel bir şekilde anlatılmış.
(https://farm4.staticflickr.com/3900/14705824744_4655717cd0_o.png)
Can bus veri paketinin başında 11Bit uzunluğunda tanımlayıcı bulunur. Yukarıda yeşil ile renklendirilmiş kısım bu tanımlayıcıdır.
Tanımlayıcı bi anlamda mesajı gönderen kişinin kimliğidir. Bu kimliğin hangi sensöre ait olduğunu sen kendin tespit etmelisin.


Merhaba, başlangıçtaki 11 bitlik ID kısmı bazı versiyonlarda 29 bit olarak genişletilmiş durumda oluyor. Böyle bir durumda direkt olarak 11 bit / 29 bit haberleşmesi yapılabilir mi?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: e-zeki - 12 Haziran 2019, 17:30:18
29 bit Extended ID olarak geçiyor. Eğer HAL kullanıyorsan şuan F4 için en son yayınlanan CANBUS kütüphanesi, gelen mesajın Standart ID ile mi Extended ID ile mi geldiğini rxHandler yapısı içerisinde tutuyor. Eski sürümleri kullanıyorsan bu bilgiyi CAN_HandleTypeDef yapısında, pRxMsg yapısının içinden gözlemen gerek.
11/29 bit haberleşme yapabilirsin fakat bu filtreleme durumlarında sana sorun çıkartır. node sayın ve data alışverişin çok yoğun değilse STDID kullanman hem daha kolay olur , hem bit uzunluğunu azaltacağı için daha hızlı bir haberleşme avantajı sağlar.
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: mr.root - 13 Haziran 2019, 14:40:17
Alıntı yapılan: e-zeki - 12 Haziran 2019, 17:30:1829 bit Extended ID olarak geçiyor. Eğer HAL kullanıyorsan şuan F4 için en son yayınlanan CANBUS kütüphanesi, gelen mesajın Standart ID ile mi Extended ID ile mi geldiğini rxHandler yapısı içerisinde tutuyor. Eski sürümleri kullanıyorsan bu bilgiyi CAN_HandleTypeDef yapısında, pRxMsg yapısının içinden gözlemen gerek.
11/29 bit haberleşme yapabilirsin fakat bu filtreleme durumlarında sana sorun çıkartır. node sayın ve data alışverişin çok yoğun değilse STDID kullanman hem daha kolay olur , hem bit uzunluğunu azaltacağı için daha hızlı bir haberleşme avantajı sağlar.

Bilgilendirme için teşekkür ederim. Üzerinde çalışacağım, son olarak STDID derken tam olarak neyi kastettiğinizi anlayamadım, biraz açabilir misiniz?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: baran123 - 14 Haziran 2019, 01:01:10
Standart ID'yi kastediyor yani 11 Bit olan.

Diğer ise Extended yani 29-Bit ID olan
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: mr.root - 14 Haziran 2019, 09:10:37
Biraz kafam karıştı. Şimdi bazı araçlar standart ID iken bazıları genişletilmiş ID' ye sahip. Benim bağlamak istediğim cihaz ise standart ID. Yani 11/29 bit haberleşme derken elimdeki cihaz ile 29 bit ID' ye bağlantı kurabilir miyim?
Başlık: Ynt: STM32F4 ve OBDII
Gönderen: e-zeki - 15 Haziran 2019, 08:41:11
Alıntı yapılan: mr.root - 14 Haziran 2019, 09:10:37Biraz kafam karıştı. Şimdi bazı araçlar standart ID iken bazıları genişletilmiş ID' ye sahip. Benim bağlamak istediğim cihaz ise standart ID. Yani 11/29 bit haberleşme derken elimdeki cihaz ile 29 bit ID' ye bağlantı kurabilir miyim?

Elinde bir cihaz olduğundan bahsetmedin. kendin birşeyler yapmaya çalışıyorsun diyerek cevap vermiştim