SENT 메시지는 Falling edge 사이의 시간을
기반으로 데이터를 송수신합니다.
프로토콜(Protocol)의 타이밍은
Transmitter와 Receiver 사이에 약속된 시간을 기반으로 동작합니다.
(Tick 타임의 약속)
이것을 Ttick이라고 하며, Ttick은 3~90us 값을 사용할 수 있습니다.



SENT 통신은 1개의 선을 이용하여 통신하기 때문에
Transmitter와 Receiver가 서로 동일한 Ttick을 사용해야만 합니다.
(마치 UART 통신을 할 때 정해진 속도로만 
통신을 하는 것과 동일합니다.)

"Ttick의 변동 범위"
SENT 통신에서는 Ttick 최대 20%까지 변동되어도 통신이 가능해야 합니다.
이러한 스펙(Specification)이 있는 이유는 시간이나 온도에 따른 Clock이 변할 수 있기 때문입니다.
SENT 메시지(Message)는 아래와 같이 구성됩니다.


"SENT Message Format"
Sync Period: 56 Tick
Status: 12~27 Tick
Data: 12 ~27 Tick
CRC: 12 ~ 27 Tick
Pause(Optional): 12~768 Tick
SENT Message Format은
Sync period부터 CRC까지로 구성됩니다.
(Pause는 Optional)

"Sync period"
Sync period는 메시지 프레레임의 시작을 의미하며,
Transmitter와 receiver 사이에 Ttick의 동기를 위해 사용됩니다.
Sync period에서
Transmit 모드에서는
5Tick 동안 low를 유지하고, 51Tick 동안 High를 유지합니다.
5Tick 동안 Low를 유지하면 Receiver에서는
5Tick 동안 Low 값의 시간으로 SENT 통신 속도를 알 수 있습니다.

"Status"
Sync puls 다음에 4bit로 구성되는 status는
Device의 상태(Status), Identification 또는 
데이터처럼 사용할 수 있습니다.
Status는 데이터와 동일한 형태로 사용됩니다.

"Data"
Status 다음에는 최소 1개에서 최대 6개의 데이터로 구성됩니다.
각각은 4bit로 구성되며 0x00~0x0F까지 표현합니다.
Transmit 모드에서 5Tick 동안 low로 유지 후
나머지 시간 동안 7~22 Tick을 High로 유지하여 데이터를 표현합니다.

0x00은 5Tick 동안 Low 유지 후 7Tick 동안 High 유지
0x01은 5Tick 동안 Low 유지 후 8Tick 동안 High 유지
0x02는 5Tick 동안 Low 유지 후 9Tick 동안 High 유지
0x03은 5Tick 동안 Low 유지 후 10Tick 동안 High 유지
0x04는 5Tick 동안 Low 유지 후 11Tick 동안 High 유지
0x05는 5Tick 동안 Low 유지 후 12Tick 동안 High 유지
0x06은 5Tick 동안 Low 유지 후 13Tick 동안 High 유지
0x07은 5Tick 동안 Low 유지 후 14Tick 동안 High 유지
0x08은 5Tick 동안 Low 유지 후 15Tick 동안 High 유지
0x09은 5Tick 동안 Low 유지 후 16Tick 동안 High 유지
0x0A은 5Tick 동안 Low 유지 후 17Tick 동안 High 유지
0x0B은 5Tick 동안 Low 유지 후 18Tick 동안 High 유지
0x0C은 5Tick 동안 Low 유지 후 19Tick 동안 High 유지
0x0D은 5Tick 동안 Low 유지 후 20Tick 동안 High 유지
0x0E은 5Tick 동안 Low 유지 후 21Tick 동안 High 유지
0x0F은 5Tick 동안 Low 유지 후 22Tick 동안 High 유지

"CRC"
CRC는 Data 이후에 전송되며,
6개 데이터에 대한 4bit CRC로 만들어집니다.

"CRC의 Polynomial"
CRC의 Polynomial은
x^4 + x^3 + x^2 + 1을 사용합니다.
(Seed value는 '0101' 사용)

 #define NUM_NIBBLES 6

// Array holding received nibbles
rec_data[NUM_NIBBLES];
// CRC lookup table
crc_table = {0,13,7,10,14,3,9,4,1,12,6,11,15,2,8,5};
// Initialize checksum to seed value
Checksum = 5;
// For each data nibble, bit-wise XOR with lookup value from table
for(i=0;i<NUM_NIBBLES;i++)
{
Checksum = rec_data[i] ^ crc_table[Checksum];
}
// Bit-wise XOR with additional 0 value
Checksum = 0 ^ crc_table[Checksum];

CRC 코드 Example



참조: dsPIC33/PIC24 FRM, Single-Edge Nibble Transmission (SENT)


"SENT Message의 예제"
SENT 메시지 프레임은 항상 Status와 CRC를 사용합니다.
따라서 가장 짧은 메시지 프레임은
1개 데이터를 가지게 됩니다.
이때 1개 메시지 프레임은 Sync + Status + Data + CRC로 구성됩니다.






'SENT통신' 카테고리의 다른 글

SENT 통신; 소개(SENT Introduction)  (0) 2019.02.07
Posted by KennyShin
,
SENT 통신은 단방향 통신으로
SAE J2716을 근거로 만들어진 Single-wire 통신입니다.
(1개의 선으로 통신)

주로 Automotive Application을 위해서 사용되며,
SENT는 Single-Edge Nibble Transmission의 약자입니다.
프로토콜은 두 개 지점 사이에 통신을 하기 위해서 사용되며,
한 개 지점은 Transmitter,
다른 한 개 지점은 Receiver로 동작합니다.

주로 자동차의 ECU(Engine Control Unit)에서 사용됩니다.,
자동차 내에서 센서(Sensor)와 컨트롤러 간에 
데이터를 통신하는데 사용됩니다.
1개선을 이용해 통신하기 때문에
비교적 저렴한 가격에
통신을 구현할 수 있다는 장점을 가지고 있습니다.
참조: dsPIC33/PIC24 FRM, Single-Edge Nibble Transmission (SENT)


'SENT통신' 카테고리의 다른 글

SENT 통신; 프로토콜 개요(Protocol Overview)  (4) 2019.02.07
Posted by KennyShin
,

린(LIN) 통신 특징


  • 공개된 표준으로 라이센스 비용 없음
    • LDF파일을 이용하여 LIN stack 생성시 stack사용료는 지불 해야함 
    • ihr의 경우 1년 약 150만원-마이크로칩 기준
  • 1개 라인으로 통신
  • 통신 속도는 20Kbit/s
  • 하나의 마스터와 여러개의 슬레이브로 구성
  • 최대의 장점으로 Slave단에 크리스탈이나 레조네이터가 필요없고 UART포트만 있으면 LIN통신 구현 할 수 있음
    • 따라서 CAN통신보다 저가로 구현할 수 있다는 장점이 있음)


Posted by KennyShin
,

LIN 통신이란? FAQ

LIN 2018. 5. 17. 14:25

LIN(Local Interconnect Network) FAQ


l  SAE J2602?

n  10.4kBaud Fix된 속도로 사용

n  일반적으로 LIN Bus Specification Revision 2.0 스펙의 부분집합

n  SAE J2602는 샘플 포인트 일치 테스트(Sample Point conformance testing)에서 엄격한 스펙을 요구하고 configuration 과정이 다르며 드라이버 상태(Driver status)가 각 응답에 부가 정보를 제공하기 위해 추가되어 있습니다.


l  NCF(Node Capability File) 파일이란?

n  Slave Node에 대한 특징(기능 등)을 나타냄


l  LIN을 사용할 수 있는 Device?

n  LIN UART baseUART Peripheral이 있는 device는 모두 LIN통신이 가능(8비트/16비트/32비트 MCU모두에서 사용가능)


l  LIN이 주로 사용되는 Application?

n  Seat , Open 감지, 센서, Auto leveler, 사이드 미러 접히는 기능 등에서 주로 사용


l  LIN 통신용 Device recommend?

n  LIN Slave의 경우 8비트급이면 사용가능하며 LIN Master의 경우에는 16비트 이상급으로 사용


l  LIN통신의 최대 Slave 개수는?

n  최대 15개까지 사용( Master 1 / Slave는 최대 15개까지 )


l  LIN통신의 최대 통신 거리는?

n  최대 40meter


l  LIN통신의 최대 통신속도는?

n  최소 1kbit/s ~ 20kbits/s


l  LIN bus voltage

n  9~18V( 자동차 베터리 전압)


l  LIN통신을 위한 MCU의 외부 Oscillator 사용 유무

n  Slave 노드는 크리스탈이나 레조네이터 없이 Internal oscillator 사용가능


l  Vbat LIN Bus 사이의 Termination 저항

n  LIN Master의 경우 1kOhm을 사용 / Slave의 경우 30kOhm(LIN Transceiver 에 내장)


l  K-Tranceiver LIN-Transceiver의 차이점

n  모두 1wire로 통신하는 구조로 동일
하지만 LIN-Transceiver의 경우 Rising slope Falling slope가 있어 EMC에 최적화


l  LIN Serial Analyzer( Part number: APGDT001, $64.95 )

n  구입경로: http://www.microchipdirect.com/ProductSearch.aspx?Keywords=APGDT001

n  기능

u  LIN Master 동작, LIN Message의 송신 및 수신

u  LIN Data에 대한 모니터링, LIN 데이터 로깅


l  Ihr 구입 가격 및 Contact point

n  1 License( 150만원) - 8비트, 16비트, 32비트 제품군별로 별도 구입

n  LIN flash bootloader 가격: 650만원

n  Ihr contact

l  임베디드 시스템 코리아(02-856-8246, esk@eskorea.net)

n  홈페이지: http://www.eskorea.net

n  주소: 서울시 금천구 가산디지털 1 83, 파트너타워 1, RM603


l  LIN Tranceiver 내장 LDO 출력 전류는?

n  ATA6625/663231/32/54/55 의 경우 3.3V/5V에서 85mA 출력


l  LIN IC recommendation(2017.7.6)

n  LIN Transceiver only: ATA663211

n  LIN Transceiver + Voltage Regulator: ATA6625/663231/32/54/55

u  ATA6625: Compatible with NXP TJA1028 and classic pinout

u  ATA663231: LIN-SBC with 3.3V regulator

u  ATA663232: LIN-SBC with 3.3V regulator + high-voltage Wake Input

u  ATA663254: LIN-SBC with 5.0V regulator

u  ATA663255: LIN-SBC with 5.0V regulator + high-voltage Wake Input

u  High-voltage wake input(ATA663232/55)

l  ATA663231/54에 있는 NRES핀 대신에 WKin이 존재
WKin
sleep 모드나 slienct모드로부터 디바이스를 wake up하는데 사용
통상 어플리케이션 외부 스위치에 연결되며 local wake-up을 위해 사용

n  LIN Transceiver + Voltage Regulator + Watchdog: ATA663431/54

u  Watchdog은 외부 저항을 통해 주기 조정가능(34kOhm~120kOhm)


n  LIN Transceiver + Voltage Regulator + Watchdog + Driver Actuator: ATA663331/54


l  참조페이지 및 문서:

n  http://archive.eetasia.com/www.eetasia.com/ART_8800548321_590626_NT_dcd1360a.HTM

n  https://m.eet.com/media/1134532/15074-499208.pdf


'LIN' 카테고리의 다른 글

LIN FRAME PID LOOK-UP TABLE  (0) 2019.01.11
LIN 소개 (LIN Introduction)  (0) 2019.01.10
린(LIN) 통신의 특징들 알아보기  (0) 2019.01.06
Posted by KennyShin
,