CAN veri yolu üzerinden bir ağ katmanı seçme


10

Endüstriyel bir otomasyon uygulamasında CAN veri yolu kullanmayı planlıyorum, ancak ağ katmanının nasıl uygulanacağına karar vermekte zorlanıyorum. Buradaki herhangi birinin, CAN üzerinden kullanması için mesaj kimliklerinin nasıl atanacağı ve veri paketlerinin nasıl biçimlendirileceği hakkında yönergeler sağlayan daha yüksek bir katman protokolü için önerileri var mı? Kendi özel ağ katmanımı geliştirmeli miyim veya CANopen gibi mevcut bir standardı mı uygulamalıyım?

Yanıtlar:


7

Kesinlikle standart bir ağ katmanı seçmek isteyeceksiniz. İnsanların kendi başlarına döndüğü bazı durumlar gördüm ve genellikle protokol verimsiz ve sonunda zaman kaybı. Kanıtlanmış bir ağ katmanı, yerleşik bir aygıtla ağ oluşturmada karşılaşacağınız sorunların çoğunu çözmek için temel işlevler sağlar ve bu da size değerli zaman ve para tasarrufu sağlar.

CANopen'e aşinam var, bu yüzden buraya biraz açıklama yapacağım ve gitmek istediğiniz yolun bu olup olmadığına karar vermenize yardımcı olabilir. Yapmanız gerekene uymuyorsa, başka bir şeye bakardım.

CANopen çok veri merkezlidir. Tüm CANopen bağımlı düğümleri (sensörler veya motor sürücüleri gibi bir ana düğümden kontrol ettiğiniz şeyler) işinizi yapmak için okumanız / yazmanız gereken tüm yapılandırma, kontrol ve veri toplama verilerini içeren bir sözlük sağlar. Daha sonra bu nesneleri SDO (servis veri nesnesi) mekanizması aracılığıyla ayrı ayrı okuyabilir / yazabilir veya PDO (üretici veri nesnesi) mekanizması aracılığıyla zamanlanmış CAN mesajı iletimlerinde bu nesneleri periyodik olarak okuyabilir / yazabilirsiniz. Başlatma, kapatma ve sıfırlama ve kalp atışı / düğüm arızası tespiti, NMT hizmetlerinin yanı sıra bir düğüm kimliği atama hizmetinden (kullanmak istiyorsanız) sağlanır. Gömülü bir CANOpen kütüphanesi kullanarak bir cihaz uygulamak için temel olarak bir nesne sözlüğü ayarlarsınız, PDO'ları düzenli aralıklarla veri güncellemeleri gönderir / alır, ve bu veri girişlerine göre davranan kullanıcı kodunu yazın. CANopen'in sağladığı başka şeyler de var, ama bunun büyük kısmı bu. Daha fazla bilgi için bu kitabı okuyun.


Kitap, CANCen'in MicroCANopen adlı bir uygulamasından bahsediyor. Hangi CANopen uygulamasını kullanıyorsunuz?
mjh2007

1
@ mjh2007 - Başka bir protokolle birlikte kullanılması gerektiğinden kendimizi yuvarladık.
J. Polfer

"CANOpen" -> "CANopen"
Peter Mortensen

7

Çoğunlukla özel bir ağ katmanı kullanan GM araçlarında CAN veriyoluna erişmek için kod yazıyorum. OpenCAN'a baktınız mı? CANOpen ve hatta OpenCAN gibi açık bir standart seçerdim. Gerçekten otomasyon ortamınızda istediğiniz kontrol ve esneklik düzeyine bağlıdır.


7
bir OpenCAN ve CANOpen var mı? aiggh! korkunç adlandırma.
Jason S

1
@ Jason, microsoft'u suçluyorum.
Kortuk

5

Harika cevaplar oldu. Hangi mikroyu kullandığınızı bilmiyorum, ama burada mikroçipten bazı bilgilere bağlantılar var.

J1939 kütüphanesi

CAN ile PIC18 için DeviceNet ™ Grup 2 Bağımlı Ürün Yazılımı

Açılabilir

Her birinin kodu ve bunları uygulamak için neye ihtiyacınız olduğunu bildiren temel bir veri sayfası vardır.


1
Aslında Microchip kullanıyorum, bu çok yardımcı oluyor. Teşekkürler!
mjh2007

1
Bunların hepsi pic18 için. CANopen ile diğerlerinde ayarları değiştiren bir ustanız var gibi görünüyor, canbus kullanımımın çoğu için bu mükemmel bir şekilde uyuyor.
Kortuk

CANopen'i uygulamak için Microchip kütüphanesini kullanıyor musunuz?
mjh2007

1
Uygulama sürecinde, bu yavaş bir süreçtir çünkü birçok farklı insanın sistem değişikliği yapmamı taahhüt etmesini gerektirir. Yardımcı olursa uygulandığında sizi güncelleyeceğim.
Kortuk

1
@ mjh2007, işlemci için çalışmayı bıraktım ve devralan öğrenciler daha önce olduğu gibi önceki donanımı kullanmamaya ve daha rahat oldukları bir şey satın almaya karar verdi. Yine profesörler projesinde ilerleme yok, ancak bir profesör neler olup bittiğini bilmediğinde ve insanların yılda bir kez her şeyi değiştirmesine izin verdiğinde olur.
Kortuk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.