ዝርዝር ሁኔታ:

RC522 እና PN532 RFID መሠረታዊ ነገሮች 10 ደረጃዎች
RC522 እና PN532 RFID መሠረታዊ ነገሮች 10 ደረጃዎች

ቪዲዮ: RC522 እና PN532 RFID መሠረታዊ ነገሮች 10 ደረጃዎች

ቪዲዮ: RC522 እና PN532 RFID መሠረታዊ ነገሮች 10 ደረጃዎች
ቪዲዮ: Android NFC example, to read tag info of RFID key and card 2024, ህዳር
Anonim
RC522 እና PN532 RFID መሠረታዊ ነገሮች
RC522 እና PN532 RFID መሠረታዊ ነገሮች

ማሳሰቢያ: አሁን ለ አር አርዲኖ ኮድ ለ RC522 እና ለ PN532 የሚያቀርቡ አስተማሪዎች አሉኝ።

ከተወሰነ ጊዜ በፊት ለሙከራ ሦስት የተለያዩ የ RFID ሞጁሎችን ገዛሁ። በቀድሞው ፕሮጀክት ውስጥ መሠረታዊ የደህንነት ተግባርን ለማከናወን ቀለል ያለ የ 125 ኪኸ ሞዱል እንዴት እንደሚጠቀሙ በዝርዝር ዘርዝሬያለሁ። እንደነዚህ ያሉ ሞጁሎች የንባብ ብቻ መለያዎችን ይጠቀማሉ ስለዚህ ሂደቱ መታወቂያውን ይቃኛል ፣ ከተፈለገ ያከማቻል እና ከተከማቹ መታወቂያዎች ጋር ያወዳድሩ። እኔ የገዛኋቸው ሌሎች ሞጁሎች በ 13.56 ሜኸር የሚሰሩ ሲሆን ሁለቱም ለመነበብ እና ለመፃፍ የሚችሉ መለያዎችን ይጠቀማሉ ስለዚህ በቀላሉ ለመሠረታዊ ደህንነት መጠቀማቸው እንደ ብክነት ነው። ሁለቱ የተለመዱ ሞጁሎች የ RC522 ቺፕ ወይም የ PN532 ቺፕ ይጠቀማሉ - ሁለቱም በ NXP የተሰሩ።

ማናቸውንም ሌሎች ፕሮጀክቶቼን ካነበቡ ርካሽ የፒአይሲ ማይክሮ መቆጣጠሪያዎችን እና ፕሮግራምን በስብሰባ ቋንቋ መጠቀም እንደምወድ ያውቃሉ። ስለዚህ እኔ የፈለግኩት ከሞጁሎች እና ከ RFID መለያዎች ጋር ለመነጋገር የሚያስፈልጉት የእርምጃዎች ቅደም ተከተል ነበር። ለሞጁሎቹ በመስመር ላይ ብዙ ምሳሌ ፕሮግራሞች ቢኖሩም ፣ አብዛኛዎቹ በ ‹ሲ› ሶፍትዌር ውስጥ ለአርዱዲኖ የተጻፉ እና የ SPI በይነገጽን ይጠቀማሉ። እንዲሁም ፣ ለቺፕስ እና ለ Mifare መለያዎች ማኑዋሎች ትንሽ መፍታት ይወስዳሉ። ይህ ልጥፍ በዋናነት ፕሮጀክቱን ስጀምር ባገኘሁት መረጃ ላይ ነው። እኔ በእያንዳንዱ ሞጁል የሚፈለጉትን መሠረታዊ ትዕዛዞችን ለማከናወን የ PIC ስብሰባ ሶፍትዌር ፕሮግራሞችን አካትቻለሁ። ምንም እንኳን የፒአይሲ እና/ወይም የመሰብሰቢያ ቋንቋ ባይጠቀሙም ፣ የምንጭ ኮዱ ቢያንስ እያንዳንዱን እርምጃ ለማከናወን የሚያስፈልጉትን የተወሰኑ ትዕዛዞች ጥሩ ሀሳብ ሊሰጥዎት ይገባል።

ደረጃ 1 - ተከታታይ በይነገጾች

ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች
ተከታታይ በይነገጾች

በእነዚህ ሞጁሎች ላይ ጥቅም ላይ የዋሉት ሁለቱም ቺፖች በ SPI ፣ በ I2C ወይም በ UART (HSSP) በኩል የመገናኘት ችሎታ አላቸው። የ PN532 ሞዱል የሚፈለገውን በይነገጽ ለመምረጥ የሚያገለግል የ DIP ማብሪያ አለው ነገር ግን MFRC522 ሞዱል ለ SPI በይነገጽ ጠንክሯል። እኔ የፒአይፒ አብሮገነብ UART ን መጠቀም እመርጣለሁ ፣ ስለሆነም የ MFRC522 ሞዱሉን ወደ UART ሞድ የሚያደርስበት መንገድ ካለ ለማየት በመስመር ላይ አደንኩ። ያገኘሁት በቦርዱ ላይ አንድ ፈለግ መቁረጥ ብልሃትን እንደሚያመጣ ነው። መቆራረጡ ከቺፕው EA ፒን 3.3 ቮልት በትክክል ያስወግዳል። በቴክኒካዊ የ EA ፒን ከዚያ ከመሬት ጋር መገናኘት አለበት ፣ ግን ብዙ ሰዎች የቺፕ ፒን ጥግግት ከተሰጣቸው ያንን የመሸጥ ችሎታን ማውጣት አይችሉም። ምንም እንኳን አይጨነቁ ፣ ምክንያቱም የ EA ፒን ውስጣዊ መጎተት ስለሌለው እና እንደ አሮጌው የ TTL አመክንዮ ግብዓቶች “አይንሳፈፍም”። ለመቁረጥ ቦታውን ወደ ቺፕ ዲያግራም እና የቦርዱን ክፍል ስዕል ይመልከቱ። በቀጥታ ወደ EA ፒን የሚሄደውን አጭር ዱካ ብቻ መቁረጥዎን ያረጋግጡ።

ደረጃ 2 - ሃርድዌር

ሃርድዌር
ሃርድዌር

ለ UART ግንኙነቶች የሃርድዌር ግንኙነቶች ከላይ ባለው ሥዕላዊ መግለጫ ውስጥ ይታያሉ። ለ MFRC522 የ UART ግንኙነቶች በቦርዱ ላይ ምልክት አልተደረገባቸውም ፣ ግን በስዕላዊ መግለጫው ላይ እንደሚታየው ፣ የ SDA ፒን የ UART መረጃን ይቀበላል እና የ MISO ፒን የ UART መረጃን ያስተላልፋል። የ PN532 ሞዱል በቦርዱ ታችኛው ክፍል ላይ የ UART ምልክቶች አሉት።

ሁለቱም ሞጁሎች በ 3.3 ቮልት ላይ የሚሰሩ ሲሆን ከ PIC TX ፒን የ 5 ቮልት አመክንዮ ደረጃ እንዲሁ መገደብ አለበት። ኤልሲዲ ግንኙነቱ በቀደሙት ፕሮጀክቶቼ ብዛት ውስጥ ያገለገለበት መደበኛ 4-ቢት ቅንብር ነው። ለሁሉም መልዕክቶች ነባሪ ቅርጸት ለመደበኛ 1602 LCD (16 ቁምፊዎች በ 2 መስመሮች) ተዘጋጅቷል። እኔ በማረም ጊዜ ለጥሬ የውሂብ ማስወገጃዎች የምጠቀምበት ባለ 40 ቁምፊ በ 2 መስመር ኤልሲዲ አለኝ ፣ ስለዚህ ተጨማሪ የማሳያ ቦታን ለመጠቀም በሚያስችለኝ ሶፍትዌር ውስጥ ፍቺን አካትቻለሁ።

ደረጃ 3 የውሂብ እገዳዎች

ለዚህ ፕሮጀክት ያገለገሉ ሚፋሬ ክላሲክ 1 ኪ መለያዎች እንደ 16 ዘርፎች ፣ በዘርፉ አራት የውሂብ ብሎኮች ፣ 16 ባይት በአንድ የውሂብ ማገጃ የተዋቀሩ ናቸው። ከ 64 የውሂብ ማገጃዎች ውስጥ በእውነቱ ጥቅም ላይ የሚውሉት 47 ብቻ ናቸው። የውሂብ ማገጃ 0 የአምራች መረጃን ይይዛል እና ብሎኮች 3 ፣ 7 ፣ 11 ፣ 15 ፣ 19 ፣ 23 ፣ 27 ፣ 31 ፣ 35 ፣ 39 ፣ 43 ፣ 47 ፣ 51 ፣ 55 ፣ 59 ፣ እና 63 ተጎታች ብሎኮች ይባላሉ። የፊልም ማስታወቂያ ብሎኮች በእያንዳንዱ ዘርፍ የመጨረሻዎቹ ናቸው እና ሁለት ቁልፎችን እና የማገጃ መድረሻ ነጥቦችን ይዘዋል። ለእያንዳንዱ ዘርፍ የተለያዩ ቁልፎች እና የመዳረሻ ህጎች እንዲኖርዎት ቁልፎቹ እና የማገጃ መዳረሻ ክፍሎቹ በዚያ ዘርፍ ውስጥ ባለው የውሂብ ብሎኮች ላይ ብቻ ይተገበራሉ። ነባሪ ቁልፎቹ ወደ “ኤፍኤፍ ኤፍ ኤፍ ኤፍ ኤፍ ኤፍ ኤፍ ኤፍ ኤፍ” ተዘጋጅተዋል። ለዚህ መሠረታዊ ፕሮጀክት እኔ አንድ የውሂብ ማገጃን ብቻ እጠቀማለሁ እና ነባሪ ቁልፎችን እና የመዳረሻ ነጥቦችን እጠብቃለሁ። ከእነዚህ ካርዶች ጋር የሚዛመዱ ብዙ ሰነዶች አሉ ስለዚህ ለ ‹ሚፋሬ› የመስመር ላይ ፍለጋ ብቻ ያድርጉ ወይም የበለጠ በጥልቀት ለመመርመር ከፈለጉ የ NXP ድር ጣቢያውን ይጎብኙ።

ደረጃ 4 አጠቃላይ ሥራ

ሁለቱም ሞጁሎች በተደረሱበት መንገድ እና መለያዎችን በሚያገኙበት መንገድ ልዩ ቢሆኑም ሥራውን ለማከናወን የሚያስፈልገው አጠቃላይ ሂደት አለ። ለዚህ ፕሮጀክት መለያዎቹ የ Mifare Classic 1k ዓይነት እንደሆኑ እና እኛ በአንቴና መስክ ውስጥ አንድ መለያ ብቻ በአንድ ጊዜ እንፈቅዳለን ብለን እንገምታለን። መሰረታዊ ደረጃዎች ከዚህ በታች ተብራርተዋል።

· ሞጁሉን ያስጀምሩት - በአጠቃላይ ይህ በቺፕ ውስጥ ለመመዝገብ ፣ “የንቃት” ትዕዛዞችን ለመላክ እና ኃይልን ወደ አንቴና ለማብራት እንደ የመፃፍ እሴቶችን የመሳሰሉትን ይጠይቃል። በባትሪ በሚሠራ መተግበሪያ ውስጥ ባትሪውን ለመቆጠብ የአንቴናውን ኃይል ማብራት እና ማጥፋት መቻል ይፈልጋሉ ፣ ግን ለዚህ ቀላል ትግበራ አንድ ጊዜ እናበራለን እና ከዚያ እንተወዋለን።

· ክሪፕቶ ባንዲራውን ያፅዱ (522 ብቻ) - መለያ ሲረጋገጥ መለያው ያላቸው ግንኙነቶች እንደሚመሰጠሩ ተጠቃሚው እንዲያውቅ ለማድረግ ባንዲራ ይዘጋጃል። ምንም እንኳን እየተቃኘ ያለው መለያ አንድ ቢሆንም ይህ ጠቋሚ ከሚቀጥለው ቅኝት በፊት በተጠቃሚው መጽዳት አለበት።

· ለመለያ ይቃኙ - ሞጁሉ በመሠረቱ “እዚያ ያለ ሰው አለ?” ብሎ ይጠይቃል። እና መለያው “እዚህ ነኝ” የሚል ምላሽ ይሰጣል። ሞጁሉ ፈጣን ምላሽ ካላገኘ ማዳመጥ ያቆማል። ያ ማለት መለያ እስኪያገኝ ድረስ የፍተሻ ትዕዛዞችን ወደ ሞጁሉ በተደጋጋሚ መላክ አለብን ማለት ነው።

· የመለያውን የተጠቃሚ መለያ ቁጥር (ዩአይዲ) ያግኙ - መለያው እንደ የመለያው ዓይነት ባሉ አንዳንድ ውስን መረጃዎች ለፍተሻው ጥያቄ ምላሽ ይሰጣል። ያ ማለት UID ን ለማግኘት ሌላ ትእዛዝ መላክ ያስፈልገን ይሆናል። UID ለ Mifare Classic 1k መለያዎች አራት ባይት ነው። ለሌሎች መለያዎች ረዘም ያለ ከሆነ ግን ይህ ፕሮጀክት እነሱን አይመለከትም።

· መለያውን ይምረጡ (522 ብቻ) - ዩአይዲ ተጠቃሚው ለንባብ እና ለመፃፍ ማረጋገጥ የሚፈልገውን መለያ ለመምረጥ ይጠቅማል። ይህ በአንቴና መስክ ውስጥ ከአንድ በላይ መለያ ሊኖር በሚችልበት ሁኔታ ላይ የተመሠረተ ነው። ለቀላል ትግበራችን ይህ አይደለም ነገር ግን ለማንኛውም መለያውን መምረጥ አለብን።

· መለያውን ያረጋግጡ - የመለያውን ማንኛውንም ንባብ ወይም መጻፍ ከፈለግን ይህ እርምጃ ያስፈልጋል። እኛ ማድረግ የምንፈልገው ለቀላል የደህንነት ትግበራ በመለያዎች መካከል መለየት ብቻ ከሆነ UID በቂ ነው። ማረጋገጫ ዩአይዲአድን እንድናውቅ እና እኛ ልንፈልገው ለፈለግነው የመለያው የውሂብ ዘርፍ የ crypto ቁልፍን እንድናውቅ ይጠይቃል። ለዚህ ፕሮጀክት እኛ ከነባሪ ቁልፎች ጋር እንጣበቃለን ነገር ግን መለያው እንደ ኤሌክትሮኒክ የኪስ ቦርሳ ጥቅም ላይ እንዲውል የእኔ ተከታይ ፕሮጀክት ቁልፎቹን ይለውጣል።

· መለያውን ያንብቡ ወይም ይፃፉ - ንባቦች ሁል ጊዜ የተጠየቀውን የውሂብ ማገጃ 16 ባይት ሁሉ ይመልሳሉ። ጽሑፎች ሁሉም 16 ባይት በአንድ ጊዜ እንዲጻፉ ይጠይቃሉ። በተመሳሳዩ የውሂብ ዘርፍ ውስጥ ሌላ ብሎክ ለማንበብ ወይም ለመፃፍ ከፈለጉ መለያው እንደገና መረጋገጥ አያስፈልገውም። በተለየ የውሂብ ዘርፍ ውስጥ ብሎክን ለማንበብ ወይም ለመፃፍ ከፈለጉ ከዚያ ለዚያ ዘርፍ ቁልፉን በመጠቀም መለያው እንደገና መረጋገጥ አለበት።

ደረጃ 5 - MFRC522 ሞዱል የመዳረሻ ቅደም ተከተል

የማስነሻ አሠራሩ እኔ ባየኋቸው በአብዛኛዎቹ ትግበራዎች ውስጥ የሚገኙትን እነዚህን መሠረታዊ ደረጃዎች ያጠቃልላል-

· የዱሚ ውሂብ ባይት ይላኩ (የሚቀጥለውን አንቀጽ ይመልከቱ)

· ለስላሳ ዳግም ማስጀመር

· የ RF ተቀባዩን ትርፍ ያዘጋጁ (ከነባሪው የተለየ ነገር ከተፈለገ)

· የ ASK ማስተካከያ መቶኛን ወደ 100% ያቀናብሩ

· ለሲአርሲ ስሌቶች የዘር እሴት ያዘጋጁ

· አንቴናውን ያብሩ

· የጽኑዌር ስሪት ያግኙ (አያስፈልግም)

በሆነ ባልታወቀ ምክንያት ሞጁሌ ኃይሌን ያጠናክራል እና ያለ የውሂብ ባይት የጽሑፍ ትእዛዝ ደርሷል ብሎ ያስባል። ይህ በሞዱልዬ ውስጥ ያለው ችግር ብቻ እንደሆነ አላውቅም ነገር ግን በሌላ ቦታ ምንም ማጣቀሻዎችን አላየሁም። በሁለቱም በሃርድዌር እና በሶፍትዌር ዳግም ማስጀመር ሙከራ አደረግሁ እና ችግሩን አላስተካከልኩም። የእኔ መፍትሔ በሞጁሉ የመነሻ አሠራር መጀመሪያ ላይ “0” (ያልተገለፀ) ለመመዝገብ አንድ dummy ንባብ ጥሪ ማከል ነበር። ሞጁሉ ይህንን ለማይታወቅ የጽሑፍ ትእዛዝ እንደ ውሂብ አድርጎ የሚመለከት ከሆነ ምንም መጥፎ ውጤቶች የሉም። እሱ እንደ የተነበበ ትእዛዝ ከተመለከተ ፣ ከዚያ ምንም ጠቃሚ ነገር አይከሰትም። ጉዳዩን ሙሉ በሙሉ መግለፅ አለመቻሌ ያስጨንቀኛል ፣ በተለይም የሞዱል ብቻ የሃርድዌር ዳግም ማስጀመር ችግሩን አያስተካክለውም።

የ RC522 ቺፕ በበርካታ መመዝገቢያዎች የተዋቀረ ሲሆን አብዛኛዎቹ ማንበብ እና መጻፍ ናቸው። አንድ ጽሑፍ ለመፈፀም የመመዝገቢያ ቁጥሩ ወደ ሞጁሉ ይላካሉ እና ለመፃፍ እሴቱ ይከተላል። ንባብን ለማከናወን የመመዝገቢያ ቁጥሩ 0x80 ተጨምሯል እና ወደ ሞጁሉ ይላካል። ለጽሑፍ ትዕዛዝ የተሰጠው ምላሽ የተገኘው የመዝገቡ ማሚቶ ነው። ለንባብ ትዕዛዝ የተሰጠው ምላሽ የመዝገቡ ይዘቶች ነው። ሶፍትዌሩ ትዕዛዙ በትክክል መፈጸሙን ለማረጋገጥ ያንን እውቀት ይጠቀማል።

ደረጃ 6: PN532 ሞዱል የመዳረሻ ቅደም ተከተል

የመነሻ አሠራሩ የሚከተሉትን አስፈላጊ ደረጃዎች ያጠቃልላል

· የመነሻ ሕብረቁምፊ ይላኩ - ይህ ለ UART በይነገጽ የተወሰነ ነው። ማኑዋሉ የ UART በይነገጽ በይነገጹ ላይ በተገኘው አምስተኛው ከፍ ባለ ጠርዝ ላይ ይነቃል ይላል። 0x55 ፣ 0x55 ፣ 0x00 ፣ 0x00 ፣ 0x00 ፣ 0x00 መላክን ይመክራል። ለአብዛኛው ፣ ከፍ ያሉ ጠርዞች ያሉት በቂ የቁምፊዎች ብዛት መኖር ብቻ ነው እና እነሱ የትእዛዝ መግቢያ (00 00 ኤፍኤፍ) መምሰል የለባቸውም።

· ሞጁሉን ከእንቅልፉ ያውጡ - በተጠቃሚው መመሪያ ውስጥ የተቀበረው ሞጁሉ “LowVbat” ወደሚባለው የእንቅልፍ ሁኔታ መጀመሩን ያሳያል። ከዚህ ሁኔታ ለመውጣት “SAMConfiguration” ትዕዛዝ መላክ አለብን።

PN532 ቅድመ -ቃላትን ፣ መልእክቱን እና የፖስታ ፖስታን ያካተተ በተገለጸ የመልዕክት ቅርጸት ትዕዛዞችን እንዲላክ ይጠብቃል። የምላሽ መልዕክቶች ተመሳሳይ ቅርጸት ይከተላሉ። የትእዛዙ እና የምላሽ መልእክቶች ሁለቱም TFI (የክፈፍ መለያ) እና የትእዛዝ ሥሪት ያካትታሉ። ትዕዛዙ 0xD4 TFI ን ይጠቀማል እና ምላሹ 0xD5 ን ይጠቀማል። የትእዛዙ ስሪቶች ይለያያሉ ነገር ግን ምላሹ ሁል ጊዜ የትእዛዝ ስሪቱን ከፍ ያደርገዋል እና TFI ን በመከተል ባይት ውስጥ ይመልሰዋል። ያ ወጥነት የምላሽ መልዕክቶች ለሚመለከተው መረጃ በቀላሉ እንዲቃኙ ይፈቅዳል።

እያንዳንዱ የትእዛዝ መልእክት (ቅድመ -ቃሉን በመከተል) የመልእክቱን ርዝመት ፣ የ 2 ቱን የመልዕክት ርዝመት ፣ TFI ፣ ትዕዛዙን ፣ መረጃን ፣ ቼክሰምን እና ፖስታውን የያዘ ነው። ሶፍትዌሩ ግለሰባዊ ትዕዛዞችን ይገነባል ፣ ከዚያም ቼክሰሙን የሚያሰላ እና የፖስታ ፖስታውን የሚያስተካክል የዕለት ተዕለት ጥሪ ያደርጋል።

ለምላሽ የመልዕክት ቅርጸት ከትእዛዙ ጋር ተመሳሳይ ነው። የተለመደው ምላሽ ACK (00 00 FF 00 FF 00) እና ለትእዛዙ የተወሰነ ምላሽ ይከተላል። እያንዳንዱ የትእዛዝ ምላሽ የሚጀምረው በ 00 00 ኤፍኤኤ መግቢያ ላይ ነው። ምላሹም እንዲሁ የ ‹55› TFI ባይት እና በመቀጠል የትእዛዝ ቁጥሩ በ 1 ተጨምሯል 1. ለ “SAMConfiguration” ትዕዛዛችን (14) ያ ይሆናል 15. የ “SAMConfiguration” ትዕዛዙ ይህንን ምላሽ ያገኛል 00 00 FF 00 FF 00 00 00 ኤፍኤፍ 02 FE D5 15 16 00።

ሊላኩ የሚችሉ ሌሎች ሞጁል-ተኮር ትዕዛዞች አሉ ፣ ግን ለዚህ ትግበራ አያስፈልጉም። እኔ ግን የጽኑዌር ሥሪት ቁጥሩን ለማምጣት ሊጠራ የሚችል መደበኛ አካትት አካትቻለሁ። የተለመደው ምላሽ (ከኤ.ኬ.ኬ እና መግቢያ በኋላ) - 06 FA D5 03 32 01 06 07 E8 00. “01 06 07” የጽኑ ትዕዛዝ ስሪት ቁጥር 1.6.7 ን ያመለክታል።

ደረጃ 7 - የመለያ መዳረሻ ቅደም ተከተል

ሞጁሉ ከተዘጋጀ በኋላ ለመለያዎቹ የተወሰኑ ትዕዛዞችን መላክ እንችላለን። የመለያ ውሂብን ለማንበብ ወይም ለመፃፍ የመታወቂያ ቁጥሩ (ዩአይዲ) ሊኖረን ይገባል። UID እና ቁልፉ ለንባብ/ለመፃፍ አንድ የተወሰነ የመለያ ውሂብ ዘርፍ ለመፍቀድ ጥቅም ላይ ይውላል። የመለያ ውሂብ ያነባል/ይጽፋል ሁል ጊዜ በተጠቀሰው የውሂብ እገዳ ውስጥ በሁሉም 16 ባይት ላይ ይደረጋል። ያ ማለት የተለመደው ትግበራ የውሂብ ማገጃውን ያነባል ፣ ውሂቡን እንደተፈለገው ይለውጣል ፣ ከዚያም አዲሱን ውሂብ ወደ መለያው ይፃፋል ማለት ነው።

ደረጃ 8: ሶፍትዌር

PIC UART የባይት መረጃ ባገኘ ቁጥር የተቋረጠው ተቆጣጣሪ ሶፍትዌር ይጠራል። በአንዳንድ የቀድሞ የ UART ፕሮጄክቶቼ ውስጥ የማቋረጫ ተቆጣጣሪን ከመጠቀም ይልቅ የ RX ማቋረጫ ባንዲራውን ብቻ መርጫለሁ። ይህ ሶፍትዌር በተለይ ከ RC522 ይልቅ እጅግ ከፍ ባለ የባውድ ፍጥነት ለሚገናኝ ለ PN532 አይደለም። የ RC522 የ UART በይነገጽ በ 9600 ባውድ የተገደበ ሲሆን ለ PN532 ነባሪው 115k ሲሆን እስከ 1.288M ባውድ ከፍ ሊል ይችላል። የተቀበሉት ባይቶች በማጠራቀሚያው ቦታ ውስጥ ይከማቻሉ እና የሶፍትዌሩ ዋና ክፍል እንደ አስፈላጊነቱ ያመጣቸዋል።

የአዲሱ_ኤምኤስግ ባንዲራ ባይት መቀበሉን እና ባይት_ኮውንት ስንቱን ያመለክታል። በማረም ጊዜ የመቀበያ ቋት ይዘቶችን ለማሳየት ሊጠራ በሚችል ሶፍትዌር ውስጥ “Disp_Buff” ልማድን አካትቻለሁ። አንዳንድ የመመለሻ መልእክቶች የተለመዱ የ 1602 ማሳያዎችን ያጥላሉ ነገር ግን በመስመር ላይ ትርፍ ኤሌክትሮኒክስ ጣቢያ ያገኘሁት ባለ 40 ቁምፊ በ 2 መስመር ኤልሲዲ አለኝ። የ “ማክስ_ላይን” ፍቺ ለእርስዎ ኤልሲዲ መጠን ሊዘጋጅ ይችላል። “ማክስ_ላይን” ከተደረሰ ፣ የ “Disp_Buff” አሠራሩ ወደ ሁለተኛው መስመር በመጻፍ ይቀጥላል። ባለ 4 መስመር ኤልሲዲ ካለዎት በሶስት እና በአራት መስመሮች ላይ ለመቀጠል በዚያ አሠራር ላይ ትንሽ ኮድ ማከል ይችላሉ። ለ ‹PN532› አሠራሩ ሁሉንም የተቀበሉትን ባይቶች እንዲጥል ወይም 16 ን የውሂብ ባይት ከንባብ ምላሽ እንዲጥል የሚዘጋጅ ባንዲራ አለ።

የተቀበለውን ቋት ወይም ባይት_ኮውንት ማጽዳት አያስፈልግም ምክንያቱም የኒው_ኤምኤስግን ባንዲራ ማጽዳት ባይት_ኮውንት በተቋረጠው ተቆጣጣሪ እንዲጸዳ ያደርገዋል እና ያ ወደ ጠቋሚው እንደ መረጃ ጠቋሚ ሆኖ የሚያገለግል ነው። ለዚያ ትዕዛዝ የተወሰኑ ውጤቶች በቀላሉ ሊገኙ እና ሊረጋገጡ እንዲችሉ ኒው_ኤምኤስግ ከእያንዳንዱ የትእዛዝ ደረጃ በፊት ብዙውን ጊዜ ይጸዳል። በ RC522 ያ ማለት የመቀበያ ቋት ብዙውን ጊዜ ከ 1 እስከ 4 ባይት ብቻ አለው ማለት ነው። በአንዳንድ አጋጣሚዎች ፣ እንደ የውሂብ ማገጃ ይነበባል ፣ ባይት ከ FIFO ወደ ተቀባዩ ቋት ለማዛወር የ Read_FIFO ትዕዛዙ ብዙ ጊዜ መሰጠት አለበት። ለ PN532 ሁሉም የትእዛዝ ውጤቶች በተቀበለው ቋት ውስጥ ያበቃል ስለዚህ አስፈላጊዎቹን ባይቶች ለማግኘት የፍተሻ ሂደት ይከናወናል።

በሶፍትዌሩ ውስጥ ያለው ዋናው loop ለመለያ ይቃኛል እና ከዚያ ለንባብ/ለመፃፍ መለያውን ያረጋግጣል። ለሙከራ ሶፍትዌሩ እዚህ ለተካተተው ተለዋዋጭ Junk_Num በእያንዳንዱ ጊዜ በዋናው ዑደት በኩል ተስተካክሎ ወደ መለያው በሚጽፍበት ጊዜ ጥቅም ላይ ይውላል። የተፃፉት እሴቶች በ Junk_Num እሴት እና በ 1 ጁንክ_ኑም ማሟያ መካከል ይለዋወጣሉ። በመጨረሻም 16 ቱ የጽሑፍ እሴቶች ተነበው ይታያሉ። እያንዳንዱን መልእክት ለማንበብ ጊዜን ለመፍቀድ ለእያንዳንዱ ደረጃ የማሳያ መልእክቶች አሉ። የስህተት መልዕክቶችም ቀርበዋል ነገር ግን በተለምዶ መከሰት ያለባቸው በቀዶ ጥገናው ወቅት መለያው ከተወገደ ብቻ ነው።

የሶፍትዌሩ አጀማመር አካል የኃይል ማብራት ላይ ብቻ የሚተገበር እና የሶፍትዌር ዳግም ማስጀመር ከተገኘ የተዘለለ የኮድ ክፍል ነው። የስህተት መልዕክቶች በአጠቃላይ ከዋናው ዑደት ለመውጣት እንደ አንድ የሶፍትዌር ዳግም ማስጀመር ይቋረጣሉ። ዳግም ማስጀመሪያው በ “ዘንበል” አሠራር ውስጥ በቀላሉ የ Watchdog ሰዓት ቆጣሪን በሚያስችል እና የጊዜ ገደቡን በመጠባበቅ ወደ ማለቂያ ዑደት ውስጥ ይሄዳል።

ደረጃ 9: MFRC522 ልዩ ሶፍትዌር

ከመለያዎች ጋር ግንኙነቶችን ለማከናወን የ RC522 ቺፕ ከ PN532 ቺፕ የበለጠ ዝቅተኛ ደረጃ መመሪያዎችን ይፈልጋል። በ ‹ሲ› ውስጥ በስብሰባ ቋንቋ እና በፕሮግራም ውስጥ እንደ መርሃግብር ዓይነት ነው። ሌላው ጉልህ ልዩነት RC522 ከመለያው ጋር ያሉ ግንኙነቶች በ FIFO ቋት በኩል እንዲጣመሩ ይጠይቃል። የዕለት ተዕለት ተግባሮቹ “Write_FIFO” እና “Read_FIFO” እነዚህን ተግባራት ይቆጣጠራሉ። የ MFRC522 ሶፍትዌር ዋናዎቹ ተግባራት ከተገነቡባቸው ለዝቅተኛ ደረጃ ትዕዛዞች ለብዙ ክፍልን ያካትታል።

ለ RC522 የመለያ ትዕዛዝ የቼክሶም ስሌት ከ PN532 በጣም የተለየ ነው። የመለያ ትዕዛዙ በ FIFO ውስጥ ከተገነባ በኋላ ፣ ቼክሰሙን ለማስላት የሞዱል ትዕዛዝ ይላካል። የ 16 ቢት ውጤቱ በራስ-ሰር በመለያ ትዕዛዙ ላይ አይታከልም ነገር ግን ከሁለት የ 8 ቢት መመዝገቢያዎች ለማንበብ ይገኛል። የፍተሻ ስሌት በ FIFO ውስጥ ያለውን ውሂብ ያጠፋል ስለዚህ የሚፈለገው ቅደም ተከተል እንደሚከተለው ነው

· በ FIFO ውስጥ ትዕዛዙን ይገንቡ

· የቼክሶም ስሌት ያዝዙ

· በ FIFO ውስጥ ትዕዛዙን እንደገና ይገንቡ

· የ CRC መመዝገቢያዎችን ያንብቡ እና የቼክሶም ባይቶችን ለ FIFO ይፃፉ

· የ Transceive ወይም የማረጋገጫ ትዕዛዝ ይላኩ

የ Transceive ትዕዛዙ የ FIFO ቋት ያስተላልፋል እና ከዚያ ከመለያው ምላሽ ለመጠበቅ ወደ ሞድ ለመቀበል በራስ -ሰር ይቀይራል። ውሂቡን በእውነቱ ለማስተላለፍ በ “BitFramingRegister” ውስጥ የ StartSend ቢት ቅንብር መከተል አለበት። የማረጋገጫ ትዕዛዙ ይህ መስፈርት የለውም።

በአጠቃላይ ፣ በመስመር ላይ የሚገኙት የ Arduino “C” ኮድ መተግበሪያዎች ትክክለኛ ምላሽ በወቅቱ መድረሱን ለማረጋገጥ የማቋረጫ ባንዲራ መዝገቦችን እና የጊዜ ማብቂያ መመዝገቢያውን ይጠቀማሉ። በእኔ አስተያየት ለዚህ ጊዜ ያልሆነ ወሳኝ ትግበራ ከመጠን በላይ ነው። በምትኩ ፣ ምላሹን ለመጠበቅ እና ከዚያ ትክክል መሆኑን ለማረጋገጥ አጭር የሶፍትዌር ጊዜዎችን እጠቀማለሁ። የ Mifare መለያዎች ማኑዋል ለተለያዩ ግብይቶች ጊዜን ይዘረዝራል እናም የሚጠበቀው የባይት ብዛት ለመቀበል ጊዜም ይፈቀዳል። እነዚህ የጊዜ መዘግየቶች በአብዛኛዎቹ በዝቅተኛ ደረጃ የትእዛዝ ንዑስ ቡድኖች ውስጥ ተገንብተዋል።

ደረጃ 10: PN532 ልዩ ሶፍትዌር

ሞጁሉ ከተጀመረ በኋላ መለያውን ለማግኘት እና ለማረጋገጥ የሚያስፈልጉት እርምጃዎች ተገቢውን ትእዛዝ በመከተል አስፈላጊውን ውሂብ በመከተል ይፈጸማሉ። የፍተሻ ትዕዛዙ ከዚያ ለማረጋገጫ የሚያገለግል UID ን ይመልሳል። ከዚያ በኋላ ፣ የመለያውን ያነባል እና ይጽፋል ፣ ለአድራሻው የውሂብ ማገጃ 16 ባይት ይላኩ ወይም ይመልሱ።

የመነሻ ቅደም ተከተል ቀደም ብሎ ተዘርዝሯል እና ተመሳሳይ የሶፍትዌር አሠራር እንዲሁ ሞጁሉን ከ “LowVbat” ሁኔታ ለማውጣት የ SAMConfiguration ትዕዛዙን ይልካል። የተቀሩት መሠረታዊ ትዕዛዞች ፣ ለምሳሌ ቅኝት ፣ ማረጋገጥ ፣ ማንበብ/መጻፍ መለያ ፣ በተግባራዊ አሠራሮች ውስጥ በቅደም ተከተል ተገንብተዋል። ቼኩሱ የሚሰላው የትእዛዝ ባይቶችን በመደመር ፣ ማሟያ በማድረግ እና በመቀጠል 1 በማከል የ 2 ማሟያ እንዲሆን ነው። የ 8 ቢት ውጤቱ ከፖስታ ፖስታ በፊት ልክ በትእዛዝ ሕብረቁምፊ ላይ ተጣብቋል።

በ RC522 ውስጥ እንደ FIFO የለም ስለዚህ የተሟላ የምላሽ መልእክቶች በራስ -ሰር ይቀበላሉ። የ “Find_Response” አሠራሩ ለ TFI (0xD5) የተቀበለውን የውሂብ ቋት ይቃኛል። አሰራሩ የሚጠበቁ መልእክቶች ምን መሆን እንዳለባቸው በማወቅ ይጠቀማል እና መረጃን የማያካትቱ ቀላል የ ACK ምላሾችን ችላ ይላል። TFI ከተገኘ በኋላ የሚፈለጉት ምላሾች ከእሱ የሚታወቅ ማካካሻ ናቸው። የትእዛዝ ማሚቶ እና የትእዛዝ ሁኔታ ባይት ለኋላ ማረጋገጫ በ “Read_Buff” አሠራር ተይዘዋል።

ለዚህ ልጥፍ ያ ነው። ሌሎች የኤሌክትሮኒክስ ፕሮጀክቶቼን በ www.boomerrules.wordpress.com ይመልከቱ

የሚመከር: