ស្លាកសញ្ញា SILICON LABS

AN451
ការអនុវត្តកម្មវិធី M-BUS ឥតខ្សែ

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

កំណត់ចំណាំកម្មវិធីនេះពិពណ៌នាអំពីការអនុវត្ត Silicon Labs នៃ Wireless M-Bus ដោយប្រើ Silicon Labs C8051 MCU និង EZRadioPRO®។ Wireless M-bus គឺជាស្តង់ដារអ៊ឺរ៉ុបសម្រាប់កម្មវិធីអានម៉ែត្រដោយប្រើប្រេកង់ 868 MHz ។

ស្រទាប់ជង់

Wireless M-Bus ប្រើគំរូ IEC 3-layer ដែលជាសំណុំរងនៃម៉ូដែល OSI 7-layer (សូមមើលរូបភាពទី 1)។

ការអនុវត្តកម្មវិធី SILICON LABS ឥតខ្សែ M-BUS AN451ស្រទាប់រូបវិទ្យា (PHY) ត្រូវបានកំណត់នៅក្នុង EN 13757-4 ។ ស្រទាប់រាងកាយកំណត់ពីរបៀបដែលប៊ីតត្រូវបានអ៊ិនកូដ និងបញ្ជូន លក្ខណៈម៉ូដឹម RF (អត្រាបន្ទះឈីប បុព្វបទ និងពាក្យធ្វើសមកាលកម្ម) និងប៉ារ៉ាម៉ែត្រ RF (ម៉ូឌុល ប្រេកង់កណ្តាល និងគម្លាតប្រេកង់)។
ស្រទាប់ PHY ត្រូវបានអនុវត្តដោយប្រើការរួមបញ្ចូលគ្នានៃផ្នែករឹង និងកម្មវិធីបង្កប់។ EZRadioPRO អនុវត្តមុខងារ RF និងម៉ូដឹមទាំងអស់។ EZRadioPRO ត្រូវបានប្រើក្នុងរបៀប FIFO ជាមួយនឹងឧបករណ៍ដោះស្រាយកញ្ចប់ព័ត៌មាន។ ម៉ូឌុល MbusPhy.c ផ្តល់នូវចំណុចប្រទាក់ SPI ការអ៊ិនកូដ/ឌិកូដ ទប់ស្កាត់ការអាន/សរសេរ និងការចាត់ចែងកញ្ចប់ព័ត៌មាន និងគ្រប់គ្រងស្ថានភាពឧបករណ៍បញ្ជូន។
ស្រទាប់តំណទិន្នន័យ M-Bus ត្រូវបានអនុវត្តនៅក្នុងម៉ូឌុល MbusLink.c ។ ចំណុចប្រទាក់កម្មវិធីកម្មវិធី M-Bus មានមុខងារសាធារណៈដែលអាចត្រូវបានហៅចេញពីស្រទាប់កម្មវិធីនៅក្នុងខ្សែស្រឡាយមេ។ ម៉ូឌុល MbusLink ក៏អនុវត្តស្រទាប់តំណទិន្នន័យផងដែរ។ ស្រទាប់តំណទិន្នន័យនឹងធ្វើទ្រង់ទ្រាយ និងចម្លងទិន្នន័យពីកម្មវិធី TX buffer ទៅ MbusPhy TX buffer ដោយបន្ថែមបឋមកថា និង CRCs ដែលត្រូវការ។
ស្រទាប់កម្មវិធីខ្លួនវាមិនមែនជាផ្នែកនៃកម្មវិធីបង្កប់ M-bus ទេ។ ស្រទាប់​កម្មវិធី​កំណត់​ពី​របៀប​ដែល​ទិន្នន័យ​ជាច្រើន​ត្រូវ​បាន​ធ្វើ​ទ្រង់ទ្រាយ​សម្រាប់​ការ​បញ្ជូន។ ម៉ែត្រភាគច្រើនត្រូវការបញ្ជូនទិន្នន័យមួយ ឬពីរប្រភេទប៉ុណ្ណោះ។ ការបន្ថែមលេខកូដមួយចំនួនធំដើម្បីផ្ទុកទិន្នន័យប្រភេទណាមួយទៅក្នុងម៉ែត្រនឹងបន្ថែមលេខកូដដែលមិនចាំបាច់ និងថ្លៃដើមដល់ម៉ែត្រ។ វាអាចមានលទ្ធភាពអនុវត្តបណ្ណាល័យ ឬបឋមកថា file ជាមួយនឹងបញ្ជីពេញលេញនៃប្រភេទទិន្នន័យ។ ទោះជាយ៉ាងណាក៏ដោយ អតិថិជនក្នុងការវាស់ស្ទង់ភាគច្រើនដឹងច្បាស់អំពីប្រភេទទិន្នន័យដែលពួកគេត្រូវការដើម្បីបញ្ជូន និងអាចយោងទៅលើស្តង់ដារសម្រាប់ព័ត៌មានលម្អិតនៃទម្រង់។ អ្នកអានជាសកល ឬ sniffer អាចអនុវត្តសំណុំពេញលេញនៃប្រភេទទិន្នន័យកម្មវិធីនៅលើ PC GUI ។ សម្រាប់ហេតុផលទាំងនេះ ស្រទាប់កម្មវិធីត្រូវបានអនុវត្តដោយប្រើ example កម្មវិធីសម្រាប់ម៉ែត្រនិងអ្នកអាន។

តម្រូវការស្តង់ដារ
  1. EN 13757-4
    EN 13757-4
    ប្រព័ន្ធទំនាក់ទំនងសម្រាប់ម៉ែត្រ និងការអានម៉ែត្រពីចម្ងាយ
    ផ្នែកទី 4: ការអានម៉ែត្រឥតខ្សែ
    ការអានវិទ្យុទាក់ទងសម្រាប់ប្រតិបត្តិការនៅក្នុងក្រុមតន្រ្តី SRD 868 MHz ទៅ 870 MHz
  2. EN 13757-3
    ប្រព័ន្ធទំនាក់ទំនងសម្រាប់ម៉ែត្រ និងការអានម៉ែត្រពីចម្ងាយ
    ផ្នែកទី 3៖ ស្រទាប់កម្មវិធីពិសេស
  3. IEC 60870-2-1:1992
    ឧបករណ៍ និងប្រព័ន្ធទូរគមនាគមន៍
    ផ្នែកទី 5៖ ពិធីការបញ្ជូន
    ផ្នែកទី 1: ដំណើរការបញ្ជូនតំណ
  4. IEC 60870-1-1:1990
    ឧបករណ៍ និងប្រព័ន្ធទូរគមនាគមន៍
    ផ្នែកទី 5៖ ពិធីការបញ្ជូន
    ផ្នែកទី 1៖ ទម្រង់នៃការបញ្ជូន
និយមន័យ
  • ឡានក្រុង M-M-Bus គឺជាស្តង់ដារខ្សែសម្រាប់ការអានម៉ែត្រនៅអឺរ៉ុប។
  • ឥតខ្សែ M-Bus-Wireless M-Bus សម្រាប់កម្មវិធីអានម៉ែត្រនៅអឺរ៉ុប។
  • ភី-Physical Layer កំណត់ពីរបៀបដែលទិន្នន័យប៊ីត និងបៃត្រូវបានអ៊ិនកូដ និងបញ្ជូន។
  • API—ចំណុចប្រទាក់អ្នកសរសេរកម្មវិធីកម្មវិធី។
  • តំណភ្ជាប់—Data Link Layer កំណត់ពីរបៀបដែលប្លុក និងស៊ុមត្រូវបានបញ្ជូន។
  • CRC—ពិនិត្យភាពមិនស៊ីសង្វាក់គ្នានៃវដ្ត។
  • FSK—ការចុចគ្រាប់ចុចប្តូរប្រេកង់។
  • បន្ទះសៀគ្វី—ឯកតាតូចបំផុតនៃទិន្នន័យបញ្ជូន។ ប៊ីតទិន្នន័យមួយត្រូវបានអ៊ិនកូដជាបន្ទះសៀគ្វីច្រើន។
  • ម៉ូឌុល —ប្រភពកូដ AC .c file.

ការពិពណ៌នាមុខងារ M-Bus PHY

បុព្វបទ

លំដាប់ Preamble ដែលបានបញ្ជាក់ដោយការបញ្ជាក់ M-bus គឺជាចំនួនគត់ជំនួសលេខសូន្យ និងលេខមួយ។ មួយត្រូវបានកំណត់ថាជាប្រេកង់ខ្ពស់ជាង ហើយសូន្យត្រូវបានកំណត់ថាជាប្រេកង់ទាប។
nx (01)
ជម្រើស Preamble សម្រាប់ Si443x គឺជាចំនួនគត់នៃ nibbles ដែលមានលេខជំនួស និងសូន្យ។
nx (1010)
បុព្វកថាដែលមានការនាំមុខបន្ថែមនឹងមិនមានបញ្ហាទេ ប៉ុន្តែបន្ទាប់មក ពាក្យធ្វើសមកាលកម្ម និងបន្ទុកនឹងត្រូវខុសមួយបន្តិច។
ដំណោះស្រាយគឺត្រូវបង្វែរកញ្ចប់ព័ត៌មានទាំងមូលដោយកំណត់ម៉ាស៊ីនប៊ីតនៅក្នុងការចុះឈ្មោះ Modulation Control 2 (0x71)។ វា​នឹង​បញ្ច្រាស​ពាក្យ​បុព្វបទ ធ្វើសមកាលកម្ម​ពាក្យ និង​ទិន្នន័យ TX/RX ។ ជាលទ្ធផល ទិន្នន័យគួរតែត្រូវបានដាក់បញ្ច្រាសនៅពេលសរសេរទិន្នន័យ TX ឬអានទិន្នន័យ RX ។ ដូចគ្នានេះផងដែរ ពាក្យធ្វើសមកាលកម្មត្រូវបានដាក់បញ្ច្រាសមុនពេលសរសេរទៅកាន់ Si443x Synchronization Word registers។

ពាក្យធ្វើសមកាលកម្ម

ពាក្យធ្វើសមកាលកម្មដែលតម្រូវដោយ EN-13757-4 គឺទាំង 18 បន្ទះសៀគ្វីសម្រាប់ Mode S និង Mode R ឬ 10 chips សម្រាប់ Model T ។ ពាក្យធ្វើសមកាលកម្មសម្រាប់ Si443x គឺ 1 ទៅ 4 បៃ។ ទោះយ៉ាងណាក៏ដោយ ដោយសារពាក្យធ្វើសមកាលកម្មតែងតែនាំមុខដោយបុព្វកថា ប្រាំមួយប៊ីតចុងក្រោយនៃបុព្វបទអាចចាត់ទុកថាជាផ្នែកមួយនៃពាក្យធ្វើសមកាលកម្ម។ ដូច្នេះ ពាក្យ​ធ្វើ​សមកាលកម្ម​ដំបូង​ត្រូវ​បាន​ដាក់​ដោយ​ពាក្យ​ដដែលៗ​ចំនួន​បី​នៃ​សូន្យ​តាម​ពីក្រោយ​ដោយ​មួយ។ ពាក្យធ្វើសមកាលកម្មត្រូវបានបំពេញបន្ថែមមុនពេលសរសេរទៅចុះឈ្មោះ Si443x ។
តារាងទី 1. ការធ្វើសមកាលកម្ម Word សម្រាប់ Mode S និង Mode R

EN 13757-4 00 01110110 10010110 គោលពីរ
00 76 96 ឆកោន
បន្ទះជាមួយ (01) x 3 01010100 01110110 10010110 គោលពីរ
54 76 96 ឆកោន
បំពេញបន្ថែម 10101011 10001001 01101001 គោលពីរ
AB 89 69 ឆកោន

តារាង 2. ការធ្វើសមកាលកម្មពាក្យសម្រាប់របៀប T ម៉ែត្រទៅផ្សេងទៀត។

ធ្វើសមកាលកម្ម ធ្វើសមកាលកម្ម ធ្វើសមកាលកម្ម
ពាក្យ ពាក្យ ពាក្យ
3 2 1
បញ្ជូន​ប្រវែង​បុព្វបទ

បុព្វកថាអប្បបរមាត្រូវបានបញ្ជាក់សម្រាប់របៀបប្រតិបត្តិការបួនផ្សេងគ្នា។ វា​អាច​ទទួល​យក​បាន​ដែល​មាន​បុព្វកថា​វែង​ជាង​ការ​បញ្ជាក់។ ការដកបន្ទះឈីបចំនួនប្រាំមួយសម្រាប់បុព្វកថាផ្តល់ឱ្យចំនួនអប្បបរមានៃបន្ទះឈីបសម្រាប់បុព្វកថា Si443x ។ ការអនុវត្តបន្ថែម nibbles បន្ថែមចំនួនពីរនៃ preamble នៅក្នុងទម្រង់ preamble ខ្លីទាំងអស់ ដើម្បីបង្កើនការរកឃើញ preamble និងអន្តរប្រតិបត្តិការ។ បុព្វកថាអំពី របៀប S ជាមួយនឹងបុព្វកថាវែងគឺវែងណាស់; ដូច្នេះ បុព្វកថាអប្បបរមាត្រូវបានប្រើ។ ប្រវែងបុព្វកថានៅក្នុង nibbles ត្រូវបានសរសេរទៅបញ្ជីឈ្មោះ Preamble Length (0x34) ។ ការចុះឈ្មោះប្រវែងបុព្វកថាកំណត់បុព្វបទនៅពេលបញ្ជូនតែប៉ុណ្ណោះ។ ការបញ្ជាក់អប្បបរមា និងការកំណត់ប្រវែងបុព្វបទត្រូវបានសង្ខេបនៅក្នុងតារាងទី 3 ។
តារាងទី 3. ប្រវែងបញ្ជូនបុព្វបទ

EN-13757-4
អប្បបរមា
Si443x បុព្វបទ
កំណត់
ធ្វើសមកាលកម្ម
ពាក្យ
សរុប បន្ថែម
nx (01) បន្ទះសៀគ្វី nibbles បន្ទះសៀគ្វី បន្ទះសៀគ្វី បន្ទះសៀគ្វី បន្ទះសៀគ្វី
របៀប S បុព្វកថាខ្លី 15 30 8 32 6 38 8
របៀប S បុព្វកថាវែង 279 558 138 552 6 558 0
របៀប T (ម៉ែត្រ​ផ្សេងទៀត) 19 38 10 40 6 46 8
របៀប R 39 78 20 80 6 86 8

បុព្វកថាអប្បបរមាសម្រាប់ការទទួលត្រូវបានកំណត់ដោយការចុះឈ្មោះ Preamble Detection Control (0x35) ។ នៅពេលទទួលភ្ញៀវ ចំនួនប៊ីតនៅក្នុងពាក្យដែលធ្វើសមកាលកម្មត្រូវតែដកចេញពីបុព្វបទអប្បបរមាដែលបានបញ្ជាក់ដើម្បីកំណត់បុព្វបទដែលអាចប្រើប្រាស់បាន។ ពេលវេលាទូទាត់អប្បបរមារបស់អ្នកទទួលគឺ 16-chips ប្រសិនបើ AFC ត្រូវបានបើក ឬ 8-chips ប្រសិនបើ AFC ត្រូវបានបិទ។ ពេលវេលាទូទាត់របស់អ្នកទទួលក៏ត្រូវបានដកចេញពីបុព្វបទដែលអាចប្រើប្រាស់បានផងដែរ ដើម្បីកំណត់ការកំណត់អប្បបរមាសម្រាប់ការចុះឈ្មោះ Preamble Detection Control។

ប្រូបាប៊ីលីតេនៃបុព្វកថាមិនពិតអាស្រ័យទៅលើការកំណត់នៃបញ្ជីឈ្មោះ Preamble Detection Control។ ការកំណត់ខ្លីនៃ 8-chips អាចបណ្តាលឱ្យមានបុព្វបទមិនពិតដែលត្រូវបានរកឃើញរៀងរាល់ពីរបីវិនាទីម្តង។ ការកំណត់ដែលបានណែនាំនៃ 20chips ធ្វើឱ្យការរកឃើញបុព្វបទមិនពិតជាព្រឹត្តិការណ៍ដែលមិនទំនង។ ប្រវែងបុព្វបទសម្រាប់ Mode R និង Mode SL គឺវែងគ្រប់គ្រាន់សម្រាប់ការកំណត់ដែលបានណែនាំឱ្យប្រើ។
មានអត្ថប្រយោជន៍តិចតួចណាស់ក្នុងការធ្វើឱ្យបុព្វបទរកឃើញយូរជាង 20 បន្ទះសៀគ្វី។
AFC ត្រូវបានបិទសម្រាប់ Model S ដែលមានបុព្វបទខ្លី និង Model T។ វាកាត់បន្ថយពេលវេលាទូទាត់របស់អ្នកទទួល និងអនុញ្ញាតឱ្យកំណត់ការរកឃើញបុព្វបទយូរជាងនេះ។ ជាមួយនឹង AFC ត្រូវបានបិទ របៀប T អាចប្រើការកំណត់ដែលបានណែនាំនៃ 20 បន្ទះសៀគ្វី។ ការកំណត់នៃ 4 nibbles ឬ 20 chips ត្រូវបានប្រើសម្រាប់ Model S ជាមួយនឹងបុព្វបទខ្លីមួយ។ នេះធ្វើឱ្យប្រូបាប៊ីលីតេនៃការរកឃើញបុព្វបទមិនពិតខ្ពស់ជាងបន្តិចសម្រាប់គំរូនេះ។
តារាងទី 4. ការរកឃើញជាមុន

EN-13757-4
អប្បបរមា
ធ្វើសមកាលកម្ម
ពាក្យ
អាចប្រើបាន
បុព្វកថា
ការតាំងទីលំនៅ RX រកឃើញ
នាទី
Si443x បុព្វបទ
ការកំណត់ការរកឃើញ
nx (01) បន្ទះសៀគ្វី បន្ទះសៀគ្វី បន្ទះសៀគ្វី បន្ទះសៀគ្វី បន្ទះសៀគ្វី nibbles បន្ទះសៀគ្វី
របៀប S បុព្វកថាខ្លី 15 30 6 24 8* 16 4 16
គំរូ S បុព្វកថាវែង 279 558 6 552 16 536 5 20
ម៉ូដែល T (ម៉ែត្រផ្សេងទៀត) 19 38 6 32 8* 24 5 20
របៀប R 39 78 6 72 16 56 5 20
*ចំណាំ៖ AFC ត្រូវបានបិទ

អ្នកទទួលត្រូវបានកំណត់រចនាសម្ព័ន្ធដើម្បីធ្វើអន្តរកម្មជាមួយឧបករណ៍បញ្ជូនដោយប្រើបុព្វបទដែលបានបញ្ជាក់អប្បបរមា។ នេះធានាថាអ្នកទទួលនឹងធ្វើអន្តរកម្មជាមួយឧបករណ៍បញ្ជូនដែលអនុលោមតាម M-bus ។
ការបញ្ជាក់របស់ Wireless M-Bus ទាមទារបុព្វបទដ៏វែងឆ្ងាយសម្រាប់ Mode S1 យ៉ាងហោចណាស់ 558 បន្ទះឈីប។ វានឹងចំណាយពេលប្រហែល 17 ms ដើម្បីបញ្ជូនបុព្វបទ។ Si443x មិនតម្រូវឱ្យមានបុព្វកថាវែងបែបនេះទេ ហើយមិនទទួលបានអត្ថប្រយោជន៍ពីបុព្វកថាវែងនោះទេ។ ខណៈពេលដែលបុព្វកថាវែងត្រូវបានកត់សំគាល់ថាជាជម្រើសសម្រាប់ Mode S2 វាគ្មានហេតុផលដើម្បីប្រើបុព្វបទវែងជាមួយ Si443x នោះទេ។ ប្រសិនបើការប្រាស្រ័យទាក់ទងមួយផ្លូវគឺចង់បាន របៀប T1 នឹងផ្តល់នូវបុព្វបទខ្លីជាង អត្រាទិន្នន័យខ្ពស់ និងអាយុកាលថ្មយូរជាង។ ប្រសិនបើការទំនាក់ទំនងពីរផ្លូវដោយប្រើរបៀប S2 ត្រូវបានទាមទារ ការណែនាំខ្លីៗត្រូវបានណែនាំ។
សូមកត់សម្គាល់ថាកម្រិតនៃការរកឃើញសម្រាប់ម៉ូដែល S ដែលមានបុព្វកថាវែងគឺវែងជាងចំនួននៃបុព្វបទដែលបានបញ្ជូនសម្រាប់ម៉ូដែល S ជាមួយនឹងបុព្វកថាខ្លី។ នេះមានន័យថាអ្នកទទួល Mode S preamble វែងនឹងមិនរកឃើញ preamble ពី preamble Mode S transmitter ខ្លីទេ។ នេះគឺចាំបាច់ប្រសិនបើអ្នកទទួល Mode S បុព្វបទវែង ដើម្បីទទួលបានអត្ថប្រយោជន៍ណាមួយពីបុព្វកថាវែង។
ចំណាំថាអ្នកទទួលទម្រង់មុនខ្លី S នឹងរកឃើញបុព្វកថា និងទទួលកញ្ចប់ព័ត៌មានពីទាំងពីរទម្រង់មុនខ្លី
ឧបករណ៍បញ្ជូននិងឧបករណ៍បញ្ជូន Mode S នាំមុខវែង; ដូច្នេះ ជាទូទៅ អ្នកអានម៉ែត្រគួរតែប្រើការកំណត់រចនាសម្ព័ន្ធអ្នកទទួលមុខងារ Preamble Mode S ខ្លី។

ការអ៊ិនកូដ/ឌិកូដ

ការបញ្ជាក់​របស់ Wireless M-bus ទាមទារ​វិធីសាស្ត្រ​បំប្លែង​កូដ​ពីរផ្សេងគ្នា។ ការអ៊ិនកូដ Manchester ត្រូវបានប្រើសម្រាប់ Mode S និង Mode R។ ការអ៊ិនកូដ Manchester ក៏ប្រើសម្រាប់តំណភ្ជាប់ផ្សេងទៀតទៅម៉ែត្រក្នុង Model T។ តំណភ្ជាប់ម៉ែត្រ Model T ប្រើការអ៊ិនកូដ 3 ក្នុងចំណោម 6 ។
២.៤.១. Manchester អ៊ិនកូដ/ឌិកូដ
ការអ៊ិនកូដ Manchester គឺជារឿងធម្មតាជាប្រវត្តិសាស្ត្រនៅក្នុងប្រព័ន្ធ RF ដើម្បីផ្តល់នូវការងើបឡើងវិញ និងតាមដាននាឡិកាដ៏រឹងមាំដោយប្រើម៉ូដឹមសាមញ្ញ និងមានតំលៃថោក។ ទោះជាយ៉ាងណាក៏ដោយ វិទ្យុដែលមានប្រសិទ្ធភាពខ្ពស់ទំនើបដូចជា Si443x មិនត្រូវការការអ៊ិនកូដ Manchester ទេ។ ការអ៊ិនកូដ Manchester ត្រូវបានគាំទ្រជាចម្បងសម្រាប់ភាពឆបគ្នាជាមួយនឹងស្តង់ដារដែលមានស្រាប់ ប៉ុន្តែអត្រាទិន្នន័យសម្រាប់ Si443x ត្រូវបានកើនឡើងទ្វេដងយ៉ាងមានប្រសិទ្ធភាពនៅពេលមិនប្រើការអ៊ិនកូដ Manchester។
Si443x គាំទ្រការអ៊ិនកូដ Manchester និងការឌិកូដនៃកញ្ចប់ព័ត៌មានទាំងមូលនៅក្នុងផ្នែករឹង។ ជាអកុសល ពាក្យធ្វើសមកាលកម្មមិនត្រូវបានអ៊ិនកូដ Manchester ទេ។ លំដាប់ Manchester មិនត្រឹមត្រូវត្រូវបានជ្រើសរើសដោយចេតនាសម្រាប់ពាក្យធ្វើសមកាលកម្ម។ នេះធ្វើឱ្យការអ៊ិនកូដ Manchester មិនឆបគ្នាជាមួយវិទ្យុដែលមានស្រាប់ភាគច្រើន រួមទាំង Si443x ផងដែរ។ ជាលទ្ធផល ការអ៊ិនកូដ និងឌិកូដ Manchester ត្រូវតែធ្វើឡើងដោយ MCU ។ បៃនីមួយៗនៅលើទិន្នន័យដែលមិនបានអ៊ិនកូដមានប្រាំបីប៊ីតទិន្នន័យ។ ដោយប្រើការអ៊ិនកូដ Manchester ប៊ីតទិន្នន័យនីមួយៗត្រូវបានអ៊ិនកូដទៅជានិមិត្តសញ្ញាបន្ទះឈីបពីរ។ ដោយសារទិន្នន័យដែលបានអ៊ិនកូដត្រូវតែសរសេរទៅវិទ្យុ FIFO ប្រាំបីបន្ទះក្នុងពេលតែមួយ ទិន្នន័យមួយត្រូវបានអ៊ិនកូដ និងសរសេរទៅ FIFO ក្នុងពេលតែមួយ។
តារាងទី 5. ការអ៊ិនកូដ Manchester

ទិន្នន័យ អុក ១៦៥ 0x34 បៃ
អុក ១៦៥ 0x2 0x3 0x4 nibbles
1 10 11 100 គោលពីរ
បន្ទះសៀគ្វី 10101001 10100110 10100101 10011010 គោលពីរ
FIFO OxA9 OxA6 OxA5 អុក ០៧០ អេ ឆកោន

បៃនីមួយៗដែលត្រូវបញ្ជូនគឺត្រូវបញ្ជូនមួយបៃក្នុងពេលតែមួយទៅមុខងារអ៊ិនកូដបៃ។ មុខងារ encode byte នឹងហៅមុខងារ encode nibble ពីរដង ទីមួយសម្រាប់ nibble ដ៏សំខាន់បំផុត និងបន្ទាប់មកសម្រាប់ nibble តិចបំផុត។
ការអ៊ិនកូដ Manchester នៅក្នុងកម្មវិធីមិនពិបាកទេ។ ចាប់ផ្តើមពីប៊ីតដ៏សំខាន់បំផុត មួយត្រូវបានអ៊ិនកូដជាលំដាប់បន្ទះឈីប "01" ។ លេខសូន្យត្រូវបានអ៊ិនកូដជាលំដាប់បន្ទះឈីប "10" ។ នេះអាចសម្រេចបានយ៉ាងងាយស្រួលដោយប្រើរង្វិលជុំ និងការផ្លាស់ប្តូរពីរប៊ីតសម្រាប់និមិត្តសញ្ញានីមួយៗ។ ទោះយ៉ាងណាក៏ដោយ វាលឿនជាងក្នុងការគ្រាន់តែប្រើតារាងរកមើលធាតុ 16 សាមញ្ញសម្រាប់ nibble នីមួយៗ។ មុខងារ encode Manchester nibble បំប្លែងទិន្នន័យមួយ រួចសរសេរវាទៅ FIFO ។ បន្ទះសៀគ្វីត្រូវបានដាក់បញ្ច្រាសមុនពេលសរសេរទៅ FIFO ដើម្បីកំណត់តម្រូវការបុព្វបទដែលដាក់បញ្ច្រាស។
នៅពេលទទួល បៃនីមួយៗនៅក្នុង FIFO មានបន្ទះឈីបចំនួនប្រាំបី ហើយត្រូវបានឌិកូដទៅជាទិន្នន័យតែមួយ។ មុខងារប្លុកអានអានមួយបៃក្នុងពេលតែមួយពី FIFO ហើយហៅមុខងារឌិកូដបៃ។ បន្ទះសៀគ្វីត្រូវបានដាក់បញ្ច្រាសបន្ទាប់ពីអានពី FIFO ដើម្បីកំណត់តម្រូវការបុព្វបទដែលដាក់បញ្ច្រាស។ បៃនីមួយៗនៃបន្ទះឈីបដែលបានអ៊ិនកូដ Manchester ត្រូវបានឌិកូដទៅជាទិន្នន័យ។ nibble ដែលបានឌិកូដត្រូវបានសរសេរទៅសតិបណ្ដោះអាសន្ន RX ដោយប្រើមុខងារ write nibble RX buffer។
សូម​កត់​សម្គាល់​ថា​ទាំង​ការ​បំប្លែង​កូដ និង​ការ​ឌិកូដ​ត្រូវ​បាន​ធ្វើ​ការ​ចាប់​យក​ទិន្នន័យ​មួយ​ក្នុង​ពេល​តែ​មួយ​។ ការអ៊ិនកូដទៅសតិបណ្ដោះអាសន្ននឹងតម្រូវឱ្យមានសតិបណ្ដោះអាសន្នបន្ថែម 100 ដងនៃទំហំទិន្នន័យដែលមិនបានអ៊ិនកូដ។ ការអ៊ិនកូដ និងការឌិកូដគឺលឿនជាងអត្រាទិន្នន័យដែលគាំទ្រលឿនបំផុត (443 k chips ក្នុងមួយវិនាទី)។ ដោយសារ Si10x គាំទ្រការអាន និងសរសេរច្រើនបៃទៅ FIFO វាមានចំណុចសំខាន់តូចមួយក្នុងការប្រើការអាន និងសរសេរតែមួយបៃប៉ុណ្ណោះ។ តម្លៃលើសគឺប្រហែល 100 µs សម្រាប់ 512 បន្ទះសៀគ្វីដែលបានអ៊ិនកូដ។ អត្ថប្រយោជន៍គឺការសន្សំ RAM ចំនួន XNUMX បៃ។
២.៤.២. បីចេញពីប្រាំមួយ អ៊ិនកូដឌិកូដ
វិធីសាស្ត្របំប្លែងកូដបីចេញពីប្រាំមួយ ដែលបានបញ្ជាក់នៅក្នុង EN-13757-4 ក៏ត្រូវបានអនុវត្តនៅក្នុងកម្មវិធីបង្កប់នៅលើ MCU ផងដែរ។ ការ​បំប្លែង​កូដ​នេះ​ត្រូវ​បាន​ប្រើ​សម្រាប់​ល្បឿន​លឿន (100 k chips ក្នុង​មួយ​វិនាទី) Mode T ពី​ម៉ែត្រ​ទៅ​ផ្សេង។ ម៉ូដែល T ផ្តល់នូវរយៈពេលបញ្ជូនខ្លីបំផុត និងអាយុកាលថ្មវែងបំផុតសម្រាប់ម៉ែត្រឥតខ្សែ។
បៃនីមួយៗនៃទិន្នន័យដែលត្រូវបញ្ជូនត្រូវបែងចែកជាពីរ nibbles ។ nibble ដ៏សំខាន់បំផុតគឺត្រូវបានអ៊ិនកូដ និងបញ្ជូនមុន។ ជាថ្មីម្តងទៀត វាត្រូវបានអនុវត្តដោយប្រើមុខងារ encode byte ដែលហៅមុខងារ encode nibble ពីរដង។
ទិន្នន័យនីមួយៗត្រូវបានអ៊ិនកូដទៅជានិមិត្តសញ្ញាប្រាំមួយឈីប។ លំដាប់នៃនិមិត្តសញ្ញាប្រាំមួយឈីបត្រូវតែសរសេរទៅ 8chip FIFO ។
កំឡុងពេលអ៊ិនកូដ ទិន្នន័យពីរបៃត្រូវបានអ៊ិនកូដជាបួន nibbles ។ នីបនីមួយៗគឺជានិមិត្តសញ្ញា 6 បន្ទះ។ និមិត្តសញ្ញា 6chip ចំនួនបួនត្រូវបានបញ្ចូលគ្នាជាបីបៃ។
តារាងទី 6. ការអ៊ិនកូដបីក្នុងចំណោមប្រាំមួយ។

ទិន្នន័យ 0x12 0x34 បៃ
អុក ១៦៥ 0x2 0x3 0x4 nibbles
បន្ទះសៀគ្វី 15 16 13 34 ប្រាំបី
1101 1110 1011 11100 គោលពីរ
FIFO 110100 11100010 11011100 គោលពីរ
0x34 OxE2 អុកឌីស៊ី ឆកោន

នៅក្នុងសូហ្វវែរ ការអ៊ិនកូដ 16 ចេញពីប្រាំមួយត្រូវបានអនុវត្តដោយប្រើមុខងារដាក់បី។ មុខងារ encode byte នឹងហៅមុខងារ encode nibble ពីរដង។ មុខងារ encode nibble ប្រើតារាងរកមើលសម្រាប់និមិត្តសញ្ញាប្រាំមួយឈីប ហើយសរសេរនិមិត្តសញ្ញាទៅ Shift Three out of Six functions។ មុខងារនេះអនុវត្តការចុះឈ្មោះផ្លាស់ប្តូរបន្ទះឈីប XNUMX នៅក្នុងកម្មវិធី។ និមិត្ត​សញ្ញា​ត្រូវ​បាន​សរសេរ​ទៅ​បៃ​ដ៏​សំខាន់​តិច​បំផុត​នៃ​ការ​ចុះឈ្មោះ​ប្តូរ។ ការចុះឈ្មោះត្រូវបានប្តូរទៅខាងឆ្វេងពីរដង។ នេះត្រូវបានធ្វើម្តងទៀតបីដង។ នៅពេលដែលបៃពេញលេញមានវត្តមាននៅក្នុងបៃខាងលើនៃការចុះឈ្មោះការផ្លាស់ប្តូរ វាត្រូវបានដាក់បញ្ច្រាស និងសរសេរទៅ FIFO ។
ដោយសារបៃនៃទិន្នន័យនីមួយៗត្រូវបានអ៊ិនកូដជាបៃដែលបានអ៊ិនកូដមួយនិងកន្លះ នោះវាមានសារៈសំខាន់ណាស់ក្នុងការសម្អាតការផ្លាស់ប្តូរការចុះឈ្មោះជាមុនសិន ដើម្បីឱ្យបៃដែលបានអ៊ិនកូដដំបូងត្រឹមត្រូវ។ ប្រសិនបើប្រវែងកញ្ចប់ព័ត៌មានជាលេខសេស បន្ទាប់ពីអ៊ិនកូដបៃទាំងអស់ វានឹងនៅតែមានលេខមួយដែលនៅសល់ក្នុងការចុះឈ្មោះការផ្លាស់ប្តូរ។ នេះត្រូវបានដោះស្រាយជាមួយនឹង postamble ដូចដែលបានពន្យល់នៅក្នុងផ្នែកបន្ទាប់។
ការឌិកូដបីក្នុងចំណោមប្រាំមួយដែលបានអ៊ិនកូដគឺជានីតិវិធីបញ្ច្រាស។ នៅពេលឌិកូដ បៃដែលបានអ៊ិនកូដបីត្រូវបានឌិកូដទៅជាបៃទិន្នន័យពីរ។ ការចុះឈ្មោះការផ្លាស់ប្តូរកម្មវិធីត្រូវបានប្រើម្តងទៀតដើម្បីប្រមូលផ្តុំបៃនៃទិន្នន័យដែលបានឌិកូដ។ តារាងរកមើលបញ្ច្រាស 64 ត្រូវបានប្រើសម្រាប់ការឌិកូដ។ វាប្រើវដ្តតិចជាង ប៉ុន្តែអង្គចងចាំកូដកាន់តែច្រើន។ ការស្វែងរកតារាងរកមើលធាតុ 16 សម្រាប់និមិត្តសញ្ញាដែលត្រូវគ្នាត្រូវចំណាយពេលយូរជាង។
ប្រៃសណីយ៍
លក្ខណៈបច្ចេកទេសនៃរថយន្តក្រុងឥតខ្សែ M-bus មានតម្រូវការជាក់លាក់សម្រាប់ postamble ឬ trailer ។ សម្រាប់គ្រប់ម៉ូដទាំងអស់ អប្បបរមាគឺពីរបន្ទះ ហើយអតិបរមាគឺប្រាំបីបន្ទះ។ ដោយសារឯកតាអាតូមតិចបំផុតសម្រាប់ FIFO គឺមួយបៃ ឈុតខ្លីៗ 8-chip ត្រូវបានប្រើសម្រាប់ Mode S និង Mode R ។ Mode T postamble គឺប្រាំបីបន្ទះសៀគ្វី ប្រសិនបើប្រវែងកញ្ចប់គឺសូម្បីតែ ឬបួនបន្ទះ ប្រសិនបើប្រវែងកញ្ចប់គឺសេស។ បន្ទះសៀគ្វីបួនបន្ទះសម្រាប់ប្រវែងកញ្ចប់សេស បំពេញតាមតម្រូវការនៃការមានបន្ទះសៀគ្វីឆ្លាស់គ្នាយ៉ាងហោចណាស់ពីរ។
តារាង 7. ប្រវែង Postamble

ប្រវែង Postamble (បន្ទះសៀគ្វី)
នាទី អតិបរមា ការអនុវត្ត លំដាប់បន្ទះឈីប
របៀប S 2 8 8 1010101
របៀប T 2 8 4 (សេស) 101
8 (គូ) 1010101
របៀប R 2 8 8 1010101
កម្មវិធីគ្រប់គ្រងកញ្ចប់

ឧបករណ៍ដោះស្រាយកញ្ចប់ព័ត៌មាននៅលើ Si443x អាចត្រូវបានប្រើនៅក្នុងរបៀបទទឹងកញ្ចប់អថេរ ឬរបៀបទទឹងកញ្ចប់ព័ត៌មានថេរ។ របៀប​ទទឹង​កញ្ចប់​អថេរ​តម្រូវ​ឱ្យ​មាន​បៃ​ប្រវែង​កញ្ចប់​បន្ទាប់​ពី​ពាក្យ​ធ្វើ​សមកាលកម្ម និង​បៃ​បឋមកថា​ស្រេច​ចិត្ត។ នៅពេលទទួល វិទ្យុនឹងប្រើបៃប្រវែងដើម្បីកំណត់ចុងបញ្ចប់នៃកញ្ចប់ព័ត៌មានត្រឹមត្រូវ។ នៅពេលបញ្ជូន វិទ្យុនឹងបញ្ចូលវាលប្រវែងបន្ទាប់ពីបៃបឋមកថា។
វាល L សម្រាប់ពិធីការ M-bus ឥតខ្សែមិនអាចប្រើសម្រាប់វាលប្រវែង Si443x បានទេ។ ទីមួយ វាល L មិនមែនជាប្រវែងកញ្ចប់ព័ត៌មានពិតប្រាកដទេ។ វាគឺជាចំនួននៃបៃនៃការផ្ទុកស្រទាប់តំណដែលមិនរាប់បញ្ចូលបៃបៃ CRC ឬការអ៊ិនកូដ។ ទីពីរ L -field ខ្លួនវាត្រូវបានអ៊ិនកូដដោយប្រើការអ៊ិនកូដ Manchester ឬការអ៊ិនកូដបីចេញពីប្រាំមួយសម្រាប់ Mode T ម៉ែត្រទៅផ្សេងទៀត។
ការអនុវត្តប្រើឧបករណ៍ដោះស្រាយកញ្ចប់ព័ត៌មានក្នុងទម្រង់ទទឹងកញ្ចប់ព័ត៌មានថេរសម្រាប់ទាំងការបញ្ជូន និងការទទួល។ នៅពេលបញ្ជូន ស្រទាប់ PHY នឹងអានវាល L នៅក្នុងសតិបណ្ដោះអាសន្នបញ្ជូន និងគណនាចំនួនបៃដែលបានអ៊ិនកូដ រួមទាំងប្រៃសណីយ៍។ ចំនួនសរុបនៃបៃដែលបានអ៊ិនកូដដែលត្រូវបញ្ជូនគឺត្រូវបានសរសេរទៅចុះឈ្មោះប្រវែងកញ្ចប់ (0x3E)។
នៅពេលទទួល បៃដែលបានអ៊ិនកូដពីរដំបូងត្រូវបានឌិកូដ ហើយវាល L ត្រូវបានសរសេរទៅសតិបណ្ដោះអាសន្នទទួល។ វាល L ត្រូវបានប្រើដើម្បីគណនាចំនួនបៃដែលបានអ៊ិនកូដដែលត្រូវទទួល។ បន្ទាប់មកចំនួននៃបៃដែលបានអ៊ិនកូដដែលត្រូវទទួលត្រូវបានសរសេរទៅចុះឈ្មោះប្រវែងកញ្ចប់ (0x3E)។ ប្រៃសណីយ៍ត្រូវបានបោះចោល។
MCU ត្រូវ​តែ​ឌិកូដ​វាល L គណនា​ចំនួន​បៃ​ដែល​បាន​អ៊ិនកូដ ហើយ​សរសេរ​តម្លៃ​ទៅ​បញ្ជី​ប្រវែង​កញ្ចប់​មុន​ពេល​ទទួល​បាន​ប្រវែង​កញ្ចប់​ខ្លី​បំផុត។ វាល L ខ្លីបំផុតដែលអាចអនុញ្ញាតបានសម្រាប់ស្រទាប់ PHY គឺ 9 ដោយផ្តល់ឱ្យ 12 បៃដែលមិនបានអ៊ិនកូដ។ វាផ្តល់ឱ្យ 18 បៃដែលបានអ៊ិនកូដសម្រាប់គំរូ T ។ ពីរបៃដំបូងត្រូវបានឌិកូដរួចហើយ។ ដូច្នេះ ការចុះឈ្មោះប្រវែងកញ្ចប់ព័ត៌មានត្រូវតែធ្វើបច្ចុប្បន្នភាពជា 16-byte ដងក្នុងល្បឿន 100 kbps ឬ 1.28 មិល្លីវិនាទី។ នេះមិនមែនជាបញ្ហាទេសម្រាប់ 8051 ដែលដំណើរការនៅ 20 MIPS ។
ចំនួនបៃដែលត្រូវទទួលមិនរាប់បញ្ចូលទាំងប្រៃសណីយ៍ទេ លើកលែងតែប្រៃសណីយ៍បន្ទះឈីបបួនដែលប្រើសម្រាប់កញ្ចប់ព័ត៌មាន Mode T ដែលមានប្រវែងកញ្ចប់សេស។ ដូច្នេះ អ្នកទទួលមិនទាមទារសំបុត្រទេ លើកលែងតែកញ្ចប់ប្រវែងសេស Model T Postamble នេះគឺត្រូវការតែដើម្បីផ្តល់ចំនួនគត់នៃបៃដែលបានអ៊ិនកូដប៉ុណ្ណោះ។ ខ្លឹមសារនៃប្រៃសណីយ៍មិនត្រូវបានអើពើ; ដូច្នេះ ប្រសិនបើការប្រៃសណីយ៍មិនត្រូវបានបញ្ជូនទេ សំឡេងរំខានចំនួនបួននឹងត្រូវបានទទួល និងមិនអើពើ។ ដោយសារចំនួនសរុបនៃបៃដែលបានអ៊ិនកូដត្រូវបានកំណត់ត្រឹម 255 (0xFF) ការអនុវត្តកំណត់វាល L អតិបរមាសម្រាប់របៀបផ្សេងៗគ្នា។
តារាង 8. ដែនកំណត់ទំហំកញ្ចប់

បានអ៊ិនកូដ ឌិកូដ M-Bus
បៃ បៃ L-វាល
ធ្នូ ឆកោន ធ្នូ ឆកោន ធ្នូ ឆកោន
របៀប S 255 FF 127 7 អេហ្វ 110 6E
របៀប T (ម៉ែត្រ​ផ្សេងទៀត) 255 FF 169 A9 148 94
របៀប R 255 FF 127 7 អេហ្វ 110 6E

ដែនកំណត់ទាំងនេះជាធម្មតាលើសពីករណីប្រើប្រាស់ធម្មតាសម្រាប់ម៉ែត្រឥតខ្សែ។ ប្រវែងកញ្ចប់ព័ត៌មានគួររក្សាទុកឱ្យតូច ដើម្បីទទួលបានអាយុកាលថ្មល្អបំផុត។
លើសពីនេះ អ្នកប្រើប្រាស់អាចបញ្ជាក់វាលអតិបរិមា L ដែលគួរតែត្រូវបានទទួល (USER_RX_MAX_L_FIELD)។ វាកំណត់ទំហំដែលត្រូវការសម្រាប់សតិបណ្ដោះអាសន្នទទួល (USER_RX_BUFFER_SIZE)។
ការគាំទ្រវាល L-អតិបរិមានៃ 255 នឹងតម្រូវឱ្យមានសតិបណ្ដោះអាសន្នទទួល 290 បៃ និងអតិបរមា 581 បៃដែលបានអ៊ិនកូដ Manchester ។ ឧបករណ៍ដោះស្រាយកញ្ចប់ព័ត៌មាននឹងត្រូវបិទ ហើយការចុះឈ្មោះប្រវែងកញ្ចប់មិនអាចប្រើនៅក្នុងករណីនោះ។ នេះអាចទៅរួច ប៉ុន្តែវាកាន់តែងាយស្រួលប្រើឧបករណ៍ដោះស្រាយកញ្ចប់ ប្រសិនបើអាចធ្វើទៅបាន។

ការប្រើប្រាស់ FIFO

Si4431 ផ្តល់ 64 បៃ FIFO សម្រាប់បញ្ជូន និងទទួល។ ដោយសារចំនួននៃបៃដែលបានអ៊ិនកូដគឺ 255 នោះកញ្ចប់ដែលបានអ៊ិនកូដទាំងមូលប្រហែលជាមិនសមនៅក្នុងសតិបណ្ដោះអាសន្ន 64 បៃទេ។
ការឆ្លង
នៅលើការបញ្ជូន ចំនួនសរុបនៃបៃដែលបានអ៊ិនកូដត្រូវបានគណនា។ ប្រសិនបើចំនួនសរុបនៃបៃដែលបានអ៊ិនកូដ រួមទាំងសំបុត្រប្រៃសណីយ៍មានតិចជាង 64 បៃ នោះកញ្ចប់ព័ត៌មានទាំងមូលត្រូវបានសរសេរទៅ FIFO ហើយមានតែកញ្ចប់ព័ត៌មានដែលបានផ្ញើការរំខានប៉ុណ្ណោះដែលត្រូវបានបើក។ កញ្ចប់ខ្លីៗភាគច្រើននឹងត្រូវបានផ្ញើនៅក្នុងការផ្ទេរ FIFO មួយ។
ប្រសិនបើចំនួនបៃដែលបានអ៊ិនកូដធំជាង 64 ការផ្ទេរ FIFO ច្រើននឹងត្រូវបានទាមទារដើម្បីផ្ញើកញ្ចប់ព័ត៌មាន។ 64 បៃដំបូងត្រូវបានសរសេរទៅ FIFO ។ កញ្ចប់ដែលបានផ្ញើ និង TX FIFO ការរំខានស្ទើរតែទទេត្រូវបានបើកដំណើរការ។ TX FIFO ស្ទើរតែទទេត្រូវបានកំណត់ទៅ 16 បៃ (25%) ។ នៅពេលព្រឹត្តិការណ៍ IRQ នីមួយៗ ការចុះឈ្មោះស្ថានភាព 2 ត្រូវបានអាន។ កញ្ចប់ដែលបានផ្ញើត្រូវបានពិនិត្យជាមុន ហើយប្រសិនបើកញ្ចប់ព័ត៌មានមិនត្រូវបានផ្ញើទាំងស្រុងទេ ទិន្នន័យដែលបានអ៊ិនកូដចំនួន 48 បៃបន្ទាប់ត្រូវបានសរសេរទៅ FIFO ។ វាបន្តរហូតដល់បៃដែលបានអ៊ិនកូដទាំងអស់ត្រូវបានសរសេរ ហើយការរំខានកញ្ចប់ដែលបានផ្ញើកើតឡើង។
២០.៤. ទទួលភ្ញៀវ
នៅលើការទទួលដំបូង មានតែការរំខាន Sync Word ប៉ុណ្ណោះដែលត្រូវបានបើក។ បន្ទាប់ពីទទួលបានពាក្យធ្វើសមកាលកម្ម ការរំខានពាក្យសមកាលកម្មត្រូវបានបិទ ហើយការរំខាន FIFO ស្ទើរតែពេញលេញត្រូវបានបើក។ FIFO ស្ទើរតែពេញកម្រិតដំបូងត្រូវបានកំណត់ទៅ 2 បៃ។ ការរំខាន FIFO ស្ទើរតែពេញលេញត្រូវបានប្រើដើម្បីដឹងថាតើពេលណាបានទទួលបានបៃប្រវែងពីរ។ នៅពេលដែលប្រវែងត្រូវបានទទួល ប្រវែងត្រូវបានឌិកូដ ហើយចំនួនបៃដែលបានអ៊ិនកូដត្រូវបានគណនា។ បន្ទាប់មក RX FIFO ស្ទើរតែពេញកម្រិតត្រូវបានកំណត់ទៅ 48 បៃ។ RX FIFO ស្ទើរតែពេញ ហើយការរំខានកញ្ចប់ព័ត៌មានត្រឹមត្រូវត្រូវបានបើក។ នៅពេលព្រឹត្តិការណ៍ IRQ បន្ទាប់ ការចុះឈ្មោះស្ថានភាព 1 ត្រូវបានអាន។ ដំបូង ប៊ីតកញ្ចប់ព័ត៌មានត្រឹមត្រូវត្រូវបានពិនិត្យ ហើយបន្ទាប់មក FIFO ស្ទើរតែពេញប៊ីតត្រូវបានធីក។ ប្រសិនបើមានតែ RX FIFO ស្ទើរតែពេញលេញត្រូវបានកំណត់ 48 បៃបន្ទាប់ត្រូវបានអានពី FIFO ។ ប្រសិនបើកញ្ចប់ព័ត៌មានត្រឹមត្រូវត្រូវបានកំណត់ កញ្ចប់ព័ត៌មានដែលនៅសល់ត្រូវបានអានពី FIFO ។ MCU តាមដានចំនួនបៃដែលត្រូវបានអាន ហើយឈប់អានបន្ទាប់ពីបៃចុងក្រោយ។

ស្រទាប់តំណទិន្នន័យ

ម៉ូឌុលស្រទាប់តំណទិន្នន័យអនុវត្តស្រទាប់តំណអនុលោមតាម 13757-4: 2005 ។ ស្រទាប់តំណទិន្នន័យ (LINK) ផ្តល់នូវចំណុចប្រទាក់រវាងស្រទាប់រូបវន្ត (PHY) និងស្រទាប់កម្មវិធី (AL)។
Data Link Layer អនុវត្តមុខងារដូចខាងក្រោមៈ

  • ផ្តល់មុខងារដែលផ្ទេរទិន្នន័យរវាង PHY និង AL
  • បង្កើត CRCs សម្រាប់សារចេញ
  • រកឃើញកំហុស CRC នៅក្នុងសារចូល
  • ផ្តល់អាសយដ្ឋានជាក់ស្តែង
  • ទទួលស្គាល់ការផ្ទេរសម្រាប់របៀបទំនាក់ទំនងទ្វេទិស
  • ស៊ុមទិន្នន័យប៊ីត
  • រកឃើញកំហុសក្នុងស៊ុមក្នុងសារចូល
ភ្ជាប់ទម្រង់ស៊ុមស្រទាប់

ទម្រង់ស៊ុម Wireless M-Bus ដែលប្រើក្នុង EN 13757-4:2005 គឺបានមកពីទម្រង់ស៊ុម FT3 (Frame Type 3) ពី IEC60870-5-2។ ស៊ុមមានប្លុកទិន្នន័យមួយ ឬច្រើន។ ប្លុកនីមួយៗរួមបញ្ចូលវាល CRC 16 ប៊ីត។ ប្លុកទីមួយគឺជាប្លុកប្រវែងថេរនៃ 12 បៃ ដែលរួមមាន L-field, C-field, M-field និង A-Field។

  1. L-វាល
    វាល L គឺជាប្រវែងនៃបន្ទុកទិន្នន័យស្រទាប់តំណ។ នេះមិនរាប់បញ្ចូលវាល L-field ខ្លួនវាផ្ទាល់ ឬ CRC បៃណាមួយឡើយ។ វារួមបញ្ចូល L-field, C-field, M-field និង A-Field ។ ទាំងនេះគឺជាផ្នែកនៃ PHY payload ។
    ដោយសារតែចំនួនបៃដែលបានអ៊ិនកូដត្រូវបានកំណត់ត្រឹម 255 បៃ តម្លៃដែលគាំទ្រអតិបរមាសម្រាប់ M-field គឺ 110 បៃសម្រាប់ទិន្នន័យដែលបានអ៊ិនកូដ Manchester និង 148 បៃសម្រាប់ទិន្នន័យដែលបានអ៊ិនកូដ Mode T Three-Out-of-Six ។
    ស្រទាប់តំណភ្ជាប់គឺទទួលខុសត្រូវក្នុងការគណនា L-field នៅលើការបញ្ជូន។ ស្រទាប់តំណនឹងប្រើវាល L នៅលើការទទួល។
    ចំណាំ វាល L មិនបង្ហាញពីប្រវែងផ្ទុក PHY ឬចំនួនបៃដែលបានអ៊ិនកូដទេ។ នៅពេលបញ្ជូន PHY នឹងគណនាប្រវែងបន្ទុក PHY និងចំនួនបៃដែលបានអ៊ិនកូដ។ នៅពេលទទួល PHY នឹងឌិកូដ L-field ហើយគណនាចំនួនបៃដែលត្រូវឌិកូដ។
  2. គ-វាល
    វាល C គឺជាវាលត្រួតពិនិត្យស៊ុម។ វាលនេះកំណត់ប្រភេទស៊ុម និងត្រូវបានប្រើប្រាស់សម្រាប់ការភ្ជាប់សេវាផ្លាស់ប្តូរទិន្នន័យបឋម។ វាល C បង្ហាញប្រភេទស៊ុម – ផ្ញើ បញ្ជាក់ ស្នើសុំ ឬឆ្លើយតប។ ក្នុងករណី SEND និង REQUEST frames វាល C បង្ហាញថាតើការបញ្ជាក់ ឬការឆ្លើយតបត្រូវបានរំពឹងទុក។
    នៅពេលប្រើមុខងារ Link TX មូលដ្ឋាន តម្លៃណាមួយនៃ C អាចត្រូវបានប្រើ។ នៅពេលប្រើ Link Service Primitives វាល C ត្រូវបានបញ្ចូលដោយស្វ័យប្រវត្តិយោងទៅតាម EN 13757-4:2005 ។
  3. M-Field
    វាល M គឺជាលេខកូដរបស់អ្នកផលិត។ ក្រុមហ៊ុនផលិតអាចស្នើសុំលេខកូដបីអក្សរពីខាងក្រោម web អាសយដ្ឋាន៖ http://www.dlms.com/flag/INDEX.HTM តួអក្សរនីមួយៗនៃកូដបីអក្សរត្រូវបានអ៊ិនកូដជាប្រាំប៊ីត។ លេខកូដ 5 ប៊ីតអាចទទួលបានដោយយកលេខកូដ ASCII ហើយដក 0x40 ("A")។ លេខកូដ 5 ប៊ីតចំនួនបីត្រូវបានភ្ជាប់គ្នាដើម្បីបង្កើត 15 ប៊ីត។ ប៊ីតដ៏សំខាន់បំផុតគឺសូន្យ។
  4. A-វាល
    វាលអាសយដ្ឋានគឺជាអាសយដ្ឋាន 6 បៃតែមួយគត់សម្រាប់ឧបករណ៍នីមួយៗ។ អាសយដ្ឋានតែមួយគត់គួរតែត្រូវបានកំណត់ដោយក្រុមហ៊ុនផលិត។ វាជាទំនួលខុសត្រូវរបស់អ្នកផលិតនីមួយៗដើម្បីធានាថាឧបករណ៍នីមួយៗមានអាសយដ្ឋាន 6 បៃតែមួយគត់។ អាសយដ្ឋានសម្រាប់ស៊ុមផ្ញើ និងស្នើសុំគឺជាអាសយដ្ឋានដោយខ្លួនឯងរបស់ម៉ែត្រ ឬឧបករណ៍ផ្សេងទៀត។ ស៊ុមទិន្នន័យបញ្ជាក់ និងឆ្លើយតបត្រូវបានផ្ញើដោយប្រើអាសយដ្ឋាននៃឧបករណ៍ដើម។
  5. CI-Field
    CI-field គឺជាបឋមកថាកម្មវិធី និងជាក់លាក់អំពីប្រភេទទិន្នន័យនៅក្នុងបន្ទុកទិន្នន័យកម្មវិធី។ ខណៈពេលដែល EN13757-4:2005 បញ្ជាក់ចំនួនកំណត់នៃតម្លៃ សេវាកម្ម Link Primitives នឹងអនុញ្ញាតឱ្យប្រើតម្លៃណាមួយ។
  6. កាកបាទក្រហមកម្ពុជា
    CRC ត្រូវបានបញ្ជាក់នៅក្នុង EN13757-4: 2005 ។
    ពហុធា CRC គឺ៖
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    ចំណាំថា M-Bus CRC ត្រូវបានគណនាលើប្លុក 16 បៃនីមួយៗ។ លទ្ធផលគឺថារាល់ 16 បៃនៃទិន្នន័យតម្រូវឱ្យ 18 បៃត្រូវបានបញ្ជូន។
ព័ត៌មានបន្ថែម

សម្រាប់ព័ត៌មានបន្ថែមអំពីការអនុវត្តស្រទាប់តំណ សូមមើល “AN452: Wireless M-Bus Stack Programmers Guide”។

ការគ្រប់គ្រងថាមពល

រូបភាពទី 2 បង្ហាញពីពេលវេលាគ្រប់គ្រងថាមពលសម្រាប់ម៉ែត្រឧampដោយប្រើរបៀប T1 ។

MCU គួរតែស្ថិតនៅក្នុងទម្រង់ Sleep នៅពេលណាដែលអាចធ្វើទៅបាន ដើម្បីសន្សំថាមពល។ នៅក្នុងនេះ អតីតampដូច្នេះ MCU កំពុងដេកនៅពេលដែល RTC កំពុងដំណើរការ នៅពេលរង់ចាំការចាប់ផ្ដើមគ្រីស្តាល់វិទ្យុ និងនៅពេលបញ្ជូនពី FIFO ។ MCU នឹងភ្ញាក់ពីសញ្ញា EZRadioPRO IRQ ដែលភ្ជាប់ទៅ Port Match wake-up។
នៅពេលបញ្ជូនសារយូរជាងមួយប្លុក MCU ត្រូវតែក្រោកឡើងដើម្បីបំពេញ FIFO (ផ្អែកលើ FIFO ស្ទើរតែគ្មានការរំខាន) ហើយបន្ទាប់មកត្រឡប់ទៅគេងវិញ។
MCU គួរតែស្ថិតនៅក្នុងរបៀបទំនេរដែលដំណើរការពីលំយោលថាមពលទាប ឬលំយោលរបៀបផ្ទុះនៅពេលអានពី ADC ។ ADC ទាមទារនាឡិកា SAR ។
នៅពេលមិនប្រើ EZRadioPRO គួរតែស្ថិតនៅក្នុងរបៀបបិទជាមួយនឹងម្ជុល SDN ដែលជំរុញឱ្យខ្ពស់។ នេះតម្រូវឱ្យមានការតភ្ជាប់ខ្សែរឹងទៅ MCU ។ ការចុះឈ្មោះ EZ Radio Pro មិនត្រូវបានរក្សាទុកក្នុងរបៀបបិទទេ។ ដូច្នេះ EZRadioPro ត្រូវបានចាប់ផ្តើមនៅលើចន្លោះ RTC នីមួយៗ។ ការចាប់ផ្តើមវិទ្យុត្រូវការតិចជាង 100 µs និងរក្សាទុក 400 nA ។ នេះបណ្តាលឱ្យមានការសន្សំថាមពល 10 µJ ដោយផ្អែកលើចន្លោះពេល 10 វិនាទី។
គ្រីស្តាល់ EZRadioPRO ចំណាយពេលប្រហែល 16 ms សម្រាប់ POR ។ នេះគឺវែងល្មមដើម្បីគណនា CRC ប្រហែលប្រាំបីប្លុក។ MCU នឹងត្រលប់ទៅដំណេកវិញ ប្រសិនបើវាបញ្ចប់ CRCs ទាំងអស់ មុនពេលគ្រីស្តាល់មានស្ថេរភាព។ ប្រសិនបើការអ៊ិនគ្រីបត្រូវបានទាមទារ វាក៏អាចត្រូវបានចាប់ផ្តើមផងដែរ ខណៈពេលដែលកំពុងរង់ចាំគ្រីស្តាល់ oscillator ។
MCU គួរតែដំណើរការនៅ 20 MHz ដោយប្រើលំយោលថាមពលទាបសម្រាប់កិច្ចការភាគច្រើន។ កិច្ចការដែលទាមទារការអស់ពេលច្បាស់លាស់ត្រូវតែប្រើលំយោលជាក់លាក់ និងរបៀបទំនេរជំនួសឱ្យរបៀបគេង។ RTC ផ្តល់នូវដំណោះស្រាយគ្រប់គ្រាន់សម្រាប់កិច្ចការភាគច្រើន។ ពេលវេលាគ្រប់គ្រងថាមពលសម្រាប់ T2 ម៉ែត្រ ឧample កម្មវិធីត្រូវបានបង្ហាញក្នុងរូបភាពទី 3 ។

ការអនុវត្តឧបករណ៍បញ្ជូនគួរតែត្រូវបានធ្វើឱ្យប្រសើរសម្រាប់ករណីធម្មតានៅពេលដែលម៉ែត្រភ្ញាក់ឡើងហើយមិនមានអ្នកអានមានវត្តមាន។ ការអស់ពេល ACK អប្បបរមា/អតិបរិមាគឺវែងគ្រប់គ្រាន់ ដើម្បីឱ្យវាអាចប្រើ C8051F930 RTC ហើយដាក់ MCU ទៅក្នុងរបៀបគេង។
ជម្រើសបង្កើតត្រូវបានផ្តល់ជូនសម្រាប់អ្នកអានដែលប្រើថាមពលមេ ឬ USB ដែលមិនចាំបាច់ប្រើមុខងារគេង។ របៀបទំនេរនឹងត្រូវបានប្រើជំនួសឱ្យការគេង ដូច្នេះ USB និង UART អាចរំខាន MCU ។

ការអនុវត្តកម្មវិធី SILICON LABS Wireless M-BUS AN451-1

ស្ទូឌីយោភាពសាមញ្ញ
ការចូលដំណើរការដោយចុចមួយដងទៅកាន់ MCU និងឧបករណ៍ឥតខ្សែ ឯកសារ សូហ្វវែរ បណ្ណាល័យកូដប្រភព និងច្រើនទៀត។ មានសម្រាប់ Windows,
Mac និង Linux!

ផលប័ត្រ IoT គុណភាព
ផលប័ត្រ IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
គុណភាព
www.silabs.com/quality
ការគាំទ្រ និងសហគមន៍
community.silabs.com

ការបដិសេធ
Silicon Labs មានបំណងផ្តល់ជូនអតិថិជននូវឯកសារចុងក្រោយបំផុត ត្រឹមត្រូវ និងស៊ីជម្រៅនៃគ្រឿងកុំព្យូទ័រ និងម៉ូឌុលទាំងអស់ដែលមានសម្រាប់អ្នកអនុវត្តប្រព័ន្ធ និងកម្មវិធីដែលប្រើប្រាស់ ឬមានបំណងប្រើប្រាស់ផលិតផល Silicon Labs ។ ទិន្នន័យលក្ខណៈ ម៉ូឌុល និងគ្រឿងកុំព្យូទ័រដែលអាចប្រើបាន ទំហំអង្គចងចាំ និងអាសយដ្ឋានអង្គចងចាំ សំដៅលើឧបករណ៍ជាក់លាក់នីមួយៗ ហើយប៉ារ៉ាម៉ែត្រ "ធម្មតា" ដែលបានផ្តល់អាច និងធ្វើខុសគ្នានៅក្នុងកម្មវិធីផ្សេងៗ។ កម្មវិធី ឧamples ដែលបានពិពណ៌នានៅទីនេះគឺសម្រាប់គោលបំណងបង្ហាញតែប៉ុណ្ណោះ។ Silicon Labs រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរដោយគ្មានការជូនដំណឹងបន្ថែម និងការកំណត់ចំពោះព័ត៌មានផលិតផល លក្ខណៈបច្ចេកទេស និងការពិពណ៌នានៅទីនេះ និងមិនផ្តល់ការធានាចំពោះភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មានដែលបានរួមបញ្ចូលនោះទេ។ Silicon Labs នឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មានដែលបានផ្តល់ឱ្យនៅទីនេះទេ។ ឯកសារនេះមិនបង្កប់ន័យ ឬបង្ហាញពីអាជ្ញាប័ណ្ណរក្សាសិទ្ធិដែលត្រូវបានផ្តល់ឱ្យក្រោមនេះ ដើម្បីរចនា ឬប្រឌិតសៀគ្វីរួមបញ្ចូលគ្នាណាមួយឡើយ។ ផលិតផលមិនត្រូវបានរចនា ឬអនុញ្ញាតឱ្យប្រើប្រាស់ក្នុងប្រព័ន្ធទ្រទ្រង់ជីវិតណាមួយឡើយ ដោយគ្មានការយល់ព្រមជាលាយលក្ខណ៍អក្សរជាក់លាក់ពី Silicon Labs។ “ប្រព័ន្ធទ្រទ្រង់ជីវិត” គឺជាផលិតផល ឬប្រព័ន្ធណាមួយដែលមានបំណងគាំទ្រ ឬទ្រទ្រង់ជីវិត និង/ឬសុខភាព ដែលប្រសិនបើវាបរាជ័យ វាអាចត្រូវបានគេរំពឹងថានឹងបណ្តាលឱ្យមានរបួស ឬស្លាប់យ៉ាងធ្ងន់ធ្ងរ។ ផលិតផល Silicon Labs មិនត្រូវបានរចនាឡើង ឬអនុញ្ញាតសម្រាប់កម្មវិធីយោធាទេ។ ផលិតផល Silicon Labs មិនត្រូវស្ថិតក្រោមកាលៈទេសៈណាក៏ដោយ ដែលត្រូវបានប្រើប្រាស់ក្នុងអាវុធប្រល័យលោក រួមទាំង (ប៉ុន្តែមិនកំណត់ចំពោះ) អាវុធនុយក្លេអ៊ែរ អាវុធជីវសាស្ត្រ ឬគីមី ឬមីស៊ីលដែលមានសមត្ថភាពបញ្ជូនអាវុធបែបនេះឡើយ។
ព័ត៌មានពាណិជ្ជសញ្ញា
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, និងស្លាកសញ្ញា Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, និមិត្តសញ្ញា Energy Micro និងបន្សំរបស់វា, “ឧបករណ៍បញ្ជាមីក្រូដែលងាយស្រួលប្រើបំផុតរបស់ពិភពលោក”, Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® និងផ្សេងទៀតគឺជាពាណិជ្ជសញ្ញា ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ Silicon Labs។ ARM, CORTEX, Cortex-M3 និងមេដៃគឺជាពាណិជ្ជសញ្ញា ឬពាណិជ្ជសញ្ញាដែលបានចុះបញ្ជីរបស់ ARM Holdings ។ Keil គឺជាពាណិជ្ជសញ្ញាចុះបញ្ជីរបស់ ARM Limited ។ ផលិតផល ឬម៉ាកយីហោផ្សេងទៀតទាំងអស់ដែលបានលើកឡើងនៅទីនេះ គឺជាពាណិជ្ជសញ្ញារបស់អ្នកកាន់រៀងៗខ្លួន។ស្លាកសញ្ញា SILICON LABS

Silicon Laboratories Inc.
400 West Cesar Chavez
Austin, TX 78701
សហរដ្ឋអាមេរិក
http://www.silabs.com

ឯកសារ/ធនធាន

ការអនុវត្តកម្មវិធី SILICON LABS ឥតខ្សែ M-BUS AN451 [pdf] ការណែនាំអ្នកប្រើប្រាស់
SILICON LABS, C8051, MCU, និង, EZRadioPRO, Wireless M-bus, Wireless, M-BUS, កម្មវិធី, ការអនុវត្ត, AN451

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *