Munyori: TorchIoTBotCamp
Link: https://zhuanlan.zhihu.com/p/339700391
Kubva: Quora
1. Nhanganyaya
Silicon Labs yakapa mhinduro yehost+NCP yeZigbee gateway design. Muhurongwa uhu, host inogona kutaurirana neNCP kuburikidza neUART kana SPI interface. Kazhinji, UART inoshandiswa sezvo iri nyore kupfuura SPI.
Silicon Labs yakapawo muenzaniso wepurojekiti yechirongwa chekugamuchira, inova muenzanisoZ3GatewayHost. Muenzaniso uyu unoshanda uchishandisa system yakafanana neUnix. Vamwe vatengi vangada muenzaniso wehost unogona kushanda paRTOS, asi zvinosuwisa kuti, hapana muenzaniso wehost wakavakirwa paRTOS parizvino. Vashandisi vanofanirwa kugadzira purogiramu yavo yehost yakavakirwa paRTOS.
Zvakakosha kunzwisisa protocol yeUART gateway usati wagadzira purogiramu yehost yakagadzirirwa iwe. Kune ese ari maviri UART based NCP neSPI based NCP, host inoshandisa protocol yeEZSP kutaurirana neNCP.EZSPipfupiso yeEmberZnet Serial Protocol, uye zvinotsanangurwa muUG100Kune UART based NCP, protocol yechikamu chepasi inoshandiswa kutakura data reEZSP zvakavimbika pamusoro peUART, ndiyoMAPFUTAnzira, pfupiso yeMushandi weSerial AsynchronousKuti uwane rumwe ruzivo nezve ASH, ndapota tarisa kuUG101uyeUG115.
Hukama huripo pakati peEZSP neASH hunogona kuratidzwa nedhayagiramu inotevera:
Mafomati edata eEZSP neASH protocol anogona kuratidzwa nedhayagiramu inotevera:
Mupeji rino, tichatsanangura maitiro ekuumba data reUART pamwe nemamwe ma key frames anoshandiswa kakawanda muZigbee gateway.
2. Kugadzira furemu
Maitiro ekugadzira mapuranga anogona kuratidzwa nechati inotevera:
Muchati iyi, data rinoreva furemu yeEZSP. Kazhinji, maitiro ekuumba furemu ndeaya: |Hapana|Nhanho|Referensi|
|:-|:-|:-|:-|
|1|Zadza Furemu yeEZSP|UG100|
|2|Kusarongeka kweData|Chikamu 4.3 cheUG101|
|3|Wedzera Control Byte|Chitsauko 2 neChitsauko 3 cheUG101|
|4|Verenga CRC|Chikamu 2.3 cheUG101|
|5|Byte Stuffing|Chikamu 4.2 cheUG101|
|6|Wedzera Mureza Wekupedzisira|Chikamu 2.4 cheUG101|
2.1. Zadza Furemu yeEZSP
Magadzirirwo efuremu yeEZSP anoratidzwa muChitsauko 3 cheUG100.
Zivai kuti fomati iyi inogona kuchinja kana SDK yavandudzwa. Kana fomati ikachinja, tichaipa nhamba itsva yeshanduro. Nhamba yazvino yeshanduro yeEZSP i8 kana chinyorwa chino chanyorwa (EmberZnet 6.8).
Sezvo fomati yefuremu yeEZSP ingave yakasiyana pakati pemavhezheni akasiyana, pane chinodiwa chekuti host neNCPZVINOFANIRAvanoshanda neEZSP vhezheni imwe chete. Zvikasadaro, havagone kutaurirana sezvaitarisirwa.
Kuti zviitike, murairo wekutanga pakati pehost neNCP unofanira kunge uri murairo weshanduro. Nemamwe mashoko, host inofanira kutora vhezheni yeEZSP yeNCP isati yasvika kune imwe kutaurirana. Kana vhezheni yeEZSP yakasiyana nevhezheni yeEZSP yedivi rehost, kutaurirana kunofanira kubviswa.
Chinodiwa chisina kujeka chiri shure kweizvi ndechekuti fomati yemurairo weshanduro inogonaUsambofa wachinja. Rudzi rwemirairo yeEZSP version rwakaita serunotevera:
Nhoroondo: https://zhuanlan.zhihu.com/p/339700391
來源:知乎
著作权归作者所有
2.2. Kusarongeka kweData
Maitiro akadzama ekusarongeka anotsanangurwa muchikamu 4.3 cheUG101. Furemu yese yeEZSP ichasarongeka. Kusarongeka ndekweku-exclusive-OR furemu yeEZSP uye kutevedzana kwepseudo-random.
Pazasi pane algorithm yekugadzira kutevedzana kwe pseudo-random.
- rand0 = 0×42
- kana chidimbu cheRandi chiri 0, Randi+1 = Randi >> 1
- kana bit 0 yerandi iri 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Wedzera Control Byte
Control byte idata re one byte, uye rinofanira kuwedzerwa pamusoro wefuremu. Mafomati acho anoratidzwa netafura iri pazasi:
Pakazara, kune marudzi matanhatu e control bytes. Matatu ekutanga anoshandiswa kuma common frames ane EZSP data, anosanganisira DATA, ACK neNAK. Matatu ekupedzisira anoshandiswa pasina common EZSP data, anosanganisira RST, RSTACK neERROR.
Magadzirirwo eRST, RSTACK neERROR anotsanangurwa muchikamu 3.1 kusvika 3.3.
2.4. Verenga CRC
CRC ye16-bit inoverengerwa pamabyte kubva pacontrol byte kusvika kumagumo edata. Standard CRCCCITT (g(x) = x16 + x12 + x5 + 1) inotangwa kuita 0xFFFF. Byte inonyanya kukosha inotangira byte isinganyanyi kukosha (big-endian mode).
2.5. Kuzadza neByte
Sezvakatsanangurwa muchikamu 4.2 cheUG101, kune mamwe mabheti akachengetwa anoshandiswa pachinangwa chakakosha. Mabheti aya anogona kuwanikwa mutafura inotevera:
Kana izvi zvikaonekwa mufuremu, data richagadziriswa zvine hungwaru. – Isa escape byte 0x7D pamberi pe reserved byte – Dzorera bit5 ye reserved byte iyoyo.
Heano mimwe mienzaniso yeiyi algorithm:
2.6. Wedzera Mureza Wekupedzisira
Danho rekupedzisira nderekuwedzera mureza wekupedzisira 0x7E kumagumo efuremu. Mushure meizvozvo, data rinogona kutumirwa kuUART port.
3. Maitiro ekubvisa furemu
Kana data ragamuchirwa kubva kuUART, tinongoda kuita matanho ekuribvisa.
4. Mareferensi
Nguva yekutumira: Kukadzi-08-2022








