자동차 임베디드 SW/Aurix MCU

AURIX MCMCAN 모듈4 -Tx Handling

존버매니아.임베디드 개발자 2023. 7. 18. 21:10
반응형

노드마다 총 32개의 Tx Buffer를 가진다.
Tx Buffer는 Dedicated Buffer , Tx FIFO , Tx Queue 3가지 타입으로 나뉜다.
32개의 Tx Buffer를 얘네가 나눠서 쓰는 컨셉이다.
이때, Tx FIFO랑 Tx Queue 는 동시에 사용할 수는 없다.

Dedicated Buffer + Tx FIFO 또는
Dedicated Buffer + Tx Queue
조합으로 사용가능하다.
별도의 레지스터를 통해서 각 타입의 버퍼를 몇개 사용할지 정해야한다.
예를 들면 dedicated Buffer 10개, TX FIFO 5개
이런식으로 정해서 쓴다.
두 버퍼의 총합은 최대 32개이다.

각 버퍼에 송신하려는 Tx message의 ID값과 데이터 영역 등을 셋팅하고 해당 버퍼와 매칭되는 Request Flag Bit를 set하면 메세지가 송신된다.
이때 만약 여러개의 Tx Message들이 request 되어있다면 어떤 버퍼를 먼저 송신시킬 것인지를 규칙에 따라 결정하여 차례차례 송신을 한다.

이 규칙은
Dedicated Buffer + Tx FIFO 를 사용하는 경우와
Dedicated Buffer + Tx Queue를 사용하는 경우
서로 규칙이 다르다.

Tx FIFO를 사용하는 경우,
Dedicated Buffer 중에 request 요청된 메세지들 그리고 TX FIFO에서 가장 앞에 있는(피포에 들어온지 가장 오래된 버퍼)
이들 간에 메세지 ID를 기반으로 우선순위를 메겨서 차례차례 메세지를 보낸다.

Tx Queue를 사용하는 경우,
Dedicated Buffer 중에 request 요청된 메세지들과 Tx Queue에 들어있는 메세지 모두 중에 id 우선순위 높은 순서대로 송신한다.

반응형