ઝિગ્બી EZSP UART વિશે

લેખક: ટોર્ચઆઇઓટીબૂટકેમ્પ
લિંક: https://zhuanlan.zhihu.com/p/339700391
તરફથી: ક્વોરા

૧. પરિચય

સિલિકોન લેબ્સે ઝિગ્બી ગેટવે ડિઝાઇન માટે હોસ્ટ+એનસીપી સોલ્યુશન ઓફર કર્યું છે. આ આર્કિટેક્ચરમાં, હોસ્ટ યુએઆરટી અથવા એસપીઆઈ ઇન્ટરફેસ દ્વારા એનસીપી સાથે વાતચીત કરી શકે છે. સામાન્ય રીતે, યુએઆરટીનો ઉપયોગ થાય છે કારણ કે તે એસપીઆઈ કરતા ઘણું સરળ છે.

સિલિકોન લેબ્સે હોસ્ટ પ્રોગ્રામ માટે એક સેમ્પલ પ્રોજેક્ટ પણ પૂરો પાડ્યો છે, જે સેમ્પલ છેZ3ગેટવેહોસ્ટ. આ સેમ્પલ યુનિક્સ જેવી સિસ્ટમ પર ચાલે છે. કેટલાક ગ્રાહકો RTOS પર ચાલી શકે તેવા હોસ્ટ સેમ્પલની માંગ કરી શકે છે, પરંતુ કમનસીબે, હાલમાં કોઈ RTOS આધારિત હોસ્ટ સેમ્પલ નથી. વપરાશકર્તાઓએ RTOS પર આધારિત પોતાનો હોસ્ટ પ્રોગ્રામ વિકસાવવાની જરૂર છે.

કસ્ટમાઇઝ્ડ હોસ્ટ પ્રોગ્રામ વિકસાવતી પહેલા UART ગેટવે પ્રોટોકોલને સમજવું મહત્વપૂર્ણ છે. UART આધારિત NCP અને SPI આધારિત NCP બંને માટે, હોસ્ટ NCP સાથે વાતચીત કરવા માટે EZSP પ્રોટોકોલનો ઉપયોગ કરે છે.ઇઝેડએસપીમાટે ટૂંકું છેએમ્બરઝેનેટ સીરીયલ પ્રોટોકોલ, અને તે વ્યાખ્યાયિત થયેલ છેયુજી100. UART આધારિત NCP માટે, UART પર EZSP ડેટા વિશ્વસનીય રીતે વહન કરવા માટે નીચલા સ્તરનો પ્રોટોકોલ લાગુ કરવામાં આવે છે, એટલે કેરાખપ્રોટોકોલ, જેનો ટૂંકો અર્થઅસુમેળ સીરીયલ હોસ્ટ. ASH વિશે વધુ વિગતો માટે, કૃપા કરીને સંદર્ભ લોયુજી101અનેયુજી115.

EZSP અને ASH વચ્ચેનો સંબંધ નીચેના આકૃતિ દ્વારા સમજાવી શકાય છે:

૧

EZSP અને ASH પ્રોટોકોલના ડેટા ફોર્મેટને નીચેના આકૃતિ દ્વારા સમજાવી શકાય છે:

૨

આ પૃષ્ઠ પર, અમે UART ડેટા અને ઝિગ્બી ગેટવેમાં વારંવાર ઉપયોગમાં લેવાતા કેટલાક કી ફ્રેમ્સને ફ્રેમ કરવાની પ્રક્રિયા રજૂ કરીશું.

2. ફ્રેમિંગ

સામાન્ય ફ્રેમિંગ પ્રક્રિયા નીચેના ચાર્ટ દ્વારા સમજાવી શકાય છે:

૩

આ ચાર્ટમાં, ડેટાનો અર્થ EZSP ફ્રેમ છે. સામાન્ય રીતે, ફ્રેમિંગ પ્રક્રિયાઓ આ પ્રમાણે છે: |ના|પગલું|સંદર્ભ|

|:-|:-|:-|

|1|EZSP ફ્રેમ ભરો|UG100|

|2|ડેટા રેન્ડમાઇઝેશન|UG101 નો વિભાગ 4.3|

|3|UG101| ના કંટ્રોલ બાઇટ|પ્રકરણ 2 અને પ્રકરણ 3 ઉમેરો.

|4|CRC ની ગણતરી કરો|UG101 ના વિભાગ 2.3|

|5|બાઇટ સ્ટફિંગ|UG101 ની કલમ 4.2|

|6|UG101 નો એન્ડ ફ્લેગ|સેક્શન 2.4 ઉમેરો|

૨.૧. EZSP ફ્રેમ ભરો

EZSP ફ્રેમ ફોર્મેટ UG100 ના પ્રકરણ 3 માં દર્શાવવામાં આવ્યું છે.

૪

ધ્યાન રાખો કે SDK અપગ્રેડ થાય ત્યારે આ ફોર્મેટ બદલાઈ શકે છે. જ્યારે ફોર્મેટ બદલાશે, ત્યારે અમે તેને એક નવો વર્ઝન નંબર આપીશું. આ લેખ લખાય ત્યારે નવીનતમ EZSP વર્ઝન નંબર 8 છે (EmberZnet 6.8).

EZSP ફ્રેમ ફોર્મેટ વિવિધ સંસ્કરણો વચ્ચે અલગ હોઈ શકે છે, તેથી ફરજિયાત આવશ્યકતા છે કે હોસ્ટ અને NCPજ જોઈએસમાન EZSP સંસ્કરણ સાથે કામ કરો. નહિંતર, તેઓ અપેક્ષા મુજબ વાતચીત કરી શકશે નહીં.

તે હાંસલ કરવા માટે, હોસ્ટ અને NCP વચ્ચેનો પહેલો આદેશ વર્ઝન કમાન્ડ હોવો જોઈએ. બીજા શબ્દોમાં કહીએ તો, હોસ્ટે કોઈપણ અન્ય સંદેશાવ્યવહાર પહેલાં NCP નું EZSP સંસ્કરણ પુનઃપ્રાપ્ત કરવું આવશ્યક છે. જો EZSP સંસ્કરણ હોસ્ટ બાજુના EZSP સંસ્કરણથી અલગ હોય, તો સંદેશાવ્યવહાર રદ કરવો આવશ્યક છે.

આ પાછળની ગર્ભિત જરૂરિયાત એ છે કે વર્ઝન કમાન્ડનું ફોર્મેટક્યારેય બદલાશો નહીં. EZSP વર્ઝન કમાન્ડ ફોર્મેટ નીચે મુજબ છે:

૫

પેરામીટર ફીલ્ડ અને વર્ઝન રિસ્પોન્સના ફોર્મેટની સમજૂતી UG100 ના પ્રકરણ 4 માં મળી શકે છે. પેરામીટર ફીલ્ડ એ હોસ્ટ પ્રોગ્રામનું EZSP વર્ઝન છે. જ્યારે આ લેખ લખાયો છે, ત્યારે તે 8 છે.
૭
નામ: ટોર્ચઆઈઓટીબુટકેમ્પ
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转转请注明出处.

૨.૨. ડેટા રેન્ડમાઇઝેશન

વિગતવાર રેન્ડમાઇઝેશન પ્રક્રિયા UG101 ના વિભાગ 4.3 માં વર્ણવેલ છે. સમગ્ર EZSP ફ્રેમ રેન્ડમાઇઝ કરવામાં આવશે. રેન્ડમાઇઝેશન EZSP ફ્રેમ અને સ્યુડો-રેન્ડમ ક્રમને એક્સક્લુઝિવ કરવા માટે છે.

નીચે સ્યુડો-રેન્ડમ ક્રમ ઉત્પન્ન કરવા માટેનું અલ્ગોરિધમ છે.

  • રેન્ડ0 = 0×42
  • જો રેન્ડીનો બીટ 0 0 હોય, તો રેન્ડી+1 = રેન્ડી >> 1
  • જો રેન્ડીનો બીટ 0 1 હોય, તો રેન્ડી+1 = (રેન્ડી >> 1) ^ 0xB8

૨.૩. કંટ્રોલ બાઇટ ઉમેરો

કંટ્રોલ બાઇટ એક બાઇટ ડેટા છે, અને તેને ફ્રેમના હેડમાં ઉમેરવો જોઈએ. ફોર્મેટ નીચેના કોષ્ટક દ્વારા દર્શાવવામાં આવ્યું છે:

6

કુલ મળીને, 6 પ્રકારના કંટ્રોલ બાઇટ છે. પહેલા ત્રણનો ઉપયોગ EZSP ડેટા ધરાવતા સામાન્ય ફ્રેમ માટે થાય છે, જેમાં DATA, ACK અને NAKનો સમાવેશ થાય છે. છેલ્લા ત્રણનો ઉપયોગ RST, RSTACK અને ERROR સહિત સામાન્ય EZSP ડેટા વિના થાય છે.

RST, RSTACK અને ERROR નું ફોર્મેટ વિભાગ 3.1 થી 3.3 માં વર્ણવેલ છે.

૨.૪. CRC ની ગણતરી કરો

૧૬-બીટ CRC ની ગણતરી કંટ્રોલ બાઇટથી ડેટાના અંત સુધીના બાઇટ પર કરવામાં આવે છે. માનક CRCCCITT (g(x) = x16 + x12 + x5 + 1) 0xFFFF માં શરૂ થાય છે. સૌથી નોંધપાત્ર બાઇટ ઓછામાં ઓછા નોંધપાત્ર બાઇટ (બિગ-એન્ડિયન મોડ) પહેલા આવે છે.

૨.૫. બાઇટ સ્ટફિંગ

UG101 ના વિભાગ 4.2 માં વર્ણવ્યા મુજબ, ખાસ હેતુ માટે ઉપયોગમાં લેવાતા કેટલાક આરક્ષિત બાઇટ મૂલ્યો છે. આ મૂલ્યો નીચેના કોષ્ટકમાં મળી શકે છે:

૭

જ્યારે આ મૂલ્યો ફ્રેમમાં દેખાય છે, ત્યારે ડેટા સાથે એક ખાસ સારવાર કરવામાં આવશે. – રિઝર્વ્ડ બાઈટની સામે એસ્કેપ બાઈટ 0x7D દાખલ કરો – તે રિઝર્વ્ડ બાઈટના બીટ5 ને ઉલટાવો

નીચે આ અલ્ગોરિધમના કેટલાક ઉદાહરણો છે:

8

૨.૬. એન્ડ ફ્લેગ ઉમેરો

અંતિમ પગલું એ ફ્રેમના અંતમાં એન્ડ ફ્લેગ 0x7E ઉમેરવાનું છે. તે પછી, ડેટા UART પોર્ટ પર મોકલી શકાય છે.

૩. ડી-ફ્રેમિંગ પ્રક્રિયા

જ્યારે UART માંથી ડેટા પ્રાપ્ત થાય છે, ત્યારે આપણે તેને ડીકોડ કરવા માટે ફક્ત વિપરીત પગલાં ભરવાની જરૂર છે.

૪. સંદર્ભો


પોસ્ટ સમય: ફેબ્રુઆરી-૦૮-૨૦૨૨
વોટ્સએપ ઓનલાઈન ચેટ!