TN1348 SPC58x CAN, CAN-FD ഫിൽട്ടറുകൾ ക്രമീകരിക്കുന്നു
ആമുഖം
SPC58x ഓട്ടോമോട്ടീവ് മൈക്രോകൺട്രോളറുകളിൽ ഉൾച്ചേർത്തിരിക്കുന്ന CAN കൺട്രോളറുകൾക്കായി സ്വീകാര്യത ഫിൽട്ടറുകൾ എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഈ സാങ്കേതിക കുറിപ്പ് വിവരിക്കുന്നു. പ്രമാണം രജിസ്റ്റർ കോൺഫിഗറേഷനുകൾ വിവരിക്കുകയും ചില മുൻകൂർ നൽകുകയും ചെയ്യുന്നുampഫിൽട്ടർ കോൺഫിഗറേഷൻ വേഗത്തിലാക്കാൻ le. ചെറിയ വ്യത്യാസങ്ങളുള്ള ഈ കുടുംബത്തിലെ എല്ലാ മൈക്രോകൺട്രോളറുകൾക്കും ഈ കോൺഫിഗറേഷനുകൾ സ്വീകരിക്കാവുന്നതാണ്. മുൻampഈ പ്രമാണത്തിലെ les SPC584Cx/SPC58ECx 32-ബിറ്റ് MCU അടിസ്ഥാനമാക്കിയുള്ളതാണ്.
കഴിഞ്ഞുview
SPC584Cx/SPC58ECx-ന് രണ്ട് വ്യത്യസ്ത സബ്സിസ്റ്റങ്ങളിൽ ഉൾച്ചേർത്ത എട്ട് CAN സംഭവങ്ങൾ ഉണ്ട്.
ഒരേ സബ്സിസ്റ്റത്തിലെ എല്ലാ CAN കൺട്രോളറുകളും റാം മെമ്മറി, ക്ലോക്ക് മുതലായവ പോലുള്ള ഉറവിടങ്ങൾ പങ്കിടും. ഓരോ CAN സബ്സിസ്റ്റവും ഇനിപ്പറയുന്ന പ്രധാന ബ്ലോക്കുകളാൽ രൂപീകരിച്ചിരിക്കുന്നു:
- മോഡുലാർ CAN കോറുകൾ: CAN മൊഡ്യൂളിന്റെ രജിസ്റ്ററുകൾ ജനറിക് സ്ലേവ് ഇന്റർഫേസ് (GSI) ഉപയോഗിച്ച് ആക്സസ് ചെയ്യാൻ കഴിയും. പെരിഫറൽ ജിഎസ്ഐ മൊഡ്യൂൾ ഓരോ മാസ്റ്ററുടെയും അഭ്യർത്ഥനയായി പ്രവർത്തിക്കുന്നു.
- CAN-RAM മദ്ധ്യസ്ഥൻ: വിവിധ CAN കൺട്രോളറുകൾ റാം ആക്സസ് ചെയ്യുന്നതിനുള്ള അഭ്യർത്ഥനകൾക്കിടയിലുള്ള മദ്ധ്യസ്ഥതയ്ക്കുള്ള ഒരു അധിക യുക്തിയാണിത്.
- SRAM: ഈ ഇന്റർഫേസ് ഉപയോഗിച്ച് CAN സബ്സിസ്റ്റം ഒരു ബാഹ്യ റാമുമായി ഇന്റർഫേസ് ചെയ്യും, അത് SRAM ആണ്.
- ECC കൺട്രോളർ: SRAM മെമ്മറിയിലെ തിരുത്തൽ കോഡ് കണക്കാക്കാനും സാധൂകരിക്കാനുമുള്ള ലോജിക് ഇതിൽ അടങ്ങിയിരിക്കുന്നു.
SRAM ഇന്റർഫേസിനും മെമ്മറി ഓർഗനൈസേഷനും ഉപകരണ റഫറൻസ് മാനുവൽ വിഭാഗം അനുബന്ധം എ റഫറൻസ് ഡോക്യുമെന്റുകൾ പരിശോധിക്കുക.
ഫിൽട്ടറിംഗ് ആമുഖം
വിവിധ രീതികളിൽ ഫിൽട്ടറുകൾ കോൺഫിഗർ ചെയ്യാൻ CAN ഫിൽട്ടർ ലോജിക് നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാample, സ്വീകാര്യത ഫിൽട്ടറിംഗ് പാസ്സാക്കുന്ന സന്ദേശങ്ങൾ Rx FIFO (0 അല്ലെങ്കിൽ 1) അല്ലെങ്കിൽ സമർപ്പിത rx ബഫറുകളിൽ സംഭരിക്കാൻ കഴിയും. ഓരോ ഫിൽട്ടറും ഒരു സ്വീകാര്യത അല്ലെങ്കിൽ നിരസിക്കൽ ഫിൽട്ടറായി കോൺഫിഗർ ചെയ്യാം, കൂടാതെ പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ കഴിയും. സ്വീകാര്യത ഫിൽട്ടറിനായി, ഓരോ ഫിൽട്ടർ ലിസ്റ്റും ഇനം #0 മുതൽ ഫിൽട്ടർ ലിസ്റ്റിലെ ആദ്യം പൊരുത്തപ്പെടുന്ന ഇനം വരെ നടപ്പിലാക്കുന്നു. ഫിൽട്ടറുകൾ ഉപയോഗിക്കുന്നതിന് മുമ്പ്, സന്ദേശ റാമിന്റെ ഒരു ഭാഗം റിസർവ് ചെയ്യുന്നതിന് ആരംഭ വിലാസവും ഫിൽട്ടറിന്റെ നമ്പറുകളും കോൺഫിഗർ ചെയ്യേണ്ടത് നിർബന്ധമാണ്. ചുവടെയുള്ള ചിത്രം കാണിക്കുന്നത് എ view പങ്കിട്ട മെമ്മറി മാപ്പിന്റെയും രജിസ്റ്ററുകളുടെയും (അതിനാൽ ഓരോ വിഭാഗത്തിന്റെയും ആരംഭ വിലാസങ്ങൾ).
ചിത്രം 1. സന്ദേശ റാം കോൺഫിഗറേഷൻ ഉദാample
റാം ആരംഭിക്കുന്നതിനുള്ള സന്ദേശം
ഏതെങ്കിലും ഫിൽട്ടർ ഉപയോഗിക്കുന്നതിന് മുമ്പ്, അവ സംഭരിക്കുന്ന സന്ദേശങ്ങളുടെ പ്രസക്തമായ റാം ഏരിയ കോൺഫിഗർ ചെയ്യേണ്ടത് നിർബന്ധമാണ്. ഇത് ചെയ്യുന്നതിന്, ഓരോ ഫിൽട്ടർ ഏരിയയുടെയും സന്ദേശമായ റാം അടിസ്ഥാന വിലാസത്തിൽ നിന്ന് സോഫ്റ്റ്വെയർ ആപ്ലിക്കേഷൻ ഓഫ്സെറ്റ് (വാക്കുകളിൽ) എഴുതണം. ഓരോ ഏരിയയ്ക്കുമുള്ള ഫിൽട്ടറുകളുടെ എണ്ണം കോൺഫിഗർ ചെയ്തിരിക്കണം, അതുവഴി ബന്ധപ്പെട്ട ഓരോ ഫിൽട്ടർ മെമ്മറി ഏരിയയും എവിടെയാണ് അവസാനിക്കുന്നതെന്ന് കൺട്രോളറിന് മനസ്സിലാക്കാൻ കഴിയും.ample നാല് ഫിൽട്ടറുകൾ, സ്റ്റാൻഡേർഡ് ഐഡന്റിഫയറുകൾക്കായി (11 ബിറ്റുകൾ), വിപുലീകൃത ഐഡന്റിഫയറുകൾക്കായി നാല് ഫിൽട്ടറുകൾ (29 ബിറ്റുകൾ) ക്രമീകരിക്കും, അതിനാൽ, സന്ദേശ റാമിന്റെ ഒരു ഭാഗം 11-ബിറ്റ് ഫിൽട്ടറുകൾ സംഭരിക്കുന്നതിനും മറ്റൊന്ന് 29-ബിറ്റ് ഫിൽട്ടറുകൾക്കുമായി റിസർവ് ചെയ്യുക. സ്റ്റാൻഡേർഡ് ഐഡി ഫിൽട്ടർ ഏരിയയുടെ പ്രാരംഭ വിലാസം കോൺഫിഗർ ചെയ്യുന്നതിന്, സോഫ്റ്റ്വെയർ SIDFC രജിസ്റ്ററിന്റെ (സ്റ്റാൻഡേർഡ് ഐഡി ഫിൽട്ടർ കോൺഫിഗറേഷൻ രജിസ്റ്റർ) FLSSA ഫീൽഡ് എഴുതണം. വിപുലീകൃത ഐഡി ഫിൽട്ടറുകൾക്കായി, XIDFC രജിസ്റ്ററിന്റെ FLESA ഫീൽഡ് എഴുതേണ്ടത് ആവശ്യമാണ് (വിപുലീകരിച്ച ഐഡി ഫിൽട്ടർ കോൺഫിഗറേഷൻ രജിസ്റ്റർ). FLSSA, FLESA ഫീൽഡുകളിൽ സന്ദേശത്തിന്റെ റാം അടിസ്ഥാന വിലാസത്തിൽ നിന്നുള്ള മെമ്മറി ഓഫ്സെറ്റ് "വാക്കുകളിൽ" അടങ്ങിയിരിക്കണം. ഈ ആപ്ലിക്കേഷൻ ഓഫ്സെറ്റ് സീറോയിൽ നാല് സ്റ്റാൻഡേർഡ് ഫിൽട്ടറുകളും നാല് എക്സ്റ്റെൻഡഡ് ഫിൽട്ടറുകളും കോൺഫിഗർ ചെയ്യുന്നു
സാധാരണ ഫിൽട്ടർ കോൺഫിഗറേഷനായി:
- FLSSA = 0x0: സന്ദേശ റാം അടിസ്ഥാന വിലാസത്തിന്റെ ഓഫ്സെറ്റ് ബഹുമാനം പൂജ്യമാണ്, അതിനാൽ മെസേജ് റാമിന്റെ തുടക്കത്തിൽ ഏരിയ ആരംഭിക്കുന്നു.
- LSS = 4: കോൺഫിഗർ ചെയ്യേണ്ട ഫിൽട്ടറുകളുടെ എണ്ണമാണിത്. ഓരോ ഫിൽട്ടറും `ഒന്ന്` 32 ബിറ്റ്സ് വേഡ് കൊണ്ടാണ് നിർമ്മിച്ചിരിക്കുന്നത്.
ഈ കോൺഫിഗറേഷനിൽ, ഓഫ്സെറ്റ് പൂജ്യത്തിൽ നിന്ന് ആരംഭിക്കുന്ന മെമ്മറിയുടെ ഒരു ഭാഗം നാല് വാക്കുകളുടെ വലുപ്പമുള്ളതാണ്.
കുറിപ്പ്: CAN കൺട്രോളറിന് സന്ദേശ റാം കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള നിയന്ത്രണ സംവിധാനമില്ല, ഇതിനർത്ഥം കോൺഫിഗർ ചെയ്ത RAM ഏരിയകൾ ഓവർലാപ്പ് ചെയ്യാതിരിക്കാൻ ഡെവലപ്പർ ശ്രദ്ധിക്കണം എന്നാണ്. വിപുലീകൃത തിരിച്ചറിയൽ ഫിൽട്ടറുകൾ സംഭരിക്കുന്നതിന് മെമ്മറിയുടെ ഒരു ഭാഗം എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഇനിപ്പറയുന്ന ചിത്രം കാണിക്കുന്നു.
വിപുലീകൃത ഫിൽട്ടറുകൾ സംഭരിക്കുന്നതിന് റാം ഏരിയ ക്രമീകരിക്കുന്നതിന്, FLESA, LSE ഫീൽഡുകളിൽ ഇനിപ്പറയുന്ന മൂല്യങ്ങൾ പ്രോഗ്രാം ചെയ്യേണ്ടത് ആവശ്യമാണ്.
- FLESA = 0x04: സന്ദേശ റാം അടിസ്ഥാന വിലാസവുമായി ബന്ധപ്പെട്ട വാക്കുകളിലെ ഓഫ്സെറ്റ്. കാരണം, മുമ്പ് കോൺഫിഗർ ചെയ്ത ഫിൽട്ടറുകൾ ഏരിയയിൽ ഇത് സാധാരണ ഐഡി ഫിൽട്ടറുകൾക്കായി 0x04 വാക്കുകൾ റിസർവ് ചെയ്തിരിക്കുന്നു, തുടർന്ന് ഉപയോഗിക്കാവുന്ന ഏറ്റവും കുറഞ്ഞ ഓഫ്സെറ്റ് 0x04 ആണ്.
- LSE = 4: കോൺഫിഗർ ചെയ്യേണ്ട ഫിൽട്ടറുകളുടെ എണ്ണമാണിത്. വിപുലീകൃത ഐഡിക്കായി ഒരു ഫിൽട്ടർ `രണ്ട്` 32 ബിറ്റ്സ് വേഡ് കൊണ്ടാണ് നിർമ്മിച്ചിരിക്കുന്നത്.
ഈ കോൺഫിഗറേഷനിൽ ഓഫ്സെറ്റ് 0x04 (പദങ്ങൾ) മുതൽ ആരംഭിക്കുന്ന മെമ്മറിയുടെ ഒരു ഭാഗം എട്ട് വാക്കുകളുടെ (നാല് രണ്ട്-പദ ഫിൽട്ടറുകൾ) വലുപ്പമുള്ളതാണ്. അതിനാൽ, അടുത്ത കോൺഫിഗർ ചെയ്യാവുന്ന മെമ്മറി ഏരിയയ്ക്കുള്ള ഏറ്റവും കുറഞ്ഞ ഓഫ്സെറ്റ് 0x0C വാക്കുകളാണ്. വിഭാഗങ്ങളൊന്നും ഓവർലാപ്പ് ചെയ്യാതെ വിഭാഗത്തിൽ സംഭരിക്കുന്ന ഘടകങ്ങളുടെ എണ്ണവും വലുപ്പവും കണക്കിലെടുത്ത് RAM സന്ദേശത്തിന്റെ എല്ലാ വിഭാഗങ്ങളും കോൺഫിഗർ ചെയ്തിരിക്കണം.
കുറിപ്പ്: ഒരു വേഡ് ഓഫ്സെറ്റിനെ ഒരു ബൈറ്റ് ഓഫ്സെറ്റാക്കി മാറ്റുന്നതിന്, പദ മൂല്യത്തെ നാലായി ഗുണിക്കേണ്ടതുണ്ട്.
Exampസാധാരണ ഐഡി ഫിൽട്ടറുകളുടെ le
സന്ദേശം റാം കോൺഫിഗർ ചെയ്ത ശേഷം, നിങ്ങൾക്ക് ഉപകരണ ഫിൽട്ടറുകൾ ക്രമീകരിക്കാൻ കഴിയും.
ഓരോ ഫിൽട്ടർ ഘടകവും ഇങ്ങനെ ക്രമീകരിക്കാം:
- റേഞ്ച് ഫിൽട്ടർ
- ഇരട്ട ഐഡി ഫിൽട്ടർ
- ക്ലാസിക് ഫിൽട്ടർ
- സമർപ്പിത rx ബഫറിനായുള്ള ഫിൽട്ടർ (സിംഗിൾ ഐഡി ഫിൽട്ടർ)
സ്റ്റാൻഡേർഡ് ഐഡന്റിഫയറുകൾക്കായി (11-ബിറ്റ് ഐഡന്റിഫയറുകൾ) നാല് വ്യത്യസ്ത തരം ഫിൽട്ടറുകൾ എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഇനിപ്പറയുന്ന ചിത്രം കാണിക്കുന്നു. സ്റ്റാൻഡേർഡ് ഐഡിക്കായി ഇനിപ്പറയുന്ന ഫിൽട്ടർ എലമെന്റ് രജിസ്റ്റർ ഉപയോഗിക്കുക.
RX FIFO0-നുള്ള റേഞ്ച് ഫിൽട്ടർ
ഒരു മുൻamp[0x16 , 0xF6] ശ്രേണിയിലുള്ള ഐഡന്റിഫയറുകൾ ഉപയോഗിച്ച് സന്ദേശങ്ങൾ FIFO 0 സ്വീകരിക്കുക എന്നതിലേക്ക് സംഭരിക്കാൻ ഫിൽട്ടറിംഗ് നടത്തുന്നു.
രജിസ്റ്റർ മൂല്യം (HEX): 0x081600F6
രജിസ്റ്റർ മൂല്യം (BIN): 00 001 00000010110 (00000) 00011110110
കുറിപ്പ്: എല്ലാ മുൻampഈ പ്രമാണത്തിൽ നൽകിയിരിക്കുന്നത് പോലെ, ബ്രാക്കറ്റഡ് ബിറ്റുകൾ സ്ഥിര മൂല്യത്തിൽ സൂക്ഷിക്കുന്നു. ഫീൽഡ് മൂല്യങ്ങൾ:
- SFT -> `00` -> SFID1 മുതൽ SFID2 വരെയുള്ള റേഞ്ച് ഫിൽട്ടർ
- SFEC -> `001` -> ഫിൽട്ടർ പൊരുത്തപ്പെടുന്നെങ്കിൽ Rx FIFO 0-ൽ സംഭരിക്കുക
- SFID1 -> `00000010110` -> സ്റ്റാൻഡേർഡ് ഐഡി ഫിൽട്ടർ എലമെന്റ് ശ്രേണിയുടെ ആദ്യ ഐഡി (0x16)
- SFID2 -> `00011110110` -> സ്റ്റാൻഡേർഡ് ഐഡി ഫിൽട്ടർ എലമെന്റ് ശ്രേണിയുടെ രണ്ടാം ഐഡി (0xF6)
RX FIFO1-നുള്ള ഇരട്ട ഫിൽട്ടർ
താഴെ ഒരു മുൻamp0 x 0A അല്ലെങ്കിൽ 0 x FF സന്ദേശ ഐഡന്റിഫയറുകൾ FIFO 1-ലേക്ക് സംഭരിക്കാൻ ഇരട്ട ഐഡി ഫിൽട്ടറിന്റെ le.
രജിസ്റ്റർ മൂല്യം (HEX): 0x500A00FF
രജിസ്റ്റർ മൂല്യം (BIN): 01 010 00000001010 (00000) 00011111111
ഫീൽഡ് മൂല്യങ്ങൾ:
- SFT -> `01` -> SFID1 അല്ലെങ്കിൽ SFID2 നായുള്ള ഡ്യുവൽ ഐഡി ഫിൽട്ടർ
- SFEC -> `010` -> ഫിൽട്ടർ പൊരുത്തപ്പെടുന്നെങ്കിൽ Rx FIFO 1-ൽ സംഭരിക്കുക
- SFID1 -> `00000001010` -> സ്റ്റാൻഡേർഡ് ഡ്യുവൽ ഐഡി ഫിൽട്ടർ എലമെന്റിന്റെ ആദ്യ ഐഡി
- SFID2 -> `00011111111` -> സ്റ്റാൻഡേർഡ് ഡ്യുവൽ ഐഡി ഫിൽട്ടർ എലമെന്റിന്റെ രണ്ടാം ഐഡി
Rx സമർപ്പിത ബഫർ ഫിൽട്ടറിംഗ്
താഴെ ഒരു മുൻampഐഡന്റിഫിക്കേഷൻ 0 x 7F0 ഉള്ള സന്ദേശങ്ങൾ ഡെഡിക്കേറ്റഡ് rx ബഫർ #0 ലേക്ക് സംഭരിക്കാൻ le.
ഒരു സമർപ്പിത ബഫർ ഉപയോഗിച്ച്, ഒരു സന്ദേശ ഐഡി മാത്രമേ ഫിൽട്ടർ ചെയ്യാൻ കഴിയൂ, അതാണ് 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 ബഫറിൽ സന്ദേശം സംഭരിക്കാൻ സോഫ്റ്റ്വെയർ ആപ്ലിക്കേഷൻ ആഗ്രഹിക്കുന്നു.
- SFID2[0,5] -> `000000` → സമർപ്പിത ബഫർ rx-ന്റെ സൂചിക, അവിടെ അനുബന്ധ സന്ദേശം സംഭരിക്കപ്പെടും (N സമർപ്പിത ബഫർ rx കോൺഫിഗർ ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഈ സൂചിക [0, N -1] ശ്രേണിയിലാകാം) .ഈ സാഹചര്യത്തിൽ സന്ദേശം സമർപ്പിത ബഫറിൽ #0 സംഭരിക്കുന്നു.
RX FIFO0-നുള്ള ക്ലാസിക് ഫിൽട്ടർ
ഈ മുൻampRX FIFO 0-ൽ [688x0, 68x0F] ശ്രേണിയിൽ ഐഡന്റിഫയർ ഉപയോഗിച്ച് സന്ദേശങ്ങൾ എങ്ങനെ സംഭരിക്കാമെന്ന് le കാണിക്കുന്നു. ഒരു ക്ലാസിക് ഫിൽട്ടറിനായി, ഒരു ഐഡന്റിഫയർ / മാസ്ക് ജോടി നിർവചിച്ചിരിക്കണം. ഐഡന്റിഫയർ SFID1-ലും മാസ്ക് ഫിൽട്ടർ എലമെന്റിന്റെ SFID2 ഫീൽഡുകളിലും എഴുതിയിരിക്കണം. ഒരു ക്ലാസിക് ഫിൽട്ടറിൽ, ഇനിപ്പറയുന്ന രീതിയിൽ ഐഡന്റിഫയറിൽ മാസ്ക് പ്രയോഗിക്കുന്നതിലൂടെ ഫിൽട്ടർ കടന്നുപോകുന്ന ഐഡി സന്ദേശങ്ങൾ ലഭിക്കും:
- ഇതാണ് ഫിൽട്ടർ ബിറ്റുകളുടെ അർത്ഥം -> 1 = പൊരുത്തപ്പെടണം (0 = ശ്രദ്ധിക്കരുത്);
- എല്ലാ "1"കളും ചേർന്ന ഒരു മാസ്കുള്ള ഒരു ഫിൽട്ടർ ഉണ്ടെങ്കിൽ, ഒരു ഐഡന്റിഫയർ മാത്രമേ ഫിൽട്ടറിലേക്ക് കടക്കുകയുള്ളൂ (SFID1 ഫീൽഡിൽ എഴുതിയത്) അതേസമയം എല്ലാ "0" എല്ലാ ഐഡന്റിഫയറുകളും അടങ്ങിയ മാസ്ക് ഉള്ള ഒരു ഫിൽട്ടർ കടന്നുപോകും. ഫിൽട്ടർ.
വ്യക്തമായും, ഇവ ഏറ്റവും ലളിതമായ ഫിൽട്ടറുകളാണ്. RX FIFO 0-ൽ ലഭിച്ച സന്ദേശങ്ങൾ സംഭരിക്കുന്ന [688x0, 68x0F] ശ്രേണിയിലുള്ള സ്റ്റാൻഡേർഡ് ഐഡിക്കായി ഒരു റേഞ്ച് ഫിൽട്ടർ എങ്ങനെ ഓർഗനൈസ് ചെയ്യാം എന്നതിന്റെ ഒരു വിശദീകരണം ചുവടെയുണ്ട്. ഇതൊരു സാധാരണ സന്ദേശ ഫിൽട്ടറാണ്, അതിനാൽ ഞങ്ങൾ 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 യുമായി പൊരുത്തപ്പെടണം = ഡോൺ`ടി കെയർ) പൂജ്യമോ ഒന്നോ സൂചിപ്പിക്കുന്ന ഇനിപ്പറയുന്ന ശ്രേണി ഫിൽട്ടർ ഞങ്ങൾ കണ്ടെത്തുന്നു.
ഫിൽട്ടർ = 110 1000 1XXX
തുടർന്ന്, [0x688, 0x68F] ശ്രേണിയിലുള്ള എല്ലാ സ്റ്റാൻഡേർഡ് സന്ദേശങ്ങളും ഫിൽട്ടർ കടന്നുപോകും.
വിപുലീകരിച്ച ഐഡി ഫിൽട്ടറുകൾ കോൺഫിഗറേഷൻ
വിപുലീകൃത ഐഡന്റിഫയറുകളിലും (29-ബിറ്റ് ഐഡന്റിഫയറുകൾ) സമാന ഫിൽട്ടറുകൾ നടപ്പിലാക്കാൻ കഴിയും.
RX FIFO0-നുള്ള റേഞ്ച് വിപുലീകൃത ഫിൽട്ടർ
ഇതിൽ മുൻample, ഈ ഫിൽട്ടർ FIFO 0-ൽ [0xFFFFF, 1x0FFFFFF] ശ്രേണിയിൽ ഐഡന്റിഫയറുകളുള്ള സന്ദേശങ്ങൾ സംഭരിക്കും.
രജിസ്റ്റർ മൂല്യങ്ങൾക്ക് താഴെ:
- F0 രജിസ്റ്റർ മൂല്യം (HEX): 0x200FFFFF
- F1 രജിസ്റ്റർ മൂല്യം (HEX): 0xDFFFFFFF
- FO രജിസ്റ്റർ മൂല്യം (BIN): 001 00000000011111111111111111111
- F1 രജിസ്റ്റർ മൂല്യം (BIN): 11 (0) 11111111111111111111111111111
ഫീൽഡ് മൂല്യങ്ങൾ:
- EFEC -> `001` -> ഫിൽട്ടർ പൊരുത്തപ്പെടുന്നെങ്കിൽ Rx FIFO 0-ൽ സംഭരിക്കുക
- EFID1 ->`00000000011111111111111111111` -> വിപുലീകൃത ഐഡി ഫിൽട്ടർ ഘടകത്തിന്റെ ആദ്യ ഐഡി
ശ്രേണി(0xFFFFF) - EFT -> `11` -> SFID1 മുതൽ SFID2 വരെയുള്ള റേഞ്ച് ഫിൽട്ടർ
- SFID2 ->`11111111111111111111111111111` -> സാധാരണ ഐഡി ഫിൽട്ടർ എലമെന്റ് ശ്രേണിയുടെ രണ്ടാം ഐഡി(0x1FFFFFFF)
FIFO 1-നുള്ള ഇരട്ട ഐഡി ഫിൽട്ടർ
ഇതിൽ മുൻampഇരട്ട ഐഡി ഫിൽട്ടർ 0xAAAAA അല്ലെങ്കിൽ 0xBBBBB എന്ന ഐഡന്റിഫയറുകൾ ഉള്ള സന്ദേശങ്ങൾ FIFO 1-ലേക്ക് സംഭരിക്കും.
- F0 രജിസ്റ്റർ മൂല്യം (HEX): 0x400AAAAA
- F1 രജിസ്റ്റർ മൂല്യം (HEX): 0x400BBBBB
- FO രജിസ്റ്റർ മൂല്യം (BIN): 010 000000000 10101010101010101010
- F1 രജിസ്റ്റർ മൂല്യം (BIN): 01 (0) 00000000010111011101110111011
ഫീൽഡ് മൂല്യങ്ങൾ:
- EFEC -> `010` -> ഫിൽട്ടർ പൊരുത്തപ്പെടുന്നെങ്കിൽ Rx FIFO 1-ൽ സംഭരിക്കുക
- EFID1 -> `00000000010101010101010101010` -> ആദ്യത്തെ വിപുലീകൃത ഐഡി (0xAAAAA)
- EFT -> `01` -> EFID1 അല്ലെങ്കിൽ EFID2 നായുള്ള ഡ്യുവൽ ഐഡി ഫിൽട്ടർ
- EFID2 -> `00000000010111011101110111011` -> രണ്ടാമത്തെ വിപുലീകൃത ഐഡി (0x000BBBBB)
സമർപ്പിത rx ബഫർ
ഇതിൽ മുൻampഫിൽട്ടറിംഗ് 0x000AAAAA ഐഡന്റിഫയർ ഉള്ള സന്ദേശങ്ങളെ സമർപ്പിത rx ബഫറിൽ #1 സംഭരിക്കും. ഈ സാഹചര്യത്തിൽ, സമർപ്പിത ബഫർ ഉപയോഗിച്ച് ഒരു സന്ദേശ ഐഡി മാത്രമേ ഫിൽട്ടർ ചെയ്യാനാകൂ, അത് EFID1 ഫീൽഡിൽ എഴുതിയതാണ്.
- സമർപ്പിത rx ബഫറിനുള്ള ഐഡി ഫിൽട്ടർ (ID = 0x000AAAAAA)
- F0 രജിസ്റ്റർ മൂല്യം (HEX): 0xE00AAAAA
- F1 രജിസ്റ്റർ മൂല്യം (HEX): 0x00000001
- FO രജിസ്റ്റർ മൂല്യം (BIN): 111 00000000010101010101010101010
- F1 രജിസ്റ്റർ മൂല്യം (BIN): 00 (0) 000000000000000000 00 (000) 000001
ഫീൽഡ് മൂല്യങ്ങൾ:
- EFEC -> `111` -> ഫിൽട്ടർ പൊരുത്തപ്പെടുന്നെങ്കിൽ സമർപ്പിത rx ബഫറിൽ സംഭരിക്കുക
- EFID1 -> `00000000010101010101010101010` -> ഫിൽട്ടർ സ്വീകരിക്കുന്ന വിപുലീകൃത ഐഡി
(0x000AAAAAA) - EFT -> `00` -> ഈ മൂല്യം പ്രധാനമല്ല, കാരണം സമർപ്പിത RX-ലേക്ക് സംഭരിക്കാൻ ഫിൽട്ടർ ചെയ്യുന്നു
ബഫർ, ഈ സാഹചര്യത്തിൽ EFT മൂല്യം അവഗണിക്കപ്പെടും (EFEC ഫീൽഡ് വിവരണം കേസ് `111` കാണുക) - EFID2[10, 9] -> `00` -> സ്വീകരിച്ച സന്ദേശം ഒരു Rx ബഫറിൽ സംഭരിക്കണോ അതോ ഡീബഗ് സന്ദേശ ശ്രേണിയുടെ സന്ദേശം A, B അല്ലെങ്കിൽ C ആയി കണക്കാക്കണോ എന്ന് ഈ ഫീൽഡ് തീരുമാനിക്കുന്നു. ഈ സാഹചര്യത്തിൽ ഒരു Rx ബഫറിൽ സന്ദേശം സംഭരിക്കാൻ സോഫ്റ്റ്വെയർ ആപ്ലിക്കേഷൻ ആഗ്രഹിക്കുന്നു
- EFID2[0,5] -> `000001` -> പൊരുത്തമുള്ള സന്ദേശം സംഭരിക്കപ്പെടുന്ന സമർപ്പിത rx ബഫറിന്റെ സൂചിക (നിങ്ങൾ N സമർപ്പിത rx ബഫർ കോൺഫിഗർ ചെയ്തിട്ടുണ്ടെങ്കിൽ ഈ സൂചിക [0, N -1] ശ്രേണിയിലാകാം). ഈ സാഹചര്യത്തിൽ സന്ദേശം സമർപ്പിത ബഫർ #1-ൽ സംഭരിച്ചിരിക്കുന്നു
rx FIFO1-നുള്ള ക്ലാസിക് ഫിൽട്ടർ
ഇതിൽ മുൻample, ഫിൽട്ടർ പ്രോഗ്രാമിംഗ് ഐഡന്റിഫയർ ഉപയോഗിച്ച് സന്ദേശങ്ങൾ സംഭരിക്കും [0 x FFFFF, 0 x1FFFFFF] എന്ന ശ്രേണിയിൽ rx FIFO 1. മാസ്കിംഗ് രീതി സാധാരണ ഐഡി ഫിൽട്ടറുകൾക്ക് സമാനമാണെന്ന് മനസ്സിലാക്കാൻ കഴിയില്ല. ലഭിച്ച സന്ദേശങ്ങൾ rx FIFO 0-ൽ സംഭരിക്കുന്ന രോഷത്തിൽ [0 x FFFFF, 1 x 1FFFFFF] ഒരു വിപുലീകൃത ഐഡി ശ്രേണി ഫിൽട്ടർ എങ്ങനെ പ്രോഗ്രാം ചെയ്യാം എന്നതിനെക്കുറിച്ചുള്ള ഒരു വിശദീകരണം ചുവടെയുണ്ട്. ഇത് വിപുലീകൃത സന്ദേശങ്ങൾക്കുള്ള ഒരു ഫിൽട്ടറാണ്, അതിനാൽ ഞങ്ങൾ EFID1 = ഐഡന്റിഫയറിന് മൂല്യങ്ങൾ നൽകും. കൂടാതെ EFID2 = മാസ്ക്
- F0 രജിസ്റ്റർ മൂല്യം (HEX): 0x400FFFFF
- F1 രജിസ്റ്റർ മൂല്യം (HEX): 0x9E0FFFFF
- 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 (ഐഡന്റിഫയർ 0xFFFFF)
- EFID2 = 1 1110 0000 1111 1111 1111 1111 1111 (മാസ്ക് 0x1E0FFFFF)
മാസ്ക് ബിറ്റിന്റെ അർത്ഥം ഉപയോഗിച്ച് ഐഡന്റിഫയറിൽ (അൽപ്പം) മാസ്ക് പ്രയോഗിക്കുമ്പോൾ (1 = 0 = ഡോൺ`ടി കെയറുമായി പൊരുത്തപ്പെടണം) 'X' എന്ന ചിഹ്നം പൂജ്യമോ ഒന്നോ സൂചിപ്പിക്കുന്ന ഇനിപ്പറയുന്ന ശ്രേണി ഫിൽട്ടർ ഞങ്ങൾ കണ്ടെത്തുന്നു.
ഫിൽട്ടർ = 0 000X XXXX 1111 1111 1111 1111 1111
അതിനാൽ, [0xFFFFF, 0x1FFFFFF] ശ്രേണിയിലെ എല്ലാ വിപുലീകൃത സന്ദേശങ്ങളും ഫിൽട്ടർ കടന്നുപോകും.
അനുബന്ധം എ റഫറൻസ് രേഖകൾ
- SPC584Cx/SPC58ECx റഫറൻസ് മാനുവൽ
- SPC584Cx/SPC58ECx ഡാറ്റാഷീറ്റ്
അനുബന്ധം ബി ചുരുക്കെഴുത്തുകളും ചുരുക്കങ്ങളും
ചുരുക്കെഴുത്ത് | പൂർണ്ണമായ പേര് |
CAN | കൺട്രോളർ ഏരിയ നെറ്റ്വർക്ക് |
FD | ഫ്ലെക്സിബിൾ ഡാറ്റ നിരക്ക് |
പ്രമാണ പുനരവലോകന ചരിത്രം
തീയതി | പതിപ്പ് | മാറ്റങ്ങൾ |
01-മാർച്ച്-2021 | 1 | പ്രാരംഭ റിലീസ്. |
പ്രധാന അറിയിപ്പ് - ശ്രദ്ധാപൂർവ്വം വായിക്കുക
എസ്ടി മൈക്രോഇലക്ട്രോണിക്സ് എൻവിയും അതിന്റെ അനുബന്ധ സ്ഥാപനങ്ങളും (“എസ്ടി”) എസ്ടി ഉൽപ്പന്നങ്ങളിലേക്കും കൂടാതെ / അല്ലെങ്കിൽ ഈ പ്രമാണത്തിലേക്കും എപ്പോൾ വേണമെങ്കിലും അറിയിപ്പ് കൂടാതെ മാറ്റങ്ങൾ, തിരുത്തലുകൾ, മെച്ചപ്പെടുത്തലുകൾ, പരിഷ്കാരങ്ങൾ, മെച്ചപ്പെടുത്തലുകൾ എന്നിവയ്ക്കുള്ള അവകാശം നിക്ഷിപ്തമാണ്. ഓർഡറുകൾ നൽകുന്നതിനുമുമ്പ് വാങ്ങുന്നവർ എസ്ടി ഉൽപ്പന്നങ്ങളെക്കുറിച്ചുള്ള ഏറ്റവും പുതിയ പ്രസക്തമായ വിവരങ്ങൾ നേടണം. ഓർഡർ അംഗീകാര സമയത്ത് എസ്ടിയുടെ നിബന്ധനകൾക്കും വിൽപ്പന വ്യവസ്ഥകൾക്കും അനുസൃതമായി എസ്ടി ഉൽപ്പന്നങ്ങൾ വിൽക്കുന്നു.
എസ്ടി ഉൽപ്പന്നങ്ങളുടെ തിരഞ്ഞെടുപ്പ്, തിരഞ്ഞെടുപ്പ്, ഉപയോഗം എന്നിവയ്ക്ക് വാങ്ങുന്നവർക്ക് മാത്രമേ ഉത്തരവാദിത്തമുള്ളൂ, കൂടാതെ ആപ്ലിക്കേഷൻ സഹായത്തിനോ വാങ്ങുന്നവരുടെ ഉൽപ്പന്നങ്ങളുടെ രൂപകൽപ്പനയ്ക്കോ എസ്ടി ഒരു ബാധ്യതയുമില്ല.
ഏതെങ്കിലും ബൗദ്ധിക സ്വത്തവകാശത്തിനുള്ള ലൈസൻസോ, പ്രകടിപ്പിക്കുന്നതോ സൂചിപ്പിക്കപ്പെട്ടതോ ആയ ഒരു ലൈസൻസും ഇവിടെ ST നൽകുന്നില്ല.
ഇവിടെ പ്രതിപാദിച്ചിരിക്കുന്ന വിവരങ്ങളിൽ നിന്ന് വ്യത്യസ്തമായ വ്യവസ്ഥകളോടെ ST ഉൽപ്പന്നങ്ങളുടെ പുനർവിൽപ്പന, അത്തരം ഉൽപ്പന്നത്തിന് ST നൽകുന്ന ഏതെങ്കിലും വാറൻ്റി അസാധുവാകും.
എസ്ടിയും എസ്ടി ലോഗോയും എസ്ടിയുടെ വ്യാപാരമുദ്രകളാണ്. എസ്ടി വ്യാപാരമുദ്രകളെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, ദയവായി റഫർ ചെയ്യുക www.st.com/trademarks. മറ്റെല്ലാ ഉൽപ്പന്നങ്ങളുടെയും സേവനങ്ങളുടെയും പേരുകൾ അവയുടെ ഉടമസ്ഥരുടെ സ്വത്താണ്.
ഈ ഡോക്യുമെൻ്റിലെ വിവരങ്ങൾ ഈ ഡോക്യുമെൻ്റിൻ്റെ ഏതെങ്കിലും മുൻ പതിപ്പുകളിൽ മുമ്പ് നൽകിയിട്ടുള്ള വിവരങ്ങൾ അസാധുവാക്കുകയും മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നു.
© 2021 STMicroelectronics – എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം
പ്രമാണങ്ങൾ / വിഭവങ്ങൾ
![]() |
ST TN1348 SPC58x CAN, CAN-FD ഫിൽട്ടറുകൾ ക്രമീകരിക്കുന്നു [pdf] നിർദ്ദേശങ്ങൾ TN1348, SPC58x CAN, CAN-FD ഫിൽട്ടറുകൾ ക്രമീകരിക്കുന്നു |