ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • adi2can 사용자 설명서
    hardware 2025. 7. 21. 15:46

    개요

    • 기능: 아날로그, 디지털 입력 신호를 CAN 메시지로 전송
    • 입력
      • 아날로그: 0V ~ 5V x 2 채널 (5V를 초과하면 칩에 영구적인 손상이 발생할 수 있습니다.)
      • 디지털: 5V ~ 12V x 6 채널 (12V를 초과하면 칩에 영구적인 손상이 발생할 수 있습니다.)
    • 출력
      • CAN 메시지
      • Tx: aMsg x 1, dMsg x 1, sMsg x 1
      • Rx: cMsg x 1 (Msg Id, 전송 주기 설정용)
      • aMsg, dMsg, sMsg, cMsg에 대한 상세는 차차 설명합니다.

     

    사용법

    • 먼저 설정하고 측정에 사용합니다.
    • 첨부 dbc 파일로 aMsg, dMsg, sMsg의 신호들을 볼 수 있다.

    adi2can.dbc
    0.00MB

    adi2can의 aMsg, dMsg, sMsg 정의가 포함된 dbc 파일

    • 첨부 T7z 파일은 TSMaster 프로젝트를 Export하여 생성한 것이다.

    2025_07_21_15_55_39.T7z
    0.63MB

     

    • 이 파일을 다운로드하고, (TSMaster가 설치된 상태라면) 파일을 더블 클릭하면, TSMaster가 실행된다.
    • 임시 디렉토리에 저장하거나 새 디렉토리를 만드는 창이 뜬다.
    • 이 파일을 다운로드하고, (TSMaster가 설치된 상태라면) 이 파일을 더블 클릭하면 TSMaster가 실행된다. 임시 디렉토리에 저장하거나 새 디렉토리를 만드는 창이 뜬다.  

    •   Select a working directory를 선택하여, 새 디렉토리를 만들고 선택하면, 그 디렉토리에 프로젝트가 압축 해제되어 저장된다.
    • 아래 adi2can 설명은 이 프로젝트를 기준으로 한 것이다. 

     

    설정

    • adi2can은 총 4개의 CAN 메시지(aMsg, dMsg, sMsg, cMsg)를 송/수신합니다. 각 메시지의 디폴드 아이디는 아래와 같습니다.
      • aMsg: 0x1234567A
      • dMsg: 0x1234567D
      • sMsg: 0x12345675
      • cMsg: 0x1234567C
    • 측정 환경에서 메시지 아이디 충돌이 발생하는 경우, 충돌 개수만큼 사용되지 않는 아이디가 필요합니다.
    • 먼저, adi2can과 TSMaster만 연결합니다. 

    설정 단계에서는 adi2can과 TSMaster만 연결합니다.

     

    • adi2can의 USB-C 포트를 통해서 전원을 공급합니다. (외부 전원을 이용하거나 PC에 연결합니다.) 
    • cMsg를 이용하여 아이디가 충돌이 되는 메시지들의 아이디를 변경합니다. 
    • cMsg를 이용하여 aMsg, dMsg의 전송 주기를 변경할 수 있습니다. 필요에 따라 전송 주기를 변경합니다. 
    • cMsg를 이용하여 설정을 변경하는 방법은 cMsg에 대한 설명을 참조하십시오.
    • cMsg로 변경한 설정은 즉시 적용됩니다. 
    • 변경된 설정은 EEPROM에 저장되고, adi2can이 부팅될 때 설정이 적용됩니다.

     

    측정

    • 측정할 아날로그, 디지털 신호의 전선을 adi2can의 터미널 블록에 연결합니다. 
    • 아날로그 선을 연결할 때는 AGND에, 디지털 선을 연결할 때는 DGND에 그라운드를 연결합니다. 
    • AGND, DGND 핀의 위치는 아래 그림과 같습니다. 

    adi2can의 핀 위치


    • 1 채널 CAN 하드웨어를 사용할 경우, adi2can을 측정하려는 CAN 버스에 연결합니다.

    측정을 할 때는 adi2can, TSMaster, DUT (Device Under Test)를 연결합니다.

     

    • 다채널 CAN 하드웨어를 사용할 경우, adi2can을 여분의 CAN 채널에 연결할 수도 있습니다.
    • adi2can는 전원을 공급받으면 즉시 부팅을 시작하고, 부팅이 완료되면 (< 1.5sec) CAN 메시지 전송을 시작합니다. 
    • 필요한 시점에 CAN 버스 측정을 시작합니다.

     

    aMsg

    • 아날로그(analog) 입력 전송용 CAN 메시지
    • 길이: 8 바이트
    • 아이디: 
      • 디폴트: 0x1234567A (Analog)
      • cMsg로 변경 가능
    • 전송 주기:
      • 디폴트: 500msec
      • cMsg로 변경 가능
    • 신호: 
      • A4, A5 (아두이노 핀번호)
      • 10bit (아두이노 ADC의 분해능)
      • 0 ~ 5V까지 표시

    aMsg의 신호 레이아웃

     

    A4 (A5) 신호의 정의

     

    aMsg 출력. A4, A5 두 아날로그 채널들의 신호 값을 읽을 수 있다.

     

    dMsg

    • 디지털(digital) 입력 전송용 CAN 메시지
    • 길이: 8 바이트
    • 아이디: 
      • 디폴트: 0x1234567D (Digital)
      • cMsg로 변경 가능
    • 전송 주기:
      • 디폴트: 500msec
      • cMsg로 변경 가능
    • 신호: 
      • D3, D4, D5, D6, D7, D8  (아두이노 핀번호)
      • 2bit (0:on, 1:off, 2:reserved, 3:failure)

    aMsg의 신호 레이아웃

     

     

    D3 (= D5 ~ D8) 신호의 정의

     

    dMsg 출력. D3, D8 여섯 디지털 채널들의 신호 값을 읽을 수 있다.

     

    sMsg

    • 상태(status) 표시용
    • 길이: 8 바이트
    • 아이디: 
      • 디폴트: 0x12345675 (5tatus)
      • cMsg로 변경 가능
    • 전송 주기:
      • on demand
      • cMsg로 변경 가능
    • 신호
      • 설정 변경 결과
      • 현재 동작 상태
      • 설정값 오류 코드
      • 메시지 카운터    

    sMsg의 신호 레이아웃

     

     

    sMsg 출력. adi2can의 상태를 알 수 있다.

     

     

    cMsg

    • aMsg, dMsg의 아이디, 전송 주기 설정(configure)에 사용함
    • 길이: 8 바이트
    • 아이디: 
      • 디폴트: 0x1234567C (Configure)
      • cMsg로 변경 가능
    • 전송 주기:
      •  adi2can 설정 변경이 필요할 경우

     

    cMsg 메시지 구조

    • [command] [target] [parameter]
    • command
      • 0x01: change message id
      • 0x02: change message Tx period
      • 0x03: debug output to serial monitor
      • 0x04: apply filter
      • 0x05: get status
    • target
      • command에 따라 다름
      • 일반적으로, 0x01: aMsg, 0x02: dMsg
    • parameter
      • command와 target에 따라 다름

     

    cMsg – change msg id

     

    • D0 바이트: 0x01
    • D1 바이트: 
      • 대상 메시지
      • 0x01: aMsg
      • 0x02: dMsg
      • 0x03: sMsg
      • 0x04: cMsg
    • D2 ~ D5 바이트:
      • 새 Msg Id
    cMsg의 change msg id 사용법

     

    cMsg – change msg tx period

    • D0 바이트: 0x02
    • D1 바이트: 
      • 대상 메시지
      • 0x01: aMsg
      • 0x02: dMsg
    • D2 ~ D3 바이트:
      • 새 전송 주기
      • msec

     

    cMsg의 change msg tx period 사용법

     

    cMsg – debug output to serial monitor

    • adi2can은 USB로 시리얼 통신을 함
    • 시리얼 통신으로 aMsg, dMsg의 내용을 전송할 수 있음
    • D0 바이트: 0x03
    • D1 바이트: 
      • 대상 메시지
      • 0x01: aMsg
      • 0x02: dMsg
    • D2 바이트:
      • 0x00: 전송 중지
      • 0x01: 전송 시작
    cMsg의 debug output to serial monitor 사용법

     

     

    cMsg – apply filter

     

     

    • 필터 사용 여부 설정
      • CAN 버스에 메시지가 많아 adi2can의 처리 용량이 부족할 경우를 대비함
      • CAN 콘트롤러 칩에 있는 하드웨어 필터를 설정하여 cMsg만 수신하도록 함
    • D0 바이트: 0x04
    • D1 바이트: 0x01 
    • D2 바이트:
      • 0x00: 필터 적용 중지
      • 0x01: 필터 적용
    cMsg로 apply filter 사용법

     

    cMsg – get status

    • sMsg 전송을 요청함
    • D0 바이트: 0x05
    • D1 바이트: 
      • 0x01: 전송 주기 설정
      • 0x02: 1회 전송 
    • D2 바이트:
      • 0x00: 전송 중지
      • 0x01: 전송 시작
    • adi2can.dbc를 임포트하여 sMsg의 내용을 CAN Trace 창에서 편리하게 볼 수 있음

    get status 요청으로 sMsg를 업데이트한다.

    cMsg로 get status 사용법

     

     

     

    목차 :: hsl's tsmaster 사용기

    ADI2CAN 개선 :: hsl's tsmaster 사용기   <-- 개발 배경이 궁금하신 분들께 

    디지털/ 아날로그 신호를 CAN 신호와 함께 측정하기 - ADI2CAN :: hsl's tsmaster 사용기   <-- 발단이 궁금하신 분들께