Cov txheej txheem:

Cov Lus Qhia Yooj Yim rau CANBUS: 8 Kauj Ruam
Cov Lus Qhia Yooj Yim rau CANBUS: 8 Kauj Ruam

Video: Cov Lus Qhia Yooj Yim rau CANBUS: 8 Kauj Ruam

Video: Cov Lus Qhia Yooj Yim rau CANBUS: 8 Kauj Ruam
Video: XF Ntshaj Lug: Cov Lus Qhuab Qhia Muaj Qes Rau Lub Neej Ua Niam Txiv Nyob 2024, Kaum ib hlis
Anonim
Ib qho yooj yim Tutorial rau CANBUS
Ib qho yooj yim Tutorial rau CANBUS

Kuv tau kawm CAN tau peb lub lis piam, thiab tam sim no kuv tau ua tiav qee daim ntawv thov txhawm rau txheeb xyuas kuv cov txiaj ntsig kev kawm. Hauv qhov kev qhia no, koj yuav kawm paub siv Arduino los siv CANBUS kev sib txuas lus li cas. Yog tias koj muaj lus pom, txais tos kom tawm lus.

Khoom siv:

Kho vajtse:

  • Maduino Zero CANBUS
  • DHT11 Kub & Vaum Module
  • 1.3 "I2C OLED 128x64- Xiav
  • DB9 rau DB9 cable (poj niam rau poj niam)
  • Dupont Kab

Software:

Arduino IDE Cov

Kauj Ruam 1: CANBUS yog dab tsi

CANBUS yog dab tsi
CANBUS yog dab tsi
CANBUS yog dab tsi
CANBUS yog dab tsi

Txog CAN

CAN (Tus Kws Saib Xyuas Cheeb Tsam Network) yog kev sib txuas lus sib txuas uas tuaj yeem paub faib kev tswj hwm lub sijhawm. Nws tau tsim los rau kev lag luam tsheb los hloov txoj hlua hlau tsis yooj yim nrog ob lub tsheb npav.

CAN txheej txheem piav qhia Cov Ntaub Ntawv Txuas Txheej thiab ib feem ntawm Lub Cev Txheej Txheem hauv OSI tus qauv.

CAN raws tu qauv yog ISO tus qauv nrog ISO11898 thiab ISO11519. ISO11898 yog CAN kev sib txuas lus nrawm nrog kev sib txuas lus ceev ntawm 125kbps-1Mbps. ISO11519 yog CAN tus qauv kev sib txuas lus nrawm nrog kev sib txuas lus ceev tsawg dua 125kbps.

Ntawm no peb tsom mus rau kev kub ceev CAN.

ISO-11898 piav qhia yuav ua li cas cov ntaub ntawv tau dhau los ntawm cov cuab yeej ntawm lub network thiab ua raws li Qhib Systems Kev Sib Txuas Txuas Qauv (OSI) uas tau hais tseg raws li txheej txheej. Qhov kev sib txuas lus tiag tiag ntawm cov cuab yeej txuas nrog los ntawm lub cev nruab nrab yog txhais los ntawm txheej txheej ntawm lub cev

  • Txhua lub tsev CAN txuas nrog lub npav tuaj yeem hu ua node. Txhua CAN chav nyob tau txuas nrog lub tsheb npav nres ntawm txhua qhov kawg nrog 120 Ω resistors los tsim lub network. Lub npav muaj CAN_H thiab CAN_L kab. Tus tswj hwm CAN txiav txim siab qib tsheb npav raws qhov sib txawv ntawm qib fais fab ntawm ob lub xov hlau. Cov npav npav tau muab faib ua qib tseem ceeb thiab qib qis, uas yuav tsum yog ib qho ntawm lawv. Tus neeg xa ntawv xa xov mus rau tus txais los ntawm kev hloov pauv ntawm qib tsheb npav. Thaum cov kab lus "thiab" ua tiav ntawm lub npav, qib tseem ceeb yog "0" thiab qib rov ua haujlwm yog "1".
  • Hauv lub xeev tseem ceeb, qhov hluav taws xob ntawm CAN_H yog li 3.5V thiab qhov hluav taws xob ntawm CAN_L yog li 1.5V. Hauv lub xeev rov ua haujlwm, qhov hluav taws xob ntawm ob kab yog ib puag ncig 2.5V.
  • Lub teeb liab yog qhov sib txawv uas yog vim li cas CAN tau txais nws lub zog tiv thaiv lub suab nrov thiab ua txhaum. Sib npaug qhov sib txawv ntawm cov teeb liab txo cov suab nrov sib txuas thiab tso cai rau kev teeb tsa siab dua tus nqi sib tw ua khub. Tam sim no hauv txhua kab teeb liab sib npaug tab sis nyob rau hauv cov lus tsis sib thooj thiab ua rau muaj txiaj ntsig hauv kev tshem tawm thaj chaw uas yog qhov tseem ceeb rau kev tso suab nrov tsawg. Kev siv cov neeg txais sib npaug sib luag thiab cov kab sib tw sib tw ua kom zoo dua qub-hom kev tsis lees paub thiab muaj suab nrov tiv thaiv kab mob CAN npav.

CAN Transceiver

CAN Transceiver yog lub luag haujlwm rau kev hloov pauv ntawm qib kev xav thiab lub teeb liab lub cev. Hloov cov teeb meem cov ntsiab lus mus rau qib sib txawv lossis lub teeb liab lub cev mus rau qib kev xav.

CAN maub los

CAN Controller yog lub hauv paus tseem ceeb ntawm CAN, uas ua tiav txhua txoj haujlwm ntawm cov ntaub ntawv txuas txheej hauv CAN raws tu qauv thiab tuaj yeem txiav txim siab CAN raws tu qauv.

MCU

MCU yog lub luag haujlwm rau kev tswj hwm kev ua haujlwm Circuit thiab CAN maub los. Piv txwv li, CAN tus tswj hwm qhov ntsuas tau pib thaum lub node pib, CAN thav duab tau nyeem thiab xa los ntawm CAN maub los, thiab lwm yam.

Kauj Ruam 2: Txog CAN Kev Sib Txuas Lus

Thaum lub tsheb npav tsis ua haujlwm, txhua lub hauv paus tuaj yeem pib xa xov (ntau tus tswv tswj). Lub node uas xub nkag mus rau lub npav tau txais txoj cai xa (CSMA/CA hom). Thaum ntau lub hauv paus pib xa tib lub sijhawm, lub node uas xa qhov tseem ceeb tshaj ID lus tau txais txoj cai xa.

Hauv CAN raws tu qauv, txhua cov lus tau xa hauv hom ntawv ruaj khov. Thaum lub tsheb npav tsis ua haujlwm, txhua chav nyob nrog lub npav tuaj yeem pib xa xov tshiab. Thaum ntau dua ob lub xov tooj pib xa lus tib lub sijhawm, qhov muaj feem thib yog txiav txim siab raws tus cim. Tus ID tsis sawv cev rau qhov chaw nyob ntawm qhov xa, tab sis qhov tseem ceeb tshaj ntawm cov lus nkag mus rau lub npav. Thaum ntau dua ob lub xov tooj pib xa lus tib lub sijhawm, txhua qhov me ntsis ntawm tus lej tsis muaj paj laum yog txiav txim siab ib tus zuj zus. Chav tsev uas yeej qhov kev txiav txim plaub ntug tuaj yeem xa cov lus txuas mus ntxiv, thiab chav uas poob qhov kev txiav txim plaub ntug tam sim ntawd nres xa thiab tau txais txoj haujlwm.

CAN npav yog hom tsheb npav tshaj tawm. Qhov no txhais tau tias txhua lub hauv paus tuaj yeem 'hnov' txhua kis. tag nrho cov nodes yuav tuaj tos tag nrho cov tsheb. CAN kho vajtse muab kev lim dej hauv zos kom txhua lub node tuaj yeem cuam tshuam tsuas yog cov lus nthuav.

Kauj ruam 3: Ncej

Ncej
Ncej

CAN cov cuab yeej xa cov ntaub ntawv hla CAN network hauv pob ntawv hu ua ntas. CAN muaj plaub hom qauv:

  • Cov ntaub ntawv: tus thav duab uas muaj cov ntaub ntawv ntawm kev xa mus
  • Cov thav duab nyob deb: tus ncej thov kom xa tus cim tshwj xeeb
  • Kev ua yuam kev thav duab: thav duab kis los ntawm ib qho ntawm qhov ntsuas pom qhov ua yuam kev
  • Tshaj dhau tus ncej: tus ncej txhawm rau txhawm rau ncua sijhawm ntawm cov ntaub ntawv lossis cov duab nyob deb

Cov ntaub ntawv

Muaj ob hom ntaub ntawv thav duab, tus qauv thiab txuas ntxiv.

Lub ntsiab lus ntawm qhov me ntsis ntawm daim duab yog:

  • SOF – Ib qho tseem ceeb pib ntawm tus ncej (SOF) me ntsis cim qhov pib ntawm cov lus, thiab tau siv los ua synchronize cov nodes ntawm lub tsheb npav tom qab tsis ua haujlwm.
  • Identifier-Tus Qauv CAN 11-ntsis tus cim tsim qhov tseem ceeb ntawm cov lus. Qhov qis tus nqi binary, siab dua nws qhov muaj feem thib.
  • RTR – Tib qhov kev thov xa mus deb (RTR) me ntsis
  • IDE – Qhov tseem ceeb ib tus lej txuas ntxiv (IDE) me ntsis txhais tau tias tus qauv CAN tus cim uas tsis muaj kev txuas ntxiv raug xa mus.
  • R0 – Tshwj tseg me ntsis (kom siv tau los ntawm kev hloov kho tus qauv yav tom ntej).
  • DLC – Tus lej 4-ntsis cov ntaub ntawv ntev (DLC) muaj cov lej bytes ntawm cov ntaub ntawv raug xa mus.
  • Cov Ntaub Ntawv: Txog 64 cov khoom ntawm cov ntaub ntawv thov tuaj yeem xa tawm.
  • CRC – Qhov 16-ntsis (15 khoom ntxiv rau tus zauv) cyclic redundancy check (CRC) muaj cov ntawv txheeb xyuas (tus lej ntawm cov khoom xa tawm) ntawm cov ntaub ntawv thov ua ntej kom pom qhov ua yuam kev.
  • ACK – ACK yog 2 khoom, ib qho yog qhov lees paub me ntsis thiab qhov thib ob yog tus lej zauv.
  • EOF – Qhov kawg ntawm tus ncej (EOF), thaj tsam 7-ntsis cim qhov kawg ntawm CAN thav duab (xov) thiab xiam oob khab, qhia qhov ua yuam kev thaum tseem ceeb. Thaum 5 cov khoom ntawm tib qib kev xav tib yam tshwm sim ua tiav thaum lub sijhawm ua haujlwm ib txwm, me ntsis ntawm qib kev xav tsis sib thooj tau muab ntim rau hauv cov ntaub ntawv.
  • IFS – Qhov no 7-ntsis cuam tshuam qhov chaw (IFS) muaj lub sijhawm xav tau los ntawm tus tswj kom txav lub thav duab tau txais kom raug rau nws txoj haujlwm raug hauv cheeb tsam cov lus.

Kev txiav txim plaub ntug

Hauv lub npav tsis nyob hauv lub xeev, chav uas pib xa xov ua ntej tau txais txoj cai xa mus. Thaum ntau chav nyob pib xa tib lub sijhawm, txhua lub tsev xa khoom pib ntawm thawj zaug ntawm ntu kev txiav txim plaub ntug. Chav tsev nrog tus lej loj tshaj plaws ntawm cov qib tseem ceeb tuaj yeem xa mus txuas ntxiv.

Kauj Ruam 4: Kev nrawm thiab nrug

Ceev thiab nrug
Ceev thiab nrug

Lub npav CAN yog lub tsheb npav uas sib txuas ntau chav nyob tib lub sijhawm. Muaj qhov kev xav tsis txwv rau tag nrho cov chav nyob uas tuaj yeem txuas nrog. Hauv kev xyaum, txawm li cas los xij, tus naj npawb ntawm cov koog uas tuaj yeem txuas nrog tau txwv los ntawm lub sijhawm qeeb ntawm lub npav thiab qhov hluav taws xob. Txo qhov kev sib txuas lus nrawm dua, nce tus naj npawb ntawm cov koog uas tuaj yeem txuas nrog, thiab nce kev sib txuas lus nrawm, tus lej ntawm cov koog uas tuaj yeem txuas nrog tau txo qis.

Kev sib txuas lus nrug yog cuam tshuam nrog kev sib txuas lus nrawm dua, thiab kev sib txuas lus nyob deb dua, kev sib txuas lus me dua. Qhov ntev dua tuaj yeem yog 1km lossis ntau dua, tab sis qhov nrawm tsawg dua 40kps.

Kauj ruam 5: Kho vajtse

Kho vajtse
Kho vajtse

Maduino Zero CAN-BUS module yog cov cuab yeej tsim los ntawm Makerfabs rau CANbus kev sib txuas lus-nws yog raws li Arduino, nrog CAN maub los thiab CAN transceiver, los tsim kev npaj-rau-siv CAN-npav chaw nres nkoj.

  • MCP2515 yog tus tswj ib leeg tuaj yeem tswj tau uas ua raws li CAN qhov tshwj xeeb. Nws muaj peev xwm kis tau thiab tau txais ob tus qauv thiab txuas ntxiv cov ntaub ntawv thiab cov duab thav duab.
  • MAX3051 cuam tshuam ntawm CAN tus txheej txheem tswj hwm thiab lub cev ntawm cov kab ntawm cov npav hauv cov chaw tswj hwm network (CAN). MAX3051 muab cov peev txheej sib txawv xa mus rau lub npav thiab qhov sib txawv tau txais lub peev xwm rau CAN tus tswj hwm.

Kauj Ruam 6: Kev Sib Txuas

Kev sib txuas
Kev sib txuas

Txuas DHT11 tus qauv rau Maduino Zero CAN-BUS module nrog cov xov hlau kom siv los ua cov cuab yeej los txhawb CAN kev sib txuas lus. Ib yam li ntawd, txuas cov zaub rau tus qauv kom tau txais cov ntaub ntawv thiab tso tawm nws.

Kev sib txuas ntawm Maduino Zero CANBUS thiab DHT11 :

Maduino Zero CANBUS - DHT11

3v3 ------ VCC GND ------ GND D10 ------ DATA

Kev sib txuas ntawm Maduino Zero CANBUS thiab OLED :

Maduino Zero CANBUS - OLED

3v3 ------ VCC GND ------ GND SCL ------ SCL SDA ------ SDA

Siv DB9 cable txuas ob Maduino Zero CANBUS modules.

Kauj ruam 7: Code

MAX3051 ua tiav qhov kev hloov pauv ntawm qib sib txawv mus rau cov laj thawj pom tseeb. MCP2515 ua tiav CAN ua haujlwm xws li cov ntaub ntawv encoding thiab txiav txim siab. MCU tsuas yog xav tau pib ua tus tswj hwm thiab xa thiab txais cov ntaub ntawv.

  • Github:
  • Tom qab teeb tsa Arduino, tsis muaj pob los txhawb lub rooj tsavxwm (Arduino xoom) uas xav tau los teeb tsa.
  • Xaiv cov cuab yeej -> Pawg Thawj Coj -> Tus Thawj Saib Xyuas Haujlwm, tshawb "Arduino zero" thiab nruab "Arduino SAMD Boards".
  • Xaiv Cov Cuab Yeej -> Pawg Thawj Coj -> Arduino Zero (Native USB Port), xaiv Cov Cuab Yeej -> Chaw Nres Nkoj -> com…
  • Tom qab tau txais qhov haujlwm los ntawm GitHub, koj yuav tsum ua kom ntseeg tau tias txhua cov ntaub ntawv nyob hauv cov phiaj xwm phiaj xwm, uas muaj cov ntawv qiv ntawv uas txhawb CANBUS.
  • Nruab DHT lub tsev qiv ntawv sensor los ntawm Adafruit, uas yog siv los tsav DHT11 kom tau txais qhov kub thiab txias.
  • Siv qhov chaw nyob sib txawv xa qhov kub thiab qhov av noo sib cais hauv txoj cai Test_DHT11.ino.

CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);

ncua (500); CAN.sendMsgBuf (0x11, 0, stmp2.length (), stmp_send2); ncua (500);

"0x10" yog txhais cov ntsiab lus ID, "0" txhais tau tias yog tus qauv thav duab, "stmp1.length ()" yog txhais cov lus ntev, "stmp_send1" yog cov ntaub ntawv xa mus.

  • Hauv qhov chaws Test_OLED.ino, txhua cov lus ntawm CANBUS tau txais los ntawm cov lus nug thiab cov ntaub ntawv xav tau yog nthuav tawm ntawm OLED.
  • Tshaj tawm qhov program Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino mus rau tus qauv uas txuas nrog lub ntsuas, thiab xa qhov program Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino mus rau lwm tus qauv uas txuas nrog rau OLED.

Kauj Ruam 8: Qhia

Qhia
Qhia
Qhia
Qhia

Fais fab ntawm ob qhov qauv, qhov kub thiab txias yuav tshwm ntawm lub vijtsam.

Pom zoo: