본문 바로가기
SENT통신

[SENT통신] 1강. SENT(Single Edge Nibble Transmission)/SAE J2716 개요

by 아이언벨 2022. 9. 6.
반응형

안녕하세요. 아이언벨입니다.

 

 

첫 블로그 글은 SENT 통신에 대해 이야기해보겠습니다.

(지금 진행하는 프로젝트가 SENT통신 이어서 첫 블로그 글이 SENT 통신이 되어버렸네요.)

 

SENT란?

SENT는 Single Edhe Nibble Transmission의 약자이며, SAE J2716으로 불리기도 합니다.

SAE라는 단체에서 SENT 통신에 대한 표준화를 정의했고 그 내용이 SAE J2716입니다.

SAE Link : https://www.sae.org/standards/content/j2716_201001/

 

J2716_201001: SENT - Single Edge Nibble Transmission for Automotive Applications - SAE International

This document defines a level of standardization in the implementation of the digital pulse scheme for reporting sensor information via Single Edge Nibble Transmission (SENT) encoding. This standard will allow ECU and tool manufacturers to satisfy the need

www.sae.org

 

자동차 애플리케이션을 위해 사용되는 통신이며, 이름에서도 알 수 있듯이 한 개의 Wire를 가지고 통신을 합니다.

양방향 통신은 아니고 단방향 통신입니다.

일반적으로 차량에서는 Sensor가 ECU에게 측정한 데이터를 전송하기 위해 사용됩니다.

 

이미 차량에서 Sensor가 SENT를 사용되는 이유가 모두 설명되었네요.

 

SENT 사용 이유 (장점)

1. 한 개의 Wire를 사용한다.

    > 차량에서 와이어가 많으면 크게 2가지의 단점이 있습니다.

    > 첫 번째는 차량의 무게 증가이며 무게가 증가되면 연비가 떨어지죠.

    > 두 번째는 재조 단가입니다. 아무래도 적은 수의 와이어를 사용하면 비용이 절감되는 효과가 있죠.

 

2. 단방향이다.

    > Sensor는 양방향 통신을 할 필요가 없습니다. 온도 센서를 예를 들면 현재 온도가 몇 도라고 알려주면 될 뿐 센서가 필요로 하는 정보는 없습니다. 

 

3. 프로그램이 간단하다.

    > 통신을 하기 위해서는 MCU에 Logic을 구현해야 합니다. 아래 다시 설명하겠지만 SENT Frame은 심플합니다. 그만큼 Logic구현이 어렵지 않습니다.

 


SENT Frame

- SENT 프레임을 우선 보여드리겠습니다.

SENT Frame (직접 스코프를 사용해서 캡쳐했습니다.)

- Synchonization Calibration Pulse

    > 2가지 목적을 가진 Pulse입니다.

    > 첫 번째는 SENT는 비동기 통신이기 때문에 Pulse의 이름과 같이 Sync를 맞추기 위해 존재합니다. 56Ticks으로 고정되어있기 때문에 1Tick의 대한 시간적이 Sync를 맞출 수 있습니다.

    > 두 번째는 Frame의 시작을 알려줍니다. 다수의 통신은 Start of bit라던지 Preamble 등의 이름으로 Frame의 시작을 알려줍니다.

    > Tick Time이 3us이기 때문에 56ticks = 168us 네요.

 

- Status 

    > Data를 전송하는 장치의 상태를 표시합니다. 

    > Status 포함 Data, CRC는 모두 0x0 ~ 0xF까지의 데이터를 가질 수 있습니다.

    > 특이사항은 기본 값이 12tick입니다. 즉 0x0 은 12tick(36us)를 사용하고 0xF는 27tick(81us)를 사용합니다.

 

- Data

    > Data는 SENT통신 사양에 따라 1개 ~ 6개를 사용합니다. (위 캡처 이미지는 6개를 사용했습니다.)

    > Status와 동일하게 0x0 ~ 0xF까지 사용합니다.

    > 당연히 6개의 Data를 사용할 경우 0x000000 ~ 0xFFFFFF 까지 사용할 수 있습니다. 딱 3byte 되네요.

 

- CRC

    > CRC 계산법은 SAE에서 정의가 되어있기 때문에 고정입니다. 

    > CRC는 Status와 Data의 무결성을 증명하기 위해 사용됩니다. 비슷한 것으로는 Check Sum이 있네요.

    > CRC 계산법은 추후 다시 블로그에 올리겠습니다. (CRC만 해도 내용이 많아요~)

 

- Optional Pause Pulse

    > 이름대로 Option입니다. 사용할 수도 있고, 사용하지 않을 수 도 있습니다.

    > 위 Frame에서는 사용하지 않았습니다. 

    > Pause Pulse는 Data를 포함하지 않습니다. 즉 Pulse길이에 따른 의미는 없습니다.

 

Frame을 보시면 아시겠지만 비교적 간단한 Frame 구조를 가지고 있습니다.

총 Nibble의 수 8개가 전부입니다. (Status + Data(6) + CRC)

Data의 수를 줄이면 더 줄어들겠죠. (제가 진행한 모든 SENT프로젝트는 6개의 Data를 사용하긴 했습니다.)

 

주절주절 전달하고 픈 내용이 많네요.

추가적인 내용은 2편에 다시 작성하겠습니다.

 

 

추가)

앞으로 한 동안 통신관련된 블로그를 작성할 예정입니다.

RS-232C, RS-485, GPIB, LIN, CAN, FlaxRay, Ethernet, Automotive Ethernet 등등... 

시간이 허락하는대로 작성하겠습니다.

반응형

댓글