Ynglŷn â Zigbee EZSP UART

Awdur: TorchIoTBootCamp
Dolen: https://zhuanlan.zhihu.com/p/339700391
O: Quora

1. Rhagymadrodd

Mae Silicon Labs wedi cynnig datrysiad host + NCP ar gyfer dylunio porth Zigbee. Yn y bensaernïaeth hon, gall y gwesteiwr gyfathrebu â'r NCP trwy ryngwyneb UART neu SPI. Yn fwyaf cyffredin, defnyddir UART gan ei fod yn llawer symlach na SPI.

Mae Silicon Labs hefyd wedi darparu prosiect sampl ar gyfer y rhaglen westeiwr, sef y samplZ3GatewayHost. Mae'r sampl yn rhedeg ar system debyg i Unix. Efallai y bydd rhai cwsmeriaid eisiau sampl gwesteiwr a all redeg ar RTOS, ond yn anffodus, nid oes sampl gwesteiwr yn seiliedig ar RTOS am y tro. Mae angen i ddefnyddwyr ddatblygu eu rhaglen westeiwr eu hunain yn seiliedig ar RTOS.

Mae'n bwysig deall protocol porth UART cyn datblygu rhaglen westeiwr wedi'i theilwra. Ar gyfer NCP yn seiliedig ar UART a NCP SPI, mae'r gwesteiwr yn defnyddio'r protocol EZSP i gyfathrebu â'r NCP.EZSPyn fyr amProtocol Cyfresol EmberZnet, ac fe'i diffinnir ynUG100. Ar gyfer NCP seiliedig ar UART, gweithredir protocol haen is i gario data EZSP yn ddibynadwy dros UART, dyna'rASHprotocol, byr ar gyferGwesteiwr Cyfresol Asynchronous. I gael rhagor o fanylion am ASH, cyfeiriwch atUG101aUG115.

Gellir dangos y berthynas rhwng EZSP ac ASH gan y diagram canlynol:

1

Gellir dangos fformat data'r EZSP a'r protocol ASH gan y diagram canlynol:

2

Yn y dudalen hon, byddwn yn cyflwyno'r broses o fframio'r data UART a rhai fframiau allweddol a ddefnyddir yn aml ym mhorth Zigbee.

2. Fframio

Gellir dangos y broses fframio gyffredinol gan y siart a ganlyn:

3

Yn y siart hwn, mae'r data yn golygu ffrâm EZSP. Yn gyffredinol, y prosesau fframio yw: |Na|Cam|Cyfeiriad|

|:-|:-|:-|

|1|Llenwi'r Ffrâm EZSP|UG100|

|2|Hawleiddio Data|Adran 4.3 o UG101|

|3|Ychwanegu'r Control Beit|Pennod 2 a Phennod 3 o UG101|

|4|Cyfrifwch y CRC|Adran 2.3 o UG101|

|5|Stwffio Beit|Adran 4.2 o UG101|

|6|Ychwanegu'r Faner Diwedd|Adran 2.4 o UG101|

2.1. Llenwch y Ffrâm EZSP

Mae fformat ffrâm EZSP i'w weld ym Mhennod 3 o UG100.

4

Rhowch sylw y gall y fformat hwn newid pan fydd y SDK yn uwchraddio. Pan fydd y fformat yn newid, byddwn yn rhoi rhif fersiwn newydd iddo. Y rhif fersiwn EZSP diweddaraf yw 8 pan ysgrifennwyd yr erthygl hon (EmberZnet 6.8).

Gan y gall fformat ffrâm EZSP fod yn wahanol rhwng gwahanol fersiynau, mae gofyniad gorfodol bod y gwesteiwr a'r NCPRHAIDgweithio gyda'r un fersiwn EZSP. Fel arall, ni allant gyfathrebu yn ôl y disgwyl.

I gyflawni hynny, rhaid i'r gorchymyn cyntaf rhwng y gwesteiwr a'r NCP fod yn orchymyn fersiwn. Mewn geiriau eraill, rhaid i'r gwesteiwr adfer fersiwn EZSP o'r NCP cyn unrhyw gyfathrebu arall. Os yw'r fersiwn EZSP yn wahanol i'r fersiwn EZSP o'r ochr gwesteiwr, rhaid rhoi'r gorau i'r cyfathrebu.

Y gofyniad ymhlyg y tu ôl i hyn yw y gall fformat y gorchymyn fersiwnBYTH YN NEWID. Mae fformat gorchymyn fersiwn EZSP fel isod:

5

Mae'r esboniadau o'r maes paramedr a fformat yr ymateb fersiwn i'w gweld ym Mhennod 4 o UG100. Y maes paramedr yw'r fersiwn EZSP o'r rhaglen westeiwr. Pan gaiff yr erthygl hon ei hysgrifennu, mae'n 8.
7
Disgrifiad: TorchIoTBBootCamp
cyfeiriad: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明。

2.2. Ar hap Data

Disgrifir y broses haposod fanwl yn adran 4.3 o UG101. Bydd y ffrâm EZSP gyfan yn cael ei hapio. Mae'r hapddiad i ecsgliwsif-NEU y ffrâm EZSP a dilyniant ffug-hap.

Isod mae'r algorithm o gynhyrchu'r dilyniant ffug-hap.

  • rand0 = 0×42
  • os yw did 0 o randi yn 0, randi+1 = randi >> 1
  • os yw did 0 o randi yn 1, randi+1 = (randi >> 1) ^ 0xB8

2.3. Ychwanegu'r Control Byte

Mae'r beit rheoli yn ddata un beit, a dylid ei ychwanegu at ben y ffrâm. Dangosir y fformat gyda'r tabl isod:

6

Yn gyfan gwbl, mae yna 6 math o beit rheoli. Defnyddir y tri cyntaf ar gyfer fframiau cyffredin gyda data EZSP, gan gynnwys DATA, ACK a NAK. Defnyddir y tri olaf heb ddata EZSP cyffredin, gan gynnwys RST, RSTACK a ERROR.

Disgrifir fformat yr RST, RSTACK a ERROR yn adrannau 3.1 i 3.3.

2.4. Cyfrifwch y CRC

Mae CRC 16-did yn cael ei gyfrifo ar beit o'r beit rheoli hyd ddiwedd y data. Mae'r CRCCCITT safonol (g(x) = x16 + x12 + x5 + 1) yn cael ei gychwyn i 0xFFFF. Mae'r beit mwyaf arwyddocaol yn rhagflaenu'r beit lleiaf arwyddocaol (modd endian mawr).

2.5. Stwffio Beit

Fel y disgrifir yn adran 4.2 o UG101, defnyddir rhai gwerthoedd beit neilltuedig at ddiben arbennig. Mae'r gwerthoedd hyn i'w gweld yn y tabl canlynol:

7

Pan fydd y gwerthoedd hyn yn ymddangos yn y ffrâm, bydd triniaeth arbennig yn cael ei wneud i'r data. – Mewnosodwch y beit dianc 0x7D o flaen y beit neilltuedig – Gwrthdroi bit5 y beit neilltuedig hwnnw

Isod mae rhai enghreifftiau o'r algorithm hwn:

8

2.6. Ychwanegu'r Faner Diwedd

Y cam olaf yw ychwanegu'r faner diwedd 0x7E i ddiwedd y ffrâm. Ar ôl hynny, gellir anfon y data i'r porthladd UART.

3. Proses dad-fframio

Pan dderbynnir data o'r UART, does ond angen i ni wneud y camau i'r gwrthwyneb i'w ddadgodio.

4. Cyfeiriadau


Amser post: Chwefror-08-2022
Sgwrs WhatsApp Ar-lein!