Mündəricat:

STM32 CAN interfeysi: 7 addım
STM32 CAN interfeysi: 7 addım

Video: STM32 CAN interfeysi: 7 addım

Video: STM32 CAN interfeysi: 7 addım
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, Noyabr
Anonim
STM32 CAN Arayüzü
STM32 CAN Arayüzü

Controller Area Network bus və ya CAN bus, yüksək sürətli qabiliyyətləri, uzun məsafəli etibarlılığı və səs -küy toxunulmazlığı sayəsində çox təsirli bir əlaqə protokoludur. Bu səbəblərdən CAN rabitəsi avtomobil texnologiyalarında və yüksək səs -küy mühitində standart halına gəldi. CAN avtobusundakı qurğular qovşaq adlanır. CAN avtobusundakı bütün qovşaqlar paralel olaraq bağlanır, yəni hər bir düyün şəbəkədəki bütün digər qovşaqlara bağlıdır. Bir CAN avtobusunun mesaj ötürmə sürətindən asılı olaraq bir anda 115 -ə qədər qovşağı ola bilər, lakin əksər tətbiqlər üçün 32 -ə qədər cihazın olması məsləhət görülür. İlk və son qovşaq arasındakı uzunluğu bir -birindən 40 metrdən az saxlamaq məsləhətdir.

Bu addım-addım təlimat, CAN avtobusuna oxumaq və yazmaq üçün sxem və sadə C kodu da daxil olmaqla STM32 mikro nəzarətçisini istifadə edərək bir CAN düyünün necə qurulacağını göstərəcəkdir.

Təchizat

Hər CAN düyünü üçün:

  • 1x STM32 qırılma lövhəsi (Nucleo, Blue Pill, digərləri)
  • 1x MCP2551 CAN ötürücü IC
  • 1x 0.1µF kondansatör
  • 1x 120Ω müqavimət
  • 1x 1kΩ rezistor
  • 1+ oxunaqlı giriş (düymə, keçid, potensiometr və s.) Və ya çıxış (LED, MOSFET və s.)
  • 1x Dsub9 konnektoru

Addım 1: Alıcı -verici dövrəsi

Alıcı -verici dövrəsi
Alıcı -verici dövrəsi

CAN avtobusu ilə əlaqə qurmaq üçün MCP2551 CAN ötürücü IC -dən istifadə edəcəyik. IC, STM32 -ni CAN avtobusuna bağlamaq üçün ara ötürücü/alıcı cütü kimi çıxış edir. Bu IC -nin qurulması dövrəsi olduqca sadədir, lakin nəzərə alınması lazım olan bir neçə şey var:

  • MCP2551 çipindəki CAN_RX (pin 4) və CAN_TX (pin 1) yalnız STM32 üzərindəki müəyyən pinlərə gedə bilər.

    • STM32F1 Nucleo -da, RX xəttini PB8 pininə və TX xəttini PB9 pininə qoşun.
    • STM32F1 mavi həbdə RX -i PA11 pininə və TX -i PA12 pininə bağlayın.
    • Bu pin tapşırıqlarının alternativləri olduğunu unutmayın. Hansı pinlərin CAN_RD və CAN_TD -yə qadir olduğunu müəyyən etmək üçün mikrokontrolör təlimatlarına baxın.
    • Bir Arduino və ya CAN kommunikatoru olmayan bir lövhə istifadə edirsinizsə, MCP2515 IC çipi digər mesaj protokollarını CAN -a çevirmək üçün tələb olunacaq.
  • CANL pin, digər avtobus qovşaqlarının digər CANL pinlərinə bağlanmalıdır. Eyni şey CANH pinləri üçün də keçərlidir.
  • CANH və CANL pinlərindəki 120Ω rezistor yalnız düyün terminal qovşaq olduqda tələb olunur. Bu o deməkdir ki, paralel əlaqə naqillərinin sonundadır. Başqa sözlə, CAN avtobusunun içərisində yalnız iki ədəd 120Ω rezistor olmalıdır və onlar bir -birindən mümkün qədər uzaq olmalıdır.
  • Nəhayət, RS (pin 8) üzərindəki 1kΩ rezistor, CAN mesaj bitlərinin yüksələn/düşən vaxtını idarə etmək üçün 10kΩ rezistora dəyişdirilə bilər. Daha ətraflı məlumat üçün MCP2551 çip məlumat cədvəlinə baxın.

Addım 2: CAN Avtobusuna Oxumaq və Yazmaq

Oxu və CAN Avtobusuna Yaz
Oxu və CAN Avtobusuna Yaz

Artıq qəbuledici sxem STM32 -yə qoşulduğundan CAN avtobusuna mesaj yazmağa başlaya bilərik. Bu təlimatlı bələdçi STM32 koduna dərindən girməyəcək. Ancaq burada nümunələr üçün kodumuza baxdığınızdan əmin olun. STM32 -ni CAN qovşağı olaraq istifadə etmək üçün CAN başlıq faylı tələb olunur. Githubumuzda tapa biləcəyimiz öz yazdıq. Burada oxu/yazma prosesinə qısa bir baxış verəcəyik.

CAN avtobusundan oxumaq üçün əvvəlcə CAN mesajının kimliyini bilməliyik. Hər bir mesajın özünəməxsus identifikatoru olmalıdır, daha aşağı identifikatorlar daha yüksək prioritetə malikdir. Burada göstərilən kod parçası, 0x622 ID ilə bir CAN mesajı gözləyir. Sistemimizdə, 6 -cı baytın ilk biti yüksəkdirsə, A10 pinini yüksək təyin etmək istəyirik.

CAN mesajı yazarkən, CAN mesajlarının çox baytlı olduğunu xatırlamalıyıq. Hər bir yazılı şəxsiyyət nömrəsi və uzunluğu olmalıdır. Göstərilən ikinci kod parçasında hər bayta məlumat yazırıq, sonra mesajı göndəririk (ID və uzunluq parametrləri kodun əvvəlində müəyyən edilmişdir).

Addım 3: Qovşaqları birləşdirin

Bağlantı Nodları
Bağlantı Nodları

Birdən çox CAN qovşağını bağlayarkən, kabellərin uzunluğuna diqqət yetirilməlidir. Ən uzaq iki qovşaq bir -birindən 40 m aralıda ola bilər. Avtobusa qoşulan orta qovşaqlar əsas avtobus xətlərindən 50 sm aralıda olmalıdır.

CAN əlaqələri, pin 2 -də CANL xətti və pin7 -də CANH xətti olan bir Dsub9 konnektoru istifadə edən sənaye standartına uyğundur. Seçim CANGND xətti pin 3 -də gedə bilər.

Addım 4: PCB hazırlayın

PCB düzəldin
PCB düzəldin

PCB üzərində CAN siqnallarını yönləndirərkən, CAN -ın diferensial siqnal olduğunu unutmayın və beləliklə CANH və CANL üçün yönləndirmə təlimatlarına diqqətlə riayət olunmalıdır.

Addım 5: İdarə Heyətinin genişləndirilməsi

İdarə Heyətinin genişləndirilməsi
İdarə Heyətinin genişləndirilməsi

Daha bir neçə qovşaq atın, bəzi girişlər/çıxışlar əlavə edin və bütün CANH və CANL pinlərini bağlayın. Qeyd edək ki, hər bir STM32 və ya digər mikro nəzarətçi öz MCP2551 çipini tələb edir; paylaşıla bilməzlər.

Bununla birlikdə, PCB -lərinizi burada göstəriləndən daha kiçik tutmağa çalışın

Addım 6: PCB -lərinizi JLCPCB -dən sifariş edin

PCB -lərinizi JLCPCB -dən sifariş edin
PCB -lərinizi JLCPCB -dən sifariş edin

JLCPCB çox münasib qiymətlərlə sürətli və keyfiyyətli xidmət təqdim edir. Yalnız 2 dollara, tonlarla fərdiləşdirmə ilə istənilən rəngdə 5 lövhə alın! İlk sifarişinizdirsə, eyni qiymətə 10 lövhə alın!

Gerberlərinizi yükləyin və dərhal bir təklif alın! Sifarişinizi verin və lövhələriniz bir saat ərzində istehsal üçün nəzərdən keçiriləcək. Ödəniş etdikdən sonra yüksək keyfiyyətli lövhələrinizi üç gün ərzində gözləyə bilərsiniz!

Burada yoxlayın

Addım 7: Lövhələrinizi alın

Lövhələrinizi alın!
Lövhələrinizi alın!

Bu layihəyə sponsorluq etmək üçün JLCPCB -yə böyük qışqırıqlar. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), Çinin ən böyük PCB prototip müəssisəsidir və sürətli PCB prototipləşdirmə və kiçik partiyalı PCB istehsalında ixtisaslaşmış yüksək texnologiyalı bir istehsalçıdır. UBC Solar-ı günəş enerjisi ilə çalışan yarış avtomobilimiz üçün yeni PCB-lərimizlə təmin edəcək qədər mehriban idilər. Cümə günü sifariş verdik və çərşənbə günü lövhələr aldıq!

Tövsiyə: