Mea kākau:TorchIoTBootCamp
Ka loulou: https://zhuanlan.zhihu.com/p/339700391
Mai: Quora
1. Hoʻolauna
Ua hāʻawi aku ʻo Silicon Labs i kahi hoʻonā hoʻokipa + NCP no ka hoʻolālā puka puka Zigbee. Ma kēia hoʻolālā, hiki i ka mea hoʻokipa ke kamaʻilio me ka NCP ma o ka UART a i ʻole SPI interface. ʻO ka mea maʻamau, hoʻohana ʻia ka UART no ka mea ʻoi aku ka maʻalahi ma mua o ka SPI.
Ua hoʻolako pū ʻo Silicon Labs i kahi papahana laʻana no ka papahana hoʻokipa, ʻo ia ka laʻanaZ3GatewayHost
. Holo ka hāpana ma kahi ʻōnaehana like me Unix. Makemake paha kekahi mau mea kūʻai aku i kahi hōʻailona hoʻokipa e hiki ke holo ma kahi RTOS, akā naʻe, ʻaʻohe kumu hoʻohālike hoʻokipa RTOS no ka manawa. Pono nā mea hoʻohana e hoʻomohala i kā lākou papahana hoʻokipa ma muli o RTOS.
He mea nui e hoʻomaopopo i ka protocol gateway UART ma mua o ka hoʻomohala ʻana i kahi papahana hoʻokipa maʻamau. No ka NCP ma muli o ka UART a me ka NCP ma muli o SPI, hoʻohana ka mea hoʻokipa i ka protocol EZSP e kamaʻilio me ka NCP.EZSPpōkole noEmberZnet Serial Protocol, a ua hoakakaia maUG100. No ka NCP e pili ana i ka UART, ua hoʻokō ʻia kahi protocol papa haʻahaʻa e lawe pono i ka ʻikepili EZSP ma luna o UART, ʻo ia kaLEHUprotocol, pōkole noPūʻali Serial Asynchronous. No ka ʻike hou aku e pili ana iā ASH, e ʻoluʻolu e nānāUG101aUG115.
Hiki ke hōʻike ʻia ka pilina ma waena o EZSP a me ASH e kēia kiʻi:
Hiki ke hōʻike ʻia ke ʻano ʻikepili o ka EZSP a me ka protocol ASH e kēia kiʻi:
Ma kēia ʻaoʻao, e hoʻolauna mākou i ke kaʻina hana o ka hoʻopili ʻana i ka ʻikepili UART a me kekahi mau kiʻi kiʻi i hoʻohana pinepine ʻia ma ka ʻīpuka Zigbee.
2. Ka hoʻopololei
Hiki ke hōʻike ʻia ke kaʻina hana hoʻolālā maʻamau e ka pakuhi aʻe:
Ma kēia pakuhi, ʻo ka ʻikepili ke ʻano o ka frame EZSP. Ma keʻano laulā, ʻo nā kaʻina hana paʻa: |ʻAʻole|Step|Reference|
|:-|:-|:-|
|1|Hoʻopiha i ka EZSP Frame|UG100|
|2|Hoʻokaʻawale ʻikepili|Pauku 4.3 o UG101|
|3|Hoʻohui i ka Control Byte|Chap2 a me Chap3 o UG101|
|4|E helu i ka CRC|Pauku 2.3 o UG101|
|5|Byte Stuffing|Pauku 4.2 o UG101|
|6|Hoʻohui i ka Hae Hoʻopau|Pauku 2.4 o UG101|
2.1. E hoopiha i ka EZSP Frame
Hōʻike ʻia ke ʻano hoʻohālikelike EZSP ma ka Mokuna 3 o UG100.
E noʻonoʻo e loli paha kēia ʻano i ka wā e hoʻonui ai ka SDK. Ke hoʻololi ke ʻano, e hāʻawi mākou i kahi helu mana hou. ʻO ka helu helu EZSP hou loa he 8 ke kākau ʻia kēia ʻatikala (EmberZnet 6.8).
No ka mea he ʻokoʻa paha ka ʻano hoʻohālikelike EZSP ma waena o nā mana like ʻole, aia kahi koi koi e ka host a me ka NCPPonohana me ka mana like EZSP. A i ʻole, ʻaʻole hiki iā lākou ke kamaʻilio e like me ka mea i manaʻo ʻia.
No ka hoʻokō ʻana i kēlā, ʻo ke kauoha mua ma waena o ka mea hoʻokipa a me ka NCP pono ke ʻano kauoha. I nā huaʻōlelo ʻē aʻe, pono ka mea hoʻokipa e kiʻi i ka mana EZSP o ka NCP ma mua o kekahi kamaʻilio ʻē aʻe. Inā ʻokoʻa ka mana EZSP me ka mana EZSP o ka ʻaoʻao hoʻokipa, pono e hoʻopau ʻia ke kamaʻilio.
ʻO ke koi implicit ma hope o kēia, ʻo ke ʻano o ke kauoha version hiki keAOLE LOLI. ʻO ka palapala kauoha mana EZSP e like me lalo:
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.2. ʻIkepili Randomization
Ua wehewehe ʻia ke kaʻina hana randomization ma ka pauku 4.3 o UG101. E hoʻokaʻawale ʻia ke kiʻi EZSP holoʻokoʻa. ʻO ka randomization i kūʻokoʻa-OR ke kiʻi EZSP a me kahi kaʻina pseudo-random.
Aia ma lalo ka algorithm o ka hana ʻana i ke kaʻina pseudo-random.
- rand0 = 0×42
- inā he 0 ka bit 0 o randi, randi+1 = randi >> 1
- inā he 1 ka bit 0 o randi, randi+1 = (randi >> 1) ^ 0xB8
2.3. Hoʻohui i ka Control Byte
ʻO ka byte mana he ʻikepili hoʻokahi byte, a pono e hoʻohui ʻia i ke poʻo o ke kiʻi. Hōʻike ʻia ke ʻano me ka papa ma lalo:
ʻO ka holoʻokoʻa, aia 6 mau ʻano o nā bytes mana. Hoʻohana ʻia nā mea mua ʻekolu no nā papa maʻamau me ka ʻikepili EZSP, me DATA, ACK a me NAK. Hoʻohana ʻia nā ʻekolu hope me ka ʻole o ka ʻikepili EZSP maʻamau, me RST, RSTACK a me ERROR.
Ua wehewehe ʻia ke ʻano o ka RST, RSTACK a me ERROR ma ka pauku 3.1 a i ka 3.3.
2.4. E helu i ka CRC
Ua helu ʻia kahi CRC 16-bit ma nā bytes mai ka byte mana a hiki i ka hopena o ka ʻikepili. Hoʻomaka ka CRCCCITT maʻamau (g(x) = x16 + x12 + x5 + 1) i 0xFFFF. ʻO ka byte nui loa ma mua o ka byte liʻiliʻi loa (big-endian mode).
2.5. Hoʻopiha ʻia ʻo Byte
E like me ka wehewehe ʻana ma ka pauku 4.2 o UG101, aia kekahi mau helu byte i mālama ʻia no ke kumu kūikawā. Hiki ke loaʻa kēia mau waiwai ma ka papa ʻaina aʻe:
Ke ʻike ʻia kēia mau waiwai i loko o ke kiʻi, e hana ʻia kahi hana kūikawā i ka ʻikepili. - E hoʻokomo i ka byte pakele 0x7D i mua o ka byte i mālama ʻia - E hoʻohuli i ka bit5 o kēlā byte i mālama ʻia.
Ma lalo iho nei kekahi mau laʻana o kēia algorithm:
2.6. Hoʻohui i ka Hae Hoʻopau
ʻO ka hana hope e hoʻohui i ka hae hope 0x7E i ka hopena o ke kiʻi. Ma hope o kēlā, hiki ke hoʻouna ʻia ka ʻikepili i ke awa UART.
3. Kaʻina De-framing
Ke loaʻa ka ʻikepili mai ka UART, pono mākou e hana i nā ʻanuʻu ʻē aʻe e hoʻokaʻawale iā ia.
4. Hoike
Ka manawa hoʻouna: Feb-08-2022