Bir CAN veri yolu kullanmak için CAN özellikli bir mikrodenetleyici yeterli midir?


45

Bugünlerde mikrodenetleyicilere yerleştirilmiş bir dizi CAN modülü var. PIC18F2480 bunun bir örneğidir. Bu mikrodenetleyici (dahili CAN'lı) bir CAN veriyolunu kendi başına sürdürebilir mi yoksa harici bir CAN alıcı-vericisi / denetleyicisi gerekli mi?

CAN'ın hem yazılım hem de donanım katmanına sahip olduğuna ve bunun göz önüne alındığında, bu CAN etkin mikrodenetleyicilerin yalnızca yazılıma sahip olduğunu düşünüyorum, ancak CAN veriyolunun olduğu gibi kullanabileceğini veya süremediğini belirtmiyor.

CAN veriyolu üzerinden altıdan fazla mikrodenetleyiciye bağlanmak istiyorum ve hepsinde bir alıcı-vericiye ihtiyacım olup olmadığını ya da yerleşik malzemelerin iletişimi bir yazılım ve donanım açısından ele alıp alamayacağını bilmek istiyorum.

Gerekli sonlandırma dirençlerine ve diğer küçük ayrık bileşenlere (kapaklar, dirençler vb.) Sahip olduğumu varsayalım.

Yanıtlar:


55

Bu çok iyi bir soru. Genel bir kural olarak, CAN her düğüm için bir alıcı-vericiye ihtiyaç duyar:

görüntü tanımını buraya girin

Ancak, belirli koşullar altında, herhangi bir alıcı-verici olmadan kurtulabilirsiniz! Bu koşullar:

  • Kısa veri yolu uzunluğu (1 metreden daha az)
  • Tercihen, tüm mikrodenetleyiciler aynı PCB üzerinde veya PCB yığını üzerindedir.
  • Bit hızı düşük
  • Çevre çok elektriksel olarak gürültülü değil

Bunlar zor kurallar değil. Çok kısa bir veriyoluna (10 cm) sahipseniz, maksimum bit hızında (1 MB / sn) kurtulursunuz.

Bunu başarmak için, alıcı vericinin ne yaptığı hakkında biraz bilgi sahibi olmanız gerekir. Çoğu alıcı vericide olduğu gibi, veri yoluna yüksek veya alçak bir değer verebilir (1 ve 0'ı temsil eder), ancak 0 1'i baskın hale getirebilir. 0 diyor, sonra 0 kazanacak. Aynı durumu sadece diyotları kullanarak yeniden yaratabiliriz:

Basit can

Seimens uygulama notuna bakınız AP2921: Alıcı-Verici olmadan CAN Üzerinden Yerleşik İletişim

Ancak burada daha da ilginç bir şey var: PIC aslında alıcı-verici CAN için donanım desteğine sahip!

CIOCON Kayıt

CAN TX pinini, telsizle tam olarak aynı şekilde çalışacak şekilde yapılandırabilirsiniz. Bu, CAN veriyolunu diyotlar olmadan bağlayabileceğiniz anlamına gelir. Yine de dirençe ihtiyacınız olacak.

Basit CAN


2
Kesinlikle harika cevap. Cevapladığınız zaman için teşekkür ederim. Alıcı-verici ile gitmek zorunda kalabilirim çünkü çok fazla elektriksel gürültü olabilir ve her şey bir "kutuya" yerleştirilmiş olsa da, çoklu bilgisayarlarda olacaktır. Tekrar teşekkürler!
efox29

@ efox29 - Bir şey değil. Mümkünse, alıcı-vericilere gitmek kesinlikle daha iyi.
Rocketmagnet

Bu telsizsiz kurulum benim için yeniydi ve uzun mesafelerde basit bir kontrolör ağı kurmak için çok ilginç görünüyor. Güzel!
0x6d64

@ 0x6d64 - Uzun süre ihtiyacınız varsa, düşük bit hızı kullanmayı unutmayın ve dönüş hızı kenarları sınırlandırın.
Rocketmagnet

1
Veri yolu üzerindeki tüm cihazlar aynı konfigürasyonu kullanıyorsa ve tek kablolu bir CAN veriyolu kullanıyorsa, bunun işe yarayacağını unutmayın. Gerçekten "gerçek" ISO CAN olan ve iki kablolu bir veri yolu kullanan başka bir şeyle arabirim oluşturmak istiyorsanız, bu mod çalışmaz.
Jon Watte

10

LPC11Cxx (ARM Cortex-M0 bazlı) mikroişlemcisi aile yonga üzerindeki CAN alıcı verici sayılabilir.


3
Evet. Sağ. OP, PIC18 hakkında soru sorar. Bu gerçekten yardımcı değil.
Federico Russo

4
@ FedericoRusso, PIC18 ile bir örnek veriyor ve timrorr, dahili sürücüyle bir çözüm üretti. Bunun ne sorunu var?
clabacchio

8
@ FedericoRusso - Çok anal olmayın. Bu cevap çok ilginç.
Rocketmagnet

1
@Rocketmagnet: Öyleyse S: "X'i nasıl yaparım?" A: "Y. Yap" Sonuçta sorun yok mu? (Kendi cevabınızdan)
Federico Russo

2
@FedericoRusso - Eğer soru OP'nin memnuniyetine uygun şekilde cevaplandıysa ve birisi ilginç bazı bilgilerden bahsederse, neden olmasın?
Rocketmagnet

9

Evet, bir tercümana ihtiyacın var. Mikro üzerindeki CAN pinleri alınır ve iletilir. CAN veriyolunun kendisi, YÜKSEK ve DÜŞÜK olarak adlandırılan iki kabloda diferansiyel sinyalli bir bükümlü çift kullanır.

Telsizin işlerinden biri, TX piminde sunduğunuz mantık seviyesini alıp CAN veri yolu sinyallerine çevirmektir:

  • bir mantık '1' veri yolu sürmeyerek temsil edilir, bu yüzden YÜKSEK ve DÜŞÜK çizgiler "CAN" teriminde "resesifite biti" olarak adlandırılan 2.5V'ye "kayar".
  • bir "0" mantığı, iletilen herhangi bir girinti bitini geçersiz kılacağından HIGH çizgisini yüksek ve LOW çizgisini düşük - "baskın bit" olarak adlandırmak suretiyle temsil edilir.

Diğeri ise otobüste olanı almak ve RX piminden mikro bilgisayarınıza geri göndermek için tekrar bir mantık seviyesine getirmektir.


8

CPU ve CAN veriyolu arasında bir CAN alıcı-verici yongasına ihtiyacınız var. MCP2551'i inceleyin.

17 Ağustos 2017 Güncellemesi:

Şu an Microchip Masters konferansındayım. Microchip mühendisleri tarafından Atmel'in satın alınmasından kaynaklanan yeni parçalardan birinin MCP2551'den daha ucuz ve daha iyi olduğu söylendi.


1
Mikroçip tavsiyesinde 2561 şimdi 2551 üzerinde. NXP'nin bazı ilginç CAN çipleri de var. MCU'ların çoğu bir alıcı-vericiye ihtiyaç duyar.
Ludwig Schreier

2

Analog cihazlarda diferansiyel amplifikatör kullanan örnek bir CAN alıcı verici devresi vardır .
Bunu denemedim, sadece farkındayım. Ayrıca bir op-amp ile uygulanabilirse ilgileniyor

analog devresi

Özel IC CAN alıcı vericisini kullanmanın avantajları, sizin için tahkim işlemlerini gerçekleştirmeleri ve otobüse müdahale konusunda endişelenmenize gerek kalmamasıdır. Sadece veriyolu gözlemliyorsanız ve bu kritik bir hata ortamı değilse, devre iyi olabilir. Mcp2551 çok popüler olmasına rağmen, arayüz çipleri için birçok seçenek var.

Yeni bir evrim, voltaj regülasyonu, güç modları ve veri yolundan ESD koruması içeren Sistem Taban tipi fişlerdir.

Yukarıda bahsedilen timorr gibi, NXP'nin LCP11C24'ü işlemcinin CAN alıcı-vericisini içermesi bakımından benzersizdir. Bununla bir demo kartı sadece 19 dolar. Düşük maliyetli bir başka çözüm ise 9.38 $ Cypress PSoC5 demo kartı olan CY8CKIT-059'u kullanmak. PSoC5'in bir CAN denetleyicisi yoktur; bir adım daha ileri gidiyor: kontrol ünitesi FPGA benzeri üniversal bloklara yerleştirilir. Kontrol ünitesinin kayıtları IDE'nin GUI'si ile yapılandırılmış ve filtreleme ve Ar-Ge'yi oldukça kolaylaştırmıştır.

Veri sayfalarını incelerken bulduğum önemli bir yöntem mcu TTL'nin CAN-Tx ve CAN-Rx, vericilerin veri yolunun veri yoluna her zaman CAN-H ve CAN-L olarak etiketlenmiş olmasıdır. TxRx'in veriyoluna bağlı olarak gösterildiği diğer cevaptaki diyagramlardan hoşlanmıyorum; bu kongreye aykırıdır ve karışıklığa katkıda bulunur.

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.