Çift CAN yedekli iletişim sisteminin tasarım çözümü ve uygulama analizi

Jun 23, 2025 Mesaj bırakın

CAN protokolünün kendisi güçlü bir hata tespit ve düzeltme yeteneğine sahip olmasına rağmen, endüstriyel kontrol sahasında fiş bağlantısının sağlam olmaması, iletim ortamının hasar görmesi veya veri yolu sürücüsünün hasar görmesi vb. CAN'ın güvenilir iletişimini bozacaktır. Yüksek güvenilirlik gerektiren uygulama sisteminde, bu hatalar otomatik olarak tespit edilip giderilmeye yönelik uygun önlemler alınmadığı takdirde, sistemin iletişim yeteneğini kısmen veya tamamen kaybetmesine neden olacaktır. Bu sorunu çözmenin etkili bir yolu, yedekli iletişim kontrolünü kullanmaktır. Bu, iletişim sisteminin ana işlevlerinin normal şekilde çalışmasını sağlar ve böylece sistemin güvenilirliğini artırır.

 

1 Sistem Donanım Bileşenleri

MB90F543, Fujitsu'nun iki CAN denetleyicisine sahip 16-bitlik bir mikro denetleyicidir. Sistem, her biri bağımsız veri yolu kabloları, veri yolu sürücüleri ve veri yolu denetleyicileri içeren, fiziksel medya, fiziksel katman, veri bağlantı katmanı ve uygulama katmanının tam yedekliliğini gerçekleştirebilen iki veri yolu seti (CAN0, CAN1) kullanır. İki veri yolu seti, sıcak yedekleme modunda çalışır: bir CAN denetleyicisi, sistem açıldıktan sonra varsayılan CAN olarak hizmet eder (buna ana CAN denilebilir); diğeri sistemin yedek CAN'ı (bağımlı CAN olarak adlandırılır) olarak hizmet eder ve ana CAN için yedeklik görevi görür. Sistem normal çalıştığında ana CAN veriyolu (CAN0) devreye alınır. Ana CAN veriyolu arızalandığında, yardımcı CAN veriyolu (CAN1) devreye girer. Açılışta ana CAN veriyolunda bir hata tespit edilirse yardımcı CAN veriyolu otomatik olarak devreye alınır. Bu şekilde, bir otobüs seti arızalandığında, diğer otobüs seti tüm sistemin iletişim fonksiyonunun normal çalışmasını sağlamak için otomatik olarak çalışmaya devam edecek, bu da sistemin güvenilirliğini büyük ölçüde artıracak ve CAN veriyolunun kapsamlı yedeklilik tasarımını gerçekleştirecektir. Ayrıca yazılımın ihtiyacına göre yedekli veya yedeksiz modu-alacak şekilde de ayarlanabilir. Yedeksiz mod için yalnızca ana CAN veri yolu kullanılır.

info-1-1                               Sistem Mimarisi Blok Şeması

 

RT, sinyal emisyon girişimini bastırmak için kullanılan veri yolu sonlandırma eşleştirme direncidir, RT=100Ω veya 120Ω. Ağ, iletişim ortamı olarak korumalı bükümlü çift kablo kullanır.


CAN denetleyicisi, CAN protokolünün fiziksel katman ve veri bağlantı katmanı işlevlerini entegre eder ve bit doldurma, veri bloğu kodlama, CRC sağlama toplamı ve öncelik ayrımı dahil olmak üzere veri iletişiminin çerçeveleme sürecini tamamlayabilir.


CAN denetleyicisi aşağıdaki ana özelliklere sahiptir:

◇ CAN2.0A ve CAN2.0B protokollerine uygundur.

◇Veri çerçevelerinin ve uzak çerçevelerin gönderilmesini ve alınmasını destekler.

◇ 11-bit veya 29-bit tanımlayıcıları ve çok-seviyeli mesaj arabellek yapısını destekleyen 16 gönderme/alma mesaj arabelleği; ◇ Tam-bit karşılaştırmasını, tam bit karşılaştırmasını ve tam bit karşılaştırmasını destekler.

◇ Üç kabul tanımlama seçim yöntemini destekler: tam-bit karşılaştırması, tam-bit maskeleme ve bit maskeleme kabulü; ◇ İki kabul tanımlama kaydı.

◇ İki kabul tanımlama kaydı standart çerçeveyi veya genişletilmiş çerçeve formatını destekler.

◇ Baud hızı 10Kbps'den 1Mbps'ye kadar programlanabilir.


Veri yolu sürücüsü, veri yolunun diferansiyel iletim ve alım kapasitesini geliştirmek için CAN denetleyicisi ile fiziksel veri yolu arasındaki arayüz olarak PCA82C250'yi kullanır.

info-1-1

 

2 Sistem Yazılım Tasarımı

 

2.1 Çift CAN yedekli kontrol fonksiyonunun gerçekleştirilmesi

 

Çift CAN yedeklilik sisteminde donanım yapısıyla karşılaştırıldığında yazılım tasarımı nispeten daha karmaşıktır. Genel CAN veri yolu iletişim programı üç temel bölümden oluşmalıdır: CAN başlatma programı, CAN iletim programı ve CAN alım programı. Bu yedekli sistem yazılımı tasarımında yukarıdaki üç bölüm, sistemin diğer yazılım modüllerinin çağırabileceği en temel üç modül olarak kullanılır.


MB90F543, 256 çeşit kesinti kaynağını işleyebilir ve CAN denetleyicisiyle ilgili dört donanım kesintisi vardır: CAN0 RX (CAN0 alma tam kesmesi), CAN0 TX /NS (CAN0 gönderme tamamlama/düğüm durumu değiştirme kesmesi), CAN1 RX (CAN1 alma tam kesme), CAN1 TX /NS (CAN1 gönderme tamamlama/düğüm durumu değiştirme kesmesi). CAN1 TX /NS (CAN1 iletimi tamamlandı/düğüm durumu değişikliği kesintisi). Bu yazılım tasarımında sorgu gönderme ve kesme alma kullanılmaktadır. Düğüm durumu değişikliği kesme altyordamı, düğüm durumu değişikliğinin işlenmesi için kullanılır. Bunun nedeni, CAN2.0 protokolünün düğümün şu üç durumdan birinde olduğunu belirtmesidir: hata-etkin durum, hata-yoksayılmamış durum ve-veri yolu dışı durum. MB90500 serisinde, gönderme/alma hatası sayacının değerinin 96'yı aştığını ve düğüm durumundaki bir değişikliğin karşılık gelen bir kesintiye neden olacağını belirten ek bir uyarı durumu da vardır.


Sistem çift CAN yedekli sıcak bekleme ile çalıştığından, her iki CAN denetleyicisinin de sıcak bekleme durumunda olması gerekir. Sistemdeki tüm düğümlerin her iki CAN denetleyicisi de herhangi bir zamanda mesaj almaya hazır olacak şekilde başlatılmıştır, ancak yalnızca bir CAN denetleyicisi mesaj göndermektedir. Başka bir deyişle, bir anda CAN kanallarından biri aktifken, diğeri dinliyor (normal çalışmada) veya arıza durumunda (arıza durumunda).


Tekli CAN kontrol sistemine kıyasla ikili CAN yedekli kontrol sisteminin yazılım tasarımının karmaşıklığının anahtarı, CAN sistemi arıza tespitinde ve CAN sisteminin otomatik olarak değiştirilmesinde yatmaktadır. Tamamen bağımsız iki set iletim ortamının, veri yolu sürücülerinin ve veri yolu denetleyicilerinin kullanılması nedeniyle, bunlar CANH ve CANL kısa- devresi, CANH veya CANL bağlantısının kesilmesi, CANH ve toprak kısa devresi- devresi, CANL ve güç kısa devresi- devresi, veri yolu sürücüsü hasarı vb. gibi kendi kanal hatalarından bağımsız olarak tespit edilebilir. Gerçek hata ayıklamada, CANH, CANL'nin bağlantısının kesilmesi veya veri yolunda yalnızca bir verici bulunması durumunda, bunun iletim/alma hata sayacının 128'e yükselmesine neden olacağı ve bunun da düğümü göz ardı edilen hata durumuna sokacağı bulunmuştur; ve CANH ile CANL arasında bir kısa-devre, CANH ile toprak arasında bir kısa-devre veya CANL ile güç kaynağı arasında bir kısa-devre, gönderme/alma hata sayacının 256'ya yükselmesine neden olur ve bu da düğümü veriyolu Bağlantısı Kesilmiş durumuna sokar. Bu nedenle, düğüm durumu değiştirme kesmesi alt yordamında CAN yedeklilik modülünü çağırarak, otomatik hata tespiti ve CAN sisteminin otomatik olarak değiştirilmesi şeklindeki yukarıdaki amaca ulaşabiliriz. CAN0 düğüm durumu değiştirme kesmesi alt yordamı aşağıdaki gibidir:

 

__interrupt void NodeStateTransmitInt0 (geçersiz)

{

if (CSR0_NT) /* düğüm durumu değişikliği */

{

CSR0_NT=0; /*Kesinti bayrağını sıfırla */

if ( (CSR0_NS==2 ) (CSR0_NS==3 ) ) /* kesinti veya kısa devreye neden oldu */

{

NoWaitFlg=1; /* birbirini dışlayan bir bayrak */

Bus0Error( ) ; /* Bus0Error( ) CAN0'ı durdurur ve yedek CAN1 altprogramını başlatır */ { NoWaitFlg=1; /* bir muteks bayrağı */

}

}

ICR00 =3; /* kesme önceliğini Timer0 kesme önceliğine değiştir */ }

ICR03 =2; /* Zamanlayıcı 0 kesmesine öncelik vermek için kesme önceliğini değiştirin */ }

}

 

Ayrıca CAN veri yolu iletişim sürecinde, belirli bir bilgi arabelleğinin veri iletimi tamamlandığında, iletim tamamlama kaydındaki karşılık gelen bit 1 olarak ayarlanacaktır. İletimi sorgulama sürecinde bu kaydı değerlendirerek iletimin tamamlanıp tamamlanmadığını öğrenebilirsiniz. Ancak gönderim başarılı olmazsa sistemi sürekli bekletecek ve sistemin çökmesine neden olacaktır. Bu nedenle yazılımın burada, ana CAN kanalını durdurmak ve yardımcı CAN kanalını etkinleştirmek için CAN yedekleme sisteminin çağrılacağı bir bekleme süresi ayarlaması gerekir.


Yazılım tasarımı, yedekleme CAN değişimi tamamlandıktan sonra orijinal iletişim görevinin nasıl geri yükleneceği sorununa da dikkat etmelidir. Çözüm, güvenilir anahtarlamanın orijinal iletişim görevini gerçekleştirmek için görev bayraklarının bir listesini hazırlamak, beklemede CAN anahtarlaması yapmak, sistemin orijinal görevini almak için tabloyu okumaktır.


2.2 Veri yolu yönetim fonksiyonunun gerçekleştirilmesi


Bu sistemin yazılım tasarımında, veri iletimi ve alımına yönelik gerçek-zamanlı veri iletişim programına ek olarak, her düğümün yönetimine yönelik iletişim yönetimi programını da içerir. Tüm düğümler ana düğümlere ve yardımcı düğümlere bölünmüştür. Aralarındaki fark, ana düğümün, çevrimiçi düğüm istatistiklerini gerçekleştirmesine, çevrimdışı düğümleri tanımasına ve bunlarla başa çıkmak için önlemler almasına olanak tanıyan bir veri yolu yönetim fonksiyonuna sahip olmasıdır; köle düğümün bu işlevi yoktur. Yalnızca bir ana düğüm vardır, birden fazla bağımlı düğüme izin verilir. Tüm düğümlerin çevrimiçi olup olmadığını belirlemek için arada bir çağrılan ana düğüm için veri yolu yönetimi işlev programı: tüm düğümler çevrimiçiyse, veri yolu normal kabul edilir; aksi takdirde çevrimdışı düğümleri tanımlayın ve buna göre işlem yapın. Tasarım fikri, sistem ana düğümünün veri yolu üzerindeki tüm bağımlı düğümlere uzak bir çerçeve göndermesi ve her bir bağımlı düğümün bunu alması, kendi düğüm numarasını bir veri çerçevesine koyup ana düğüme göndermesi ve ana düğümün aldığı düğüm numarasına göre çevrimdışı bir düğüm hatası olup olmadığını belirlemesidir. Bu sistemde düğüm numarası (modül adresi) modül üzerinde bulunan DIP switch ile ayarlanır.

 

Yazılım hata ayıklama sürecinde, her düğümün donanım yapısı aynı olmasına rağmen, devre kartı kablolaması ve bileşen dağılımındaki farklılıklar nedeniyle, çoğu zaman tüm bağımlı düğümlerin ana düğüm tarafından gönderilen bilgileri alamaması veya ana düğümün, bağımlı düğümler tarafından gönderilen tüm bilgileri almaması durumu söz konusudur, yani bir çerçeve kaybı sorunu vardır. Bu sorun yazılım gecikmesi ve alma kesme programının optimizasyonu ile çözülmüştür.


3 Geliştirme ortamı ve uygulama çeşitli konulara dikkat etmelidir


Softune V3 yazılım tezgahı, Fujitsu FFMC-8L, FFMC-16L/LX ve FR serisi mikro denetleyici program geliştirme için geliştirme yönetimi, emülatör hata ayıklama, yazılım simülasyonu ve entegre geliştirme ortamı dahil olmak üzere entegre bir yazılım geliştirme ortamıdır. Geliştirme araç seti Softune Workbench, C derleyici, Assembler, Linker, C Checker, C Analizör'ü içerir. Softune V3 hem C hem de montaj dillerini destekler.


MB90F543'ün fiili kullanımı sırasında aşağıdaki konulara dikkat edilmelidir.


① Kabul İşareti Seçim Kaydının (AMSR) ayarı. Her mesaj arabelleği bir kabul işaretleme yöntemini seçebilir: tam bit karşılaştırması, tam bit maskesi veya bit maskesi kabulü. Tam-bit karşılaştırması, bilginin kabul tanımlayıcısını geçmesi için düğüm tarafından alınan bilginin kimliğinin, bilgi arabelleği tarafından belirlenen kimlikle tam olarak aynı olması gerektiği anlamına gelir; tam-bit maskelemenin, bilginin kimliğini karşılaştırması gerekmez; bu, kabul tanımlayıcısının koşulsuz olarak iletilmesi olarak yorumlanabilir; bit-maskeleme kabulü, karşılaştırılacak kimlik bitlerini ve maskelenecek kimlik bitlerini belirtebilir, yani kabulü kısmen karşılaştırabilir. Uygulamada, bu kabul tanımlama yöntemi en sık kullanılır, bu nedenle MB90F543 yongasının CAN denetleyicisinde bu tür iki yöntem ayarlanır. AMSR ayarı, geliştiricinin arabellek bilgilerini işlemesi için büyük esneklik sağlar.


② Kabul İşaretleme Kaydı (AMR) ayarı. AMSR, bit-maskeli kabul yöntemine ayarlandıktan sonra, AMR, kimliğin hangi bitlerinin karşılaştırılacağını ve hangi bitlerin maskeleneceğini ayarlayacak şekilde ayarlanmalıdır.AMR'nin toplam dört baytı vardır ve 29 bitlik kimlik karakterlerini destekler. Ancak 29 bitlik ID karakteri için AM28~AM0'ın kullanıldığına dikkat etmek önemlidir; 11 bitlik kimlik karakteri için ise AM28~AM18 kullanılır. bu nedenle kullanıcının AMR'yi ayarlarken dikkatli olması gerekir, aksi takdirde alım hatasına neden olur. Yazar burada acı çekti.


③ Fujitsu'nun CAN denetleyicisinin özelliklerinden biri, çok-seviyeli mesaj arabelleklerinin kullanımını desteklemesidir. Alımın sık sık meydana geldiği veya birkaç farklı kimlik bilgi çerçevesinin alındığı durumda, CPU'nun alınan bilgiyi işlemek için yeterli zamana sahip olmaması mümkündür, dolayısıyla bilgilerin zamanında ve verimli bir şekilde işlenebilmesini sağlamak için çok sayıda bilgi arabelleği çok seviyeli bir bilgi arabelleği halinde oluşturulabilir. Bu sayede 8 byte'tan büyük bilgiler 1 çerçevede gönderilebilmektedir. Bu düzenlemenin diğer bir avantajı, CPU'nun, ara bellek bilgisinin yeniden yazılması ve hemen kaybolması konusunda endişelenmesine gerek kalmadan belirli bir bilgi arabelleğinin bilgisini okuyabilmesidir.


4 Sonuç


CAN uygulama katmanı protokolünün geliştirme sürecinde, birden fazla veri aktarım biçimini desteklemek (seçici geçiş, yoklama, durum değişikliği vb.); ancak geliştirme döngüsü gibi birçok faktörün sınırlamaları nedeniyle, cihazın teşhis işlevinin yanı sıra benzer ürünlerle birlikte çalışabilirliğinin iyileştirilmesi ve genişletilmesi gerekmektedir. Çift CAN yedekli iletişim sistemi deney aşamasında istikrarlı bir şekilde çalışır, veri iletimi güvenilirdir, artıklık anahtarlaması uygulanabilir ve veri yolu yönetiminin güvenilirliği iyidir; lokomotif kontrol sistemine veya yüksek güvenilirlik gerektiren diğer endüstriyel kontrol sahalarına uygulanabilir.

Soruşturma göndermek

whatsapp

Telefon

E-posta

Sorgulama