MCP2515 અને Arduino મોડ્યુલો સાથે CAN બસ નેટવર્ક કેવી રીતે બનાવવું

  • CAN પ્રોટોકોલ ઔદ્યોગિક અને ઓટોમોટિવ વાતાવરણમાં કાર્યક્ષમ સંચારને સક્ષમ કરે છે.
  • MCP2515 મોડ્યુલ એ Arduino ને CAN નેટવર્ક સાથે જોડવા માટેનો શ્રેષ્ઠ ઉકેલ છે.
  • CAN બસ વિશ્વસનીય, લાંબા-અંતરના ડેટા ટ્રાન્સફર માટે બે કેબલ (CAN_H અને CAN_L) નો ઉપયોગ કરે છે.
  • આ ટ્યુટોરીયલ તમને Arduino સાથે CAN નેટવર્ક સુયોજિત કરવા અને તેનો ઉપયોગ કરવા માટે પગલું દ્વારા માર્ગદર્શન આપશે.

જોડાયેલ કાર

જો તમે ટેક્નોલોજીને પ્રેમ કરો છો અને વારંવાર Arduino સાથે પ્રયોગો કરો છો, તો આ લેખ તમને આકર્ષિત કરશે. આજે આપણે MCP2515 મોડ્યુલ અને Arduino નો ઉપયોગ કરીને તમારું પોતાનું CAN નેટવર્ક કેવી રીતે સેટ કરવું તે જોઈશું. તમે શોધી શકશો કે કેવી રીતે CAN નેટવર્ક પર વિવિધ ઉપકરણો વચ્ચે કાર્યક્ષમ અને વિશ્વસનીય રીતે વાતચીત કરવી. આ પ્રકારનું નેટવર્ક ઓટોમોબાઈલ અને અન્ય ઔદ્યોગિક એપ્લિકેશન્સમાં વ્યાપકપણે ઉપયોગમાં લેવાય છે.

ભલે તમે ઓટોમોટિવ પ્રોજેક્ટ કરી રહ્યાં હોવ અથવા બહુવિધ માઇક્રોકન્ટ્રોલર્સ વચ્ચે સંચારની જરૂર હોય, CAN બસ એ એપ્લિકેશન્સ માટે યોગ્ય છે જ્યાં વિશ્વસનીયતા અને પ્રદર્શન આવશ્યક છે. અને MCP2515 મોડ્યુલ સાથે, Arduino ને આ નેટવર્કમાં એકીકૃત કરવું ખૂબ જ સરળ છે. તેથી, CAN પ્રોટોકોલ, હાર્ડવેર રૂપરેખાંકન અને જરૂરી પ્રોગ્રામિંગ વિશે ઊંડાણપૂર્વક જાણવા માટે તૈયાર થાઓ.

CAN બસ શું છે?

CAN બસ (કંટ્રોલર એરિયા નેટવર્ક) એક સીરીયલ કોમ્યુનિકેશન પ્રોટોકોલ છે જે વિવિધ ઉપકરણોને એકબીજા સાથે વાતચીત કરવાની મંજૂરી આપે છે. તે બોશ દ્વારા 1986 માં વિકસાવવામાં આવ્યું હતું, અને તે ખાસ કરીને ઓટોમોટિવ એપ્લિકેશન્સ માટે રચાયેલ છે, જો કે તેનો ઉપયોગ ઔદ્યોગિક ઓટોમેશન જેવા અન્ય ક્ષેત્રોમાં ફેલાયો છે. આ પ્રકારના નેટવર્કમાં, કનેક્ટેડ ઉપકરણો સેન્ટ્રલ હોસ્ટ અથવા કંટ્રોલરની જરૂરિયાત વિના સંદેશાઓ મોકલે છે અને પ્રાપ્ત કરે છે, જે તેને એવા વાતાવરણ માટે ખૂબ જ કાર્યક્ષમ પ્રોટોકોલ બનાવે છે જ્યાં સંચાર અને વિશ્વસનીયતા મુખ્ય છે.

આધુનિક કારમાં 70 થી વધુ નિયંત્રણ ઉપકરણો હોય છે, જેને ECUs (ઈલેક્ટ્રોનિક કંટ્રોલ યુનિટ) તરીકે ઓળખવામાં આવે છે, જે CAN બસ દ્વારા એકબીજા સાથે જોડાયેલા હોય છે. આ પ્રોટોકોલ માટે આભાર, ECUs કારના સંચાલન માટે મુખ્ય માહિતીનું વિનિમય કરે છે, જેમ કે વાહનની ઝડપ ડેટા અથવા એક્સિલરેટરની સ્થિતિ.

CAN બસ ટોપોલોજી અને સિગ્નલો

CAN સિસ્ટમની ટોપોલોજી પ્રકાર છે મલ્ટિમાસ્ટર, એટલે કે નેટવર્ક સાથે જોડાયેલ કોઈપણ ઉપકરણ સંદેશા મોકલવા માટે બસનું નિયંત્રણ લઈ શકે છે. બધા નોડ્સ આ સંદેશાઓ સાંભળે છે અને નક્કી કરે છે કે પ્રતિસાદ આપવો કે તેને અવગણવો.

ભૌતિક દૃષ્ટિકોણથી, સંદેશાવ્યવહાર બે કેબલ દ્વારા કરવામાં આવે છે: CAN_H y CAN_L. આ કેબલ ઇલેક્ટ્રોમેગ્નેટિક દખલગીરી ઘટાડવા માટે બ્રેઇડેડ છે. વધુમાં, સિગ્નલમાં પ્રતિબિંબ ટાળવા માટે નેટવર્કના છેડાને 120 ઓહ્મ રેઝિસ્ટર સાથે સમાપ્ત કરવું આવશ્યક છે.

CAN સિગ્નલિંગ

CAN સિસ્ટમ સંચાર માટે બે તર્ક સ્થિતિઓનો ઉપયોગ કરે છે: પ્રબળ y અપ્રિય. પ્રભાવશાળી સ્થિતિમાં, CAN_H પાસે 3.5V નો વોલ્ટેજ છે અને CAN_L પાસે 1.5V નો વોલ્ટેજ છે. આ સ્થિતિમાં તાર્કિક '0' પ્રસારિત થાય છે. બીજી બાજુ, રિસેસિવ સ્થિતિમાં, બંને વાયરમાં 2.5V નો વોલ્ટેજ હોય ​​છે, જે દર્શાવે છે કે બસ ફ્રી છે અને લોજિક '1' ટ્રાન્સમિટ કરી શકાય છે. તે બે કેબલ વચ્ચેના વોલ્ટેજમાં આ ફેરફાર છે જે નેટવર્ક પર ડેટા ટ્રાન્સમિશનને મંજૂરી આપે છે.

MCP2515 મોડ્યુલ

El MCP2515 મોડ્યુલ તમારા Arduino માં CAN કનેક્ટિવિટી ઉમેરવા માટે તે એક આદર્શ ઉકેલ છે. તે CAN કંટ્રોલર (MCP2515, જે CAN 2.0B સ્પષ્ટીકરણને અનુસરે છે) અને CAN ટ્રાન્સસીવર (TJA1050, જે ભૌતિક સંચારનું સંચાલન કરે છે) થી બનેલું છે. આ બે ચિપ્સ એકસાથે કામ કરે છે જેથી તમે SPI ઇન્ટરફેસ દ્વારા તમારા Arduino સાથે CAN સંદેશાઓ મોકલી અને પ્રાપ્ત કરી શકો.

MCP2515 પ્રમાણભૂત (11-બીટ) અને વિસ્તૃત (29-બીટ) સંદેશાઓ બંનેને સપોર્ટ કરે છે અને માસ્ક અને ફિલ્ટર્સના ઉપયોગ દ્વારા અનિચ્છનીય સંદેશાઓને ફિલ્ટર કરવાની ક્ષમતા ધરાવે છે, જે માઇક્રોકન્ટ્રોલરથી કામ કરે છે. તે એવા પ્રોજેક્ટ્સ માટે ઉત્તમ વિકલ્પ છે કે જેને વિશ્વસનીય સંચારની જરૂર હોય, પછી ભલે તે ઘોંઘાટીયા વાતાવરણમાં હોય કે લાંબા અંતર પર.

MCP2515 મોડ્યુલ ઘટકો

MCP2515 મોડ્યુલમાં નીચેના ભાગોનો સમાવેશ થાય છે:

  • MCP2515 CAN કંટ્રોલર: તમામ CAN પ્રોટોકોલ કાર્યો કરવા માટે જવાબદાર છે, જેમ કે સંદેશાઓ પ્રસારિત કરવા અને પ્રાપ્ત કરવા.
  • TJA1050 CAN ટ્રાન્સસીવર: CAN નિયંત્રકના ડેટાને ભૌતિક CAN બસ અને તેનાથી વિપરીત સંકેતોમાં રૂપાંતરિત કરવા માટે જવાબદાર.
  • SPI સંચાર પિન: SCK, MOSI, MISO અને CS પિનનો ઉપયોગ કરીને, MCP2515 તેના SPI ઇન્ટરફેસ દ્વારા Arduino સાથે વાતચીત કરે છે.
  • CAN બસ ટર્મિનલ્સ: આ નાનો સ્ક્રુ ટર્મિનલ બ્લોક 'H' અને 'L' ચિહ્નિત થયેલ છે. CAN_H અને CAN_L CAN નેટવર્ક કેબલ સાથે જોડાયેલા હોવા જોઈએ.

Arduino સાથે CAN નેટવર્ક કેવી રીતે સેટ કરવું

MCP2515 મોડ્યુલ સાથે, CAN નેટવર્ક સેટ કરવું પ્રમાણમાં સરળ છે. નીચે હું સમજાવું છું કે મોડ્યુલને તમારા Arduino બોર્ડ સાથે કેવી રીતે કનેક્ટ કરવું અને સોફ્ટવેરને કેવી રીતે ગોઠવવું.

MCP2515 મોડ્યુલ જોડાણો

પ્રારંભ કરવા માટે, તમારા Arduino ના SPI પિનને નીચે પ્રમાણે જોડો:

  • મીસો (મોડ્યુલ આઉટપુટ) Arduino ના D12 ને પિન કરવા માટે
  • મોસી (મોડ્યુલ ઇનપુટ) Arduino ના D11 ને પિન કરવા માટે
  • એસ.સી.કે. (ઘડિયાળ) થી Arduino પિન D13
  • CS (ચિપ સિલેક્ટ) થી Arduino પિન D10

તમારે MCP2515 ના INT પિનને Arduino ડિજિટલ પિન સાથે જોડવાની પણ જરૂર પડશે, ઉદાહરણ તરીકે D2, કારણ કે જ્યારે માન્ય સંદેશ પ્રાપ્ત થાય ત્યારે આ પિનનો ઉપયોગ વિક્ષેપોને હેન્ડલ કરવા માટે થાય છે.

તમારા મોડ્યુલને પાવર કરવાનું ભૂલશો નહીં. VCC પિન 5V સાથે અને GND પિન જમીન સાથે જોડાયેલ હોવી જોઈએ.

CAN બસ ટર્મિનલની વાત કરીએ તો, તમે જે વિવિધ નોડ્સને એકબીજા સાથે જોડવા માંગો છો તે વચ્ચે CAN_H ને CAN_H અને CAN_L ને CAN_L થી કનેક્ટ કરો. યાદ રાખો કે CAN બસ બંને છેડે 120 ઓહ્મ રેઝિસ્ટર સાથે સમાપ્ત થવી જોઈએ.

Arduino પ્રોગ્રામિંગ

એકવાર તમે નોડ્સને કનેક્ટ કરી લો તે પછી, MCP2515 મોડ્યુલ દ્વારા CAN બસ સાથે વાતચીત કરવા માટે તમારા Arduino ને પ્રોગ્રામ કરવાનો સમય છે. આ કરવાની શ્રેષ્ઠ રીત એ છે કે યોગ્ય પુસ્તકાલયનો ઉપયોગ કરવો, જેમ કે પુસ્તકાલય 'mcp2515'.

પ્રથમ, તમારે આ લાઇબ્રેરી ઇન્સ્ટોલ કરવાની જરૂર છે. જો તમે Arduino IDE નો ઉપયોગ કરી રહ્યા છો, તો સ્કેચ > Inlude Library > Manage Libraries પર જાઓ. 'mcp2515' માટે શોધો અને ઇન્સ્ટોલ વિકલ્પ પસંદ કરો.

લાઇબ્રેરી ઇન્સ્ટોલ કરીને, તમે તમારા ટ્રાન્સમીટર નોડ અને તમારા રીસીવર નોડ માટે કોડ લખવા માટે આગળ વધી શકો છો. નીચે હું તમને બંને માટે મૂળભૂત ઉદાહરણો બતાવું છું.

ટ્રાન્સમીટર નોડ માટે કોડ ઉદાહરણ

આ કોડ દર સેકન્ડે CAN બસ પર 'હેલો વર્લ્ડ' સંદેશ મોકલે છે.

#include void setup() { Serial.begin(9600); while (!Serial); Serial.println("Nodo transmisor CAN"); if (!CAN.begin(500E3)) { Serial.println("Error al iniciar CAN"); while (1); }}void loop() { Serial.print("Enviando mensaje... "); CAN.beginPacket(0x12); CAN.write('H'); CAN.write('o'); CAN.write('l'); CAN.write('a'); CAN.write(' '); CAN.write('M'); CAN.write('u'); CAN.write('n'); CAN.write('d'); CAN.write('o'); CAN.endPacket(); Serial.println("Mensaje enviado correctamente"); delay(1000);}

રીસીવર નોડ માટે કોડ ઉદાહરણ

આ કોડ CAN બસમાંથી સંદેશા મેળવે છે અને તેને સીરીયલ મોનિટર પર દર્શાવે છે.

#include void setup() { Serial.begin(9600); while (!Serial); Serial.println("Nodo receptor CAN"); if (!CAN.begin(500E3)) { Serial.println("Error al iniciar CAN"); while (1); } CAN.onReceive(onReceive);}void loop() {}void onReceive(int packetSize) { Serial.print("Mensaje recibido con ID: 0x"); Serial.print(CAN.packetId(), HEX); Serial.print(" | Tamaño: "); Serial.print(packetSize); Serial.print(" | Datos: "); while (CAN.available()) { Serial.print((char)CAN.read()); } Serial.println();}

CAN નેટવર્કમાં ઝડપ અને અંતર

CAN બસ વિવિધ ઝડપે સંચારની મંજૂરી આપે છે. MCP2515 દ્વારા સમર્થિત મહત્તમ ઝડપ 1 Mbit/s છે, પરંતુ બસની લંબાઈ ટ્રાન્સમિશન ઝડપને મર્યાદિત કરે છે. ઉદાહરણ તરીકે, 1 Mbit/s પર, મહત્તમ બસ લંબાઈ આશરે 40 મીટર છે. જો કે, જો તમારે વધારે અંતરની મુસાફરી કરવાની જરૂર હોય, તો તમે તમારી ઝડપ ઘટાડી શકો છો. 125 kbit/s પર, બસની લંબાઈ 500 મીટર સુધી પહોંચી શકે છે.

નેટવર્કનું સારી રીતે આયોજન કરવું અને બસની લંબાઈ અને તે જે વાતાવરણમાં તેનો ઉપયોગ કરવામાં આવશે તે માટે યોગ્ય ઝડપનો ઉપયોગ કરવો મહત્વપૂર્ણ છે, કારણ કે ઘોંઘાટીયા વાતાવરણ સંચારની ગુણવત્તાને અસર કરી શકે છે.

CAN_H અને CAN_L કેબલ્સ માટે ટ્વિસ્ટેડ જોડીનો ઉપયોગ કરવાનું પણ યાદ રાખો, કારણ કે આ ઇલેક્ટ્રોમેગ્નેટિક હસ્તક્ષેપ ઘટાડવામાં મદદ કરે છે અને નેટવર્કની વિશ્વસનીયતામાં સુધારો કરે છે.

બહુવિધ નોડ્સ સાથે CAN નેટવર્ક

જો તમે ઘણા ગાંઠો સાથે નેટવર્ક બનાવવા માંગો છો, તો પ્રક્રિયા ખૂબ સમાન છે. તમારે માત્ર એટલું જ કરવાની જરૂર છે કે તમામ ગાંઠોને CAN_H અને CAN_L લાઇનની સમાંતરમાં કનેક્ટ કરવાની ખાતરી કરો. ટર્મિનેશન રેઝિસ્ટર્સને માત્ર મુખ્ય લાઇનના છેડા પર મૂકવાનું યાદ રાખો, અને મધ્યવર્તી ગાંઠો પર નહીં.

વધુ જટિલ નેટવર્કમાં, તમારી પાસે બહુવિધ નોડ્સ હોઈ શકે છે જે ટ્રાન્સમીટર અને રીસીવર તરીકે કાર્ય કરે છે. દરેક નોડ બસમાં ન્યૂનતમ લોડ ઉમેરે છે, જે પ્રભાવને નોંધપાત્ર રીતે પ્રભાવિત કર્યા વિના CAN નેટવર્ક પર 112 નોડ સુધી કનેક્ટ થવા દે છે.

ભલે તમે એન્જીન ડેટા વાંચવા માટે ઓટોમોબાઈલમાં CAN બસનો ઉપયોગ કરી રહ્યાં હોવ અથવા બહુવિધ સેન્સરનો સંપર્ક કરવા માટે ઔદ્યોગિક પ્રોજેક્ટમાં, MCP2515 મોડ્યુલ આ કાર્યક્ષમતાને ઉમેરવાનું સરળ અને કાર્યક્ષમ બનાવે છે. આ પ્રકારનું નેટવર્ક એપ્લીકેશન માટે આદર્શ છે જ્યાં ડેટા ટ્રાન્સમિશનમાં ઓછી વિલંબતા અને વિશ્વસનીયતા આવશ્યક છે.


ટિપ્પણી કરવા માટે સૌ પ્રથમ બનો

તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.