Daftar Isi:

Antarmuka CAN STM32: 7 Langkah
Antarmuka CAN STM32: 7 Langkah

Video: Antarmuka CAN STM32: 7 Langkah

Video: Antarmuka CAN STM32: 7 Langkah
Video: CAN BUS Communication Using MCP2515 Module. 2024, Juli
Anonim
Antarmuka CAN STM32
Antarmuka CAN STM32

Bus Controller Area Network, atau bus CAN, adalah protokol komunikasi yang sangat efektif berkat kemampuan kecepatan tinggi, keandalan jarak jauh, dan kekebalan kebisingan. Untuk alasan ini, komunikasi CAN telah menjadi standar dalam teknologi otomotif dan lingkungan dengan kebisingan tinggi. Perangkat pada bus CAN disebut node. Semua node pada bus CAN terhubung secara paralel, artinya setiap node terhubung ke semua node lain di jaringan. Satu bus CAN dapat memiliki hingga 115 node sekaligus, tergantung pada kecepatan transmisi pesan, tetapi untuk sebagian besar aplikasi, disarankan untuk memiliki hingga 32 perangkat. Disarankan juga untuk menjaga jarak antara simpul pertama dan terakhir kurang dari 40 meter.

Tutorial langkah demi langkah ini akan menunjukkan kepada Anda cara mengatur node CAN menggunakan mikrokontroler STM32, termasuk rangkaian dan kode C sederhana untuk membaca dan menulis ke bus CAN

Perlengkapan

Untuk setiap simpul CAN:

  • 1x papan breakout STM32 (Nucleo, Pil Biru, lainnya)
  • 1x MCP2551 BISA transceiver IC
  • 1x 0.1µF kapasitor
  • 1x 120Ω resistor
  • 1x 1kΩ resistor
  • 1+ input yang dapat dibaca (tombol, sakelar, potensiometer, dll.) atau output (LED, MOSFET, dll.)
  • 1x konektor Dsub9

Langkah 1: Sirkuit Transceiver

Sirkuit Pemancar
Sirkuit Pemancar

Untuk berkomunikasi dengan bus CAN, kita akan menggunakan IC transceiver CAN MCP2551. IC bertindak sebagai pasangan pemancar/penerima perantara untuk menghubungkan STM32 ke bus CAN. Rangkaian untuk menyetel IC ini cukup sederhana, namun ada beberapa hal yang perlu diperhatikan:

  • CAN_RX (pin 4) dan CAN_TX (pin 1) pada chip MCP2551 hanya dapat masuk ke pin tertentu pada STM32.

    • Pada Nucleo STM32F1, sambungkan jalur RX ke pin PB8 dan jalur TX ke pin PB9.
    • Pada pil biru STM32F1, sambungkan RX ke pin PA11 dan TX ke pin PA12.
    • Perhatikan bahwa penetapan pin ini memiliki alternatif. Lihat manual mikrokontroler untuk menentukan pin mana yang mampu CAN_RD dan CAN_TD
    • Jika menggunakan Arduino atau papan tanpa komunikator CAN bawaan, chip IC MCP2515 akan diminta untuk mengubah protokol pesan lain menjadi CAN.
  • Pin CANL harus terhubung ke pin CANL lain dari node bus lainnya. Hal yang sama berlaku untuk pin CANH.
  • Resistor 120Ω melintasi pin CANH dan CANL hanya diperlukan jika simpulnya adalah simpul terminal. Ini berarti bahwa itu berada di ujung kabel koneksi paralel. Dengan kata lain, bus CAN seharusnya hanya memiliki dua resistor 120Ω di dalamnya, dan mereka harus berjauhan satu sama lain sejauh mungkin.
  • Terakhir, resistor 1kΩ pada RS (pin 8) dapat ditukar dengan resistor 10kΩ untuk mengontrol waktu naik/turun dari bit pesan CAN. Lihat lembar data chip MCP2551 untuk detail selengkapnya.

Langkah 2: Membaca dan Menulis ke CAN Bus

Membaca dan Menulis ke CAN Bus
Membaca dan Menulis ke CAN Bus

Sekarang rangkaian transceiver terhubung ke STM32, kita dapat mulai menulis pesan ke bus CAN. Panduan yang dapat diinstruksikan ini tidak akan membahas kode STM32 secara mendalam. Namun, pastikan untuk memeriksa kode kami untuk contoh di sini. Menggunakan STM32 sebagai node CAN akan membutuhkan file header CAN. Kami menulis sendiri, yang dapat ditemukan di github kami di sini. Di sini, kami akan memberikan gambaran singkat tentang proses baca/tulis.

Untuk membaca dari bus CAN, pertama-tama kita perlu mengetahui ID dari pesan CAN. Setiap pesan harus memiliki ID unik, dengan ID yang lebih rendah memiliki prioritas yang lebih tinggi. Cuplikan kode yang ditampilkan di sini sedang menunggu pesan CAN dengan ID 0x622. Di sistem kami, jika bit pertama dari byte ke-6 tinggi, maka kami ingin mengatur pin A10 tinggi.

Saat menulis pesan CAN, kita harus ingat bahwa pesan CAN adalah multi-byte. Setiap pesan tertulis harus memiliki ID dan panjangnya. Dalam potongan kode kedua yang ditampilkan, kami menulis data ke setiap byte, lalu mengirim pesan (Parameter ID dan panjang ditentukan sebelumnya dalam kode).

Langkah 3: Menghubungkan Node

Menghubungkan Node
Menghubungkan Node

Saat menghubungkan beberapa node CAN, perhatian harus diberikan pada panjang kabel. Dua simpul terjauh dapat berjarak hingga 40m satu sama lain. Node tengah yang menghubungkan ke bus harus berada dalam jarak 50cm dari jalur bus utama.

Sambungan CAN mengikuti standar industri menggunakan konektor Dsub9 dengan saluran CANL pada pin 2 dan saluran CANH pada pin7. Opsi CANGND line bisa masuk ke pin 3.

Langkah 4: Buat PCB

Buat PCBnya
Buat PCBnya

Saat merutekan sinyal CAN pada PCB, ingatlah bahwa CAN adalah sinyal diferensial, dan dengan demikian, pedoman perutean untuk CANH dan CANL harus diikuti dengan hati-hati.

Langkah 5: Memperluas Papan

Memperluas Dewan
Memperluas Dewan

Lempar beberapa node lagi, tambahkan beberapa input/output, dan hubungkan semua pin CANH dan CANL mereka. Perhatikan bahwa setiap STM32 atau mikrokontroler lainnya memerlukan chip MCP2551 sendiri; mereka tidak dapat dibagikan.

Dengan itu, cobalah untuk menjaga PCB Anda lebih kecil dari yang ditunjukkan di sini

Langkah 6: Pesan PCB Anda Dari JLCPCB

Pesan PCB Anda Dari JLCPCB
Pesan PCB Anda Dari JLCPCB

JLCPCB menawarkan layanan cepat dan berkualitas tinggi dengan harga yang sangat wajar. Dapatkan 5 papan, warna apa saja dengan banyak penyesuaian, hanya dengan $2! Dan jika ini adalah pesanan pertama Anda, dapatkan 10 papan dengan harga yang sama!

Cukup unggah gerber Anda dan dapatkan penawaran instan! Kirim pesanan Anda dan papan Anda akan ditinjau untuk produksi dalam waktu satu jam. Setelah Anda membayar, Anda dapat mengharapkan papan berkualitas tinggi Anda dalam waktu tiga hari!

Lihat disini

Langkah 7: Dapatkan Papan Anda

Dapatkan Papan Anda!
Dapatkan Papan Anda!

Teriakan besar untuk JLCPCB karena telah mensponsori proyek ini. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), adalah perusahaan prototipe PCB terbesar di Cina dan produsen teknologi tinggi yang mengkhususkan diri dalam pembuatan prototipe PCB cepat dan produksi PCB batch kecil. Mereka cukup baik untuk menyediakan UBC Solar dengan PCB baru kami untuk mobil balap bertenaga surya kami. Kami memesan pada hari Jumat dan mendapatkan papan pada hari Rabu!

Direkomendasikan: