អំពី zigbee ezsp u?

អ្នកនិពន្ធ: ពិរុទ្ធមួយootcamp
តំណភ្ជាប់: https: //zhuanlan.zhihu.com/p/339700391
ពី: Quora

1 ។ សេចក្តីផ្តើម

Labs Labs បានផ្តល់ជូននូវដំណោះស្រាយរបស់ម៉ាស៊ីន + NCP សម្រាប់ការរចនារបស់ហ្ស៊ីប Gooday ។ នៅក្នុងស្ថាបត្យកម្មនេះម៉ាស៊ីនអាចទំនាក់ទំនងជាមួយ NCP តាមរយៈចំណុចប្រទាក់ UART ឬ SPI ។ ភាគច្រើនជាទូទៅ, UART ត្រូវបានគេប្រើព្រោះវាសាមញ្ញជាងអេសអេស។

មន្ទីរពិសោធន៍ស៊ីលីខនក៏បានផ្តល់នូវគម្រោងគំរូសម្រាប់កម្មវិធីរបស់ម៉ាស៊ីនដែលជាគំរូZ3Gatewayhost។ គំរូដំណើរការលើប្រព័ន្ធដូចយូនីក។ អតិថិជនខ្លះអាចចង់បានគំរូម៉ាស៊ីនមួយដែលអាចដំណើរការលើ RTOs ប៉ុន្តែជាអកុសលមិនមានគំរូម៉ាស៊ីនដែលមានមូលដ្ឋាននៅ RTO ទេសម្រាប់ពេលវេលា។ អ្នកប្រើប្រាស់ត្រូវការអភិវឌ្ឍកម្មវិធីម៉ាស៊ីនផ្ទាល់ខ្លួនរបស់ពួកគេដោយផ្អែកលើ RTOs ។

វាមានសារៈសំខាន់ណាស់ក្នុងការស្វែងយល់អំពីពិធីសារ UART GATEWAW មុនពេលកំពុងបង្កើតកម្មវិធីរបស់ម្ចាស់ផ្ទះដែលបានប្តូរតាមបំណង។ សម្រាប់ទាំង URART NCP និង SPI ដែលមានមូលដ្ឋាននៅ NCP, ម៉ាស៊ីនប្រើពិធីសារ EZSP ដើម្បីទំនាក់ទំនងជាមួយ NCP ។ezspគឺខ្លីសម្រាប់ពិធីសារសៀរៀលអេមប៊ែនហើយវាត្រូវបានកំណត់នៅក្នុងug100។ សម្រាប់ URARD NCP ដែលជាពិធីការស្រទាប់ទាបត្រូវបានអនុវត្តដើម្បីអនុវត្តទិន្នន័យ EZSP ដែលអាចជឿទុកចិត្តបាននៅលើអ៊ូត, នោះជាផេហពិធីសារខ្លីសម្រាប់ម៉ាស៊ីនសៀរៀលអសមកាល។ សម្រាប់ព័ត៌មានលម្អិតអំពីផេះសូមយោងug101និងug115.

ទំនាក់ទំនងរវាងអ៊ីហ្សេភីភីនិងផេះអាចត្រូវបានបង្ហាញដោយដ្យាក្រាមខាងក្រោម:

ចេក

ទ្រង់ទ្រាយទិន្នន័យនៃ ezsp និងពិធីពិធីពិធីការផេះអាចត្រូវបានបង្ហាញដោយដ្យាក្រាមខាងក្រោម:

2

នៅក្នុងទំព័រនេះយើងនឹងណែនាំដំណើរការនៃការបង្កើតទិន្នន័យ UAR និងស៊ុមសំខាន់មួយចំនួនដែលត្រូវបានប្រើជាញឹកញាប់នៅក្នុងច្រកទ្វារ Zigbe ។

2 ។ ការដាក់

ដំណើរការអនីតិជនអាចត្រូវបានបង្ហាញដោយតារាងខាងក្រោម:

បី

នៅក្នុងតារាងនេះទិន្នន័យមានន័យថាស៊ុម EZSP ។ ជាទូទៅដំណើរការស៊ុមគឺ: | ទេ | ជំហាន | យោង |

|: |: | - |: |

| 1 | បំពេញស៊ុម EZSP | UG100 |

| 2 | ទិន្នន័យចៃដន្យទិន្នន័យ | ផ្នែកទី 43 នៃ UG101 |

| 3 | បន្ថែមបៃត្រួតពិនិត្យ | ចាប៉ី 2 និងចាបនៃយូជី 101 |

| 4 | ការគណនាកាកបាទក្រហមកម្ពុជាផ្នែកទី 2.3 នៃ UG101 |

| 5 | បៃ usting | ផ្នែក 41 នៃ ug101 |

| បន្ថែមទង់ចុងបញ្ចប់ | ផ្នែកទី 2.4 នៃ UG101 |

2.1 ។ បំពេញស៊ុម EZSP

ទ្រង់ទ្រាយស៊ុម EZSP ត្រូវបានបង្ហាញនៅក្នុងចាប 3 នៃ UG100 ។

4

យកចិត្តទុកដាក់ថាទ្រង់ទ្រាយនេះអាចផ្លាស់ប្តូរនៅពេលដែល SDK ធ្វើឱ្យប្រសើរ។ នៅពេលការផ្លាស់ប្តូរទ្រង់ទ្រាយយើងនឹងផ្តល់លេខកំណែថ្មី។ លេខកំណែ EZSP ចុងក្រោយគឺ 8 នៅពេលអត្ថបទនេះត្រូវបានសរសេរ (Emberznet 6.8) ។

នៅពេលដែលទ្រង់ទ្រាយស៊ុម EZSP អាចខុសគ្នារវាងកំណែផ្សេងៗគ្នាមានតម្រូវការចាំបាច់ដែលម៉ាស៊ីននិង NCPរតុវតេធ្វើការជាមួយកំណែ EZSP ដូចគ្នា។ បើមិនដូច្នោះទេពួកគេមិនអាចទំនាក់ទំនងបានដូចការរំពឹងទុកបានទេ។

ដើម្បីទទួលបានលទ្ធផលដំបូងពាក្យបញ្ជារវាងម៉ាស៊ីននិង NCP ត្រូវតែជាពាក្យបញ្ជាកំណែ។ និយាយម៉្យាងទៀតម៉ាស៊ីនត្រូវតែទាញយកឯកសារអេសអេសភីអេសអេសភីភីមុនពេលទំនាក់ទំនងផ្សេងទៀត។ ប្រសិនបើកំណែ EZSP ខុសគ្នាជាមួយកំណែ EZSP នៃផ្នែករបស់ម្ចាស់ផ្ទះការប្រាស្រ័យទាក់ទងត្រូវតែត្រូវបានបញ្ឈប់។

តម្រូវការជាក់ស្តែងនៅពីក្រោយនេះគឺថាទ្រង់ទ្រាយនៃពាក្យបញ្ជាកំណែកំប៉ុងកុំផ្លាស់ប្តូរ។ ទ្រង់ទ្រាយពាក្យបញ្ជាកំណែរបស់អេសអេសអេសអេសគឺដូចខាងក្រោម:

5

ការពន្យល់នៃវាលប៉ារ៉ាម៉ែត្រនិងទ្រង់ទ្រាយនៃការឆ្លើយតបកំណែអាចត្រូវបានរកឃើញនៅក្នុងចាប 4 នៃ UG100 ។ វាលប៉ារ៉ាម៉ែត្រគឺជាកំណែ EZSP របស់កម្មវិធីម៉ាស៊ីន។ នៅពេលអត្ថបទនេះត្រូវបានសរសេរវាមានអាយុ 8 ឆ្នាំហើយ។
7
作者: ពិលទ្វេដង
链接: https: //zhuanlan.zhihu.com/p/339700391
来源: 知乎
著作权归作者所有។ 商业转载请联系作者获得授权, 非商业转载请注明出处។

2.2 ។ ការចៃដន្យទិន្នន័យ

ដំណើរការចៃដន្យលម្អិតត្រូវបានពិពណ៌នានៅក្នុងផ្នែកទី 4.3 នៃ UG101 ។ ស៊ុម EZSP ទាំងមូលនឹងត្រូវបានចៃដន្យ។ ការចៃដន្យគឺផ្តាច់មុខ - ស៊ុម EZSP និងលំដាប់នៃការក្លែងបន្លំចៃដន្យ។

ខាងក្រោមនេះគឺជាក្បួនដោះស្រាយនៃការបង្កើតលំដាប់របស់ Pseudo-Jextion ។

  • Rand0 = 0 × 42
  • ប្រសិនបើប៊ីត 0 នៃ RANDI គឺ 0, Randi + 1 = RANDi >> 1
  • ប្រសិនបើប៊ីត 0 នៃ Randi គឺ 1, Randi + 1 = (RAVEI >> 1) ^ 0xb8

2.3 ។ បន្ថែមបៃបញ្ជា

វត្ថុបញ្ជា byte គឺជាទិន្នន័យមួយបៃហើយគួរតែត្រូវបានបន្ថែមទៅក្បាលស៊ុម។ ទ្រង់ទ្រាយនេះត្រូវបានបង្ហាញដោយតារាងខាងក្រោម:

6

ទាំងស្រុងមានការគ្រប់គ្រងបៃចំនួន 6 ប្រភេទ។ បីដំបូងត្រូវបានប្រើសម្រាប់ស៊ុមទូទៅជាមួយទិន្នន័យ EZSP រួមទាំងទិន្នន័យ ACK និង NAK ។ បីចុងក្រោយត្រូវបានប្រើដោយគ្មានទិន្នន័យ EZSP ធម្មតារួមទាំង RST, Rstack និងកំហុស។

ទ្រង់ទ្រាយនៃ RST, Rstack និងកំហុសត្រូវបានពិពណ៌នានៅក្នុងផ្នែកទី 3.1 ដល់ 3.3 ។

2.4 ។ គណនាកាកសំណល់

កាកបាទក្រហមកម្ពុជា 16 ប៊ីតត្រូវបានគណនានៅលើបៃពីវត្ថុបញ្ជាបៃរហូតដល់ចប់ទិន្នន័យ។ CRCCCITT ស្តង់ដារ (G (x) = x16 + x12 + x5 + 1) ត្រូវបានចាប់ផ្តើមទៅ 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ។ បៃដែលសំខាន់បំផុតមុនបៃបៃគួរឱ្យកត់សម្គាល់តិចបំផុត (របៀបធំ ៗ ) ។

2.5 ។ បៃបៃ

ដូចដែលបានពិពណ៌នានៅក្នុងផ្នែក 4.2 នៃ UG101 មានតម្លៃបែងចែកដែលបានបម្រុងទុកមួយចំនួនដែលត្រូវបានប្រើសម្រាប់គោលបំណងពិសេស។ តម្លៃទាំងនេះអាចរកបាននៅក្នុងតារាងខាងក្រោម:

7

នៅពេលដែលតម្លៃទាំងនេះលេចឡើងក្នុងស៊ុមការព្យាបាលពិសេសនឹងត្រូវបានធ្វើចំពោះទិន្នន័យ។ - បញ្ចូលការគេចចេញផែនការ 0x7d នៅពីមុខបៃដែលបានបម្រុងទុក - បញ្ច្រាសប៊ីតទី 5 នៃបម្រុងទុកដែលបានរក្សាទុក

ខាងក្រោមនេះគឺជាឧទាហរណ៍មួយចំនួននៃក្បួនដោះស្រាយនេះ:

8 ចីម្យង

2.6 ។ បន្ថែមទង់ចុងបញ្ចប់

ជំហានចុងក្រោយគឺត្រូវបន្ថែមទង់ចុងបញ្ចប់ 0x7e ដល់ចុងស៊ុម។ បន្ទាប់ពីនោះទិន្នន័យអាចត្រូវបានផ្ញើទៅរន្ធ UART ។

3 ។ ដំណើរការធ្វើស៊ុម

នៅពេលដែលទិន្នន័យត្រូវបានទទួលពី UART យើងគ្រាន់តែត្រូវការធ្វើជំហានបញ្ច្រាសដើម្បីឌិកូដវា។

4 ។ ឯកសារយោង


ពេលវេលាក្រោយ: ខែកុម្ភៈ-08-2022
ជជែកតាមអ៊ិនធរណេតលើអ៊ិនធរណេត!