LIN 2.0을 공부하기 전에..
본 블로그에서는 LIN 통신의 기초 이론은 다루지 않고, LIN 2.x에 대한 글만 연재합니다.
LIN 통신의 기초는 다른 사이트를 검색하여 보다 쉬운 자료를 찾아보기 바랍니다.
또한 LIN 2.0 프로그래밍 강좌에서는 통신 규약에 따른 코딩 방법을 알려주지만, 완성된 코드를 제공하지는 않습니다. 강좌를 읽고 이해하면 누구나 자신만의 코딩이 가능합니다.
LIN 기능이 있는 마이크로프로세서는 드물기 때문에 본 강좌는 LIN 기능이 없는 마이크로프로세서에서 UART를 이용한 LIN 구현에 대하여 설명하며, LIN 기능이 있는 경우는 다루지 않습니다. 본 강좌를 이해한다면 LIN 기능이 있는 마이크로프로세서의 프로그래밍은 훨씬 쉽고 간단합니다.
2013.3월 최신 버전은 LIN2.2a이지만 2.0을 이해하고 코딩할 줄 안다면 2.2의 이해와 코딩은 쉽습니다.
------------------------------------------------------------------------------------------------
CAN vs. LIN
CAN은 LIN보다 신뢰성이나 성능이 우수하지만 hardwired로 구현되기 때문에 마이크로프로세서의 가격이 상대적으로 불리합니다.
LIN은 UART를 이용할 수 있기 때문에 CAN에 비하여 성능은 떨어지지만, 원가에 민감한 제품에 채택하기 좋습니다.
CAN 통신 프로그램은 마이크로프로세서의 메뉴얼을 읽어보고 CAN 관련 레지스터를 설정하면 바로 사용할 수 있을 정도로 LIN보다는 코딩이 매우 쉽습니다.
LIN 통신은 프로토콜 규정을 완벽히 이해하고, 그대로 구현해야합니다. 처음 개발할 경우 코딩에 상당한 노력과 시간(약 3개월)이 투자되어야합니다.
LIN 기능이 있는 마이크로프로세서를 사용하더라도 LIN 규정의 (극히)일부만이 hardwired로 구현되어있기 때문에 나머지는 프로그래머가 규정에 따라 코딩해야합니다. 따라서 마이크로프로세서에 LIN 기능이 있다하더라도 LIN 규정을 읽고 이해하는 것을 생략할 수는 없습니다.
LIN 기능이 있는 마아크로프로세서 채택 시, 메뉴얼의 LIN 기능 사용법을 이해하려면 LIN 규정을 먼저 이해해야합니다. 코딩은 본 강좌를 이해했다면 강좌에 설명된 코드의 일부분만 구현하면 됩니다.
------------------------------------------------------------------------------------------------
다음은 LIN 2.0 Spec. Package를 공부하는 방법에 대한 안내입니다.
LIN2.0 규약 모음
Specification Package
- 전체적인 이해, 개략적으로 이해하고 넘어가면 됩니다.
Protocol Specification
기본 프로토콜 규정. 상세하게 이해해야합니다. 기존 1.3 규정과 유사
Diagnostic and Configuration Specification
상세하게 이해해야합니다. ID 할당 등 2.0에 추가된 내용, 매우 중요함. 의무/옵션 항목 구분하여 필요한 기능 구현
Physical Layer Specification
회로에 필요한 규정. 회로가 규정에 맞는지 검토 한 번 하면 됩니다.
Application Program Interface Specification
응용계층에 대한 Core API 기능 규정 상용 라이브러리 작성하거나 이용하려면 자세히 이해해야함. 프로토콜 직접 구현할 경우, 대충 읽고 넘어가도 무방
Node Capability Language Specification
문서 작성 기본 문법- LIN 슬레이브 제품 기능을 설명하는 문서(NCF, Node Capability File) 필히 작성해야함.
납품, 인증 등을 위해 필수. 철저히 이해 후 작성, 철저히 검토해야합니다
Configuration Language Specification
문서 작성법 LDF(LIN Description File)를 작성하는 방법 클러스터/마스터 제조사가 작성.- 납품, 인증 등을 위해 필수. 철저히 이해 후 작성, 철저히 검토해야합니다
------------------------------------------------------------------------------------------------
★ LIN 제품 개발 시 고려사항
- 마스터와 슬레이브를 동시에 개발 권장 (제품이 슬레이브일 경우, 테스트할 수 있는 마스터도 개발하여 여러 조건에 대한 통신 기능 확인. 반대의 경우도 동일.)
- 라이브러리 구입/포팅(비용/납기 고려, 소스 수정 곤란)
- 또는 직접 코딩(규정 이해 및 코딩에 장기간 소요, 수정 용이, 모의 시험 용이)
- 인증된 LIN to Serial 제품(예 : NI USB-8476s)을 구입하여 LIN 인증 항목 모의 시험
- 제품이 슬레이브일 경우, 납품 전 마스터 또는 클러스터 제조사로부터 NAD and/or 제조사 아이디 할당 받아서 제품 및 NCF에 반영. (중견기업 이상은 LIN 조합 가입 고려)
- NCF 작성하여 마스터 제조사에 제출 (슬레이브 제품을 납품하기 전에 미리 제출해야 마스터 프로그래밍 가능함. 마스터 제조사가 외국 기업일 경우 NCF를 요구하겠지만, 국내 기업일 경우는 서로 업무협의로 생략 가능)
- 마스터 제조사는 LDF(LIN Description File) 작성, 이에 맞게 타임 스케쥴 작성, 디버깅
- LIN 통신 개발 및 검증에 2개월 이상 계획할 것.
------------------------------------------------------------------------------------------------
LIN 2.0 → 2.1 개정 내용
. 메시지 아이디 할당 기능 삭제
. 프레임 아이디 설정 기능 삭제
. 프레임 아이디 범위 설정 기능 추가
. 설정 저장 기능 추가
. 응용계층에 대한 상태 보고 개선
. 이벤트 트리거 프레임 충돌 처리 개선
. 아이디로 읽기에서 아이디 2~31 예약
. 진단 클래스 1~3 및 각각의 진단 서비스 구현
. 전달계층의 시간 관리 개선
. 한 클러스터 이상에서 동작하는 노드에 대한 확정
. 한 프레임을 초과하는 신호의 패킹에 대한 확정
. NAD 0x7E(functional NAD)는 진단을 위한 기능 주소로 예약
. 새로운 파라미터 추가하여 노드 기능 언어 규정 확장
. 변경 반영을 위한 설정 언어 규정 개선 : 노드 속성, 노드 구성, 이벤트 트리거 프레임과 설정 추가
LIN 2.1 → 2.2 개정 내용
. 오타 수정 및 일부 내용 확정
------------------------------------------------------------------------------------------------
기타
본 볼로그의 번역문과 강좌는 저자의 경험에 의한 저작물이며, 절대 검증된 것이 아니기 때문에 내용이 수시로 수정되고 있습니다. 따라서 번역문과 강좌를 참조는 하되, 인용하거나 스크랩하는 것은 엄격히 자제해주시기 바랍니다.
문의/건의/자문 등.. 부담없이 연락주세요.
017-279-9381, 87c196mc@daum.net
'LIN 2.0' 카테고리의 다른 글
LIN 2.0 통신 프로그래밍 강좌 6 - 진단과 설정 구현 2 (0) | 2013.03.07 |
---|---|
LIN 2.0 통신 프로그래밍 강좌 5 - 진단과 설정 구현 1 (0) | 2013.02.27 |
LIN2.0 통신 프로그래밍 강좌 4 - 오류 처리와 시간 관리 (0) | 2013.02.22 |
LIN2.0 통신 프로그래밍 강좌 3 - 응답 송/수신 (0) | 2013.02.20 |
LIN2.0 통신 프로그래밍 강좌 2 - PID 수신 처리 (0) | 2013.02.13 |