មាតិកា លាក់

STlogo

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 តម្រង

ឯកសារយោង

ទុកមតិយោបល់

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