Isi kandungan:
- Bekalan
- Langkah 1: Litar Pemancar
- Langkah 2: Membaca dan Menulis ke Bas CAN
- Langkah 3: Menghubungkan Nod
- Langkah 4: Buat PCB
- Langkah 5: Memperluas Lembaga
- Langkah 6: Pesan PCB anda dari JLCPCB
- Langkah 7: Dapatkan Papan Anda
Video: Antaramuka STM32 DAPAT: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Bas Rangkaian Kawasan Pengawal, atau bas CAN, adalah protokol komunikasi yang sangat berkesan berkat kemampuan berkelajuan tinggi, kebolehpercayaan jarak jauh, dan kekebalan bunyi. Atas sebab-sebab ini, komunikasi CAN boleh menjadi standard dalam teknologi automotif dan persekitaran dengan kebisingan yang tinggi. Peranti di bas CAN dipanggil nod. Semua nod pada bus CAN disambungkan secara selari, yang bermaksud bahawa setiap nod disambungkan ke semua nod lain di rangkaian. Bas CAN tunggal boleh mempunyai hingga 115 node sekaligus, bergantung pada kadar penghantaran mesej, tetapi untuk kebanyakan aplikasi, disarankan untuk memiliki hingga 32 peranti. Dianjurkan juga untuk memastikan jarak antara simpul pertama dan terakhir kurang dari 40 meter.
Tutorial langkah demi langkah ini akan menunjukkan kepada anda cara mengatur simpul CAN menggunakan mikrokontroler STM32, termasuk litar dan kod C ringkas untuk membaca dan menulis ke bas CAN
Bekalan
Untuk setiap nod CAN:
- 1x papan pelarian STM32 (Nucleo, Blue Pill, lain-lain)
- 1x MCP2551 DAPAT IC transceiver
- Kapasitor 1x 0.1µF
- Perintang 1x 120Ω
- Perintang 1x 1kΩ
- 1+ input yang boleh dibaca (butang, suis, potensiometer, dll.) Atau output (LED, MOSFET, dll.)
- Penyambung 1x Dsub9
Langkah 1: Litar Pemancar
Untuk berkomunikasi dengan bas CAN, kami akan menggunakan IC transceiver MCP2551. IC bertindak sebagai pasangan pemancar / penerima antara untuk menghubungkan STM32 ke bas CAN. Litar untuk menyediakan IC ini agak mudah, tetapi ada beberapa perkara yang perlu diperhatikan:
-
CAN_RX (pin 4) dan CAN_TX (pin 1) pada cip MCP2551 hanya boleh masuk ke pin tertentu pada STM32.
- Pada STM32F1 Nucleo, sambungkan garis RX ke pin PB8 dan garis TX ke pin PB9.
- Pada pil biru STM32F1, sambungkan RX ke pin PA11 dan TX ke pin PA12.
- Perhatikan bahawa penugasan pin ini mempunyai alternatif. Rujuk manual mikrokontroler untuk menentukan pin mana yang mampu CAN_RD dan CAN_TD
- Sekiranya menggunakan Arduino atau papan tanpa komunikator CAN terpasang, cip IC MCP2515 akan diminta untuk menukar protokol mesej lain menjadi CAN.
- Pin CANL harus disambungkan ke pin CANL lain dari nod bas yang lain. Perkara yang sama berlaku untuk pin CANH.
- Perintang 120Ω melintasi pin CANH dan CANL hanya diperlukan jika nod adalah nod terminal. Ini bermaksud bahawa ia berada di hujung pendawaian sambungan selari. Dengan kata lain, bas CAN hanya boleh mempunyai dua perintang 120Ω di dalamnya, dan mereka harus berjauhan antara satu sama lain.
- Terakhir, perintang 1kΩ pada RS (pin 8) boleh ditukar dengan perintang 10kΩ untuk mengawal masa naik / turun bit mesej CAN. Rujuk lembaran data cip MCP2551 untuk maklumat lebih lanjut.
Langkah 2: Membaca dan Menulis ke Bas CAN
Setelah litar transceiver disambungkan ke STM32, kita boleh mula menulis mesej ke bas CAN. Panduan yang boleh dipelajari ini tidak akan menerangkan secara mendalam kod STM32. Walau bagaimanapun, pastikan untuk melihat kod kami untuk contoh di sini. Menggunakan STM32 sebagai simpul CAN akan memerlukan fail tajuk CAN. Kami menulis sendiri, yang boleh didapati di github kami di sini. Di sini, kami akan memberikan gambaran ringkas mengenai proses membaca / menulis.
Untuk membaca dari bas CAN, pertama-tama kita perlu mengetahui ID mesej CAN. Setiap mesej harus mempunyai ID yang unik, dengan ID yang lebih rendah mempunyai keutamaan yang lebih tinggi. Coretan kod yang ditunjukkan di sini sedang menunggu mesej CAN dengan ID 0x622. Dalam sistem kami, jika bit pertama dari bait ke-6 tinggi, maka kami ingin menetapkan pin A10 tinggi.
Semasa menulis mesej CAN, kita mesti ingat bahawa mesej CAN adalah berbilang bait. Setiap mesej bertulis mesti mempunyai ID dan panjang. Dalam coretan kedua kod yang ditunjukkan, kami menulis data ke setiap bait, kemudian mengirim mesej (Parameter ID dan panjang ditentukan sebelumnya dalam kod).
Langkah 3: Menghubungkan Nod
Semasa menyambungkan beberapa nod CAN, perhatian yang teliti harus diberikan pada panjang kabel. Kedua-dua nod paling jauh dapat berjauhan antara satu sama lain. Node tengah yang menghubungkan ke bas harus berada dalam jarak 50cm dari laluan bas utama.
Sambungan CAN mengikuti standard industri menggunakan penyambung Dsub9 dengan garis CANL pada pin 2 dan garis CANH pada pin7. Garis pilihan CANGND boleh masuk pada pin 3.
Langkah 4: Buat PCB
Semasa merutekan isyarat CAN pada PCB, ingatlah bahawa CAN adalah isyarat pembezaan, dan dengan itu, panduan routing untuk CANH dan CANL harus diikuti dengan teliti.
Langkah 5: Memperluas Lembaga
Masukkan beberapa lagi nod, tambahkan beberapa input / output, dan sambungkan semua pin CANH dan CANL mereka. Perhatikan bahawa setiap STM32 atau mikrokontroler lain memerlukan cip MCP2551 sendiri; mereka tidak boleh dikongsi.
Dengan itu, cuba pastikan PCB anda lebih kecil daripada yang ditunjukkan di sini
Langkah 6: Pesan PCB anda dari JLCPCB
JLCPCB menawarkan perkhidmatan yang cepat dan berkualiti tinggi dengan harga yang sangat berpatutan. Dapatkan 5 papan, warna apa pun dengan banyak penyesuaian, dengan harga hanya $ 2! Dan jika itu pesanan pertama anda, dapatkan 10 papan dengan harga yang sama!
Muat naik gerbers anda dan dapatkan sebut harga segera! Kirim pesanan anda dan papan anda akan disemak untuk pengeluaran dalam masa satu jam. Setelah anda membayar, anda dapat mengharapkan papan berkualiti tinggi anda dalam masa tiga hari!
Lihat di sini
Langkah 7: Dapatkan Papan Anda
Berseru kepada JLCPCB kerana menaja projek ini. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), adalah syarikat prototaip PCB terbesar di China dan pengeluar berteknologi tinggi yang mengkhususkan diri dalam pembuatan prototaip PCB cepat dan pengeluaran PCB kecil. Mereka cukup baik untuk menyediakan UBC Solar dengan PCB baru kami untuk kereta lumba berkuasa solar kami. Kami membuat pesanan pada hari Jumaat dan mendapatkan papan pada hari Rabu!
Disyorkan:
Sensor Gas Antaramuka Dengan Arduino: 4 Langkah
Sensor Gas Interfacing Dengan Arduino: Sensor asap MQ-2 sensitif terhadap asap dan gas mudah terbakar berikut: LPG, Butana, Propana, Metana, Alkohol, Hidrogen. Rintangan sensor berbeza bergantung pada jenis gas. Sensor asap mempunyai potensiometer terbina dalam
Bermula dengan Antaramuka Sensor I2C ?? - Antaramuka MMA8451 Anda Menggunakan ESP32s: 8 Langkah
Bermula dengan Antaramuka Sensor I2C ?? - Antaramuka MMA8451 Anda Dengan Menggunakan ESP32: Dalam tutorial ini, anda akan mempelajari semua tentang Cara memulakan, menyambung dan mendapatkan peranti I2C (Accelerometer) yang berfungsi dengan pengawal (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Seni 2D Dengan LED yang Dapat Diprogramkan dan Pangkalan dan Logo yang Dapat Disesuaikan: 5 Langkah (dengan Gambar)
Seni 2D Dengan LED yang Dapat Diprogramkan dan Pangkalan dan Logo yang Dapat Disesuaikan: Selamat datang di instruksional! Hari ini, saya akan menunjukkan cara membuat Projek Seni 2D dengan logo dan reka bentuk keseluruhan pilihan anda. Saya membuat projek ini kerana dapat mengajar orang tentang banyak kemahiran seperti pengaturcaraan, pendawaian, pemodelan 3D, dan lain-lain. Ini
Antaramuka Langkah MIDI (versi En Español): 12 Langkah
MIDI Step Interface (versi En Español): Versi dalam bahasa yang lebih baik. Sebolehnya diarahkan untuk mendapatkan petunjuk, una plataforma interactiva de luz y sonido, que puede ser usada para jugar el famoso "Simon Says" al igual que como un controlador MIDI. Ambos modos operados con los pies! Antesede
Antaramuka Langkah MIDI: 12 Langkah (dengan Gambar)
MIDI Step Interface: Versi Sepanyol di sini. Dalam arahan ini, kami akan menunjukkan kepada anda cara membuat antara muka cahaya dan bunyi yang boleh digunakan untuk bermain " Simon Says " dan sebagai antara muka MIDI. Kedua-dua mod akan dimainkan dengan kaki anda. Latar belakang Projek ini dilahirkan kerana