틀린 곳이 있으면 댓글을 달거나 연락 주시기 바랍니다.
87c196mc@daum.net 017-279-9381
LIN Diagnostic and Configuration Specification
LIN 진단과 설정 규정
1. 개요
LIN 진단과 설정 표준은 한 개의 노드 설정 방법(모든 노드에 구현해야할 의무 사항)과 세 개의 진단 자료 수집 방법(구현은 선택적)을 정의한다.
진단과 설정 데이터는 LIN 통신 규정(LIN Protocol Spec.)에서 규정한 방법에 의해 전달된다. C 프로그래밍 언어를 위한 표준 API는 LIN API 규정에 규정되어있다.
2. 노드 설정
LIN 노드 설정은 LIN 슬레이브를 클러스터 내에서 설정하는데 사용된다. 이것은 기성품으로 구성되는 한 클러스터 내에서 슬레이브 노드끼리 충돌하는 것을 방지하는 도구를 제공한다.
구성은 하나의 큰 주소 공간을 가짐으로써 수행되는데, 주소공간은 프레임 당 하나의 메시지 아이디, 슬레이브 노드 당 하나의 제품 아이디와 초기 NAD로 구성된다. 이러한 숫자들을 이용하여 클러스터 내에 전송되는 모든 프레임에 대하여 유일한 프레임 아이디를 할당하는 것이 가능하다.
2.1 노드 모델
한 슬레이브 노드의 메모리는 그림2.1과 같이 묘사된다.
그림 2.1: 슬레이브 노드 메모리 모델
한 슬레이브 노드는 고정된 제품 아이디와 모든 프레임에 대한 메시지 아이디를 갖는다.
리셋 직후(Note 1: 전원 off 시점에 구성이 NVRAM에 저장되어 있을 경우, 전원 on은 리셋으로 간주되지 않는다.), 슬레이브 노드는 다음과 같은 상태에 있어야한다.
● 첫 개체는 1, 두 번째 개체는 2, 등으로 시작하는 동적으로 결정된 객체 값(초기 NAD)과 동일한 NAD 집합을 가져야 한다. 객체 번호를 결정하는 방법은 LIN 표준에 포함되지 않는다.(Note 2: 객체 구성을 위해 점퍼 선을 이용하는 방법도 있다.)
● 모든 PID는 무효로 표시되어야 한다.
0x3c 이상의 아이디를 갖는 프레임은 고정된(그리고 유효한) 아이디를 가지며, 어떠한 메시지 아이디도 갖지 않는다.
2.2 와일드카드 (WILDCARDS)
노드 설정 요청에 어떤 정보를 규정하지 않은 상태로 두기 위해 표2.1의 와일드카드가 사용될 수 있다.
표 2.1: 모든 요청에 대하여 사용할 수 있는 와일드카드
속성 | 와일드카드 값 | ||
NAD | 127 | ||
공급자 ID | 0x7FFF | ||
기능 ID | 0xFFFF | ||
변형 ID | 0xFFFF |
공급자 아이디 와일드카드, 기능 아이디 와일드카드와 메시지 아이디 와일드카드의 구현은 선택적이다.
2.3 PDU 구조
이 절의 정보는 3.3.1절에 제공된 정보의 일부분이다. 3.3.1절 전체는 선택적이지만 이부분은 의무적으로 노드에 구현해야한다.
LIN 진단 프레임에서 전송되는 단위를 PDU(Packet Data Unit)라고 명명한다. 노드 구성에 사용되는 하나의 PDU는 완전한 메시지가 되어야 한다.
클라이언트(ISO:테스터, LIN:마스터)가 전송하는 메시지를 요청이라 하고, 서버(ISO:마스터, LIN:슬레이브)가 전송하는 메시지를 응답이라 한다.
LIN 클러스터에서 (ISO에 정의된)흐름 제어는 사용되지 않는다. 백본(상위 네트워크) 버스 시험 장비가 흐름 제어 PDU를 필요로 한다면, 이것은 마스터 노드에서 만들어질 수 있다.
2.3.1 개요
ISO 진단 프레임과 LIN 진단 프레임간의 변환을 용이하게 하기 위해, 그림2.2와 같이 PDU 형태를 지원하는, 매우 유사한 구조를 정의한다.
그림 2.2: LIN 설정에 사용되는 PDU. 왼쪽 바이트(NAD)가 먼저 전송되고, 오른쪽 바이트(D5)가 마지막으로 전송된다.
요청은 항상 마스터 요청 프레임으로 전송되며, 응답은 항상 슬레이브 응답 프레임으로 전송된다. PDU의 각 바이트의 의미는 다음 절에서 정의된다.
2.3.2 NAD
NAD는 요청 프레임에서 슬레이브 노드를 지정하는 주소이다. 즉, 슬레이브 노드만이 주소를 갖는다. NAD는 응답 프레임의 슬레이브 노드의 주소로도 이용된다.
NAD는 1에서부터 127까지의 값을 갖는다. 0과 128에서 255까지는 다른 용도로 예약되어 있다.
0 | 휴면진입 지령으로 예약됨. LIN 프로토콜 규정 참조. | |
1~126(0x7e) | 진단 슬레이브 노드 주소 | |
127(0x7f) | 방송으로 예약됨. | |
128(0x80)~255(0xff) | 자유 사용. 프레임은 진단 프레임으로 해석되지 않는다.(Note 3: 첫 바이트가 128(0x80)에서 255(0xff)까지의 범위에 있는 진단 프레임은 LIN 1.2 표준 이후 자유 사용을 위해 할당되었다.) 3.2절 참조. |
물리적 노드와 논리적 노드 사이에는 1대1 대응 관계가 있으며, NAD를 이용하여 지정된다.
2.3.3 PCI
PCI(Protocol Control Information, 프로토콜 제어 정보)는 전달계층의 흐름제어 정보를 포함한다. 노드 구성에 있어서 PCI 바이트는 표2.2와 같이 해석된다.
표 2.2: 설정 PDU에 사용되는 PCI의 바이트 구조
PCI 종류의 SF(Single Frame, 단일 프레임)은 전송 메시지가 단일 PDU 안에 맞춰져 있으며, 최대 5 바이트의 데이터를 포함하는 것을 의미한다. (SID 또는 RSID에 대하여) 길이(Length)는 사용된 데이터 바이트에 1을 더한 값으로 설정되어야 한다.
2.3.4 SID
SID(Service Identifier, 서비스 구분자)는 지정된 슬레이브 노드가 수행해야할 요청을 지정한다. 0xB0에서 0xB4가 구성에 사용된다. 이 SID 번호는 ISO 15765-3과 일치하며 노드 구현을 “자동차 제조사가 정의한” 영역 내에 위치시킨다.
2.3.5 RSID
응답 서비스 구분자(Response Service Identifier)는 응답의 내용을 규정한다. 긍정 응답의 경우 RSID는 항상 SID+0x40이다.
2.3.6 D1~D5
데이터 바이트(노드 구성 PDU에서는 5바이트 까지)의 해석은 SID 또는 RSID에 따른다.
PDU가 사용되지 않는 바이트를 포함할 경우, 그 바이트는 모두 1로 채워져야 한다. 즉 바이트 값은 255(0xff)이다. 이것은 진단 프레임은 항상 8 바이트 길이를 가져야 하므로 필요하다.
2.4 LIN 제품 아이디 (LIN PRODUCT IDENTIFICATION)
각 LIN 제품은 표2.3과 같은 유일한 번호를 가져야 한다.
표 2.3: LIN 제품 ID
공급자 ID는 LIN 조합에서 각 공급자에게 할당한다. MSB가 0인 16비트 값이다.(Note 4: MSB=1은 향후 확장 번호 체계를 위해 예약되어 있다.)
기능 ID는 각 공급자가 할당한다. 만일 두 제품이 기능적으로, 즉 LIN 통신 또는 물리적 상호작용이 다를 경우, 그 기능 ID는 달라야 한다. 그러나 완전히 같은 기능의 경우, 기능 ID는 변동 없이 유지되어야 한다.
마지막으로, 기능적으로는 변화가 없으나 제품이 변경된 경우에 변형(variant) ID(역주: version과 같은 의미)를 변경해야한다.
LIN 노드에는 LIN 제품 아이디를 반드시 구현해야한다.
2.5 필수 요청
모든 LIN 슬레이브 노드는 이 절에 나열된 요청을 지원해야한다.
2.5.1 프레임 아이디 할당(Assign frame identifier)
프레임 아이디 할당은 메시지 아이디로 지정된 프레임에 적절한 PID(protected Id)를 설정하는데 사용된다. 구조는 표2.4와 같다.
표 2.4: 프레임 아이디 할당 요청
요청은 PID, 즉 ID와 패러티를 제공한다는 것을 알아야한다. 또한 아이디가 60 (0x3c)과 그 이상인 프레임(진단 프레임, 사용자 정의 프레임과 예약 프레임)은 변경될 수 없다.
응답은 NAD와 공급자 ID가 일치할 경우에만 전송되어야 한다. (역주: 슬레이브 노드에서 메시지에 대한 PID 할당이) 성공적이면, 표2.5의 메시지가 응답으로 전송되어야 한다. 응답의 구현은 선택 사항이다.
표2.5: 프레임 ID 할당에 대한 긍정 응답
2.5.2 아이디로 읽기(Read by identifier)
표2.6의 요청을 이용하여 슬레이브 노드로부터 공급자와 속성을 읽는 것이 가능하다.
응답은 NAD와 공급자 ID, 기능 ID가 일치할 경우에만 전송해야한다. 긍정 응답은 표2.8과 같아야한다. 요청이 실패할 경우, 즉 부수적 기능이 제공되지 않을 경우, 표2.9와 같은 부정 응답을 전송해야한다.
표2.6: 아이디로 읽기 요청
정의된 Id는 표2.7에 나열되어있다.
표 2.7: 아이디로 읽기 요청을 이용하여 읽을 수 있는 아이디
표 2.8: 가능한 Id로 읽기 긍정 응답. 각 줄은 하나의 가능한 응답을 나타낸다.
표 2.9: 부정 응답
Notes
Id 0(LIN 제품 Id) 지원은 유일한 의무 Id이며 일련번호(serial number)와 메시지 ID는 선택 사항이다.
32-63의 Id는 사용자 정의이며 표2.8에는 열거되지 않았다.
2.6 선택적 요청
이 절에 나열된 요청들은 선택적이며 LIN 슬레이브 노드에 구현될 수 있다. 이 요청들은 비용 측면에서 바람직하지 않을 수 있기 때문에 선택적이다. 선택적 요청은 이것이 해결하려는 문제에 대한 일관된 해결 방법을 제시하기 위해 규정되었다. 즉, 다음의 요청과 같은 동일한 태스크의 해법은 다른 방법으로 해결하는 것을 추천한다.
2.6.1 NAD 할당(Assign NAD)
NAD 할당은 노드 주소의 충돌을 해결하기 위해 사용한다. 구조는 표2.10과 같다.
응답은 NAD, 공급자 ID와 기능 ID가 일치할 경우에만 전송된다. (역주: 슬레이브 노드가 NAD를 할당 받기에) 성공적이라면, 표2.11의 메시지가 응답으로 전송되어야한다. 응답의 구현은 선택적이다.
표2.10: NAD 할당 요청
표2.11: NAD 할당에 대한 긍정 응답
Note
이 서비스는 항상 초기 NAD(initial NAD)를 이용한다; 이것은 노드 주소를 분실하는 위험을 회피하기 위한 것이다. 응답에 사용되는 NAD는 요청에서 사용한 것, 즉 초기 NAD와 같아야한다.
2.6.2 조건부 NAD 변경 (Conditional change NAD)
조건부 NAD 변경의 목적은 크러스터 내의 알려지지 않은 슬레이브 노드를 알아내고 격리하는 것이다. 클러스터 내에 알려지지 않은 노드가 발생하는 잠재적인 원인은 클러스터를 조립할 때 잘못된 부품을 쓰거나 A/S에서 잘못된 노드로 대체하는 것 등이다. 조건부 NAD 변경은 노드를 알아내고 마스터 노드가 문제를 묘사하는 진단 메시지를 (역주: 상위 네트워크에게) 보고하기 위한 것이다.
요청의 동작은 다음과 같다:
1. 표2.8에서 Id로 지정된 ID를 얻는다.
2. Byte로 지정한 데이터 바이트를 추출한다.(Byte=1은 첫 번째 바이트 D1에 해당한다.)
3. Invert와 비트별 XOR 연산
4. Mask와 비트별 AND 연산
5. 최종 결과가 0이면 NAD를 New NAD로 변경한다.
표2.12: 조건부 NAD 변경 요청
표2.13: 조건부 NAD 변경에 대한 선택적 긍정 응답
Note
NAD 할당 요청에서는 초기 NAD를 사용하는 것에 반하여, 조건부 NAD 변경은 현재 NAD로 주소 지정된다. 즉 항상 초기 NAD는 사용하지 않는다.
2.6.3 데이터 덤프(Data dump)
Note
SID=0xb4는 노드 공급자가 노드를 초기 구성하기 위해 예약되어 있으며 이 메시지의 형식은 공급자가 지정한다.
표 2.14: 데이터 덤프 요청
표2.15: 데이터 덤프 응답
'LIN 2.0' 카테고리의 다른 글
LIN통신 LIN 인증 시험 (LIN Conformance Test) (0) | 2013.01.11 |
---|---|
LIN통신 LIN2.0 Diag. & Config. Spec.(2)...진단 (0) | 2012.12.10 |
LIN통신 LIN2.0 Protocol Spec.(3) (0) | 2012.11.27 |
LIN통신 LIN2.0 Protocol Spec.(2) ~ 2.3 Frame Types (0) | 2012.11.16 |
LIN통신 LIN2.0 Protocol Spec.(1) ~ 2.2 Frame Slots (0) | 2012.11.16 |