2022. 3. 16. 20:06ㆍ개발로그/기타
DM1(Diagnostic Message 1) - Active Diagnostics Trouble Code
DM1은 PGN 65226(0xFECA)를 사용하며, 활성 DTC가 있거나 요청의 응답이 있는 경우에만 주기적으로 전송 된다.
활성화 된 DTC가 1개 이상일 경우, DM 1 메시지는 전송 프로토콜을 사용 하여 전송되며, 이 메시지의 전송 주기는 1초이다.
전송 프로토콜
장치에서 DM1 메시지를 보내기 위해서는 아래와 같은 전송 프로토콜을 사용한다.
처음 J1939 Transport Protocol BAM( Connection Management ) 메시지를 보내서 앞으로 보낼 DM1 메시지의 메시지 Size, Packet의 갯수, DM1의 PGN을 Receiving Node에게 알려 준다.
이후, TP Message(J1939 Transport Protocol, Data Transfer)를 이용하여 DM1 메시지의 데이터를 Receiving Node에게 전달 한다.
BAM Message와 TP Message의 구조는 아래 그림과 같다.
만약 DM1 메시지를 보낸다면, BAM Message의 PGN에 0xFECA 가 실려서 보내진다.
DM1 메시지
Byte1는 진단 램프 상태, Byte3~Byte5에는 고장이 발생한 부분의 SPN과 고장 내용(FMI), Byte6에는 OC( 고장 발생 횟수 )를 표시 한다.
램프 상태
DM1 메시지는 활성화 된 모든 고장 진단 코드(DTC) 및 진단 램프 상태를 포함한다.
램프 상태는 시각적 진단을 지원하며, 차량 대시 보드의 고장 표시기에 사용 되며 SAE J1939-73 Diagnostic에서는 4가지 유형의 램프 상태를 지원 한다.
- MIL( Malfunction Indicator Lamp )
- 배출과 관련된 오작동
- RSL( Red Stop Lamp )
- 차량을 정지해야 하는 심각한 고장
- AWL( Amber Warning Lamp )
- 덜 중요한 고장을 표시. 차량을 즉시 정지 할 필요 없음
- PL( Protection Lamp )
- 유압 오일 온도가 규정된 온도 범위를 초과하여 상승한 것과 같이, 전자 장치가 아닌 곳에서 발생한 문제를 표시
램프 상태는 총 4가지로 표현 가능하다.
0 : 램프 OFF
1 : 램프 ON
2 : 램프 깜빡임 1Hz
3 : 램프 깜빡임 2Hz
FMI ( Failure Mode Indicator )
Sample Data
활성화 된 고장 SPN이 3개일 경우 아래와 같이 DM1 메시지를 만들 수 있다.
참고 자료
https://www.csselectronics.com/pages/j1939-explained-simple-intro-tutorial
https://embeddedflakes.com/j1939-diagnostics-part-1/
'개발로그 > 기타' 카테고리의 다른 글
[Git] Git 명령 시, Username과 Password 입력 하지 않게 저장하기 (0) | 2022.03.29 |
---|---|
[SAE J1939] DTC(Diagnostic Trouble Code) (0) | 2022.03.17 |
[VSCode] VSCode 터미널을 Powershell에서 cmd로 변경하는 방법 (0) | 2022.02.12 |
[Ubuntu]Pyqt5 설치 및 qt designer 설치 (0) | 2022.02.11 |
[Windows] pip is configured with locations that require TLS/SSL에러 해결 방법 (0) | 2022.02.11 |