TN1348 SPC58x កំណត់រចនាសម្ព័ន្ធ CAN និង CAN-FD តម្រង
សេចក្តីផ្តើម
កំណត់សម្គាល់បច្ចេកទេសនេះពិពណ៌នាអំពីរបៀបកំណត់រចនាសម្ព័ន្ធតម្រងទទួលយកសម្រាប់ឧបករណ៍បញ្ជា CAN ដែលបានបង្កប់នៅក្នុង SPC58x automotive microcontrollers ។ ឯកសារពិពណ៌នាអំពីការកំណត់រចនាសម្ព័ន្ធការចុះឈ្មោះ និងផ្តល់នូវអតីតមួយចំនួនampដើម្បីបង្កើនល្បឿនការកំណត់រចនាសម្ព័ន្ធតម្រង។ ការកំណត់រចនាសម្ព័ន្ធទាំងនេះអាចត្រូវបានអនុម័តសម្រាប់ microcontrollers ទាំងអស់នៅក្នុងគ្រួសារនេះជាមួយនឹងការប្រែប្រួលតិចតួច។ អតីតamples ក្នុងឯកសារនេះគឺផ្អែកលើ SPC584Cx/SPC58ECx 32-bit MCU ។
អាចលើសview
SPC584Cx/SPC58ECx មានករណី CAN ចំនួនប្រាំបីដែលបានបង្កប់នៅក្នុងប្រព័ន្ធរងពីរផ្សេងគ្នា ដូចដែលបានចងក្រងនៅក្នុងសៀវភៅណែនាំឧបករណ៍យោង ផ្នែកឧបសម្ព័ន្ធ A ឯកសារយោង។
ឧបករណ៍បញ្ជា CAN ទាំងអស់នៅក្នុងប្រព័ន្ធរងតែមួយនឹងចែករំលែកធនធានដូចជា អង្គចងចាំ RAM នាឡិកា។ល។ ប្រព័ន្ធរង CAN នីមួយៗត្រូវបានសន្មតដោយប្លុកសំខាន់ៗដូចខាងក្រោមៈ
- Modular CAN cores៖ ការចុះឈ្មោះនៃម៉ូឌុល CAN អាចចូលប្រើបានដោយប្រើ Generic Slave Interface (GSI)។ ម៉ូឌុល GSI គ្រឿងកុំព្យូទ័រដើរតួនាទីជាការស្នើសុំពីមេនីមួយៗ។
- CAN-RAM arbiter៖ វាគឺជាតក្កវិជ្ជាបន្ថែមសម្រាប់អាជ្ញាកណ្តាលក្នុងចំណោមសំណើសម្រាប់ការចូលប្រើ RAM ដោយឧបករណ៍បញ្ជា CAN ផ្សេងៗ។
- SRAM៖ ប្រព័ន្ធរង CAN នឹងធ្វើអន្តរកម្មជាមួយ RAM ខាងក្រៅដោយប្រើចំណុចប្រទាក់នេះ វាគឺជា SRAM ។
- ឧបករណ៍បញ្ជា ECC៖ វាមានតក្កវិជ្ជាសម្រាប់គណនា និងធ្វើឱ្យកូដកែតម្រូវនៅលើអង្គចងចាំ SRAM ត្រឹមត្រូវ។
សម្រាប់ចំណុចប្រទាក់ SRAM និងអង្គចងចាំ សូមមើលសៀវភៅណែនាំឧបករណ៍យោង ផ្នែកឧបសម្ព័ន្ធ A ឯកសារយោង។
ការណែនាំអំពីតម្រង
CAN filter logic អនុញ្ញាតឱ្យអ្នកកំណត់រចនាសម្ព័ន្ធតម្រងតាមវិធីផ្សេងៗ។ សម្រាប់អតីតampដូច្នេះ សារដែលឆ្លងកាត់ការត្រងទទួលយកអាចត្រូវបានរក្សាទុកក្នុង Rx FIFO (0 ឬ 1) ឬនៅក្នុង rx buffers ដែលឧទ្ទិស។ តម្រងនីមួយៗអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធជាតម្រងទទួលយក ឬបដិសេធ ហើយក៏អាចបើក ឬបិទផងដែរ។ សម្រាប់តម្រងទទួលយក បញ្ជីតម្រងនីមួយៗត្រូវបានអនុវត្តពីធាតុ #0 ទៅធាតុដែលត្រូវគ្នាដំបូងក្នុងបញ្ជីតម្រង។ មុនពេលប្រើតម្រង វាចាំបាច់ដើម្បីកំណត់រចនាសម្ព័ន្ធអាសយដ្ឋានចាប់ផ្តើម និងលេខនៃតម្រង ដើម្បីបម្រុងទុកផ្នែកនៃ RAM សារ។ រូបខាងក្រោមបង្ហាញ ក view នៃផែនទីអង្គចងចាំដែលបានចែករំលែក និងការចុះឈ្មោះ (ដូច្នេះអាសយដ្ឋានចាប់ផ្តើមសម្រាប់ផ្នែកនីមួយៗ)។
រូបភាពទី 1. Message កំណត់រចនាសម្ព័ន្ធ RAM ឧample
ការចាប់ផ្តើម RAM សារ
មុនពេលប្រើតម្រងណាមួយ វាជាកាតព្វកិច្ចក្នុងការកំណត់រចនាសម្ព័ន្ធ RAM ដែលពាក់ព័ន្ធនៃសារដែលពួកវានឹងត្រូវបានរក្សាទុក។ ដើម្បីធ្វើដូច្នេះ កម្មវិធីសូហ្វវែរត្រូវតែសរសេរអុហ្វសិត (ជាពាក្យ) ពីសារអាសយដ្ឋានមូលដ្ឋាន RAM នៃផ្ទៃតម្រងនីមួយៗ។ ចំនួនតម្រងសម្រាប់តំបន់នីមួយៗត្រូវតែកំណត់រចនាសម្ព័ន្ធ ដូច្នេះឧបករណ៍បញ្ជាអាចយល់ពីកន្លែងដែលតំបន់ចងចាំតម្រងដែលទាក់ទងគ្នានឹងបញ្ចប់ក្នុងឯកសារនេះដូចជាឧ.ampតម្រងចំនួនបួននឹងត្រូវបានកំណត់រចនាសម្ព័ន្ធសម្រាប់ឧបករណ៍កំណត់ស្តង់ដារ (11 ប៊ីត) និងតម្រងចំនួន 29 សម្រាប់ការកំណត់អត្តសញ្ញាណបន្ថែម (11 ប៊ីត) ដូច្នេះ សូមរក្សាទុកផ្នែកនៃ RAM សារដើម្បីរក្សាទុកតម្រង 29 ប៊ីត និងមួយទៀតសម្រាប់តម្រង XNUMX ប៊ីត។ ដើម្បីកំណត់រចនាសម្ព័ន្ធអាសយដ្ឋានចាប់ផ្តើមនៃតំបន់តម្រងលេខសម្គាល់ស្តង់ដារ កម្មវិធីត្រូវតែសរសេរវាល FLSSA នៃការចុះឈ្មោះ SIDFC (ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធតម្រងលេខសម្គាល់ស្តង់ដារ) ។ សម្រាប់តម្រង ID បន្ថែម វាចាំបាច់ក្នុងការសរសេរវាល FLESA នៃការចុះឈ្មោះ XIDFC (ការចុះឈ្មោះកំណត់រចនាសម្ព័ន្ធតម្រងលេខសម្គាល់បន្ថែម) ។ វាល FLSSA និង FLESA គួរតែមានអង្គចងចាំអុហ្វសិត "ជាពាក្យ" ពីអាសយដ្ឋានមូលដ្ឋាន RAM នៃសារ។ កម្មវិធីនេះកំណត់រចនាសម្ព័ន្ធតម្រងស្តង់ដារចំនួនបួននៅអុហ្វសិតសូន្យ និងតម្រងបន្ថែមចំនួនបួន
សម្រាប់ការកំណត់រចនាសម្ព័ន្ធតម្រងស្តង់ដារ៖
- FLSSA = 0x0៖ អុហ្វសិតគោរពទៅនឹងអាសយដ្ឋានមូលដ្ឋាន RAM គឺសូន្យ ដូច្នេះផ្ទៃចាប់ផ្តើមនៅខាងដើមនៃសារ RAM ។
- LSS = 4: នេះគឺជាចំនួនតម្រងដែលត្រូវកំណត់រចនាសម្ព័ន្ធ។ តម្រងនីមួយៗត្រូវបានផ្សំឡើងដោយពាក្យ `មួយ` 32 ប៊ីត។
នៅក្នុងការកំណត់រចនាសម្ព័ន្ធនេះ ផ្នែកនៃអង្គចងចាំចាប់ផ្តើមពីអុហ្វសិតសូន្យ និងមានទំហំបួនពាក្យ។
ចំណាំ៖ ឧបករណ៍បញ្ជា CAN មិនមានយន្តការគ្រប់គ្រងសម្រាប់កំណត់រចនាសម្ព័ន្ធ RAM សារទេ នេះមានន័យថាអ្នកអភិវឌ្ឍន៍ត្រូវតែប្រុងប្រយ័ត្នកុំឱ្យត្រួតលើគ្នាលើតំបន់ RAM ដែលបានកំណត់រចនាសម្ព័ន្ធ។ តួលេខខាងក្រោមបង្ហាញពីរបៀបកំណត់រចនាសម្ព័ន្ធផ្នែកនៃអង្គចងចាំដើម្បីរក្សាទុកតម្រងអត្តសញ្ញាណបន្ថែម។
ដើម្បីកំណត់រចនាសម្ព័ន្ធទំហំ RAM ដើម្បីរក្សាទុកតម្រងបន្ថែម វាចាំបាច់ក្នុងការសរសេរកម្មវិធីតម្លៃខាងក្រោមនៅក្នុងវាល FLESA និង LSE ។
- FLESA = 0x04៖ អុហ្វសិតក្នុងពាក្យដែលទាក់ទងនឹងសារអាសយដ្ឋានមូលដ្ឋាន RAM ។ នេះដោយសារតែនៅក្នុងតំបន់តម្រងដែលបានកំណត់រចនាសម្ព័ន្ធពីមុនវាត្រូវបានបម្រុងទុក 0x04 ពាក្យសម្រាប់តម្រងលេខសម្គាល់ស្តង់ដារ ហើយបន្ទាប់មកអុហ្វសិតដែលអាចប្រើបានអប្បបរមាគឺ 0x04 ។
- LSE = 4: នេះគឺជាចំនួនតម្រងដែលត្រូវកំណត់រចនាសម្ព័ន្ធ។ សម្រាប់លេខសម្គាល់ដែលបានបន្ថែម តម្រងត្រូវបានផ្សំដោយពាក្យ `ពីរ` 32 ប៊ីត។
នៅក្នុងការកំណត់រចនាសម្ព័ន្ធនេះ ផ្នែកនៃអង្គចងចាំចាប់ផ្តើមពីអុហ្វសិត 0x04 (ពាក្យ) ដែលមានទំហំប្រាំបីពាក្យ (តម្រងពីរពាក្យបួន) ។ ដូច្នេះ អុហ្វសិតអប្បបរមាសម្រាប់ផ្ទៃអង្គចងចាំដែលអាចកំណត់រចនាសម្ព័ន្ធបន្ទាប់គឺ 0x0C ពាក្យ។ ផ្នែកទាំងអស់នៃ RAM សារត្រូវតែត្រូវបានកំណត់រចនាសម្ព័ន្ធដោយពិចារណាលើចំនួននិងទំហំនៃធាតុដែលនឹងត្រូវបានរក្សាទុកនៅក្នុងផ្នែកដោយមិនត្រួតលើផ្នែកណាមួយឡើយ។
ចំណាំ៖ ដើម្បីបំប្លែងពាក្យអុហ្វសិតទៅជាបៃអុហ្វសិត វាត្រូវការដើម្បីគុណតម្លៃពាក្យដោយបួន។
Example នៃតម្រងលេខសម្គាល់ស្តង់ដារ
បន្ទាប់ពីកំណត់រចនាសម្ព័ន្ធសារ RAM អ្នកអាចកំណត់រចនាសម្ព័ន្ធតម្រងឧបករណ៍។
ធាតុតម្រងនីមួយៗអាចត្រូវបានកំណត់រចនាសម្ព័ន្ធដូចជា៖
- តម្រងជួរ
- តម្រងលេខសម្គាល់ទ្វេ
- តម្រងបុរាណ
- តម្រងសម្រាប់ rx buffer ជាក់លាក់ (តម្រង ID តែមួយ)
តួលេខខាងក្រោមបង្ហាញពីរបៀបកំណត់រចនាសម្ព័ន្ធតម្រងបួនប្រភេទផ្សេងគ្នាសម្រាប់ការកំណត់អត្តសញ្ញាណស្តង់ដារ (ឧបករណ៍កំណត់អត្តសញ្ញាណ 11 ប៊ីត)។ ប្រើការចុះឈ្មោះធាតុតម្រងខាងក្រោមសម្រាប់លេខសម្គាល់ស្តង់ដារ។
តម្រងជួរសម្រាប់ RX FIFO0
ខាងក្រោមអតីតample នៃការត្រងដើម្បីរក្សាទុកសារជាមួយនឹងការកំណត់អត្តសញ្ញាណក្នុងជួរ [0x16, 0xF6] ទៅក្នុងការទទួល FIFO 0 ។
តម្លៃចុះឈ្មោះ (HEX): 0x081600F6
តម្លៃចុះឈ្មោះ (BIN)៖ 00 001 00000010110 (00000) 00011110110
ចំណាំ៖ នៅក្នុង ex ទាំងអស់។amples ដែលបានផ្តល់ក្នុងឯកសារនេះ ប៊ីតតង្កៀបត្រូវបានរក្សាទុកនៅតម្លៃលំនាំដើម។ តម្លៃវាល៖
- SFT -> `00` -> ជួរតម្រងពី SFID1 ដល់ SFID2
- SFEC -> `001` -> រក្សាទុកក្នុង Rx FIFO 0 ប្រសិនបើតម្រងត្រូវគ្នា។
- SFID1 -> `00000010110` -> លេខសម្គាល់ទីមួយនៃជួរធាតុតម្រងលេខសម្គាល់ស្តង់ដារ (0x16)
- SFID2 -> `00011110110` -> លេខសម្គាល់ទីពីរនៃជួរធាតុតម្រងលេខសម្គាល់ស្តង់ដារ (0xF6)
តម្រងទ្វេសម្រាប់ RX FIFO1
ខាងក្រោមនេះគឺជាអតីតample នៃតម្រង ID ទ្វេដើម្បីរក្សាទុកសារកំណត់អត្តសញ្ញាណ 0 x 0A ឬ 0 x FF ទៅក្នុង FIFO 1 ។
តម្លៃចុះឈ្មោះ (HEX)៖ 0x500A00FF
តម្លៃចុះឈ្មោះ (BIN)៖ 01 010 00000001010 (00000) 00011111111
តម្លៃវាល៖
- SFT -> `01` -> តម្រង ID ពីរសម្រាប់ SFID1 ឬ SFID2
- SFEC -> `010` -> រក្សាទុកក្នុង Rx FIFO 1 ប្រសិនបើតម្រងត្រូវគ្នា។
- SFID1 -> `00000001010` -> លេខសម្គាល់ទីមួយនៃធាតុតម្រងលេខសម្គាល់ពីរស្តង់ដារ
- SFID2 -> `00011111111` -> លេខសម្គាល់ទីពីរនៃធាតុតម្រង ID ពីរស្តង់ដារ
ការត្រងសតិបណ្ដោះអាសន្នពិសេស Rx
ខាងក្រោមនេះគឺជាអតីតample ដើម្បីរក្សាទុកសារជាមួយនឹងការកំណត់អត្តសញ្ញាណ 0 x 7F0 ទៅក្នុងសតិបណ្ដោះអាសន្ន rx ពិសេស #0 ។
ដោយប្រើសតិបណ្ដោះអាសន្នជាក់លាក់ វាអាចត្រងបានតែលេខសម្គាល់សារមួយប៉ុណ្ណោះ ហើយនោះជាលេខដែលសរសេរក្នុងវាល SFID1។
តម្លៃចុះឈ្មោះ (HEX)៖ 0x3FF00000
តម្លៃចុះឈ្មោះ (BIN)៖ 00 111 11111110000 (00000) 00 (000) 000000
- SFT -> `00` -> តម្លៃនេះមិនសំខាន់ទេ ពីព្រោះការត្រងដើម្បីរក្សាទុកទៅក្នុង RX BUFFER ជាក់លាក់ ហើយក្នុងករណីនេះតម្លៃ SFT មិនត្រូវបានអើពើ (សូមមើលករណីពិពណ៌នាវាល SFEC `111`)
- SFEC -> `111` -> រក្សាទុកទៅក្នុងសតិបណ្ដោះអាសន្ន rx ជាក់លាក់ ប្រសិនបើតម្រងត្រូវគ្នា។
- SFID1 -> `11111110000` -> លេខសម្គាល់ស្តង់ដារដែលតម្រងនឹងទទួលយក (0x7F0)
- SFID2[10, 9] -> `00` -> វាលនេះសម្រេចថាតើសារដែលបានទទួលត្រូវបានរក្សាទុកក្នុងសតិបណ្ដោះអាសន្ន rx ឬចាត់ទុកជាសារ A, B, ឬ C នៃលំដាប់សារបំបាត់កំហុស។ ក្នុងករណីនេះ កម្មវិធីកម្មវិធីចង់រក្សាទុកសារក្នុង rx buffer។
- SFID2[0,5] -> `000000` → លិបិក្រមនៃ rx សតិបណ្ដោះអាសន្ន ដែលសារដែលត្រូវគ្នានឹងត្រូវបានរក្សាទុក (ប្រសិនបើ N ឧទ្ទិសដល់សតិបណ្ដោះអាសន្ន rx ត្រូវបានកំណត់រចនាសម្ព័ន្ធ សន្ទស្សន៍នេះអាចស្ថិតនៅក្នុងជួរ [0, N -1]) ក្នុងករណីនេះ សារត្រូវបានរក្សាទុកក្នុងសតិបណ្ដោះអាសន្ន #0។
តម្រងបុរាណសម្រាប់ RX FIFO0
អតីតample បង្ហាញពីរបៀបរក្សាទុកសារជាមួយឧបករណ៍កំណត់អត្តសញ្ញាណក្នុងជួរ [0x688, 0x68F] ក្នុង RX FIFO 0។ សម្រាប់តម្រងបុរាណ គូ Identifier / Mask ត្រូវតែកំណត់។ ការកំណត់អត្តសញ្ញាណត្រូវតែសរសេរនៅក្នុង SFID1 និងរបាំងនៅក្នុងវាល SFID2 នៃធាតុតម្រង។ នៅក្នុងតម្រងបុរាណ សារ IDs ដែលឆ្លងកាត់តម្រងត្រូវបានទទួលដោយអនុវត្តរបាំងមុខទៅឧបករណ៍សម្គាល់ដូចខាងក្រោម៖
- នេះគឺជាអត្ថន័យនៃប៊ីតតម្រង -> 1 = ត្រូវតែផ្គូផ្គង (0 = មិនខ្វល់);
- មានតម្រងដែលមានរបាំងដែលបង្កើតឡើងដោយ "1s" ទាំងអស់ មានតែអ្នកកំណត់អត្តសញ្ញាណមួយប៉ុណ្ណោះដែលនឹងឆ្លងទៅតម្រង (ដែលត្រូវបានសរសេរនៅក្នុងវាល SFID1) ខណៈពេលដែលតម្រងដែលមានរបាំងដែលបង្កើតឡើងដោយ "0" ទាំងអស់នឹងឆ្លងកាត់ តម្រង។
ជាក់ស្តែង ទាំងនេះគឺជាតម្រងដ៏សាមញ្ញបំផុត។ ខាងក្រោមនេះគឺជាការពន្យល់អំពីរបៀបរៀបចំតម្រងជួរសម្រាប់លេខសម្គាល់ស្តង់ដារក្នុងជួរ [0x688, 0x68F] ដែលរក្សាទុកសារដែលបានទទួលក្នុង RX FIFO 0។ នេះគឺជាតម្រងសារស្តង់ដារ ដូច្នេះយើងនឹងផ្តល់តម្លៃទៅ SFID1 = ឧបករណ៍កំណត់អត្តសញ្ញាណ និង SFID2 = របាំង។
តម្លៃចុះឈ្មោះ (HEX): 0x8E8B07F8
តម្លៃចុះឈ្មោះ (BIN)៖ 10 001 11010001011 00000 11111111000
- SFT -> `10` -> តម្រងបុរាណ៖ SFID1 = តម្រង, SFID2 = របាំង
- SFEC -> `001` -> រក្សាទុកក្នុង Rx FIFO 0 ប្រសិនបើតម្រងត្រូវគ្នា។
- SFID1 = 110 1000 1011 (លេខសម្គាល់ 0x68B)
- SFID2 = 111 1111 1000 (Mask0x7F8)
ការអនុវត្តរបាំងទៅនឹងឧបករណ៍កំណត់អត្តសញ្ញាណ (បន្តិច) ជាមួយនឹងអត្ថន័យនៃប៊ីតរបាំង (1 = ត្រូវតែផ្គូផ្គង 0 = មិនខ្វល់) យើងរកឃើញតម្រងជួរខាងក្រោមដែលនិមិត្តសញ្ញា `X` តំណាងឱ្យសូន្យ ឬមួយ។
តម្រង = 110 1000 1XXX
បន្ទាប់មក សារស្តង់ដារទាំងអស់នៅក្នុងជួរ [0x688, 0x68F] នឹងឆ្លងកាត់តម្រង។
ការកំណត់រចនាសម្ព័ន្ធតម្រងលេខសម្គាល់បន្ថែម
ប្រភេទតម្រងដូចគ្នាអាចត្រូវបានអនុវត្តផងដែរសម្រាប់ការកំណត់អត្តសញ្ញាណបន្ថែម (ឧបករណ៍កំណត់អត្តសញ្ញាណ 29 ប៊ីត) ។
ជួរពង្រីកតម្រងសម្រាប់ RX FIFO0
នៅក្នុងនេះ អតីតampដូច្នេះ តម្រងនេះនឹងរក្សាទុកសារជាមួយឧបករណ៍កំណត់អត្តសញ្ញាណក្នុងជួរ [0xFFFFF, 0x1FFFFFF] ក្នុង FIFO 0។
ខាងក្រោមតម្លៃចុះឈ្មោះ៖
- តម្លៃចុះឈ្មោះ F0 (HEX): 0x200FFFFF
- តម្លៃចុះឈ្មោះ F1 (HEX): 0xDFFFFFFF
- តម្លៃចុះឈ្មោះ FO (BIN): 001 00000000011111111111111111111
- តម្លៃចុះឈ្មោះ F1 (BIN): 11 (0) 11111111111111111111111111111
តម្លៃវាល៖
- EFEC -> `001` -> រក្សាទុកក្នុង Rx FIFO 0 ប្រសិនបើតម្រងត្រូវគ្នា។
- EFID1 ->`00000000011111111111111111111` -> លេខសម្គាល់ទីមួយនៃធាតុតម្រងលេខសម្គាល់បន្ថែម
ជួរ (0xFFFF) - EFT -> `11` -> ជួរតម្រងពី SFID1 ដល់ SFID2
- SFID2 ->`11111111111111111111111111111` -> លេខសម្គាល់ទីពីរនៃជួរធាតុតម្រងលេខសម្គាល់ស្តង់ដារ (0x1FFFFFF)
តម្រងលេខសម្គាល់ទ្វេសម្រាប់ FIFO 1
នៅក្នុងនេះ អតីតampនោះតម្រង ID ពីរនឹងរក្សាទុកសារដែលមានលេខសម្គាល់ 0xAAAAAA ឬ 0xBBBBBB ទៅក្នុង FIFO 1។
- តម្លៃចុះឈ្មោះ F0 (HEX): 0x400AAAAA
- តម្លៃចុះឈ្មោះ F1 (HEX)៖ 0x400BBBBBB
- តម្លៃចុះឈ្មោះ FO (BIN): 010 000000000 10101010101010101010
- តម្លៃចុះឈ្មោះ F1 (BIN): 01 (0) 00000000010111011101110111011
តម្លៃវាល៖
- EFEC -> `010` -> រក្សាទុកក្នុង Rx FIFO 1 ប្រសិនបើតម្រងត្រូវគ្នា។
- EFID1 -> `00000000010101010101010101010` -> លេខសម្គាល់បន្ថែមដំបូង (0xAAAAA)
- EFT -> `01` -> តម្រង ID ពីរសម្រាប់ EFID1 ឬ EFID2
- EFID2 -> `00000000010111011101110111011` -> លេខសម្គាល់បន្ថែមទីពីរ (0x000BBBB)
សតិបណ្ដោះអាសន្ន rx ឧទ្ទិស
នៅក្នុងនេះ អតីតampការត្រងនឹងរក្សាទុកសារដែលមានលេខសម្គាល់ 0x000AAAAA ទៅក្នុងសតិបណ្ដោះអាសន្ន rx ពិសេស #1។ ផងដែរនៅក្នុងសេណារីយ៉ូនេះ ការប្រើសតិបណ្ដោះអាសន្នដែលឧទ្ទិសតែលេខសម្គាល់សារមួយប៉ុណ្ណោះដែលអាចត្រងបាន ហើយវាជាអ្វីដែលបានសរសេរទៅក្នុងវាល EFID1។
- តម្រងលេខសម្គាល់សម្រាប់សតិបណ្ដោះអាសន្ន rx ឧទ្ទិស (ID = 0x000AAAAA)
- តម្លៃចុះឈ្មោះ F0 (HEX): 0xE00AAAAAA
- តម្លៃចុះឈ្មោះ F1 (HEX): 0x00000001
- តម្លៃចុះឈ្មោះ FO (BIN): 111 00000000010101010101010101010
- តម្លៃចុះឈ្មោះ F1 (BIN): 00 (0) 000000000000000000 00 (000) 000001
តម្លៃវាល៖
- EFEC -> `111` -> រក្សាទុកទៅក្នុងសតិបណ្ដោះអាសន្ន rx ជាក់លាក់ ប្រសិនបើតម្រងត្រូវគ្នា។
- EFID1 -> `00000000010101010101010101010` -> លេខសម្គាល់បន្ថែមដែលតម្រងនឹងទទួលយក
(0x000AAAAAA) - EFT -> `00` -> តម្លៃនេះមិនសំខាន់ទេ ព្រោះការត្រងដើម្បីរក្សាទុកទៅក្នុង RX ជាក់លាក់
BUFFER ហើយក្នុងករណីនេះតម្លៃ EFT មិនត្រូវបានអើពើ (សូមមើលករណីពិពណ៌នាវាល EFEC `111`) - EFID2[10, 9] -> `00` -> វាលនេះសម្រេចថាតើសារដែលបានទទួលត្រូវបានរក្សាទុកក្នុង Rx Buffer ឬចាត់ទុកជាសារ A, B, ឬ C នៃលំដាប់សារបំបាត់កំហុស។ ក្នុងករណីនេះកម្មវិធីកម្មវិធីចង់រក្សាទុកសារទៅក្នុង Rx Buffer
- EFID2[0,5] -> `000001` -> លិបិក្រមនៃសតិបណ្ដោះអាសន្ន rx ឧទ្ទិស ដែលសារដែលត្រូវគ្នានឹងត្រូវបានរក្សាទុក (ប្រសិនបើអ្នកបានកំណត់រចនាសម្ព័ន្ធ N dedicated rx buffer សន្ទស្សន៍នេះអាចស្ថិតនៅក្នុងជួរ [0, N -1])។ ក្នុងករណីនេះ សារត្រូវបានរក្សាទុកក្នុងសតិបណ្ដោះអាសន្នពិសេស #1
តម្រងបុរាណសម្រាប់ rx FIFO1
នៅក្នុងនេះ អតីតampដូច្នេះ ការសរសេរកម្មវិធីតម្រងនឹងរក្សាទុកសារដោយមានឧបករណ៍កំណត់អត្តសញ្ញាណក្នុងជួរ [0 x FFFFF, 0 x1FFFFFF] ទៅក្នុង rx FIFO 1 ។ វាជាការយល់ឃើញថាវិធីសាស្ត្រលាក់បាំងគឺដូចគ្នានឹងតម្រងលេខសម្គាល់ស្តង់ដារ។ ខាងក្រោមនេះគឺជាការពន្យល់អំពីរបៀបរៀបចំតម្រងជួរលេខសម្គាល់ដែលបានពង្រីកនៅក្នុងកំហឹង [0 x FFFFF, 0 x 1FFFFFF] ដែលរក្សាទុកសារដែលបានទទួលក្នុង rx FIFO 1 និង EFID1 = របាំង
- តម្លៃចុះឈ្មោះ F0 (HEX): 0x400FFFFF
- តម្លៃចុះឈ្មោះ F1 (HEX)៖ 0x9E0FFFF
- តម្លៃចុះឈ្មោះ F0 (BIN)៖ 010 00000000011111111111111111111
- តម្លៃចុះឈ្មោះ F1 (BIN): 10 (0) 11110000011111111111111111111
- EFT > `10` -> តម្រងបុរាណ៖ EFID1 = តម្រង, EFID2 = របាំង
- EFEC -> `010` -> រក្សាទុកក្នុង Rx FIFO 1 ប្រសិនបើតម្រងត្រូវគ្នា។
- EFID1 = 0 0000 0000 1111 1111 1111 1111 1111 (អត្តសញ្ញាណ 0xFFFF)
- EFID2 = 1 1110 0000 1111 1111 1111 1111 1111 (របាំង 0x1E0FFFF)
ការអនុវត្តរបាំងទៅនឹងឧបករណ៍កំណត់អត្តសញ្ញាណ (បន្តិច) ជាមួយនឹងអត្ថន័យនៃប៊ីតរបាំង (1 = ត្រូវតែឆ្លើយតបទៅនឹង 0 = មិនខ្វល់) យើងរកឃើញតម្រងជួរខាងក្រោមដែលនិមិត្តសញ្ញា `X` តំណាងឱ្យសូន្យ ឬមួយ។
តម្រង = 0 000X XXXX 1111 1111 1111 1111 1111
ដូច្នេះ សារដែលបានបន្ថែមទាំងអស់នៅក្នុងជួរ [0xFFFFF, 0x1FFFFFF] នឹងឆ្លងកាត់តម្រង។
ឧបសម្ព័ន្ធ A ឯកសារយោង
- សៀវភៅណែនាំឯកសារយោង SPC584Cx/SPC58ECx
- សន្លឹកទិន្នន័យ SPC584Cx/SPC58ECx
ឧបសម្ព័ន្ធ ខ អក្សរកាត់ និងអក្សរកាត់
អក្សរកាត់ | ឈ្មោះពេញ |
អាច | បណ្តាញតំបន់ត្រួតពិនិត្យ |
FD | អត្រាទិន្នន័យដែលអាចបត់បែនបាន។ |
ប្រវត្តិនៃការកែប្រែឯកសារ
កាលបរិច្ឆេទ | កំណែ | ការផ្លាស់ប្តូរ |
01-មីនា-2021 | 1 | ការចេញផ្សាយដំបូង។ |
ការជូនដំណឹងសំខាន់ - សូមអានដោយយកចិត្តទុកដាក់
ក្រុមហ៊ុន STMicroelectronics NV និងក្រុមហ៊ុនបុត្រសម្ព័ន្ធរបស់ខ្លួន (អេស។ ភី។ ) រក្សាសិទ្ធិក្នុងការធ្វើការផ្លាស់ប្តូរការកែលម្អការផ្លាស់ប្តូរការកែលម្អនិងការកែលម្អផលិតផលអេសធីនិង / ឬចំពោះឯកសារនេះគ្រប់ពេលដោយគ្មានការជូនដំណឹងជាមុន។ អ្នកទិញគួរតែទទួលបានព័ត៌មានពាក់ព័ន្ធចុងក្រោយបំផុតលើផលិតផលអេសអិលមុនពេលធ្វើការបញ្ជាទិញ។ ផលិតផលអេសអិលត្រូវបានលក់ដោយអនុលោមតាមល័ក្ខខ័ណ្ឌរបស់ក្រុមហ៊ុនអេសអេសដែលត្រូវបានដាក់ឱ្យដំណើរការនៅពេលនៃការទទួលស្គាល់ការបញ្ជាទិញ។
អ្នកទិញទទួលខុសត្រូវទាំងស្រុងចំពោះជម្រើសការជ្រើសរើសនិងការប្រើប្រាស់ផលិតផលអេសធីនិងអេសអេសមិនទទួលខុសត្រូវចំពោះជំនួយក្នុងការដាក់ពាក្យសុំឬការរចនាផលិតផលរបស់អ្នកទិញឡើយ។
គ្មានអាជ្ញាប័ណ្ណ បង្ហាញ ឬបង្កប់ន័យចំពោះសិទ្ធិកម្មសិទ្ធិបញ្ញាណាមួយត្រូវបានផ្តល់ដោយ ST នៅទីនេះ។
ការលក់បន្តនៃផលិតផល ST ជាមួយនឹងបទប្បញ្ញត្តិខុសពីព័ត៌មានដែលមានចែងនៅទីនេះ នឹងត្រូវចាត់ទុកជាមោឃៈនូវការធានាណាមួយដែលផ្តល់ដោយ ST សម្រាប់ផលិតផលនោះ។
ST និងនិមិត្តសញ្ញា ST គឺជាពាណិជ្ជសញ្ញារបស់ ST ។ សម្រាប់ព័ត៌មានបន្ថែមអំពីពាណិជ្ជសញ្ញា ST សូមមើល www.st.com/trademarks. ឈ្មោះផលិតផល ឬសេវាកម្មផ្សេងទៀតទាំងអស់គឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។
ព័ត៌មាននៅក្នុងឯកសារនេះជំនួស និងជំនួសព័ត៌មានដែលបានផ្តល់ពីមុននៅក្នុងកំណែមុននៃឯកសារនេះ។
© 2021 STMicroelectronics - រក្សាសិទ្ធិគ្រប់យ៉ាង
ឯកសារ/ធនធាន
![]() |
ST TN1348 SPC58x កំណត់រចនាសម្ព័ន្ធតម្រង CAN និង CAN-FD [pdf] សេចក្តីណែនាំ TN1348, SPC58x កំណត់រចនាសម្ព័ន្ធ CAN និង CAN-FD តម្រង |