Mündəricat:
- Təchizat
- Addım 1: Alıcı -verici dövrəsi
- Addım 2: CAN Avtobusuna Oxumaq və Yazmaq
- Addım 3: Qovşaqları birləşdirin
- Addım 4: PCB hazırlayın
- Addım 5: İdarə Heyətinin genişləndirilməsi
- Addım 6: PCB -lərinizi JLCPCB -dən sifariş edin
- Addım 7: Lövhələrinizi alın
Video: STM32 CAN interfeysi: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
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
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
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
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 ü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
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
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
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ə:
I²C İnterfeysi ilə Statik LCD Sürücü Necə Hazırlanır: 12 Addım
I²C İnterfeysi ilə Statik LCD Sürücü Necə Hazırlanır: Maye Kristal Ekranlar (LCD) yaxşı vizual xüsusiyyətlərə, aşağı qiymətə və aşağı enerji istehlakına görə ticarət və sənaye tətbiqlərində geniş istifadə olunur. Bu xüsusiyyətlər LCD-ni batareya ilə işləyən qurğular üçün standart bir həll halına gətirir
Arduino Uzay Gəmisi İnterfeysi: 3 addım
Arduino Uzay Gəmisi İnterfeysi: Salam Təlim oluna bilən icma, bu dəfə Arduino Uno ilə tamamlamaq üçün ən sadə layihələrdən birini hazırladım: bir uzay gəmisi dövrəsi. Erkən elmi-fantastik TV şoularında və filmlərində istifadə ediləcək proqramlaşdırma və sxem növü olduğu üçün belə adlandırılır
PhidgetSBC3 üçün Tam Python Veb İnterfeysi Kit: 6 Addım
PhidgetSBC3 üçün Tam Python Veb İnterfeysi Kit: The PhidgetSBC3 lövhəsi, Debain Linux ilə işləyən tam funksiyalı Tək Lövhəli Kompüterdir. Moruq Pi -yə bənzəyir, lakin 8 analoq sensoru girişi və 8 rəqəmsal girişi və 8 rəqəmsal çıxışı var. Bir veb serveri və veb tətbiqi ilə birlikdə göndərilir
I2C Sensor İnterfeysi ilə Başlarsınız? - ESP32s istifadə edərək MMA8451 interfeysi: 8 addım
I2C Sensor İnterfeysi ilə Başlarsınız? - MMA8451 -in ESP32 -lərdən istifadə edərək interfeysi: Bu təlimatda, nəzarətçi ilə işləyən (Arduino, ESP32, ESP8266, ESP12 NodeMCU) işləyən I2C cihazının (Akselerometr) necə işə salınması, qoşulması və alınması haqqında hər şeyi öyrənəcəksiniz
MIDI addım interfeysi: 12 addım (şəkillərlə)
MIDI Addım İnterfeysi: İspan versiyası burada.Bu təlimatda sizə " Simon Says " və MIDI interfeysi kimi. Hər iki rejim də ayaqlarınızla oynanılacaq. Arka Plan Layihə ona görə doğuldu ki