කර්තෘ: ටෝචියෝට්බොට්කාම්ප්
සබැඳිය: https: //zhaanlan.zhihu.com/p/339700391
සිට: ක්වෝරා
1. හැඳින්වීම
සිග්සන් විද්යාගාර සිග්බී ගේට්වේ නිර්මාණය සඳහා සත්කාරක + එන්.සී.පී. විසඳුමක් ලබා දී ඇත. මෙම ගෘහ නිර්මාණ ශිල්පයේ දී, සත්කාරක සමාගමට NCP සමඟ UART හෝ SPI අතුරුමුහුණත හරහා සන්නිවේදනය කළ හැකිය. බහුලව දක්නට ලැබෙන UART භාවිතා කරන්නේ එය SPI වලට වඩා බොහෝ සරල බැවින් ය.
සිලිකන් විද්යාගාර ධාරක වැඩසටහන සඳහා නියැදි ව්යාපෘතියක් සඳහා නියැදි ව්යාපෘතියක් ද ලබා දී ඇති අතර එය නියැදියකිZ3gatewayhoost
. නියැදිය යුනික්ස් වැනි පද්ධතියක් මත ධාවනය වේ. සමහර පාරිභෝගිකයින්ට RTOS මත ධාවනය කළ හැකි ධාරක නියැදියෙකු අවශ්ය විය හැකිය, නමුත් අවාසනාවකට මෙන්, කාලය සඳහා RTOS පදනම් කරගත් සත්කාරක සාම්පලයක් නොමැත. RTOS මත පදනම්ව පරිශීලකයින්ට තමන්ගේම සත්කාරක වැඩසටහනක් සංවර්ධනය කළ යුතුය.
අභිරුචි කළ ධාරක වැඩසටහනක් සංවර්ධනය කිරීමට පෙර UAT ගේට්වේ ප්රොටෝකෝලය තේරුම් ගැනීම වැදගත්ය. UART පදනම් කරගත් එන්.සී.පී. සහ SPI මත පදනම් වූ එන්.සී.පී. යන දෙදෙනාම සඳහා, සත්කාරක ඊඑස්එස්පී ප්රොටොකෝලය එන්.සී.පී. සමඟ සන්නිවේදනය කිරීමට යොදා ගනී.EZSPසඳහා කෙටි වේEmberznet අනුක්රමික ප්රොටෝකෝලය, එය අර්ථ දැක්වේUg100. UART පදනම් කරගත් එන්.සී.පී., අඩු ස්ථර ප්රොටෝකෝලයක් ක්රියාත්මක කරනු ලබන්නේ ඊස්එස්පී දත්ත UART ඉක්මවා යාම සඳහා යඅළුප්රොටෝකෝලය, කෙටිඅසමමුහුර්ත අනුක්රමික ධාරකය. අළු ගැන වැඩි විස්තර සඳහා කරුණාකර බලන්නUg101සහUG115.
EZSP සහ ASH අතර සම්බන්ධතාවය පහත රූප සටහනෙන් නිදර්ශනය කළ හැකිය:
EZSP හි දත්ත ආකෘතිය සහ අළු ප්රොටෝකෝලය පහත රූප සටහනෙන් නිදර්ශනය කළ හැකිය:
මෙම පිටුවේ, අපි යූආර්ට් දත්ත රාමු කර ගේට්ටුවේ නිතර භාවිතා වන සමහර ප්රධාන රාමු වල ක්රියාවලිය හඳුන්වා දෙන්නෙමු.
2. රාමුව
සාමාන්ය රාමු ක්රියාවලිය පහත වගුවේ දැක්වේ:
මෙම ප්රස්ථාරයේ, දත්ත යනු EZSP රාමුවයි. පොදුවේ ගත් කල, රාමු කිරීමේ ක්රියාවලීන්: | නැත | පියවර | යොමු |
|:: |: |: |
| 1 | ඊස්එස්පී රාමුව පුරවන්න | UG100 |
| 2 | දත්ත සසම්කරණය | UG101 හි 4.3 කොටස |
| 3 | පාලක බයිට් | UG101 හි CHAP2 සහ CHAP3 |
| 4 | CRC ගණනය කරන්න | UG101 හි 2.3 කොටස |
| 5 | බයිට් පිරවීම | UG101 හි 4.2 කොටස |
| 6 | අවසාන ධජය එක් කරන්න | UG101 හි 2.4 කොටස |
2.1. ඊස්එස්පී රාමුව පුරවන්න
UG100 හි පරිමාණයේ EZSP රාමු ආකෘතියෙන් නිදර්ශනය කෙරේ.
SDK වැඩිදියුණු කිරීම් සිදු වූ විට මෙම ආකෘතිය වෙනස් විය හැකි බවට අවධානය යොමු කරන්න. ආකෘතිය වෙනස් වන විට, අපි එයට නව අනුවාද අංකයක් ලබා දෙන්නෙමු. මෙම ලිපිය ලියා ඇති විට නවතම EZSP අනුවාද අංකය 8 වේ (එම්බෙට්ස්නෙට් 6.8).
ඊස්එස්පී රාමු ආකෘතිය විවිධ අනුවාද අතර වෙනස් විය හැකි බැවින්, සත්කාරකත්වය සහ එන්.සී.පී.විය යුතුයඑකම ඊඑස්එස්පී අනුවාදය සමඟ වැඩ කරන්න. එසේ නොවුවහොත්, ඔවුන්ට බලාපොරොත්තු වන පරිදි සන්නිවේදනය කළ නොහැක.
එය සාක්ෂාත් කර ගැනීම සඳහා ධාරකයා සහ එන්සීපී අතර පළමු විධානය අනුවාද විධානය විය යුතුය. වෙනත් වචන වලින් කිවහොත්, මෙම සත්කාරක සමාගම වෙනත් සන්නිවේදනයක් කිරීමට පෙර එන්.සී.පී. හි EZSP අනුවාදය අඩු කළ යුතුය. ධාරක පැත්තේ ඊස්එස්පී අනුවාදය සමඟ ඊඑස්එස්පී අනුවාදය වෙනස් නම්, සන්නිවේදනය ගබ්සා කළ යුතුය.
මෙයින් පිටුපස ඇති ව්යාජ අවශ්යතාවය වන්නේ අනුවාද විධානයේ ආකෘතියට හැකි වීමයිකිසි විටෙකත් වෙනස් නොවේ. ඊඑස්එස්පී අනුවාද විධාන ආකෘතිය පහතින් සමාන ය:
链接: https: //zhaanlan.zhihu.com/p/339700391
来源: 知乎
. 商业转载请联系作者获得授权,.
2.2. දත්ත සසම් කිරීම
සවිස්තරාත්මක සසසියන් වූ මෙහෙයුම් ක්රියාවලිය UG101 හි 4.3 වගන්තියේ විස්තර කෙරේ. මුළු ඊඑස්එස්පී රාමුව අහඹු ලෙස සිදුවනු ඇත. සසම්භාවීකරණය යනු - හෝ ඊස්එස්පී රාමුවක් සහ ව්යාජ සසම්භාවී අනුපිළිවෙලක් පමණි.
ව්යාජ සසම්භාවී අනුක්රමය ජනනය කිරීමේ ඇල්ගොරිතම පහත දැක්වේ.
- rand0 = 0 × 42
- බිට් 0 හි 0 නම් 0, රන්දි + 1 = නයිඩි >> 1
- බිට්ගේ බිට් 0 හි 0 1, රන්ඩි + 1 = (රන්දි >> 1) ^ 0xB8
2.3. පාලක බයිට් එක් කරන්න
පාලක බයිට් එක බයිට් දත්තයක් වන අතර එය රාමුවේ හිසට එකතු කළ යුතුය. ආකෘතිය පහත වගුව සමඟ විදහා දක්වයි:
මුළුමනින්ම, පාලක බයිට් 6 වර්ග 6 ක් ඇත. පළමු තිදෙනා දත්ත, ACK සහ NAK ඇතුළු EZSP දත්ත සහිත පොදු රාමු සඳහා යොදා ගනී. පසුගිය තිදෙනා සාමාන්ය ඊස්එස්පී දත්ත නොමැතිව RST, RSPAK සහ දෝෂය ඇතුළුව භාවිතා වේ.
RST, RSPAK සහ දෝෂයේ ආකෘතිය 3.1 සිට 3.3 දක්වා විස්තර කර ඇත.
2.4. CRC ගණනය කරන්න
දත්ත 16 සිට බිට් 16 සී සී.ආර්.සී. සම්මත CRCCCIT (G (x) = x16 + x 12 X12 + x5 + 1) 0xFFFF වෙත ආරම්භ වේ. වඩාත්ම වැදගත් බයිට් අවම වැදගත් බයිට් (ලොකු-එන්ඩියානු මාදිලිය) පෙර.
2.5. බයිට් පුලුන්
UG101 හි 4.2 වගන්තියේ විස්තර කර ඇති පරිදි, විශේෂ අරමුණු සඳහා වෙන් කර ඇති අතුරු වටිනාකම් කිහිපයක් තිබේ. මෙම අගයන් පහත වගුවේ සොයාගත හැකිය:
මෙම අගයන් රාමුවේ ඇති විට, දත්ත සඳහා විශේෂ ප්රතිකාරයක් සිදු කෙරේ. - වෙන් කර ඇති බයිට් එක ඉදිරිපිට අඩි 0x7d යන්න ඇතුළත් කරන්න - එම වෙන් කරන ලද බයිට් හි BIT5 ආපසු හරවන්න
මෙම ඇල්ගොරිතමයේ උදාහරණ කිහිපයක් පහත දැක්වේ:
2.6. අවසාන ධජය එක් කරන්න
අවසාන පියවර වන්නේ රාමුවේ අවසානය දක්වා 0x7E අවසාන ධජය එක් කිරීමයි. ඊට පසු, දත්ත UAT Port වෙත යැවිය හැකිය.
3. ඩි-රැවුල කපන ක්රියාවලිය
UART වෙතින් දත්ත ලැබුණු විට, අපට එය ප්රතික්ෂේප කිරීමට ප්රතිලෝම පියවර කළ යුතුය.
4. යොමුව
පශ්චාත් කාලය: පෙබරවාරි-0822022