Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.

hello@youremail.com
+1234567890

SAE J1939 Protokolü

Giriş

J1939, SAE tarafından tanımlanan bir dizi standarttır. Kamyonlar ve otobüsler gibi ağır hizmet araçlarında, mobil hidroliklerde vb. kullanılırlar. J1939 birçok yönden eski J1708 ve J1587 standartlarına benzer, ancak J1939 CAN üzerine inşa edilmiştir.

Fiziksel katman (J1939/11) veri yoluna giden elektrik arayüzünü tanımlar. Veri bağlantısı katmanı (J1939/21) bir mesajın oluşturulması, veri yoluna erişim ve iletim hatalarının tespit edilmesi için kuralları tanımlar. Uygulama katmanı (J1939/71 ve J1939/73) ağ üzerinden gönderilen her mesajın içerdiği belirli verileri tanımlar.

Hızlı Bilgiler

CAN üzerine inşa edilmiş daha yüksek katmanlı protokol

Ağır hizmet araçlarında kullanılır

Hız neredeyse her zaman 250 kbit/s veya 500 kbit/s’dir.

Mesaj Formatı ve Kullanımı (J1939/21)

J1939 standardı tarafından tanımlanan çoğu mesajın yayınlanması amaçlanmıştır. Bu, verilerin ağ üzerinde belirli bir hedef olmadan iletildiği anlamına gelir. Bu, herhangi bir cihazın ek istek mesajları gerektirmeden verileri kullanmasına izin verir. Bu aynı zamanda gelecekteki yazılım revizyonlarının yeni cihazlara (adres atamaları) kolayca uyum sağlamasına olanak tanır. Bir mesajın belirli bir cihaza yönlendirilmesi gerektiğinde, mesaj tanımlayıcısına belirli bir hedef adresi dahil edilebilir. Örneğin, fren kontrol cihazından belirli bir tork değeri yerine motordan belirli bir tork değeri talebi.

J1939, Şekil 1’de gösterilen CAN 2.0B protokolünde tanımlanan 29 bitlik tanımlayıcıyı kullanır. Tanımlayıcı, hedef adresi olan bir mesajda (“PDU 1”) yayın amaçlı bir mesaja (“PDU 2”) kıyasla biraz farklı kullanılır.

PDU, Protokol Veri Birimi (yani Mesaj Formatı) anlamına gelir.

SOF, SRR ve IDE bitleri CAN standardı tarafından tanımlanmıştır ve burada göz ardı edilecektir. RTR biti (uzaktan istek biti) J1939’da her zaman sıfıra ayarlıdır.

J1939’da kullanılan 29 bitlik tanımlayıcı aşağıdaki şekilde yapılandırılmıştır;

 

  • ÖNCELİKLİ               3 bit
  • AYRILMIŞ                  1 bit
  • VERİ SAYFASI          1 bit
  • PDU FORMATI         8 bit
  • PDU ÖZEL                8 bit
  • KAYNAK ADRESI     8 bit

 

Tanımlayıcının ilk üç biti, tahkim işlemi sırasında bir mesajın önceliğini kontrol etmek için kullanılır. 0 değeri en yüksek önceliğe sahiptir. Daha yüksek öncelik değerleri genellikle yüksek hızlı kontrol mesajlarına verilir, örneğin şanzımandan motora giden tork kontrol mesajı gibi. Araç yol hızı gibi zaman açısından kritik olmayan verileri içeren mesajlara daha düşük öncelik değerleri verilir.

Tanımlayıcının bir sonraki biti gelecekteki kullanım için ayrılmıştır ve iletilen mesajlar için 0 olarak ayarlanmalıdır.

Tanımlayıcıdaki bir sonraki bit veri sayfası seçicisidir. Bu bit, tanımlayıcı tarafından temsil edilebilecek olası Parametre Gruplarının sayısını genişletir.

PDU biçimi (PF), mesajın bir hedef adresle iletilip iletilemeyeceğini veya mesajın her zaman bir yayın mesajı olarak iletilip iletilmeyeceğini belirler.

PDU özel (PS) alanının yorumlanması PF değerine bağlı olarak değişir:

PF 0 ile 239 arasındaysa, mesaj adreslenebilirdir (PDU1) ve PS alanı hedef adresi içerir.

PF 240 ile 255 arasındaysa, mesaj yalnızca yayınlanabilir (PDU2) ve PS alanı bir Grup Uzantısı içerir.

Grup uzantısı, tanımlayıcı tarafından temsil edilebilen olası yayın Parametre Gruplarının sayısını genişletir.

Parametre Grup Numarası (PGN) terimi, Rezerv biti, DP, PF ve PS alanlarının 18 bitlik tek bir değerde birleştirilmiş değerini ifade etmek için kullanılır.

Adresler ve İsimler (J1939/81)

İsim, her ECU’ya benzersiz bir kimlik veren 64 bit (8 bayt) uzunluğunda bir etikettir. İsim 10 alandan oluşur ve şekilde gösterilen aşağıdaki yapıya sahiptir.

 

  1. Arbitasyon adres biti
  2. Endüstri grubu, uzunluk 3 bit
  3. Araç sistemi örneği, uzunluk 4 bit
  4. Araç sistemi, uzunluk 7 bit
  5. Ayrılmış bit
  6. Fonksiyon, uzunluk 8 bit
  7. Fonksiyon örneği, uzunluk 5 bit
  8. ECU örneği, uzunluk 3 bit
  9. Üretici kodu, uzunluk 11 bit
  10. Kimlik numarası, uzunluk 21 bit

 

 

CAN MESAJINDAKI BAYT SAYISI

İÇERİK/ANLAM

0

Kimlik numarası, LSB

1

Kimlik numarası

2

Bit 0-4: Kimlik numarası, MSB
Bit 5-7: Üretici kodu, LSB

3

Üretici kodu, MSB

4

Bit 0-2: ECU örneği
Bit 3-7: İşlev örneği

5

Fonksiyon

6

Bit 0: Ayrılmış bit
Bit 1-7: Araç sistemi

7

Bit 0-3: Araç sistemi örneği
Bit 4-6: Endüstri grubu
Bit 7: Arbitrasyon adres biti

 

Adın temel amacı bir ECU’yu tanımlamaktır. Alt Fonksiyon alanı değerleri, 0 ila 127, “standart” fonksiyonlara veya cihazlara önceden atanmıştır. 128 ila 254 arasındaki değerler Endüstri Grubu ve Araç Sistemi değerlerine bağlıdır. Bu bağımlılık, farklı araçlarda aynı fonksiyon düzenine sahip olmayı mümkün kılar. Bu sistem ayrıca römorklar ve tarım ekipmanları gibi cihazların mevcut bir adres için aramalarını sınırlamalarına ve böylece dinamik olarak bir adres talep etme süresini ve zorluğunu en aza indirmelerine olanak tanır. Bir adres talep edilirken, İsim hangi ECU’nun daha yüksek önceliğe sahip olduğunu ve dolayısıyla talep edilen adresi alacağını belirlemek için kullanılır.

Ağdaki her cihaz en az bir İsim ve bir adresle ilişkilendirilecektir. Ancak, tek bir ECU içinde birden fazla cihaz Adı ve birden fazla adres bir arada bulunabilir. Örneğin, tek bir fiziksel veri yolu bağlantısı olan ortak bir cihazda bulunan bir motor ve motor freni (retarder). Cihaz adresi mesajlar için belirli bir iletişim kaynağı veya hedefi tanımlar. Ad, işlevselliği tanımlar ve ağ üzerinde aynı tipte birden fazla cihaz bir arada bulunduğunda bu işlevselliğin benzersiz bir örnek numarasını ekler. Adres sınırı nedeniyle ağ üzerinde aynı türden yalnızca 254 farklı cihaz bir arada bulunabilir. Adres 255 yayın için genel bir adres olarak ayrılmıştır ve adres 254 henüz bir adres talep etmemiş veya bir adres talep edememiş cihazlar tarafından kullanılan “boş adres” olarak ayrılmıştır.

Adres Talebi

Genel olarak, çoğu adres önceden atanır ve güç verildiğinde hemen kullanılır. J1939’un henüz tanımlanmamış gelecekteki cihazları ve işlevleri barındırmasına izin vermek için, adresleri dinamik olarak atamak için bir prosedür belirlenmiştir. Her cihaz hangi adresle ilişkili olduğunu bildirmelidir. Bu, tanımlama (adres talebi) özelliğidir. İki seçenek mevcuttur:

  1. Bir adres talep etmek için bir Adres Talep mesajı gönderin.

Bir cihaz bir adresi talep etmek için bir Adres Talep mesajı gönderdiğinde, tüm cihazlar bu yeni talep edilen adresi ağdaki kendi cihaz tablolarıyla karşılaştırır. Adres zaten daha yüksek önceliğe sahip bir cihaz tarafından talep edilmişse, bu cihaz adresin zaten kullanımda olduğunu belirten bir Adres Talep mesajı iletir. Adres Talep mesajında veri olarak gönderilen İsim, hangi cihazın daha yüksek önceliğe sahip olduğunu belirler.

  1. Adres Talebi için bir Talep Gönderin.

Bir cihaz Adres Talebi İsteği gönderdiğinde, tüm cihazlar Adres Talep Edildi mesajlarını ileterek yanıt verir. Bu, geçiş cihazlarının (araçlar, römorklar, vb.) veya geç açılan cihazların mevcut adres tablosunu almasına izin verir, böylece mevcut bir adres seçilebilir ve talep edilebilir. Şekil 2’ye bakınız.

Dinamik adres atama desteği isteğe bağlıdır ve yalnızca adres çakışmalarıyla karşılaşması beklenebilecek cihazlar bu özelliği desteklemelidir. Dinamik adres atamasını destekleme ihtiyacını ortadan kaldırmak ve bu “kimlik sürecini” hızlandırmak için çoğu ECU tercih edilen bir adresle ilişkilendirilir. Bu tercih edilen adresler J1939/71 belgesinde açıklanmıştır. Tercih edilen adres zaten başka bir ECU tarafından kullanılıyorsa, cihaz tarafından kendi kendine yapılandırma destekleniyorsa, cihaz başka bir adres talep etmeye çalışabilir.

Mesajların İletilmesi (J1939/21 ve J1939/7x)

Belirli bir veri öğesini göndermek için, gönderilecek veriyi tanımlayan bir mesaj oluşturulmalıdır. Ek yükü azaltmak için ilgili veri öğeleri tipik olarak bir mesaj içinde bir araya getirilir. J1939/71, bir mesajda gönderilecek parametreleri tanımlayan bazı standart PGN’leri tanımlar. J1939/71 belgesi ayrıca mesaj önceliği ve iletim hızı hakkında bilgiler de içerir. Bir cihazda belirli bir parametre için veri bulunmadığında, alıcının verinin eksik olduğunu bilmesi için bu parametreyi içermesi gereken baytın “mevcut değil” (0xFF) olarak ayarlandığını unutmayın. Sekiz bayttan fazla veriye ihtiyaç duyan mesajlar çoklu paket mesajları olarak gönderilebilir. Çoklu paket mesajları J1939/21’de tanımlanan Aktarım Protokolü Fonksiyonları aracılığıyla iletilir. Ancak çoklu paket mesajlarını iletmenin iki yolu vardır:

 

Yayın Duyuru Mesajı (TP_BAM)

Bağlantı Yönetimi (TP_CM)

 

TP_BAM mesajları

TP_BAM mesajları global bir hedef adresi kullanır, bu da ağdaki tüm cihazların bu mesajları alacağı anlamına gelir. İletim, TP_BAM’ı belirten bir Kontrol baytına sahip bir Bağlantı Yönetimi (CM) mesajı, PGN = 0x00EC00 ile başlatılır. Mesaj verileri Veri Aktarımı (DT) mesajlarında takip edilir, PGN = 0x00EB00.

 

TP_CM mesajları

TP_CM mesajları iki cihaz arasında noktadan noktaya gönderilir. İletim, Gönderme İsteğini (RTS) belirten bir Kontrol baytına sahip bir CM mesajıyla başlar. Alıcı cihaz, Göndermeyi Temizle’yi (CTS) belirten Kontrol baytına sahip bir CM mesajıyla yanıt verir. Gönderen cihaz daha sonra DT mesajlarını kullanarak CTS’de belirtilen veri bölümünü gönderir. CTS ve DT mesajlarının bu el sıkışması mesajın tamamı iletilene kadar devam eder. Bağlantı, mesajın tamamlanmasının ardından alıcının Mesaj Sonu Onayını (EOM) belirten bir Kontrol baytına sahip bir CM mesajı iletmesiyle sonlandırılır. Bu işlemin çalışması için CM mesajının kontrol baytının ne olduğuna bağlı olarak ek veriler içerdiğini unutmayın. RTS şunları içerir: bayt sayısı, paket sayısı ve verisi taşınacak olan PGN. CTS, alıcının bir sonraki beklediği paket sayısını ve başlanacak paket numarasını içerir.

 

Mesajların Alınması (J1939/21 ve J1939/7x)

Ağ üzerinden seçilen mesajları yakalamak için çeşitli teknikler (ve çipler) mevcuttur. Ancak alınan mesajlarla ilgili birkaç genel gözlem yapılabilir:

 

Bir mesaj hedefe özel bir istek veya komut ise, cihaz hedef adresin cihaz tarafından talep edilen bir adresle eşleşip eşleşmediğini belirlemelidir. Eğer bir eşleşme varsa, alıcı cihaz mesajı işlemeli ve bir tür onay sağlamalıdır.

Bir mesaj genel bir istek ise, her cihaz, hatta mesajı oluşturan cihaz bile, isteği işlemeli ve veri mevcutsa yanıt vermelidir.

Bir mesaj yayınlanırsa, her cihaz içeriğin ilgili olup olmadığını belirlemelidir.

 

ECU Tasarımı (J1939/1x, J1939/21 ve J1939/7x)

Her üreticinin kendi ürününde bulunan elektronik kontrol ünitesi (ECU) için farklı performans gereksinimleri olacak olsa da, J1939’u desteklemek için gereken kaynaklarla ilgili birkaç gözlem yapılmalıdır. J1939’un mevcut veri hızı 250 Kbps’dir. Tipik olarak 8 veri baytı içeren bir mesaj 128 bit uzunluğundadır (bit doldurma için kullanılan bitler hariç) ve bu da zaman olarak yaklaşık 500 mikrosaniyedir. En kısa mesaj 64 bit uzunluğundadır. Bu da her 250 mikrosaniyede yeni bir mesajın gönderilebileceği anlamına gelir. Her mesaj önemli olmasa da ve veri yolu yükünün %50’nin üzerinde olması muhtemel olmasa da, alıcı işlemci kısa zaman aralıkları için arka arkaya mesajları işleyebilmelidir (veya tamponlayabilmelidir). Bu, bellek aktarımları için işlemci zamanının yanı sıra bir miktar RAM alanı gerektirecektir.

 

Kablolama Topolojisi – Fiziksel Katman (J1939/1x)

J1939 ağı, aracın etrafından her bir ECU’ya uzanan tek, doğrusal, korumalı bükümlü kablo çifti olarak tasarlanmıştır. ECU ile “bus” arasında kısa bir saplamaya izin verilir. Bu, ana veri yolunun her ECU’ya doğrudan bağlanmasını gerektirmeyerek ana veri yolu kablolarının yönlendirilmesini basitleştirir. Doğrusal veri yolu, elektrik sinyali yansımalarını en aza indirmek için 250 Kbps veri hızında gereklidir. Veriyolunun her bir ucundaki sonlandırma direnci de yansımaları azaltır.

 

J1939 ağı aslında aralarında köprü olarak bilinen bir hat içi cihaz bulunan birden fazla segmentten oluşabilir. Bu segmentlerin birbiriyle doğrudan uyumlu olması gerekmez. Örneğin, segmentler farklı veri hızlarında çalışabilir veya farklı bir fiziksel ortam kullanabilir. Köprünün ana işlevi segmentler arasında elektriksel izolasyon sağlamaktır. Traktör ve römork arasındaki kabloda bir kopukluk olması durumunda, traktördeki ana J1939 segmenti çalışmaya devam edecektir. Köprü ayrıca hangi mesajların depolanması ve bir segmentten diğerine iletilmesi gerektiğini seçici olarak filtreleyebilir.