본문 바로가기

카테고리 없음

OSEK - COM

Communication

OSEK COM의 가장 큰 특징은 메시지를 전송 단위로 하는 publish/subscribe 통신 모델을 사용하며, 다양한 통신 옵션을 제공한다는 점이다.

OSEK은 CCCB(Communication Conformance Class)를 지원한다.

 - Unqueued Messages

 - Queued Messages

태스크 ISR이 메시지를 읽고 쓰는 접근자이며, 접근 타입은 SENT  RECEIVED가 있다.

메시지 접근은 메시지 버퍼를 바로 접근할 수 있고, 메시지 복사를 통한 간접 접근을 할 수 있다.

Message Communication Model

태스크 및 ISR간 통신은 메시지를 통해 이뤄진다.

메시지는 publish / subscribe 방식으로 전송된다.

송신 태스크는 SendMessage를 통해 메시지를 전달하고, 수신 태스크는 ReceiveMessage를 통해 메시지를 전달받는다.

OSEK COM을 거처서 publisher와 subscriber가 통신하기 때문에 상대방의 존재를 알거나 시스템의 전체적인 연결 상태를 파악할 필요가 없다는 장점이 있다.

Unqueued Messages

엔진 온도, 바퀴 속도 같은 시스템의 현재 값을 나타낸다.

Send operation은 현재값을 덮어쓰고, receive operation은 메시지 데이터를 소비하지 않고 그냥 읽는다.

메시지 카피를 위한 메모리 할당은 MessageCopyAllocation1 속성에 달려있다.

Queued Messages

메시지가 FIFO 버퍼에 저장되며 받은 순서대로 읽힌다.

오직 task(ISR은 아님) 이 종류의 메시지를 접근할 수 있다.

Send operation은 메시지 큐끝에 메시지를 보내고, receive operation은 큐의 첫번째 값을 제거 하고 그값을 한번만 읽는다.