രചയിതാവ്: THIRATIONBOOTCAMP
ലിങ്ക്: HTTPS: //SHUANLAN.zHIHU.OCT/P/339700391
മുതൽ: കോറ
1. ആമുഖം
സിഗ്ബി ഗേറ്റ്വേ ഡിസൈനിനായി സിലിക്കൺ ലാബുകൾ ഒരു ഹോസ്റ്റ് + എൻസിപി പരിഹാരം വാഗ്ദാനം ചെയ്തു. ഈ വാസ്തുവിദ്യയിൽ, ഉർട്ട് അല്ലെങ്കിൽ സ്പി ഇന്റർഫേസിലൂടെ എൻസിപിയുമായി ഹോസ്റ്റിന് ആശയവിനിമയം നടത്താൻ കഴിയും. സ്പിയേക്കാൾ വളരെ ലളിതമായിട്ടാണ് uart ഉപയോഗിക്കുന്നത് സാധാരണയായി, uart ഉപയോഗിക്കുന്നു.
ഹോസ്റ്റ് പ്രോഗ്രാമിനായി സിലിക്കൺ ലാബുകൾ ഒരു സാമ്പിൾ പ്രോജക്റ്റ് നൽകിയിട്ടുണ്ട്, ഇത് സാമ്പിൾ ആണ്Z3GATEWHOST
. സാമ്പിൾ ഒരു യുണിക്സ് പോലുള്ള സിസ്റ്റത്തിൽ പ്രവർത്തിക്കുന്നു. ചില ഉപഭോക്താക്കൾക്ക് ഒരു ആർടിഒകളിൽ പ്രവർത്തിക്കാൻ കഴിയുന്ന ഒരു ഹോസ്റ്റ് സാമ്പിൾ വേണം, പക്ഷേ നിർഭാഗ്യവശാൽ, സമയമായി ആർടിഒകളുടെ അടിസ്ഥാന സാമ്പിളില്ല. RTOS അടിസ്ഥാനമാക്കി ഉപയോക്താക്കൾ അവരുടെ സ്വന്തം ഹോസ്റ്റ് പ്രോഗ്രാം വികസിപ്പിക്കേണ്ടതുണ്ട്.
ഇഷ്ടാനുസൃതമാക്കിയ ഹോസ്റ്റ് പ്രോഗ്രാം വികസിപ്പിക്കുന്നതിന് മുമ്പ് uart ഗേറ്റ്വേ പ്രോട്ടോക്കോൾ മനസിലാക്കേണ്ടത് പ്രധാനമാണ്. ഉച്ച ആസ്ഥാനമായുള്ള എൻസിപി, സ്പി ആസ്ഥാനമായുള്ള എൻസിപി എന്നിവയ്ക്ക് എൻസിപിയുമായി ആശയവിനിമയം നടത്താൻ ഹോസ്റ്റ് എസ്എസ്പി പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു.EZSPഹ്രസ്വമാണ്എംബർസ്നെറ്റ് സീരിയൽ പ്രോട്ടോക്കോൾ, അത് നിർവചിക്കപ്പെടുന്നുUg100. UART അടിസ്ഥാനമാക്കിയുള്ള എൻസിപിക്കായി, uart uart ന് മുകളിലൂടെ EZSP ഡാറ്റയെ വിശ്വസനീയമായി വഹിക്കുന്നതിന് കുറഞ്ഞ ലെയർ പ്രോട്ടോക്കോൾ നടപ്പിലാക്കുന്നു, അതാണ്ചാരംപ്രോട്ടോക്കോൾ, ഹ്രസ്വഅസിൻക്രണസ് സീരിയൽ ഹോസ്റ്റ്. ചാഷിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, ദയവായി റഫർ ചെയ്യുകUg101കൂടെUg115.
EZSP, ആഷ് എന്നിവ തമ്മിലുള്ള ബന്ധം ഇനിപ്പറയുന്ന ഡയഗ്രം ചിത്രീകരിക്കാൻ കഴിയും:
EZSP യുടെ ഡാറ്റ ഫോർമാറ്റും ആഷ് പ്രോട്ടോക്കോളും ഇനിപ്പറയുന്ന ഡയഗ്രം ചിത്രീകരിക്കാൻ കഴിയും:
ഈ പേജിൽ, uArt ഡാറ്റയും സിഗ്ബി ഗേറ്റ്വേയിൽ പതിവായി ഉപയോഗിക്കുന്ന ചില പ്രധാന ഫ്രെയിമുകളും ഞങ്ങൾ അവതരിപ്പിക്കും.
2. ഫ്രെയിമിംഗ്
ഇനിപ്പറയുന്ന ചാർട്ടിനെ തുടർന്ന് പൊതു-ചാർട്ടിംഗ് പ്രക്രിയ ചിത്രീകരിക്കാൻ കഴിയും:
ഈ ചാർട്ടിൽ, ഡാറ്റ എന്നാൽ ezsp ഫ്രെയിം എന്നാണ്. പൊതുവേ, ഫ്രെയിമിംഗ് പ്രക്രിയകൾ ഇവയാണ്: | ഇല്ല | ഘട്ടം | റഫറൻസ് |
|: - |: - |: - |
| 1 | EZSP ഫ്രെയിം പൂരിപ്പിക്കുക | Ug100 |
| 2 | ഡാറ്റ ക്രമരഹിതമാക്കൽ | Ug101 | ന്റെ വിഭാഗം 4.3 |
| 3 | നിയന്ത്രണ ബൈറ്റ് ചേർക്കുക | Ug101 | ന്റെ CHAP2, CHAP3 |
| | CRC കണക്കാക്കുക | UG101 | ന്റെ വിഭാഗം 2.3 |
| 5 | ബൈറ്റ് സ്റ്റഫിംഗ് | Ug101 | ന്റെ വിഭാഗം 4.2 |
| 6 | അന്തിമ ഫ്ലാഗ് ചേർക്കുക | Ug101 | ന്റെ വിഭാഗം 2.4 |
2.1. EZSP ഫ്രെയിം പൂരിപ്പിക്കുക
Ug100 ന്റെ ചാപ്പ് 3 ൽ EZSP ഫ്രെയിം ഫോർമാറ്റ് വ്യക്തമാക്കുന്നു.
എസ്ഡികെ നവീകരിക്കുമ്പോൾ ഈ ഫോർമാറ്റ് മാറാമെന്ന് ശ്രദ്ധിക്കുക. ഫോർമാറ്റ് മാറ്റങ്ങൾ വരുമ്പോൾ, ഞങ്ങൾ അതിന് ഒരു പുതിയ പതിപ്പ് നമ്പർ നൽകും. ഈ ലേഖനം എഴുതിയപ്പോൾ ഏറ്റവും പുതിയ EZSP പതിപ്പ് നമ്പർ 8 ആണ് (embersnet 6.8).
വ്യത്യസ്ത പതിപ്പുകൾക്കിടയിൽ EZSP ഫ്രെയിം ഫോർമാറ്റ് വ്യത്യസ്തമായിരിക്കുന്നതിനാൽ, ഹോസ്റ്റും എൻസിപിയും നിർബന്ധിത ആവശ്യകതയുണ്ട്ആവശമാകുന്നുഒരേ ezsp പതിപ്പിനൊപ്പം പ്രവർത്തിക്കുക. അല്ലാത്തപക്ഷം, അവർക്ക് പ്രതീക്ഷയോടെ ആശയവിനിമയം നടത്താൻ കഴിയില്ല.
അത് നേടാൻ, ഹോസ്റ്റും എൻസിപിയും തമ്മിലുള്ള ആദ്യ കമാൻഡ് പതിപ്പ് കമാൻഡ് ആയിരിക്കണം. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഹോസ്റ്റ് എൻസിപിയുടെ ezsp പതിപ്പ് മറ്റേതൊരു ആശയവിനിമയത്തിനും മുമ്പായി തിരികെ നൽകണം. ഹോസ്റ്റ് സൈഡിന്റെ EZSP പതിപ്പിനൊപ്പം EZSP പതിപ്പ് വ്യത്യസ്തമാണെങ്കിൽ, ആശയവിനിമയം നിർത്തലാക്കണം.
പതിപ്പ് കമാൻഡിന്റെ ഫോർമാറ്റ് കഴിയുന്നതാണ് ഇതിന് പിന്നിലെ വ്യക്തമായ ആവശ്യകതഒരിക്കലും മാറരുത്. EZSP പതിപ്പ് കമാൻഡ് ഫോർമാറ്റ് ചുവടെ:
链接: //shuanlan.zhihu.com/p/339700391
来源:
著作权归作者所有. 商业转载请联系作者获得授权 ,.
2.2. ഡാറ്റ ക്രമരഹിതമാക്കൽ
വിശദമായ ക്രമരഹിതമായ പ്രക്രിയ യുജി 101 ന്റെ വിഭാഗം 4.3 ൽ വിവരിച്ചിരിക്കുന്നു. മുഴുവൻ ezsp ഫ്രെയിം ക്രമരഹിതമായിരിക്കും. എക്സ്ക്ലൂസീവ്-അല്ലെങ്കിൽ ezsp ഫ്രെയിമും കപട-ക്രമരഹിതമായ ശ്രേണിയുമാണ് ക്രമരമാറ്റം.
സ്യൂഡോ-റാൻഡം ശ്രേണി സൃഷ്ടിക്കുന്ന അൽഗോരിതം ചുവടെയുണ്ട്.
- rand0 = 0 × 42
- റാണ്ടിയുടെ ബിറ്റ് 0 ആണെങ്കിൽ 0, റാണ്ടി + 1 = റാണ്ടി >> 1
- റാണ്ടിയുടെ ബിറ്റ് 0 ആണെങ്കിൽ, റാണ്ടി + 1 = (റാണ്ടി >> 1) ^ 0xB8
2.3. നിയന്ത്രണ ബൈറ്റ് ചേർക്കുക
ഒരു ബൈറ്റ് ഡാറ്റയാണ് കൺട്രോൾ ബൈറ്റ്, ഇത് ഫ്രെയിമിന്റെ തലയിൽ ചേർക്കണം. ഫോർമാറ്റ് ചുവടെയുള്ള പട്ടിക ഉപയോഗിച്ച് ചിത്രീകരിച്ചിരിക്കുന്നു:
പൂർണ്ണമായും 6 തരം കൺട്രോൾ ബൈറ്റുകൾ ഉണ്ട്. ആദ്യത്തെ മൂന്ന് പേർ സാധാരണ ഫ്രെയിമുകൾക്ക് ഡാറ്റ, അക്ക, നാക്ക് എന്നിവയുൾപ്പെടെ എസ്എസ്പി ഡാറ്റ ഉപയോഗിക്കുന്നു. Rst, Rstack, പിശക് എന്നിവയുൾപ്പെടെ സാധാരണ EZSP ഡാറ്റ ഇല്ലാതെ അവസാനത്തെ മൂന്ന് ഉപയോഗിക്കുന്നു.
വകുപ്പ് 3.1 എന്ന നിലയിൽ RST, Rstack, പിശകിന്റെ ഫോർമാറ്റ് വിവരിച്ചിരിക്കുന്നു.
2.4. സിആർസി കണക്കാക്കുക
16-ബിറ്റ് സിആർസി കൺട്രോൾ ബൈറ്റിൽ നിന്ന് ഡാറ്റയുടെ അവസാനം വരെ കണക്കാക്കുന്നു. സ്റ്റാൻഡേർഡ് crcccitt (g (x) = x16 + X12 + X12 + X12 + X12 + X12 + X5 X5) 0xFFF ലേക്ക് സമാരംഭിക്കുന്നു. ഏറ്റവും പ്രധാനപ്പെട്ട ബൈറ്റ് ഏറ്റവും പ്രാധാന്യമുള്ള ബൈറ്റ് (ബിഗ്-എൻഡിയൻ മോഡ്) മുമ്പായി.
2.5. ബൈറ്റ് സ്റ്റഫിംഗ്
യുജി 101 ന്റെ വകുപ്പ് 4.2 ൽ വിവരിച്ചിരിക്കുന്നതുപോലെ, പ്രത്യേക ഉദ്ദേശ്യത്തിനായി ഉപയോഗിക്കുന്ന ചില റിസർവ് ചെയ്ത ബൈറ്റ് മൂല്യങ്ങൾ ഉണ്ട്. ഈ മൂല്യങ്ങൾ ഇനിപ്പറയുന്ന പട്ടികയിൽ കാണാം:
ഫ്രെയിമിൽ ഈ മൂല്യങ്ങൾ ദൃശ്യമാകുമ്പോൾ, ഡാറ്റയ്ക്ക് ഒരു പ്രത്യേക ചികിത്സ നടത്തും. - റിസർവ്ഡ് ബൈറ്റ് മുൻവശത്ത് നിന്ന് 0x7D നിന്ന് രക്ഷപ്പെടൽ - റിസർവ് ചെയ്ത ബിറ്റ് 5 റിവേഴ്സ് ചെയ്യുക
ഈ അൽഗോരിത്തിന്റെ ചില ഉദാഹരണങ്ങൾ ചുവടെ:
2.6. അവസാനം ഫ്ലാഗ് ചേർക്കുക
അവസാന ഫ്ലാഗ് 0x7e ഫ്രെയിമിന്റെ അവസാനം വരെ ചേർക്കുക എന്നതാണ് അവസാന ഘട്ടം. അതിനുശേഷം, UARAT പോർട്ടിലേക്ക് ഡാറ്റ അയയ്ക്കാൻ കഴിയും.
3. ഡി-ഫ്രെയിമിംഗ് പ്രക്രിയ
UART ൽ നിന്ന് ഡാറ്റ ലഭിക്കുമ്പോൾ, അത് ഡീകോഡ് ചെയ്യുന്നതിന് വിപരീത ഘട്ടങ്ങൾ ചെയ്യേണ്ടതുണ്ട്.
4. പരാമർശങ്ങൾ
പോസ്റ്റ് സമയം: ഫെബ്രുവരി -08-2022