Fieldbus Teknolojisini Kullanarak RS-232'den CAN'a Dönüşüm için Uygulama Tasarımı

Jun 27, 2026 Mesaj bırakın

1 Giriş


Endüstriyel ekipman iletişimi tipik olarak çok çeşitli donanım ve yazılım ürünlerinin yanı sıra standart bilgisayar platformlarını (kişisel bilgisayarlar veya iş istasyonları) endüstriyel otomasyon cihazlarına bağlamak için kullanılan protokolleri içerir. Sonuç olarak çoğu otomasyon cihazı, kişisel bilgisayarlarda veya seri bağlantı noktası kartlarındaki eklenti-de bulunan standart seri bağlantı noktalarıyla uyumlu basit seri komutları yürütmek üzere tasarlanmıştır. RS-232 şu anda PC ve endüstriyel iletişim sektörlerinde en yaygın kullanılan seri arayüzdür. RS-232, düşük hızlı seri iletişimde iletişim mesafelerini genişletmek için tasarlanmış tek uçlu bir standart olarak tanımlanır. RS-232, verici ile alıcı arasında ortak bir sinyal zeminini paylaştığından diferansiyel sinyalleri kullanamaz; aksi takdirde ortak mod gürültüsü sinyal sistemine bağlanacaktır. RS-232 standardı yalnızca 15 m'lik maksimum mesafeyi ve 20 kbit/s'lik maksimum sinyal iletim hızını belirtir.


"Kontrolör Alanı Ağı"nın kısaltması olan CAN, uluslararası alanda en yaygın kullanılan fieldbus'lardan biridir. CAN veri yollarından oluşan tek bir ağ, ağ donanımının elektriksel özellikleriyle sınırlıdır. Çoklu-ana seri iletişim veriyolu olarak CAN'ın temel tasarım özellikleri, yüksek bit hızları ve elektromanyetik girişime karşı güçlü direncin yanı sıra iletişim veriyolunda meydana gelen hataları tespit etme becerisini gerektirir. Sinyal aktarım mesafesi 10 km'ye ulaştığında bile CAN, 50 kbit/s'ye kadar veri aktarım hızları sağlayabilir. Tablo 1, CAN veri yolu üzerindeki herhangi iki düğüm arasındaki maksimum iletim mesafesi ile bunların bit hızları arasındaki ilişkiyi göstermektedir.

 

CAN Veri Yolu Sisteminde Üçgen Yapılandırmadaki Herhangi İki Düğüm Arasındaki Maksimum Uzaklık

Bit Hızı/kb/sn 1000 500 250 125 100

Maksimum Mesafe/m 40 130 270 530 620

Bit Hızı (kbps) 50 20 10 5

Maksimum Mesafe (m) 1300 3300 6700 10000


Görülebileceği gibi CAN veri yolu, gerçek zamanlı performans, uyarlanabilirlik, esneklik ve güvenilirlik açısından RS-232'ye göre üstün bir seri veri yoludur. İki seri cihaz birbirinden çok uzakta bulunduğunda ve RS-232 aracılığıyla doğrudan bağlanamadığında, seri cihazların CAN veri yolu üzerinden ağ bağlantısını sağlamak için RS-232, CAN'a dönüştürülebilir.


Ancak RS-232 ve CAN, voltaj seviyeleri ve çerçeve formatları açısından önemli ölçüde farklılık gösterir. Özellikle:


RS-232 standardı, +3V ile +15V arasındaki herhangi bir voltaj seviyesini mantık "0" olarak ve -3V ile -15V arasındaki herhangi bir voltaj seviyesini mantık "1" olarak tanımlayan negatif mantık kullanır. CAN sinyalleri ise diferansiyel voltaj kullanılarak iletilir. İki sinyal hattına "CAN_H" ve "CAN_L" adı verilir. Statik durumda her ikisi de yaklaşık 2,5V'tur; bu durum mantıksal "1" olarak temsil edilir ve aynı zamanda "resesif" olarak da adlandırılır. CAN_H, CAN_L'den yüksek olduğunda, "baskın" olarak bilinen mantıksal bir "0"ı temsil eder. Baskın durumda tipik voltaj değerleri şunlardır: CAN_H=3.5V, CAN_L=1.5V;

 

RS-232 seri bağlantı noktasının çerçeve formatı şu şekildedir: bir başlangıç ​​biti, sekiz veri biti, programlanabilir dokuzuncu bit (hem iletim hem de alım için adres/veri biti olarak hizmet eder) ve bir durdurma biti. CAN veri çerçevesi formatı aşağıdakilerden oluşur: çerçeve başlığı + ID + veriler (iki formata ayrılabilir: standart çerçeveler ve genişletilmiş çerçeveler).

基于现场总线实现RS-232到CAN转换的应用设计Bu nedenle tasarım, seviye ve çerçeve formatı dönüşümleri gibi dönüşümleri gerçekleştirmek için bir mikrodenetleyici gerektirir. Dönüştürme işlemi Şekil 1'de gösterilmektedir.

 

2 RS-232'den CAN'a Dönüşüm için Donanım Tasarımı


RS-232-CAN'a-dönüştürme cihazının tasarımında, mikroişlemci olarak AT89C52 mikro denetleyicisi kullanılır; SJA1000, CAN mikro denetleyicisi olarak kullanılır. SJA1000, CAN protokolünün fiziksel katman ve veri bağlantı katmanı işlevlerini entegre eder ve iletişim verilerinin çerçevelenmesini pasif olarak yönetebilir; AT82C250, CAN denetleyicisi ile fiziksel veri yolu arasında arayüz görevi görerek veri yolu için diferansiyel iletim yeteneği ve CAN denetleyicisi için diferansiyel alım yeteneği sağlar. AT82C250'nin pin 3'ü aracılığıyla üç farklı çalışma modu (yüksek-hız, eğim kontrolü ve bekleme) seçilebilir. Pim 3 topraklandığında cihaz yüksek hız modunda çalışır; harici sinyallerden kaynaklanan paraziti önleyen 6N137 kullanılarak yüksek hızlı optik izolasyon uygulanır; MAX232, mikro denetleyici arayüz çipi için 232 seviyeli sinyalleri TTL seviyelerine dönüştürmek için kullanılır. Belirli donanım arayüzü devresi ayrıntıları için lütfen SJA1000'e ilişkin ilgili kaynaklara bakın; burada daha fazla açıklama yapılmamıştır. Ancak aşağıdaki noktalara dikkat edilmelidir.


(1) Veri yolu empedansını eşleştirmek için CAN veriyolunun her iki ucuna 120Ω'luk bir direnç bağlanır, böylece parazite karşı bağışıklık ve veri iletişiminin güvenilirliği artar. Ancak pratikte CAN ağındaki "CAN_H" ile "CAN_L" arasındaki şönt direncinin 60Ω olmasını sağlamak yeterlidir.


(2) SJA1000'in Pim 20'si (RX1) kullanılmadığında topraklanabilir (özel neden için yazılım tasarımına bakın); CDR.6 ayar biti ile birleştirildiğinde bu, veri yolu uzunluğunu önemli ölçüde artırabilir.


(3) TX0 ve TX1 pinlerinin bağlantı yöntemi seri çıkışın seviyesini belirler. Belirli ayrıntılar için Çıkış Kontrol Kaydı (OCR) içindeki ayarlara bakın.


(4) AT82C250'nin RS pini ile toprak arasına bir eğim direnci bağlanır. Direnç değeri veri yolu iletişim hızına göre uygun şekilde ayarlanabilir; tipik olarak 16 kΩ ile 140 kΩ arasında değişir.


(5) MAX232, dahili güç dönüşümü için de kullanılan dört elektrolitik kapasitöre ({2}}C1, C2, C3 ve C4) ihtiyaç duyar. Hepsinin derecelendirmesi 1 μF/25 V'tur; tantal kapasitörler tavsiye edilir ve çipe mümkün olduğunca yakın yerleştirilmelidir. VCC güç kaynağı ile toprak arasına 0,1 μF dekuplaj kapasitörü bağlanmalıdır.


3 RS-232'den CAN'a Dönüşüm için Yazılım Tasarımı


Mikroişlemci kontrolü altında, RS-232 ile CAN arasındaki veri alışverişi sırasında seri port alımını ve CAN kesintilerini kullanmak operasyonel verimliliği artırabilir. Ana program akış şeması Şekil 2'de gösterilmektedir. SJA1000 yalnızca sıfırlama modunda başlatılabilir; bu öncelikle çalışma modunun, saat bölümünün ve kabul filtre kayıtlarının ayarlanmasını, baud hızı parametrelerinin yapılandırılmasını ve kesme etkinleştirme kaydının ayarlanmasını içerir.

 

Verilerin doğru bir şekilde iletilebilmesi, yazılım tasarımı sırasında göz ardı edilemeyecek hususlar olan baud hızına ve akış kontrolüne de bağlıdır. Bu nedenle, aşağıdaki bölümlerde CAN baud hızı yapılandırması, seri port baud hızlarının otomatik tespiti ve seri port veri akışı kontrolü konularına odaklanılacaktır.

info-1-1

 

3.1 CAN Filtre Hızını Ayarlama


CAN protokolünün temel unsurlarından biri baud hızıdır. Kullanıcılar, bit periyodu içindeki bit örnekleme noktalarının konumunu ve örnek sayısını ayarlayarak, uygulamaları için ağ performansını serbestçe optimize etmelerine olanak tanır. Ancak bu optimizasyon işlemi sırasında bit zamanlama parametreleri için kullanılan referans osilatörün toleransı ile sistem içindeki farklı sinyallerin yayılma gecikmeleri arasındaki ilişkiye dikkat edilmelidir.


Sistemin bit hızı, fBil, zaman birimi başına iletilen veri bitlerinin sayısını, yani baud hızı fBit=1/tBit'i temsil eder. Nominal bit zamanlaması,-üst üste binmeyen üç bölümden oluşur: SYNC_SEG, TSEG1 ve TSEG2. Bu üç zaman dilimi sırasıyla tSYNC_SEG, tTSEG1 ve tTSEG2 olarak gösterilir. Bu nedenle nominal bit periyodu tBit bu üç zaman diliminin toplamıdır.


tBit=tSYNC_SEG + tTSEG1 + tTSEG2


Bit periyodu içerisinde bu bölümler, temel zaman biriminin tamsayı katları cinsinden ifade edilir. Bu zaman birimine zaman kotası (TQ) adı verilir ve zaman kotasının süresi, osilatör saat periyodundan (tCLK) türetilen CAN sistem saatinin (tSCL) bir döngüsüdür. CAN sistem saati, ön ölçekleyici faktörünün (baud hızı ön ayar değeri, BRP) programlanmasıyla ayarlanabilir. Özellikle:


tSCL=BRP × 2tCLK=2BPR/fCLK


CAN bit zamanlama hesaplamaları için çok önemli bir diğer zaman aralığı, tSJW süresine sahip olan senkronizasyon atlama genişliğidir (SJW). SJW segmenti bit döngüsünün bir parçası değildir; bunun yerine, bir yeniden senkronizasyon olayı sırasında bit döngüsünün uzatıldığı veya kısaltıldığı maksimum TQ sayısını tanımlar. Buna ek olarak, CAN protokolü kullanıcıların tekli-örnekleme modu veya üç-örnekleme modu (üç örnekten bir sonuç seçerek) olabilen bit örnekleme modunu (SAM) belirtmesine olanak tanır. Tekli-örnekleme modunda, örnekleme noktası TSEG1 segmentinin sonundadır. Üç-örnekleme modunda, tek-örnekleme moduna kıyasla iki ek örnekleme noktası alınır; bunlar bir TQ ile ayrılan TSEG1 segmentinin sonundan önce bulunur.

 

info-1-1

Yukarıda bahsedilen BPR, SJW, SAM, TESG1 ve TESG2'nin tümü kullanıcı tarafından CAN denetleyicisinin dahili BTR0 ve BTR1 kayıtları aracılığıyla tanımlanabilir. Ayrıntılar Şekil 3'te gösterilmektedir. BTR0 ve BTR1 ayarlandıktan sonra gerçek baud hızı aralığı:
Maksimum=1/(tBit - tSJW), Minimum=1/(tBit + tSJW)

 

3.2 Seri Port Baud Hızı Tespiti


Bir seri cihaz ana bilgisayar olarak görev yaptığında, o anda dönüştürme cihazının seri port baud hızını tespit etmeniz gerekiyorsa, öncelikle ana bilgisayarın alma baud hızını (örneğin 9600 baud) ayarlayabilir ve terminalden belirli bir karakter (örneğin bir satır başı) gönderebilirsiniz. Bu şekilde ana bilgisayar, alınan karakter bilgisine dayanarak dönüştürme cihazının iletişim baud hızını belirleyebilir. Satırbaşı karakterinin ASCII değeri 0DH'dir; farklı baud hızlarında alınan değerler Tablo 2'de listelenmiştir.


Farklı Baud Hızlarında Alınan Bayt Sayısı


Baud Hızı (bit/s) Alınan Bayt Sayısı (Onaltılık) Baud Hızı (bit/s) Alınan Bayt Sayısı (Onaltılık)


1200 80 4800 E6

1800 F0 9600 0D

2400 78 19200 F*


3.3 Seri Bağlantı Noktası Akış Kontrolü


Burada kullanılan "akış" terimi veri akışını ifade eder. Veri kaybı genellikle iki seri port arasındaki iletim sırasında meydana gelir. Mikrodenetleyicinin arabelleği sınırlı kapasiteye sahip olduğundan, veri alınırken arabellek doluysa o anda gönderilmeye devam edilen veriler kaybolacaktır. Akış kontrolü bu sorunu etkili bir şekilde çözer: Alıcı uç verileri zamanında işleyemediğinde, akış kontrol sistemi bir "alma" sinyali göndererek gönderen ucun bir "iletime devam et" sinyali alana kadar iletimi durdurmasına neden olur. Bu nedenle akış kontrolü veri aktarım sürecini yönetir ve veri kaybını önler. Yaygın olarak kullanılan iki akış kontrolü türü, donanım akış kontrolü (RTS/CTS, DTR/CTS vb. dahil) ve yazılım akış kontrolüdür (XON/XOFF-devam/durdur). Aşağıdaki açıklama yalnızca RTS/CTS kullanan donanım akış kontrolü yöntemine odaklanmaktadır.


Akış kontrolü için donanım kullanıldığında, seri terminalin RTS ve CTS pinleri mikro denetleyicinin I/O bağlantı noktalarına bağlanır ve I/O bağlantı noktalarının 1 veya 0'a ayarlanmasıyla başlatma/durdurma sinyalleri alınır ve iletilir. Veri terminali ekipmanı (bilgisayar gibi) mikro denetleyici tarafından gönderilen veri akışını başlatmak için RTS'yi kullanırken, mikro denetleyici bilgisayardan veri akışını başlatmak ve duraklatmak için CTS'yi kullanır. Bu donanım el sıkışma yöntemini uygulamak için, programlama sırasında alıcı arabelleğin boyutuna göre bir yüksek-seviye işareti ve bir düşük-seviye işareti ayarlanır. Tampondaki veri miktarı yüksek-seviye eşiğe ulaştığında, alıcı uçtaki CTS hattı düşük değere ayarlanır (mantık 0). İletim ucundaki program CTS'nin düşük olduğunu tespit ettiğinde, alma arabelleğindeki veri miktarı düşük-seviye eşiğinin altına düşene ve CTS yüksek olarak ayarlanana kadar veri iletimini durdurur. RTS, alıcı cihazın veri almaya hazır olup olmadığını belirtmek için kullanılır.


3.4 CAN Alım Alt Programı


PeliCAN formatı hem standart hem de genişletilmiş çerçeveleri destekler. CAN modu, saat bölücü kaydındaki CDR.7 kullanılarak yapılandırılabilir (BasicCAN için 0, PeliCAN için 1). CAN verisi alınırken, çerçeve bilgisindeki FF biti bunun standart mı yoksa genişletilmiş çerçeve mi olduğunu belirlemek için kullanılır ve RTR biti uzak çerçeve ile veri çerçevesi arasında ayrım yapmak için kullanılır. Aşağıda CAN alma alt programı verilmiştir:

 

;//////////////////////////////////////////////////////////////////

;//CAN Veri Alımı/2 Bayt Kimlikli Çerçeve Formatında Birleştirildi//

;///////////////////////////////////////////////////////////////////////

 

:

MOV R0, #C_RE ; Mikrodenetleyicinin dahili arabelleğinin başlangıç ​​adresi

MOV DPTR, #RXBUF ; Alma arabelleğinin içeriğini okuyun ve kaydedin

MOVX A, @DPTR ; CAN arabelleğinin ikinci baytını oku

MOV @R0, A; Kaydetmek

JB ACC.7, EFF_RE ; FF biti: 0=SFF, 1=EFF

MOV R2, #0

SJMP SFF_RE; Kimlik numarasına bağlı olarak "veri baytının" yakalandığı konum değişir

EFF_RE: MOV R2, #2

SFF_RE: MOV R2, #2

SFF_RE:

JB ACC.6, EXIT_RECAN ; RTR bitini kontrol edin; 1 ise (uzak çerçeve), dışarı atla

ANL A, #0FH

MOVR3,A; Bu noktada ortadaki 4 bit veri uzunluğunu temsil eder

MOV C_NUM, A; Alınan çerçevenin uzunluğunu R3 ve R5'te saklayın

RDATA0:

INC DPTR; 2 baytlık kimlik

DAHİL R0

MOVX A, @DPTR

MOV @R0, A

INC DPTR

MOVX A, @R0, A

INC DPTR

MOVX A, @DPTR

MOV @R0, A

MOVA, R2; EFF ise iki-bayt kimliğini atlayın

JZ DRATA1

INC DPTR

INC DPTR

VERİ1: ; Veri baytları

INC DPTR

DAHİL R0

MOVX A, @DPTR

MOV @R0, A

DJNZ R3, RDATA1

EXIT_RECAN:

RET

 

4 Sonuç


Bilgisayarların minyatürleştirilmesi, ölçüm ve kontrol araçlarının akıllı bir şekilde geliştirilmesi için gerekli koşulları sağlayarak, mikroişlemci{0}}tabanlı terminal cihazlarının üstün dijital iletişim yeteneklerine sahip olmasını sağladı. Akıllı terminallerin sayısının artmasıyla birlikte ağ mimarisi, protokoller, gerçek-zaman performansının yanı sıra uygulanabilirlik, esneklik, güvenilirlik ve hatta maliyet konusunda daha yüksek talepler ortaya çıkıyor. Sonuç olarak, fieldbus teknolojisi gelecekteki gelişim için büyük umut vaat ediyor. CAN veri yolunun çerçeve yapısı, bir cihaz ağı içinde birden fazla ağ ana bilgisayarına sahip olmayı mümkün kılan bir tanımlayıcı (ID) içerir; yani bu ağ ana bilgisayarları aracılığıyla tüm cihaz ağının operasyonel durumu izlenebiliyor ve ilgili kontrol kararları alınabiliyor. Bu cihaz artık tamamen geliştirildi ve pratik uygulamalarda mükemmel sonuçlar elde etti.

Soruşturma göndermek

whatsapp

Telefon

E-posta

Sorgulama