자동차

차량 네트워크 / automotive ethernet Frame

삼전동해커 2023. 3. 13. 17:26

Frame Format

이더넷이 사용하는 프레임 포멧은 비슷하게 다양하지만, 이번엔 가장 흔하게 쓰이는 포멧으로 설명한다.

 

Preamble

패킷이 들어오고 있음을 알리는 1과0으로 구성된 7바이트, 송신자와 수신자가 동기화할 수 있도록 함.

 

SOF

1바이트 이지만 마지막이 0으로 끝날 경우 1로 바뀐다. SOF는 수신자가 프레임에 대해 다음부터 실제 이더넷 프레임이라는 것을 알려줌.

 

Destination and Source Address

6바이트 주소로 3바이트의 organization number(회사나 단체에 관한 정보)와 3바이트의 장비에 대한 정보로 구성된다.

각 프레임은 하나 이상의 출발지와 도착지에 대한 정보가 있다는 점이 CAN,LIN FlexRay와 다른 점이다.

다른 차량 네트워크와는 다르게, 프레임 전송자는 프레임 자체를 기반으로 정의되지 않는다. 

모든 노드는 모든 프레임을 받은 다음, 패킷을 사용할지 결정한다.(브로드캐스팅)

 

802.1Q

옵션 4바이트 값으로 VLAN에 관한 값이다. 프레임의 우선순위 값을 정해준다. AVB 실시간 스트리밍에서 사용함.

 

Type and Data(payload)

type은 Ethertype이라고 불리는데, 이름과는 달리 ethernet의 타입을 설명하는 부분이 아니라 Data필드 내의 데이터 타입을 설명한다.

최신의 네트워크는 계층화 원칙과 데이터 캡슐화를 위해 디자인되었다. Ethertype은 layer2(Ethernet frame)에서 인코딩된 layer 3 프로토콜 메세지를 나타낸다.

가장 유명한 ethertype은 0x800인데 이 값은 IPv4 패킷임을 의미한다. 이 패킷은 TCP나 UDP 같이 자체로 더많은 헤더나 페이로드를 가지고 있어 더 높은 레이어까지 올라갈 수 있다.

CAN과 같이 data section 뒤에 Arbitration ID와 control fields에 엔진 RPM이나 온도 등 실제 데이터를 가지고 있는 경우와는 다른 시스템이다. 

 

Frame Check Sequence(FCS)

32비트 CRC 계산 값이고 송신자에 의해 채워진다. 수신자는 값을 받은 후 똑같은 공식을 이용해 계산해 전송된 값과 비교한다. 비교 값이 맞지 않는다는 건 전송 도중에 충돌이 있었다는걸 의미한다.

프레임이 드랍된 것 뿐만 아니라 알림이날 에러 메세지도 생성되지 않았다는 의미이다.

노드나 스위치가 프레임을 드랍되었을 때 이걸 알아챌 방법이 없다. 이럴 때 VehicleSpy가 유용하다. 이 도구를 이용해 드랍된 패킷이나 잘못된 패킷에 대한 정보를 얻을 수 있다.