લેખક : ટોર્ચિઓટબૂટકેમ્પ
લિંક : https: //zhuanlan.zhihu.com/p/339700391
: ક્વોરાથી
1. પરિચય
સિલિકોન લેબ્સે ઝિગબી ગેટવે ડિઝાઇન માટે હોસ્ટ+એનસીપી સોલ્યુશનની ઓફર કરી છે. આ આર્કિટેક્ચરમાં, યજમાન યુઆરટી અથવા એસપીઆઈ ઇન્ટરફેસ દ્વારા એનસીપી સાથે વાતચીત કરી શકે છે. સામાન્ય રીતે, યુએઆરટીનો ઉપયોગ એસપીઆઈ કરતા ખૂબ સરળ હોવાથી થાય છે.
સિલિકોન લેબ્સે હોસ્ટ પ્રોગ્રામ માટે નમૂના પ્રોજેક્ટ પણ પ્રદાન કર્યો છે, જે નમૂના છેZ3gatewayhost
. નમૂના યુનિક્સ જેવી સિસ્ટમ પર ચાલે છે. કેટલાક ગ્રાહકોને હોસ્ટ નમૂના જોઈએ છે જે આરટીઓ પર ચલાવી શકે છે, પરંતુ કમનસીબે, તે સમય માટે કોઈ આરટીઓએસ આધારિત હોસ્ટ નમૂના નથી. વપરાશકર્તાઓએ આરટીઓ પર આધારિત પોતાનો હોસ્ટ પ્રોગ્રામ વિકસાવવાની જરૂર છે.
કસ્ટમાઇઝ્ડ હોસ્ટ પ્રોગ્રામ વિકસિત કરતા પહેલા યુએઆરટી ગેટવે પ્રોટોકોલને સમજવું મહત્વપૂર્ણ છે. યુએઆરટી આધારિત એનસીપી અને એસપીઆઈ આધારિત એનસીપી બંને માટે, યજમાન એનસીપી સાથે વાતચીત કરવા માટે ઇઝેડએસપી પ્રોટોકોલનો ઉપયોગ કરે છે.Ezspટૂંકા છેEmોરઝનેટ સીરીયલ પ્રોટોકોલ, અને તે વ્યાખ્યાયિત થયેલ છેયુજી 100. યુએઆરટી આધારિત એનસીપી માટે, ઇઝએસએસપી ડેટાને વિશ્વસનીય રીતે યુઆરટી પર લઈ જવા માટે નીચલા લેયર પ્રોટોકોલ લાગુ કરવામાં આવે છે, તે છેરાખપ્રોટોકોલ, ટૂંકા માટેઅસમકાલીન સિરીયલ યજમાન. એશ વિશે વધુ વિગતો માટે, કૃપા કરીને સંદર્ભ લોયુજી 101અનેયુજી 115.
ઇઝેડએસપી અને એશ વચ્ચેનો સંબંધ નીચેના આકૃતિ દ્વારા સચિત્ર કરી શકાય છે:
ઇઝેડએસપી અને એશ પ્રોટોકોલનું ડેટા ફોર્મેટ નીચેના આકૃતિ દ્વારા સચિત્ર કરી શકાય છે:
આ પૃષ્ઠમાં, અમે યુએઆરટી ડેટા અને કેટલાક કી ફ્રેમ્સની રચના કરવાની પ્રક્રિયા રજૂ કરીશું જેનો ઉપયોગ ઝિગબી ગેટવેમાં વારંવાર કરવામાં આવે છે.
2. ફ્રેમિંગ
સામાન્ય ફ્રેમિંગ પ્રક્રિયા નીચેના ચાર્ટ દ્વારા સચિત્ર કરી શકાય છે:
આ ચાર્ટમાં, ડેટા એટલે ઇઝેડએસપી ફ્રેમ. સામાન્ય રીતે, ફ્રેમિંગ પ્રક્રિયાઓ છે: | ના | પગલું | સંદર્ભ |
|:-|:-|:-|
| 1 | EZSP ફ્રેમ ભરો | ug100 |
| 2 | ડેટા રેન્ડમાઇઝેશન | યુજી 101 નો વિભાગ 4.3 |
| 3 | ug101 ના નિયંત્રણ બાઇટ | ચેપ 2 અને ચેપ 3 |
| 4 | સીઆરસીની ગણતરી કરો | યુજી 101 નો વિભાગ 2.3 |
| 5 | બાઇટ સ્ટફિંગ | યુજી 101 નો વિભાગ 4.2 |
| 6 | અંતિમ ધ્વજ ઉમેરો | યુજી 101 નો વિભાગ 2.4 |
2.1. EZSP ફ્રેમ ભરો
ઇઝેડએસપી ફ્રેમ ફોર્મેટ યુજી 100 ના ચેપ 3 માં સચિત્ર છે.
ધ્યાન આપો કે જ્યારે એસડીકે અપગ્રેડ કરે છે ત્યારે આ ફોર્મેટ બદલાઈ શકે છે. જ્યારે ફોર્મેટ બદલાય છે, ત્યારે અમે તેને એક નવો સંસ્કરણ નંબર આપીશું. જ્યારે આ લેખ લખવામાં આવે છે ત્યારે નવીનતમ ઇઝેડએસપી સંસ્કરણ નંબર 8 છે (એમ્બરઝનેટ 6.8).
ઇઝએસએસપી ફ્રેમ ફોર્મેટ વિવિધ સંસ્કરણો વચ્ચે અલગ હોઈ શકે છે, ત્યાં એક ફરજિયાત આવશ્યકતા છે કે યજમાન અને એનસીપીઆવશ્યકતાસમાન ઇઝેડએસપી સંસ્કરણ સાથે કામ કરો. નહિંતર, તેઓ અપેક્ષા મુજબ વાતચીત કરી શકતા નથી.
તે પ્રાપ્ત કરવા માટે, યજમાન અને એનસીપી વચ્ચેનો પ્રથમ આદેશ સંસ્કરણ આદેશ હોવો આવશ્યક છે. બીજા શબ્દોમાં કહીએ તો, યજમાને અન્ય કોઈપણ સંદેશાવ્યવહાર પહેલાં એનસીપીનું ઇઝેડએસપી સંસ્કરણ પાછું ખેંચવું આવશ્યક છે. જો ઇઝએસએસપી સંસ્કરણ હોસ્ટ બાજુના ઇઝએસએસપી સંસ્કરણથી અલગ છે, તો સંદેશાવ્યવહાર છોડી દેવો આવશ્યક છે.
આ પાછળની ગર્ભિત આવશ્યકતા એ છે કે સંસ્કરણ આદેશનું ફોર્મેટ કરી શકે છેક્યારેય બદલો નહીં. ઇઝેડએસપી સંસ્કરણ આદેશ ફોર્મેટ નીચે જેવું છે:
. : Https: //zhuanlan.zhihu.com/p/339700391
. : 知乎
著作权归作者所有。商业转载请联系作者获得授权 , 非商业转载请注明出处。
2.2. આંકડાકીય રેન્ડમાઇઝેશન
વિગતવાર રેન્ડમાઇઝેશન પ્રક્રિયા યુજી 101 ના વિભાગ 3.3 માં વર્ણવેલ છે. આખી ઇઝેડએસપી ફ્રેમ રેન્ડમાઇઝ કરવામાં આવશે. રેન્ડમાઇઝેશન વિશિષ્ટ-અથવા ઇઝએસએસપી ફ્રેમ અને સ્યુડો-રેન્ડમ ક્રમ છે.
નીચે સ્યુડો-રેન્ડમ સિક્વન્સ ઉત્પન્ન કરવાની અલ્ગોરિધમનો છે.
- RAND0 = 0 × 42
- જો રેન્ડીનો બીટ 0 0 છે, રેન્ડી+1 = રેન્ડી >> 1
- જો રેન્ડીનો બીટ 0 1 છે, રેન્ડી+1 = (રેન્ડી >> 1) ^ 0xb8
2.3. નિયંત્રણ બાઇટ ઉમેરો
કંટ્રોલ બાઇટ એ એક બાઇટ ડેટા છે, અને તે ફ્રેમના માથામાં ઉમેરવો જોઈએ. ફોર્મેટ નીચે આપેલા કોષ્ટક સાથે સચિત્ર છે:
ટોટલી, ત્યાં 6 પ્રકારના નિયંત્રણ બાઇટ્સ છે. પ્રથમ ત્રણનો ઉપયોગ ઇઝએસએસપી ડેટા સાથેના સામાન્ય ફ્રેમ્સ માટે થાય છે, જેમાં ડેટા, એસીકે અને એનએકે શામેલ છે. છેલ્લા ત્રણનો ઉપયોગ સામાન્ય ઇઝએસએસપી ડેટા વિના થાય છે, જેમાં પ્રથમ, પ્રથમ અને ભૂલનો સમાવેશ થાય છે.
પ્રથમ, પ્રથમ અને ભૂલનું ફોર્મેટ વિભાગ 1.૧ થી 3.3 માં વર્ણવેલ છે.
2.4. સીઆરસીની ગણતરી કરો
16-બીટ સીઆરસીની ગણતરી ડેટાના અંત સુધી નિયંત્રણ બાઇટથી બાઇટ્સ પર કરવામાં આવે છે. પ્રમાણભૂત સીઆરસીસીઆઈટી (જી (એક્સ) = x16 + x12 + x5 + 1) 0xffff થી પ્રારંભ થયેલ છે. સૌથી નોંધપાત્ર બાઇટ ઓછામાં ઓછું નોંધપાત્ર બાઇટ (બિગ-એન્ડિયન મોડ) આગળ છે.
2.5. બાઇટ સ્ટફિંગ
યુજી 101 ના વિભાગ 2.૨ માં વર્ણવ્યા મુજબ, ત્યાં કેટલાક આરક્ષિત બાઇટ મૂલ્યો ખાસ હેતુ માટે વપરાય છે. આ મૂલ્યો નીચેના કોષ્ટકમાં મળી શકે છે:
જ્યારે આ મૂલ્યો ફ્રેમમાં દેખાય છે, ત્યારે ડેટા પર વિશેષ સારવાર કરવામાં આવશે. - આરક્ષિત બાઇટની સામે એસ્કેપ બાઇટ 0x7 ડી દાખલ કરો - તે અનામત બાઇટના બીટ 5 ને વિરુદ્ધ કરો
નીચે આ અલ્ગોરિધમનો કેટલાક ઉદાહરણો છે:
2.6. અંત ધ્વજ ઉમેરો
અંતિમ પગલું એ ફ્રેમના અંતમાં અંતિમ ધ્વજ 0x7e ઉમેરવાનું છે. તે પછી, ડેટા યુઆરટી બંદર પર મોકલી શકાય છે.
3. ડી-ફ્રેમિંગ પ્રક્રિયા
જ્યારે યુએઆરટી તરફથી ડેટા પ્રાપ્ત થાય છે, ત્યારે આપણે તેને ડીકોડ કરવા માટે વિપરીત પગલાં લેવાની જરૂર છે.
4. સંદર્ભો
પોસ્ટ સમય: ફેબ્રુઆરી -08-2022