Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Ang Transceiver Circuit
- Hakbang 2: Pagbasa at Pagsulat sa CAN Bus
- Hakbang 3: Pagkonekta sa mga Node
- Hakbang 4: Gawin ang PCB
- Hakbang 5: Pagpapalawak ng Lupon
- Hakbang 6: Mag-order ng Iyong Mga PCB Mula sa JLCPCB
- Hakbang 7: Kunin ang Iyong Mga Lupon
Video: STM32 CAN Interface: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ang Controller Area Network bus, o CAN bus, ay isang mabisang protocol ng komunikasyon salamat sa mataas na bilis ng kakayahan, pagiging maaasahan sa mahabang saklaw, at kaligtasan sa ingay. Para sa mga kadahilanang ito, ang komunikasyon ng CAN ay naging pamantayan sa mga teknolohiya ng automotive at mataas na mga kapaligiran sa ingay. Ang mga aparato sa CAN bus ay tinatawag na node. Ang lahat ng mga node sa CAN bus ay konektado sa kahanay, nangangahulugan na ang bawat node ay konektado sa lahat ng iba pang mga node sa network. Ang isang solong CAN bus ay maaaring magkaroon ng hanggang sa 115 node nang sabay-sabay, depende sa rate ng paghahatid ng mensahe, ngunit para sa karamihan ng mga aplikasyon, inirerekumenda na magkaroon ng hanggang sa 32 mga aparato. Inirerekumenda rin na panatilihin ang haba sa pagitan ng una at huling node na mas mababa sa 40 metro ang layo.
Ipapakita sa iyo ng sunud-sunod na tutorial na ito kung paano mag-set up ng isang CAN node gamit ang microcontroller ng STM32, kabilang ang circuit at simpleng C code upang mabasa at sumulat sa CAN bus
Mga gamit
Para sa bawat CAN node:
- 1x STM32 breakout board (Nucleo, Blue Pill, iba pa)
- 1x MCP2551 CAN transceiver IC
- 1x 0.1µF capacitor
- 1x 120Ω risistor
- 1x 1kΩ risistor
- 1+ na nababasa na input (pindutan, switch, potentiometer, atbp.) O output (LED, MOSFET, atbp.)
- 1x konektor ng Dsub9
Hakbang 1: Ang Transceiver Circuit
Upang makipag-usap sa CAN bus, gagamitin namin ang MCP2551 CAN transceiver IC. Ang IC ay gumaganap bilang isang intermediate transmitter / receiver na pares upang ikonekta ang STM32 sa CAN bus. Ang circuit upang i-set up ang IC na ito ay medyo simple, ngunit may ilang mga bagay na dapat tandaan:
-
Ang CAN_RX (pin 4) at CAN_TX (pin 1) sa MCP2551 chip ay maaari lamang mapunta sa ilang mga pin sa STM32.
- Sa STM32F1 Nucleo, ikonekta ang linya ng RX upang i-pin ang PB8 at ang linya ng TX upang i-pin ang PB9.
- Sa STM32F1 blue pill, ikonekta ang RX upang i-pin ang PA11 at TX upang i-pin ang PA12.
- Tandaan na ang mga takdang-aralin sa pin na ito ay may mga kahalili. Sumangguni sa mga manual ng microcontroller upang matukoy kung aling mga pin ang may kakayahang CAN_RD at CAN_TD
- Kung gumagamit ng isang Arduino o isang board na walang built CAN na tagapagbalita, kakailanganin ang MCP2515 IC chip upang mai-convert ang iba pang mga protokol ng mensahe sa CAN.
- Ang CANL pin ay dapat na konektado sa iba pang mga CANL pin ng iba pang mga node ng bus. Ang parehong napupunta para sa mga CANH pin.
- Ang 120Ω risistor sa kabila ng mga CANH at CANL na pin ay kinakailangan lamang kung ang node ay isang terminal node. Nangangahulugan ito na nasa dulo ng mga parallel na mga kable ng koneksyon. Sa madaling salita, ang CAN bus ay dapat magkaroon lamang ng dalawang 120Ω resistors dito, at dapat na malayo sila sa bawat isa hangga't maaari.
- Panghuli, ang 1kΩ risistor sa RS (pin 8) ay maaaring ipagpalit para sa isang risistor na 10kΩ upang makontrol ang tumataas / bumabagsak na oras ng CAN message bit. Sumangguni sa MCP2551 chip datasheet para sa higit pang mga detalye.
Hakbang 2: Pagbasa at Pagsulat sa CAN Bus
Ngayon na ang transceiver circuit ay konektado sa STM32, maaari nating simulan ang pagsusulat ng mga mensahe sa CAN bus. Ang itinuturo na gabay na ito ay hindi lalalim sa STM32 code. Gayunpaman, tiyaking suriin ang aming code para sa mga halimbawa dito. Ang paggamit ng STM32 bilang isang CAN node ay mangangailangan ng isang CAN header file. Sumulat kami ng aming sariling, na maaaring matagpuan sa aming github dito. Dito, magbibigay kami ng isang maikling pangkalahatang ideya ng proseso ng pagbasa / pagsulat.
Upang mabasa mula sa CAN bus, kailangan muna nating malaman ang ID ng mensahe ng CAN. Ang bawat mensahe ay dapat magkaroon ng isang natatanging ID, na may mas mababang mga ID na may mas mataas na priyoridad. Ang code snippet na ipinapakita dito ay naghihintay para sa isang CAN message na may ID 0x622. Sa aming system, kung ang unang piraso ng ika-6 na byte ay mataas, nais naming itakda ang pin na A10 mataas.
Kapag nagsusulat ng isang CAN message, dapat nating tandaan na ang mga CAN message ay multi-byte. Ang bawat nakasulat na mensahe ay dapat mayroong isang ID at haba. Sa pangalawang piraso ng code na ipinakita, nagsusulat kami ng data sa bawat byte, pagkatapos ay ipadala ang mensahe (Ang ID at mga parameter ng haba ay tinukoy nang mas maaga sa code).
Hakbang 3: Pagkonekta sa mga Node
Kapag kumokonekta sa maraming mga CAN node, maingat na pansin ay dapat bayaran sa haba ng mga cable. Ang dalawang pinakamalayong mga node ay maaaring hanggang sa 40m na hiwalay sa bawat isa. Ang mga gitnang node na kumokonekta sa bus ay dapat na nasa loob ng 50cm ng mga pangunahing linya ng bus.
Ang mga koneksyon ng CAN ay maaaring sundin ang pamantayan ng industriya ng paggamit ng isang Dsub9 na konektor na may linya ng CANL sa pin 2 at ang linya ng CANH sa pin7. Ang pagpipilian na linya ng CANGND ay maaaring pumunta sa pin 3.
Hakbang 4: Gawin ang PCB
Kapag ang pagruruta ng CAN signal sa isang PCB, tandaan na ang CAN ay isang kaugalian na signal, at sa gayon, ang mga patnubay sa pagruruta para sa CANH at CANL ay dapat sundin nang maingat.
Hakbang 5: Pagpapalawak ng Lupon
Magtapon ng ilang higit pang mga node, magdagdag ng ilang mga input / output, at ikonekta ang lahat ng kanilang mga CANH at CANL na pin. Tandaan na ang bawat STM32 o iba pang microcontroller ay nangangailangan ng sarili nitong MCP2551 chip; hindi sila maaaring ibahagi.
Sa nasabing iyon, subukang panatilihing mas maliit ang iyong mga PCB kaysa sa ipinakita rito
Hakbang 6: Mag-order ng Iyong Mga PCB Mula sa JLCPCB
Nag-aalok ang JLCPCB ng mabilis, mataas na kalidad na serbisyo sa mga makatwirang presyo. Kumuha ng 5 board, anumang kulay na may toneladang pagpapasadya, sa halagang $ 2 lamang! At kung ito ang iyong unang order, kumuha ng 10 board para sa parehong presyo!
I-upload lamang ang iyong mga gerbers at makakuha ng isang instant na quote! Isumite ang iyong order at ang iyong mga board ay susuriin para sa paggawa sa loob ng isang oras. Sa sandaling magbayad ka, maaari mong asahan ang iyong mga de-kalidad na board sa lalong madaling tatlong araw!
Tingnan ito dito
Hakbang 7: Kunin ang Iyong Mga Lupon
Malaking sigaw sa JLCPCB para sa pag-sponsor ng proyektong ito. Ang JLCPCB (ShenzhenJLC Electronics Co., Ltd.), ay ang pinakamalaking PCB prototype enterprise sa Tsina at isang tagagawa ng high-tech na nagdadalubhasa sa mabilis na prototype ng PCB at paggawa ng maliit na batch na PCB. Napakabait nila upang maibigay ang UBC Solar sa aming mga bagong PCB para sa aming solar car na pinapatakbo ng solar. Nag-order kami noong Biyernes at nakuha ang mga board noong Miyerkules!
Inirerekumendang:
Baterya ng Can Can: 7 Mga Hakbang
Beer Can Battery: Gawin nating sayaw si Elvis sa electrickery na nilikha mula sa isang baterya ng Beer can. Ito ay isang hakbang mula sa baterya ng patatas. Gumagamit ito ng suka bilang electrolyte at mas malaking ibabaw at tanso at aluminyo. Ang mga ito ay dapat magresulta sa mas kasalukuyang at marahil sapat upang makakuha ng
Pagsisimula Sa I2C Sensor Interface ?? - I-interface ang Iyong MMA8451 Paggamit ng mga ESP32: 8 Mga Hakbang
Pagsisimula Sa I2C Sensor Interface ?? - I-interface ang Iyong MMA8451 Paggamit ng ESP32s: Sa tutorial na ito, malalaman mo ang lahat tungkol sa Paano magsimula, kumonekta at makakuha ng I2C device (Accelerometer) na gumagana sa controller (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Piliin ang SD Interface para sa ESP32: 12 Mga Hakbang (na may Mga Larawan)
Piliin ang SD Interface para sa ESP32: Ang mga itinuturo na ito ay nagpapakita ng isang bagay tungkol sa pagpili ng isang SD interface para sa iyong proyekto sa ESP32
10 Mga kahalili sa DIY sa Mga Off-The-Shelf na Elektroniko na Mga Bahagi: 11 Mga Hakbang (na may Mga Larawan)
10 Mga Kahalili sa DIY sa Mga Off-The-Shelf na Mga Elektroniko na Bahagi: Maligayang pagdating sa aking kauna-unahang itinuro! Sa palagay mo ba ang ilang mga bahagi mula sa mga tagatingi sa online ay masyadong mahal o may mababang kalidad? Kailangan bang makakuha ng isang prototype nang mabilis at tumatakbo nang mabilis at hindi makapaghintay linggo para sa pagpapadala? Walang mga lokal na electronics distributor? Ang fol
Sparkfun CAN CAN Shield Tutorial: 6 Hakbang
Sparkfun CAN Bus Shield Tutorial: Tumanggap at magpadala ng mga mensahe gamit ang Sparkfun CAN Bus Shield Ano ang CAN? Ang CAN bus ay binuo ng BOSCH bilang isang multi-master, system ng broadcast ng mensahe na tumutukoy sa amaximum na rate ng pag-sign ng 1 megabit bawat segundo (bps). Hindi tulad ng isang tradisyunal na network