អ្នកនិពន្ធ: ពិរុទ្ធមួយ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 និងពិធីពិធីពិធីការផេះអាចត្រូវបានបង្ហាញដោយដ្យាក្រាមខាងក្រោម:
នៅក្នុងទំព័រនេះយើងនឹងណែនាំដំណើរការនៃការបង្កើតទិន្នន័យ 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 ។
យកចិត្តទុកដាក់ថាទ្រង់ទ្រាយនេះអាចផ្លាស់ប្តូរនៅពេលដែល SDK ធ្វើឱ្យប្រសើរ។ នៅពេលការផ្លាស់ប្តូរទ្រង់ទ្រាយយើងនឹងផ្តល់លេខកំណែថ្មី។ លេខកំណែ EZSP ចុងក្រោយគឺ 8 នៅពេលអត្ថបទនេះត្រូវបានសរសេរ (Emberznet 6.8) ។
នៅពេលដែលទ្រង់ទ្រាយស៊ុម EZSP អាចខុសគ្នារវាងកំណែផ្សេងៗគ្នាមានតម្រូវការចាំបាច់ដែលម៉ាស៊ីននិង NCPរតុវតេធ្វើការជាមួយកំណែ EZSP ដូចគ្នា។ បើមិនដូច្នោះទេពួកគេមិនអាចទំនាក់ទំនងបានដូចការរំពឹងទុកបានទេ។
ដើម្បីទទួលបានលទ្ធផលដំបូងពាក្យបញ្ជារវាងម៉ាស៊ីននិង NCP ត្រូវតែជាពាក្យបញ្ជាកំណែ។ និយាយម៉្យាងទៀតម៉ាស៊ីនត្រូវតែទាញយកឯកសារអេសអេសភីអេសអេសភីភីមុនពេលទំនាក់ទំនងផ្សេងទៀត។ ប្រសិនបើកំណែ EZSP ខុសគ្នាជាមួយកំណែ EZSP នៃផ្នែករបស់ម្ចាស់ផ្ទះការប្រាស្រ័យទាក់ទងត្រូវតែត្រូវបានបញ្ឈប់។
តម្រូវការជាក់ស្តែងនៅពីក្រោយនេះគឺថាទ្រង់ទ្រាយនៃពាក្យបញ្ជាកំណែកំប៉ុងកុំផ្លាស់ប្តូរ។ ទ្រង់ទ្រាយពាក្យបញ្ជាកំណែរបស់អេសអេសអេសអេសគឺដូចខាងក្រោម:
链接: 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 ប្រភេទ។ បីដំបូងត្រូវបានប្រើសម្រាប់ស៊ុមទូទៅជាមួយទិន្នន័យ 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 មានតម្លៃបែងចែកដែលបានបម្រុងទុកមួយចំនួនដែលត្រូវបានប្រើសម្រាប់គោលបំណងពិសេស។ តម្លៃទាំងនេះអាចរកបាននៅក្នុងតារាងខាងក្រោម:
នៅពេលដែលតម្លៃទាំងនេះលេចឡើងក្នុងស៊ុមការព្យាបាលពិសេសនឹងត្រូវបានធ្វើចំពោះទិន្នន័យ។ - បញ្ចូលការគេចចេញផែនការ 0x7d នៅពីមុខបៃដែលបានបម្រុងទុក - បញ្ច្រាសប៊ីតទី 5 នៃបម្រុងទុកដែលបានរក្សាទុក
ខាងក្រោមនេះគឺជាឧទាហរណ៍មួយចំនួននៃក្បួនដោះស្រាយនេះ:
2.6 ។ បន្ថែមទង់ចុងបញ្ចប់
ជំហានចុងក្រោយគឺត្រូវបន្ថែមទង់ចុងបញ្ចប់ 0x7e ដល់ចុងស៊ុម។ បន្ទាប់ពីនោះទិន្នន័យអាចត្រូវបានផ្ញើទៅរន្ធ UART ។
3 ។ ដំណើរការធ្វើស៊ុម
នៅពេលដែលទិន្នន័យត្រូវបានទទួលពី UART យើងគ្រាន់តែត្រូវការធ្វើជំហានបញ្ច្រាសដើម្បីឌិកូដវា។
4 ។ ឯកសារយោង
ពេលវេលាក្រោយ: ខែកុម្ភៈ-08-2022