Muallif: TorkiotBootcamp
Link: https: //zhuanlan.jihu.com/p/339700391
Dan: Quora
1. Kirish
Silikon laboratoriyalari Zigbe Gateway dizayni uchun xost + NCP echimini taklif qildi. Ushbu arxitekturada uy egasi UART yoki SPI interfeysi orqali ncp bilan aloqa qilishi mumkin. Ko'pincha, uart ishlatiladi, chunki u SPIdan ancha sodda.
Silikon laboratoriyalari mezbon dastur uchun namunaviy loyihani taqdim etdi, bu namunaZ3Gatewayhost
. Namuna UNIXga o'xshash tizimda ishlaydi. Ba'zi mijozlar RTOda ishlaydigan mezbon namunani xohlashlari mumkin, ammo afsuski, vaqt davomida RTOSga asoslangan xost namunasi mavjud emas. Foydalanuvchilar RTOga asoslangan o'z xostlarini ishlab chiqishlari kerak.
URART shlyuzi protokolini moslashtirilgan xost dasturini ishlab chiqishdan oldin tushunish muhimdir. NCP asosidagi NCP-NCP-NCP-ning NCP-ga asoslangan ikkalasi ham XCP-ni NCP bilan bog'lanish uchun ishlatadi.Ayyoruchun qisqaEmberznet serial protokoliva u aniqlanadiUG100. UART NCP uchun EZPS ma'lumotlarini UART orqali ishonchli tarzda amalga oshirish uchun pastki qatlamli protokol, buKulProtokol, qisqaAsenkron seriya xosti. Ash haqida ko'proq ma'lumot olish uchun murojaat qilingUG101vaUg115.
EZTP va kul o'rtasidagi munosabatni quyidagi diagramma bilan tasvirlash mumkin:
EZPD va Ash protokolining ma'lumotlar formati quyidagi diagramma bilan tasvirlanishi mumkin:
Ushbu sahifada biz URT ma'lumotlarini va Zigbe Gatewayda tez-tez ishlatiladigan ba'zi kalitlarni targ'ib qilish jarayonini tanishtiramiz.
2. Shakrlash
Umumiy shilliq jarayonni quyidagi jadval bilan tasvirlash mumkin:
Ushbu jadvalda ma'lumotlar EZPS ramkasini anglatadi. Umuman olganda, tarqalish jarayoni quyidagilar: | Yo'q | bosqich | Ma'lumot |
| - | - | - |
| 1 | EZSP freymasini to'ldiring | UG100 |
| 2 | Ma'lumotni tasodifiylashtirish | UG101-ning 4.3-bo'lim |
| 3 | Boshqarish Baytni qo'shish | Walt2 va UG101-ning CAL3 |
| 4 | CRC | UG101 qismining 2.3-qismini hisoblang
| 5 | Baytgacha to'ldirish | UG101-ning 4.2-bo'lim |
| 6 | oxirgi bayroqni qo'shing | 2.4-bo'lim |
2.1. EZSP ramkasini to'ldiring
EZSP kadrlar formati UG100-da tasvirlangan.
E'tibor bering, ushbu format SDK modernizatsiya qilinganida o'zgarishi mumkin. Format o'zgarganda, biz uni yangi versiya raqamini beramiz. EZSP versiyasi 8 - bu maqola yozilganda 8 (emberznet 6.8).
EZSP ramka formati turli xil versiyalar o'rtasida farq qilishi mumkinligi sababli, mezbon va NCP majburiy talab mavjudShartXuddi shu EZSP versiyasi bilan ishlash. Aks holda, ular kutilganidek aloqa qila olmaydilar.
Bunga erishish uchun mezbon va NCP o'rtasidagi birinchi buyruq buyruq buyrug'i bo'lishi kerak. Boshqacha qilib aytganda, uy egasi NCP-ning har qanday boshqa aloqalardan oldin NCP-ning EZSP versiyasini qaytarib olishi kerak. Agar EZSP versiyasi mezbonlar EZSP versiyasi bilan farq qilsa, aloqa bekor qilinishi kerak.
Buning sababi, bu buyruq buyrug'ining formati bo'lishi mumkinHech qachon o'zgarmaydi. EZSP versiyasi buyrug'i formati quyidagiga o'xshaydi:
链接: https: //juanlan.zhu.com/p/339700391
来源: 知乎
著作权归作者所有, 非商业转载请注明出处, 非商业转载请注明出处.
2.2. Ma'lumotni randomizatsiya qilish
Tasdiqlangan tasodifiylashtirish jarayoni UG101-ning 4.3-bo'limida tasvirlangan. Butun EZSP ramkasi tasodifiy bo'ladi. Rasmiyizatsiya eksklyuziv yoki EZSP ramkasi va psevo-tasodifiy ketma-ketlikdir.
Quyida soxta-tasodifiy ketma-ketlikni yaratish algoritmi.
- Rand0 = 0 × 42
- Agar 1-sonli RANDI 0, RANDI + 1 = RANDI >> 1
- Agar 1-chi 1 bo'lsa, 1, RANGI + 1 = (RANDI >> 1) ^ 0xb8
2.3. Boshqaruv baytini qo'shing
Boshqaruv baytida bitta baytli ma'lumotlar mavjud va ramkaning boshiga qo'shilishi kerak. Format quyidagi jadval bilan tasvirlangan:
Umuman olganda, 6 turdagi boshqarish baytlari mavjud. Dastlabki uchtasi EZSP ma'lumotlari, shu jumladan ma'lumotlar, ACK va NAK bilan umumiy ramkalar uchun ishlatiladi. So'nggi uchtasi keng tarqalgan EZP ma'lumotisiz, shu jumladan RST, Rstack va xatosiz ishlatiladi.
RST formatida 3,1 dan 3,3 bo'limda, rstack va xato shakli tasvirlangan.
2.4. CRCni hisoblang
16 bitli CRC ma'lumotlar oxirigacha boshqaruv baytidan baytda hisoblanadi. Standart crcccitt (g (x) = x16 + x12 + x5 + 1) 0xFFFFga ishga tushiriladi. Eng muhim bayt eng kam ahamiyatli bayt (katta-versiya rejimi).
2.5. Bayt to'ldirish
UG101-ning 4.2-bo'limida tavsiflanganidek, maxsus maqsadlarda ishlatiladigan ba'zi bayt qiymatlari mavjud. Ushbu qiymatlarni quyidagi jadvalda topish mumkin:
Ushbu qiymatlar ramkada paydo bo'lganda, ma'lumotlarga alohida davolanish amalga oshiriladi. - Zahiralangan bayt oldidagi bayt 0x7d-ni qo'shib qo'ying - bu zaxiralangan bayt
Quyida ushbu algoritmning ba'zi misollari keltirilgan:
2.6. Oxirgi bayroq qo'shing
Yakuniy qadam - bu flagerni freymning oxiriga qo'shish. Shundan so'ng, ma'lumotlar UART portiga yuborilishi mumkin.
3. De-Framing jarayonlari
URAR-dan ma'lumotlar olinganda, biz uni ochish uchun uni teskari choralar qilishimiz kerak.
4. Adabiyotlar
O'tish vaqti: fevral 08-2022