СТлого

ТН1348 СПЦ58к Конфигурисање ЦАН и ЦАН-ФД филтера

производ

Увод

Ова техничка напомена описује како да конфигуришете филтере прихватања за ЦАН контролере уграђене у СПЦ58к аутомобилске микроконтролере. Документ описује конфигурације регистра и пружа неке нпрampле да убрзате конфигурацију филтера. Ове конфигурације се могу усвојити за све микроконтролере у овој породици са мањим варијацијама. Бившиampдатотеке у овом документу су засноване на СПЦ584Цк/СПЦ58ЕЦк 32-битном МЦУ.

ЦАН оверview

СПЦ584Цк/СПЦ58ЕЦк има осам ЦАН инстанци уграђених у два различита подсистема као што је документовано у референтном приручнику уређаја, Одељак Додатак А Референтни документи.
Сви ЦАН контролери у истом подсистему ће делити ресурсе као што су РАМ меморија, сат, итд. Сваки ЦАН подсистем се састоји од следећих главних блокова:

  • Модуларна ЦАН језгра: регистрима ЦАН модула се може приступити коришћењем генеричког славе интерфејса (ГСИ). Периферни ГСИ модул делује као захтев сваког мастера.
  • ЦАН-РАМ арбитер: то је додатна логика за арбитражу међу захтевима за приступ РАМ-у од стране различитих ЦАН контролера.
  • СРАМ: ЦАН подсистем ће се повезати са екстерном РАМ-ом користећи овај интерфејс, то је СРАМ.
  • ЕЦЦ контролер: садржи логику за израчунавање и валидацију кода корекције на СРАМ меморији.

За СРАМ интерфејс и организацију меморије погледајте референтни приручник уређаја Одељак Додатак А Референтни документи.

Увод у филтрирање

Логика ЦАН филтера вам омогућава да конфигуришете филтере на различите начине. Фор екampОсим тога, поруке које пролазе филтрирање прихватања могу бити ускладиштене у Рк ФИФО (0 или 1) или у наменским рк баферима. Сваки филтер се може конфигурисати као филтер прихватања или одбијања, а такође се може омогућити или онемогућити. За филтер прихватања, свака листа филтера се изводи од ставке #0 до прве одговарајуће ставке на листи филтера. Пре употребе филтера обавезно је конфигурисати почетну адресу и бројеве филтера за резервисање дела РАМ-а за поруке. Слика испод показује а view мапе заједничке меморије и регистара (дакле почетне адресе за сваки одељак).

Слика 1. Конфигурација РАМ-а за поруке нпрample

Иницијализација РАМ-а за поруке

Пре употребе било ког филтера, обавезно је конфигурисати релевантну РАМ област порука у којој ће се оне чувати. Да би то урадила, софтверска апликација мора да упише одступање (словима) од основне адресе РАМ-а поруке сваке области филтера. Број филтера за сваку област мора бити конфигурисан, тако да контролер може да разуме где се завршава свака повезана меморијска област филтера У овом документу, као нпр.ampчетири филтера, биће конфигурисана за стандардне идентификаторе (11 бита) и четири филтера за проширене идентификаторе (29 бита), тако да резервишите део РАМ-а за поруке за складиштење 11-битних филтера, а други за 29-битне филтере. Да би конфигурисао почетну адресу области стандардног ИД филтера, софтвер мора да упише ФЛССА поље регистра СИДФЦ (Регистар конфигурације филтера стандардног ИД-а). За проширене ИД филтере потребно је уписати ФЛЕСА поље регистра КСИДФЦ (Регистар конфигурације филтера проширеног ИД-а). Поља ФЛССА и ФЛЕСА треба да садрже меморијски помак „у речима“ од РАМ основне адресе поруке. Ова апликација конфигурише четири стандардна филтера са нултим помаком и четири проширена филтера

За стандардну конфигурацију филтера:

  • ФЛССА = 0к0: помак у односу на основну адресу РАМ-а за поруке је нула, тако да област почиње на почетку РАМ-а за поруке.
  • ЛСС = 4: ово је број филтера за конфигурисање. Сваки филтер је састављен од „једне“ 32-битне речи.
    У овој конфигурацији део меморије почиње од померања нуле и има величину од четири речи.

Напомена: ЦАН контролер нема контролни механизам за конфигурисање РАМ-а за поруке, то значи да програмер мора пазити да се не преклапају конфигурисане РАМ области. Следећа слика показује како да конфигуришете део меморије за складиштење проширених филтера за идентификацију.

Да бисте конфигурисали РАМ област за складиштење проширених филтера, потребно је програмирати следеће вредности у ФЛЕСА и ЛСЕ пољима.

  • ФЛЕСА = 0к04: помак у речима у односу на основну адресу РАМ-а поруке. То је зато што је у области претходно конфигурисаних филтера резервисано 0к04 речи за стандардне ИД филтере и тада је минимални употребљиви помак 0к04.
  • ЛСЕ = 4: ово је број филтера за конфигурисање. За проширени ИД филтер је састављен од `две` 32-битне речи.

У овој конфигурацији део меморије који почиње од офсета 0к04 (речи) има величину од осам речи (четири филтера по две речи). Према томе, минимални помак за следећу конфигурабилну меморијску област је 0к0Ц речи. Сви делови РАМ-а за поруке морају бити конфигурисани узимајући у обзир број и величину елемената који ће бити ускладиштени у секцији без преклапања било које секције.
Напомена: да бисте конвертовали помак речи у помак у бајтовима, потребно је помножити вредност речи са четири.

Exampброј стандардних ИД филтера

Након конфигурисања РАМ-а за поруке, можете да конфигуришете филтере уређаја.
Сваки елемент филтера се може конфигурисати као:

  • Филтер опсега
  • Двоструки ИД филтер
  • Класични филтер
  • Филтер за наменски рк бафер (филтер са једним ИД-ом)

Следећа слика показује како да конфигуришете четири различита типа филтера за стандардне идентификаторе (11-битне идентификаторе). Користите следећи регистар филтерских елемената за СТАНДАРД ИД.

Филтер опсега за РКС ФИФО0

Испод бившегampпоље филтрирања за складиштење порука са идентификаторима у опсегу [0к16, 0кФ6] у пријемни ФИФО 0.
Вредност регистра (ХЕКС): 0к081600Ф6
Регистарска вредност (БИН): 00 001 00000010110 (00000) 00011110110

Напомена: у свим бившимampако су наведени у овом документу, битови у заградама се задржавају на подразумеваној вредности. Вредности поља:

  • СФТ -> `00` -> Филтер опсега од СФИД1 до СФИД2
  • СФЕЦ -> `001` -> Чувати у Рк ФИФО 0 ако се филтер подудара
  • СФИД1 -> `00000010110` -> Први ИД опсега филтерских елемената стандардног ИД (0к16)
  • СФИД2 -> `00011110110` -> Други ИД опсега филтерских елемената стандардног ИД (0кФ6)
Двоструки филтер за РКС ФИФО1

Испод је бившиampфилтер двоструког ИД-а за чување идентификатора порука 0 к 0А или 0 к ФФ у ФИФО 1.
Вредност регистра (ХЕКС): 0к500А00ФФ
Регистарска вредност (БИН): 01 010 00000001010 (00000) 00011111111
Вредности поља:

  • СФТ -> `01` -> Дуал ИД филтер за СФИД1 или СФИД2
  • СФЕЦ -> `010` -> Чувати у Рк ФИФО 1 ако се филтер подудара
  • СФИД1 -> `00000001010` -> Први ИД стандардног двоструког ИД филтер елемента
  • СФИД2 -> `00011111111` -> Други ИД стандардног дуал ИД филтер елемента
Рк наменско филтрирање бафера

Испод је бившиampле за чување порука са идентификацијом 0 к 7Ф0 у наменски рк бафер #0.
Користећи наменски бафер, могуће је филтрирати само један ИД поруке и то онај који је написан у пољу СФИД1.
Вредност регистра (ХЕКС): 0к3ФФ00000
Регистарска вредност (БИН): 00 111 11111110000 (00000) 00 (000) 000000

  • СФТ -> `00` -> ова вредност није важна јер филтрирање за складиштење у наменски РКС БУФФЕР иу овом случају СФТ вредност се занемарује (погледајте случај описа СФЕЦ поља `111`)
  • СФЕЦ -> `111` -> Чувати у наменском рк баферу ако се филтер подудара
  • СФИД1 -> `11111110000` -> стандардни ИД који ће филтер прихватити (0к7Ф0)
  • СФИД2[10, 9] -> `00` -> ово поље одлучује да ли се примљена порука чува у рк баферу или се третира као порука А, Б или Ц секвенце поруке за отклањање грешака. У овом случају, софтверска апликација жели да сачува поруку у рк баферу.
  • СФИД2[0,5] -> `000000` → индекс наменског бафера рк где ће бити ускладиштена одговарајућа порука (ако је конфигурисан Н наменског бафера рк, овај индекс може бити у опсегу [0, Н -1]) .У овом случају порука се чува у наменском баферу #0.
Класични филтер за РКС ФИФО0

Овај бившиampле показује како да ускладиштите поруке са идентификатором у опсегу [0к688, 0к68Ф] у РКС ФИФО 0. За класични филтер, пар идентификатор/маска мора бити дефинисан. Идентификатор мора бити уписан у СФИД1, а маска у СФИД2 поља филтерског елемента. У класичном филтеру, ИД поруке које пролазе филтер добијају се применом маске на идентификатор на следећи начин:

  • ово је значење битова филтера -> 1 = мора да се подудара (0 = није брига);
  • Имајући филтер са маском састављеном од свих „1“, само један идентификатор ће проћи филтеру (онај који је написан у пољу СФИД1) док ће филтер који има маску састављену од свих „0“ проћи сви идентификатори филтер.

Очигледно, ово су најједноставнији филтери. Испод је објашњење како да организујете филтер опсега за стандардни ИД у опсегу [0к688, 0к68Ф] који чува примљене поруке у РКС ФИФО 0. Ово је стандардни филтер порука, тако да ћемо дати вредности СФИД1 = идентификатор и СФИД2 = Маска.
Вредност регистра (ХЕКС): 0к8Е8Б07Ф8
Регистарска вредност (БИН): 10 001 11010001011 00000 11111111000

  • СФТ -> `10` -> Класични филтер: СФИД1 = филтер, СФИД2 = маска
  • СФЕЦ -> `001` -> Чувати у Рк ФИФО 0 ако се филтер подудара
  • СФИД1 = 110 1000 1011 (идентификатор 0к68Б)
  • СФИД2 = 111 1111 1000 (Маск0к7Ф8)

Применом маске на идентификатор (мало) са значењем бита маске (1 = мора да одговара 0 = није брига) налазимо следећи филтер опсега где симбол `Кс` представља нулу или један.

Филтер = 110 1000 1КСКСКС

Затим ће све стандардне поруке у опсегу [0к688, 0к68Ф] проћи филтер.

Конфигурација проширених ИД филтера

Исти типови филтера се могу имплементирати и за проширене идентификаторе (29-битни идентификатори).

Филтер проширеног опсега за РКС ФИФО0

У овом екampда, овај филтер ће чувати поруке са идентификаторима у опсегу [0кФФФФФФ, 0к1ФФФФФФФ] у ФИФО 0.
Испод вредности регистра:

  • Вредност регистра Ф0 (ХЕКС): 0к200ФФФФФ
  • Вредност регистра Ф1 (ХЕКС): 0кДФФФФФФФ
  • Вредност регистра ФО (БИН): 001 00000000011111111111111111111
  • Вредност регистра Ф1 (БИН): 11 (0) 11111111111111111111111111111

Вредности поља:

  • ЕФЕЦ -> `001` -> Чувати у Рк ФИФО 0 ако се филтер подудара
  • ЕФИД1 ->`00000000011111111111111111111` -> Први ИД елемента филтера проширеног ИД-а
    опсег (0кФФФФФ)
  • ЕФТ -> `11` -> Филтер опсега од СФИД1 до СФИД2
  • СФИД2 ->`11111111111111111111111111111` -> Други ИД опсега филтерских елемената стандардног ИД-а (0к1ФФФФФФФ)
Двоструки ИД филтер за ФИФО 1

У овом екampдуал ИД филтер ће чувати поруке које имају идентификаторе 0кАААА или 0кБББББ у ФИФО 1.

  • Вредност регистра Ф0 (ХЕКС): 0к400АААА
  • Вредност регистра Ф1 (ХЕКС): 0к400БББББ
  • Вредност регистра ФО (БИН): 010 000000000 10101010101010101010
  • Вредност регистра Ф1 (БИН): 01 (0) 00000000010111011101110111011

Вредности поља:

  • ЕФЕЦ -> `010` -> Чувати у Рк ФИФО 1 ако се филтер подудара
  • ЕФИД1 -> `00000000010101010101010101010` -> Први проширени ИД (0кААААА)
  • ЕФТ -> `01` -> Дуал ИД филтер за ЕФИД1 или ЕФИД2
  • ЕФИД2 -> `00000000010111011101110111011` -> Други проширени ИД (0к000БББББ)
Наменски рк бафер

У овом екampфилтрирање ће чувати поруке које имају идентификатор 0к000ААААА у наменски рк бафер #1. Такође у овом сценарију, коришћењем наменског бафера може се филтрирати само један ИД поруке и то онај који је уписан у поље ЕФИД1.

  • ИД филтер за наменски рк бафер (ИД = 0к000АААА)
  • Вредност регистра Ф0 (ХЕКС): 0кЕ00АААА
  • Вредност регистра Ф1 (ХЕКС): 0к00000001
  • Вредност регистра ФО (БИН): 111 00000000010101010101010101010
  • Вредност регистра Ф1 (БИН): 00 (0) 000000000000000000 00 (000) 000001

Вредности поља:

  • ЕФЕЦ -> `111` -> Чувајте у наменском рк баферу ако се филтер подудара
  • ЕФИД1 -> `00000000010101010101010101010` -> проширени ИД који филтер прихвата
    (0к000АААА)
  • ЕФТ -> `00` -> ова вредност није важна јер филтрирање за складиштење у наменски РКС
    БУФФЕР и у овом случају ЕФТ вредност се занемарује (погледајте случај описа ЕФЕЦ поља `111`)
  • ЕФИД2[10, 9] -> `00` -> ово поље одлучује да ли се примљена порука чува у Рк баферу или се третира као порука А, Б или Ц секвенце поруке за отклањање грешака. У овом случају софтверска апликација жели да сачува поруку у Рк бафер
  • ЕФИД2[0,5] -> `000001` -> индекс наменског рк бафера где ће се ускладиштити одговарајућа порука (ако сте конфигурисали Н наменског рк бафера, овај индекс може бити у опсегу [0, Н -1]). У овом случају порука се чува у наменском баферу #1
Класични филтер за рк ФИФО1

У овом екampОсим тога, програмирање филтера ће складиштити поруке које се чувају са идентификатором у опсегу [0 к ФФФФФ, 0 к1ФФФФФФ] у рк ФИФО 1. Подразумева се да је метод маскирања исти као и стандардни ИД филтери. Испод је објашњење како да програмирате филтер проширеног ИД опсега у бесу [0 к ФФФФФ, 0 к 1ФФФФФФ] који чува примљене поруке у рк ФИФО 1. Ово је филтер за проширене поруке, тако да ћемо дати вредности ЕФИД1 = идентификатору и ЕФИД2 = Маска

  • Вредност регистра Ф0 (ХЕКС): 0к400ФФФФФ
  • Вредност регистра Ф1 (ХЕКС): 0к9Е0ФФФФФ
  • Вредност регистра Ф0 (БИН): 010 00000000011111111111111111111
  • Вредност регистра Ф1 (БИН): 10 (0) 11110000011111111111111111111
  • ЕФТ > `10` -> Класични филтер: ЕФИД1 = филтер, ЕФИД2 = маска
  • ЕФЕЦ -> `010` -> Чувати у Рк ФИФО 1 ако се филтер подудара
  • ЕФИД1 = 0 0000 0000 1111 1111 1111 1111 1111 (идентификатор 0кФФФФФ)
  • ЕФИД2 = 1 1110 0000 1111 1111 1111 1111 1111 (Маска 0к1Е0ФФФФФ)

Применом маске на идентификатор (бит) са значењем бита маске (1 = мора да одговара 0 = није брига) налазимо следећи филтер опсега где симбол `Кс` представља нулу или један.

Филтер = 0 000Кс КСКСКСКС 1111 1111 1111 1111 1111

Дакле, све проширене поруке у опсегу [0кФФФФФ, 0к1ФФФФФ] ће проћи филтер.

Додатак А Референтни документи

  • СПЦ584Цк/СПЦ58ЕЦк Референтни приручник
  • СПЦ584Цк/СПЦ58ЕЦк датасхеет

Додатак Б Акроними и скраћенице

Скраћеница Потпуно име
ЦАН Мрежа контролера
FD Флексибилна брзина преноса података
Историја ревизије документа
Датум Версион Промене
01-мар-2021 1 Првобитно издање.

ВАЖНО ОБАВЕШТЕЊЕ - МОЛИМО ПАЖЉИВО ПРОЧИТАЈТЕ

СТМицроелецтроницс НВ и његове подружнице („СТ“) задржавају право да у било ком тренутку без најаве изврше измене, исправке, побољшања, модификације и побољшања СТ производа и / или овог документа. Купци би требало да прибаве најновије релевантне информације о СТ производима пре него што дају наруџбине. СТ производи се продају у складу са условима продаје СТ важећим у тренутку потврде наруџбине.

Купци су искључиво одговорни за избор, избор и употребу СТ производа, а СТ не преузима одговорност за помоћ у пријави или дизајн производа купаца.

СТ овде не даје никакву лиценцу, изричиту или имплицирану, за било које право интелектуалне својине.

Препродаја СТ производа са одредбама другачијим од информација наведених овде поништава сваку гаранцију коју СТ даје за такав производ.

СТ и СТ лого су заштитни знакови СТ. За додатне информације о СТ заштитним знаковима, погледајте ввв.ст.цом/традемаркс. Сви други називи производа или услуга су власништво њихових власника.

Информације у овом документу замењују и замењују информације које су претходно дате у претходним верзијама овог документа.

© 2021 СТМицроелецтроницс – Сва права задржана

Документи / Ресурси

СТ ТН1348 СПЦ58к Конфигурисање ЦАН и ЦАН-ФД филтера [пдфУпутства
ТН1348, СПЦ58к Конфигурисање ЦАН и ЦАН-ФД филтера

Референце

Оставите коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена *