Orodha ya maudhui:

Itifaki ya CAN - Ndio, Tunaweza !: Hatua 24
Itifaki ya CAN - Ndio, Tunaweza !: Hatua 24

Video: Itifaki ya CAN - Ndio, Tunaweza !: Hatua 24

Video: Itifaki ya CAN - Ndio, Tunaweza !: Hatua 24
Video: В 24 года я никогда не видел свою сестру-близнеца 2024, Julai
Anonim
Image
Image
Rasilimali Zilizotumiwa
Rasilimali Zilizotumiwa

Mada nyingine iliyopendekezwa hivi karibuni na wafuasi wa kituo changu cha YouTube ilikuwa itifaki ya CAN (Mdhibiti wa Mtandao), ambayo ndio tutazingatia leo. Ni muhimu kuelezea kuwa CAN ni itifaki ya mawasiliano ya serial inayofanana. Hii inamaanisha maingiliano kati ya moduli zilizounganishwa kwenye mtandao hufanywa kuhusiana na mwanzo wa kila ujumbe uliotumwa kwa basi. Tutaanza kwa kuanzisha dhana za kimsingi za itifaki ya CAN na kufanya mkutano rahisi na ESP32 mbili.

Katika mzunguko wetu, ESP zinaweza kutenda kama Mwalimu na Mtumwa. Unaweza kuwa na wadhibiti anuwai wengi wakipitisha wakati huo huo, kwa sababu CAN inaweza kushughulikia mgongano wa kila kitu kiatomati. Nambari ya chanzo ya mradi huu ni rahisi sana. Angalia!

Hatua ya 1: Rasilimali Zilizotumiwa

  • Moduli mbili za ESP WROOM 32 NodeMcu
  • Transceivers mbili za CAN kutoka WaveShare
  • Kuruka kwa unganisho
  • Mchambuzi wa kimantiki wa kukamata
  • Kamba tatu za USB za ESPs na analyzer
  • Mita 10 za jozi zilizopotoka kutumika kama basi

Hatua ya 2: CAN (Mtandao wa Eneo la Mdhibiti)

CAN (Mtandao wa Eneo la Mdhibiti)
CAN (Mtandao wa Eneo la Mdhibiti)
  • Iliundwa na Robert Bosch GmbH miaka ya 1980 kutumikia tasnia ya magari.
  • Imeenea kwa miaka mingi kutokana na uthabiti wake na kubadilika kwa utekelezaji. Inatumiwa na vifaa vya kijeshi, mashine za kilimo, mitambo ya viwanda na ujenzi, roboti, na vifaa vya matibabu.

Hatua ya 3: CAN - Vipengele

CAN - Vipengele
CAN - Vipengele
CAN - Vipengele
CAN - Vipengele
  • Mawasiliano ya serial waya mbili
  • Upeo wa ka 8 za habari muhimu kwa kila fremu, na kugawanyika kunawezekana
  • Anwani iliyoelekezwa kwa ujumbe na sio kwa nodi
  • Kupeana kipaumbele kwa ujumbe na kupeleka tena ujumbe wa "subiri"
  • Uwezo mzuri wa kugundua na kuashiria makosa
  • Uwezo wa bwana-anuwai (nodi zote zinaweza kuomba ufikiaji wa basi)
  • Uwezo wa multicast (ujumbe mmoja kwa wapokeaji wengi kwa wakati mmoja)
  • Viwango vya kuhamisha hadi 1Mbit / s kwenye basi ya mita 40 (kupunguzwa kwa kiwango na ongezeko la urefu wa busbar)
  • Kubadilika kwa usanidi na kuanzishwa kwa nodi mpya (hadi nodi 120 kwa kila basi)
  • Vifaa vya kawaida, gharama nafuu, na upatikanaji mzuri
  • Itifaki iliyodhibitiwa: ISO 11898

Hatua ya 4: Mzunguko Umetumika

Mzunguko Umetumika
Mzunguko Umetumika

Hapa, nina Transceivers. Kuna moja kwa kila upande, na wameunganishwa na jozi ya waya. Moja ni jukumu la kutuma na nyingine kupokea data.

Hatua ya 5: Voltages za Usafirishaji (Kugundua Tofauti)

Voltages ya Usafirishaji (Kugundua Tofauti)
Voltages ya Usafirishaji (Kugundua Tofauti)

Katika CAN, kubwa zaidi ni Zero.

Utambuzi wa Tofauti ya Mstari Hupunguza Usikivu wa Kelele (EFI)

Hatua ya 6: Fomu ya Viwango na Muafaka ya CAN

Fomu ya Viwango na Muafaka ya CAN
Fomu ya Viwango na Muafaka ya CAN

Muundo wa kawaida na kitambulisho cha 11-bit

Hatua ya 7: Fomu ya Viwango na Muafaka ya CAN

Fomu ya Viwango na Muafaka ya CAN
Fomu ya Viwango na Muafaka ya CAN

Muundo uliopanuliwa na kitambulisho cha 29-bit

Hatua ya 8: Fomu ya Viwango na Muafaka ya CAN

Ni muhimu kutambua kwamba itifaki tayari inahesabu CRC na hutuma ishara za ACK na EOF, ambazo ni vitu ambavyo tayari vinafanywa na itifaki ya CAN. Hii inahakikishia kuwa ujumbe uliotumwa hautafika kwa njia isiyofaa. Hii ni kwa sababu ikiwa inatoa shida katika CRC (Redundant Cyclic Check au Redundancy Check), ambayo ni sawa na nambari ya kukagua habari, itajulikana na CRC.

Hatua ya 9: Aina nne za fremu (fremu)

Aina nne za fremu (fremu)
Aina nne za fremu (fremu)

Ni muhimu kutambua kwamba itifaki tayari inahesabu CRC na hutuma ishara za ACK na EOF, ambazo ni vitu ambavyo tayari vinafanywa na itifaki ya CAN. Hii inahakikishia kuwa ujumbe uliotumwa hautafika kwa njia isiyofaa. Hii ni kwa sababu ikiwa inatoa shida katika CRC (Redundant Cyclic Check au Redundancy Check), ambayo ni sawa na nambari ya kukagua habari, itajulikana na CRC.

Aina nne za muafaka (muafaka)

Uhamisho na upokeaji wa data katika CAN unategemea aina nne za muafaka. Aina za fremu zitatambuliwa na tofauti katika vipande vya kudhibiti au hata kwa mabadiliko katika sheria za uandishi wa fremu kwa kila kesi.

  • Sura ya Takwimu: Inayo data ya kusambaza ya mpokeaji
  • Fremu ya mbali: Hili ni ombi la data kutoka kwa moja ya nodi
  • Sura ya Hitilafu: Ni fremu iliyotumwa na nodi yoyote wakati wa kugundua hitilafu kwenye basi na inaweza kugunduliwa na nodi zote
  • Sura ya Kupakia: Inatumika kuchelewesha trafiki kwenye basi kwa sababu ya kupakia data au kuchelewesha kwenye nodi moja au zaidi.

Hatua ya 10: Mzunguko - Maelezo ya Uunganisho

Mzunguko - Maelezo ya Uunganisho
Mzunguko - Maelezo ya Uunganisho

Hatua ya 11: Mzunguko - Kukamata Takwimu

Mzunguko - Kukamata Takwimu
Mzunguko - Kukamata Takwimu

Mawimbi yaliyopatikana kwa CAN ya kawaida na kitambulisho cha 11-bit

Hatua ya 12: Mzunguko - Kukamata Takwimu

Mzunguko - Kukamata Takwimu
Mzunguko - Kukamata Takwimu

Wavelengths zilizopatikana kwa CAN iliyopanuliwa na ID ya 29-bit

Hatua ya 13: Mzunguko - Kukamata Takwimu

Mzunguko - Kukamata Takwimu
Mzunguko - Kukamata Takwimu

Takwimu zilizopatikana na analyzer ya mantiki

Hatua ya 14: Maktaba ya Arduino - CAN

Maktaba ya Arduino - CAN
Maktaba ya Arduino - CAN

Ninaonyesha hapa chaguzi mbili ambapo unaweza kusanikisha Maktaba ya Dereva ya CAN

Meneja wa Maktaba ya Arduino IDE

Hatua ya 15: Github

Github
Github

github.com/sandeepmistry/arduino-CAN

Hatua ya 16: Msimbo wa Chanzo cha Kusambaza

Nambari ya Chanzo: Inajumuisha na Kuweka ()

Tutajumuisha maktaba ya CAN, anza mfululizo wa utatuzi, na uanze basi la CAN kwa 500 kbps.

# pamoja na // Inclui biblioteca INAWEZA kubatilisha usanidi () {Serial.begin (9600); // inicia serial kwa utatuzi wakati (! Serial); Serial.println ("Transmissor CAN"); // Inicia o barramento UNAWEZA kukopa 500 ikiwa (! CAN.begin (500E3)) {Serial.println ("Falha ao iniciar o controlador CAN"); // caso não seja possível iniciar o controlador wakati (1); }}

Hatua ya 17: Nambari ya Chanzo: Kitanzi (), Kutuma Pakiti ya kawaida ya CAN 2.0

Kutumia kiwango cha CAN 2.0, tunatuma kifurushi. Kitambulisho cha 11-bit kinatambulisha ujumbe. Kizuizi cha data lazima iwe na hadi 8 ka. Inaanza pakiti na ID 18 kwa hexadecimal. Inachukua kaiti 5 na inafunga kazi.

kitanzi cha utupu … "); Anza. Packet (0x12); // id 18 em hexadecimal CAN. andika ('h'); // 1 byte CAN.write ('e'); // 2º byte CAN. Andika ('l'); // 3º byte CAN.write ('l'); // 4º byte CAN. Andika ('o'); // 5º byte CAN.endPacket (); // encerra o pacote para envio Serial.println ("Enviado."); kuchelewesha (1000);

Hatua ya 18: Nambari ya Chanzo: Kitanzi (), Kutuma Kifurushi cha CAN 2.0 Iliyoongezwa

Katika hatua hii, kitambulisho kina bits 29. Inaanza kutuma bits 24 za kitambulisho na, kwa mara nyingine tena, ina pakiti 5 na huacha.

// Usando CAN 2.0 Estendido // Envia um pacote: o id 29 bits and identifica a mensagem (preidade, evento) // o bloco de dados deve possuir atte 8 by Serial Serial.println ("Enviando pacote estendido…"); ANGANZA KuongezaPacket (0xabcdef); // id 11259375 decimal (abcdef em hexa) = 24 bits preenchidos até aqui CAN.write ('w'); // 1 byte CAN. Andika ('o'); // 2º byte CAN.write ('r'); // 3º byte CAN.write ('l'); // 4º byte CAN.write ('d'); // 5º byte CAN.endPacket (); // encerra o pacote para envio Serial.println ("Enviado."); kuchelewesha (1000); }

Hatua ya 19: Nambari ya Chanzo cha Mpokeaji

Nambari ya Chanzo: Inajumuisha na Kuweka ()

Tena, tutajumuisha maktaba ya CAN, anza mfululizo wa utatuzi, na uanze basi la CAN kwa 500 kbps. Ikiwa kosa linatokea, kosa hili litachapishwa.

# pamoja na // Inclui biblioteca INAWEZA kubatilisha usanidi () {Serial.begin (9600); // inicia serial kwa utatuzi wakati (! Serial); Serial.println ("Mpokeaji ANAWEZA"); // Inicia o barramento UNAWEZA kukopa 500 ikiwa (! CAN.begin (500E3)) {Serial.println ("Falha ao iniciar o controlador CAN"); // caso não seja possível iniciar o controlador wakati (1); }}

Hatua ya 20: Nambari ya Chanzo: Kitanzi (), Kupata Kifurushi na Kuangalia Umbizo

Tulijaribu kuangalia saizi ya pakiti iliyopokelewa. Njia ya CAN.parsePacket () inanionesha ukubwa wa kifurushi hiki. Kwa hivyo ikiwa tuna kifurushi, tutaangalia ikiwa imepanuliwa au la.

kitanzi batili () {// Tenta verificar o tamanho do acote recebido int packetSize = CAN.parsePacket (); ikiwa (packetSize) {// Se temos um pacote Serial.println ("Recebido pacote."); ikiwa (CAN.packetExtended ()) {// verifica se o pacote is estendido Serial.println ("Estendido"); }

Hatua ya 21: Chanzo: Kitanzi (), huangalia ikiwa ni Kifurushi cha mbali

Hapa, tunaangalia ikiwa pakiti iliyopokea ni ombi la data. Katika kesi hii, hakuna data.

ikiwa (CAN.packetRtr ()) {// Verifica se o pacote é um pacote remoto (Requisição de dados), inajulikana kama serial Serial.print ("RTR"); }

Hatua ya 22: Nambari ya Chanzo: Kitanzi (), Urefu wa Takwimu Uliombwa au Kupokelewa

Ikiwa pakiti iliyopokelewa ni ombi, tunaonyesha urefu ulioombwa. Kisha tunapata Msimbo wa Urefu wa Takwimu (DLC), ambayo inaonyesha urefu wa data. Mwishowe, tunaonyesha urefu uliopokelewa.

Serial.print ("Pacote com id 0x"); Serial.print (CAN.packetId (), HEX); ikiwa (CAN.packetRtr ()) {// se o pacote recebido é de requisição, indicamos o comprimento solicitado Serial.print ("e reus to you comprimento"); Serial.println (CAN.packetDlc ()); // obtem o DLC (Msimbo wa Urefu wa Takwimu, ikiwa ni pamoja na kanuni za baba)} mwingine {Serial.print ("e comprimento"); // aqui somente indica o comprimento recebido Serial.println (packetSize);

Hatua ya 23: Nambari ya Chanzo: Kitanzi (), Ikiwa Data Inapokelewa, Inachapishwa

Tunachapisha (kwenye mfuatiliaji wa serial) data, lakini ikiwa tu pakiti iliyopokea sio ombi.

// Imprime os dados somente se o pacote recebido não foi de requisição while (CAN.available ()) {Serial.print ((char) CAN.read ()); } Serial.println (); } Serial.println (); }}

Hatua ya 24: Pakua faili

PDF

INO

Ilipendekeza: