-
hsl's tsmaster 사용기 목차tip 2024.12.06 09:47
[알림] 블로그 제목 오른쪽에 돋보기 아이콘을 클릭하여 검색을 해보세요. 측정 & 분석CAN 트레이스 보기 - 바퀴 속도 :: hsl's tsmaster 사용기CAN 트레이스 받기 - 하드웨어 설정 :: hsl's tsmaster 사용기그래픽창 사용법 :: hsl's tsmaster 사용기 여러 그래픽 창들을 독립적으로 확대/축소 하는 법 (sync token) :: hsl's tsmaster 사용기 timestamp, ACK와 ACK error :: hsl's tsmaster 사용기 CAN과 CAN-FD를 혼합 사용하면 ...? :: hsl's tsmaster 사용기배터리 셀 정보 표시 대시보드 만들기 :: hsl's tsmaster 사용기 멀티플렉스 메시지 :: hsl's ..
-
TSMaster 사용법 총정리 004. 판넬과 전송창교육 2026.05.29 18:58
개요이전(TSMaster 사용법 총정리 003. 판넬과 RBS :: hsl's tsmaster 사용기)에서 RBS의 신호와 판넬을 연결하는 방법을 데모하였다.전송(transmit)창의 신호와 판넬을 연결하는 방법이 있는가? 있다. 이 경우 TSMaster는 시스템 변수 (System Variable)이라는 것을 이용한다. 전송창 메시지의 신호에 시스템 변수를 연결하고, 판넬 위젯을 동일한 시스템 변수에 연결하는 방식이다. 그 방법을 데모한다. 판넬과 전송창전송할 메시지를 전송창에 추가한다.판넬과 연결한 신호를 시스템 변수로 설정한다.시스템 변수를 정의한다.전송창의 신호와 시스템 변수를 연결한다.판넬의 위젯과 시스템 변수를 연결한다.TSMaster를 버스에 연결한다.전송창에서 메시지 전송을 시작한다. 위젯..
-
TSMaster 사용법 총정리 003. 판넬과 RBS교육 2026.05.29 17:54
개요이전(TSMaster 사용법 총정리 002. RBS (Remaining/Rest Bus Simulation) :: hsl's tsmaster 사용기)에서 RBS 중 신호값을 수동 입력으로 변동하는 방법을 데모하였다. 키보드로 직접 수치를 입력하였다. GUI가 있으면 편리할 것이다. 차량 통신 개발 툴은 GUI 기능을 지원한다. 이를 판넬(panel)이라고 한다. 판넬창을 열고, 위젯을 추가하고, CAN 신호에 연결하여 간단한 GUI를 만드는 방법을 데모한다. 판넬 기본 사용법RBS와 연동하는 데모를 위해 RBS가 사전에 구성된 상태를 가정한다.판넬 창을 연다.위젯을 추가한다.위젯에 CAN 신호를 연동한다.위젯의 위치와 크기를 조절한다.RBS를 실행한다. 위젯을 조작하여 CAN 신호를 변동한다.007 ..
-
TSMaster 사용법 총정리 002. RBS (Remaining/Rest Bus Simulation)카테고리 없음 2026.05.29 12:59
개요제어기가 정상 작동을 하도록 하기 위해서 제어기가 버스에 연결되어 있는 것처럼 시뮬레이션을 해 주어야 한다. 이를 RBS라고 한다. Remaining Bus Simulation 혹은 Rest Bus Simulation의 약자이다.차량 통신 개발 툴은 RBS를 지원한다. RBS의 대상이 CAN 이라면,메시지 안에 카운터 신호가 있는 경우가 많다.메시지 안에 CRC 신호가 있는 경우가 많다.카운터가 변하지 않거나 CRC가 맞지 않는 경우, 제어기가 시뮬레이션된 메시지를 무시할 것이다. 그러면 RBS의 가치가 없다. TSMaster의 RBS 기본 사용법, 신호를 카운터 혹은 CRC로 설정하는 방법을 데모한다. RBS 기본 사용법dbc를 로드한 상태에서 한다. (dbc가 없다면 RBS가 무슨 의미가 있..
-
TSMaster 사용법 총정리 001. CAN 메시지 모니터링, 측정, 재생교육 2026.05.27 19:46
개요차량 통신 개발 툴은, 대상 통신이 CAN이라면,메시지를 버스에 전송하고버스의 메시지들을 볼(모니터링) 수 있고메시지들을 파일로 저장할 수 있고 (측정)파일에 저장된 메시지들을 재생할 수 있어야 한다.메시지를 볼 때, dbc 파일이 있으면 신호 수준에서 메시지를 볼 수 있어야 한다. 신호를 그래프로 볼 수도 있어야 한다.재생을 할 때는 화면에만 재생(오프라인 재생)할 수도 있고, 버스에 저장된 메시지들을 타임스탬프에 맞춰 전송하는 식으로 재생(온라인 재생)할 수도 있어야 한다. 차량 통신 개발 툴을 사용하는 90% 이상의 유즈 케이스가 모니터링, 측정, 재생일 것이다. 모니터링을 데모하려면 버스에 메시지가 있어야 한다. 그래서 메시지 전송 방법을 먼저 데모한다. 차례대로 모니터링, 측정, 재생 방법을..
-
타이어 마모 인덱스application 2026.04.10 13:49
타이어 마모 인덱스¶타이어는 언제 많이 마모될까?휠 슬립율이 클 때같은 슬립율이라도 아스팔트, 코블스톤, 흙길, 자갈길 등 노면 종류에 따라 다를 것이다.타이어에 걸리는 수직 하중이 클 때같은 슬립율이라도 수직 하중이 클 때 더 마모가 많이 될 것 같다.코너링할 때사이드 슬립이 크면 많이 닿겠지.그 외에 많은 다른 요인이 있을 것이다. 타이어 공기압, 온도, 비/눈, ...Tlog100x로 측정한 CAN 데이터와 GPS 데이터 처리하는 방법을 데모하는 목적이니까 단순하게 계산해본다.휠 슬립율을 어떻게 구할까?휠 슬립율은 아래와 같이 정의한다. r_slip_xx = (ws_xx - vs) / vs * 100 ws: wheel_speed vs: vehicle_speed ..
-
blf & dbc --> mdf or csv 개선application 2026.04.03 22:29
시작하기 전에 blf는 CAN 프레임 단위로 타임스탬프와 함께 데이터를 저장한다.mdf는 신호 별로 타임스탬프와 함께 데이터를 저장한다.한 CAN 프레임에 10개 신호들이 있다고 가정하자. 이 10개 신호들을 저장할 때, 동일한 타임스탬프가 10번 저장된다. 타임스탬프를 1회 저장하고 10개 신호들이 공통으로 이 타임스탬프를 참조하도록 하면, 파일 저장 공간을 절약할 수 있다. 이런 CAN 프레임이 10개 있고, 각 프레임에 신호가 10개씩 있다면, 절약할 수 있는 파일 저장 공간이 상당할 것이다.설마 내가 지구에 왔다갔거나 아직 있는 사람들 중에서 최초로 이런 생각을 한 사람은 아닐 것이다. 찾아보니 ASAM mdf v4 부터는 공통 타임스탬프(Common Time Base: CTB)가 적용되어 있다...
-
C 미니프로그램에서 CAN 신호를 다루기design 2026.03.19 16:08
시작하기 전에C 미니프로그램에서 CAN 메시지 송수신하기 :: hsl's tsmaster 사용기에서 "메시지" 수준에서 데이터를 다뤘다. '"신호" 수준에서 데이터를 다룰 수 있는가?' 궁금했다. 해봤다. 된다. 이 방법을 설명한다. 개요프로젝트 설계dbc 임포트미니프로그램On CAN Rx코드에서 dbc의 메시지/신호 사용하는 방법코드나머지 설정힌트를 얻은 곳실행 결과 프로젝트 설계C 미니프로그램에서 CAN 메시지 송수신하기 :: hsl's tsmaster 사용기와 동일한 하드웨어 설정이다.메시지/신호들이 정의된 dbc를 임포트한다. 내가 작성해서 사용 중인 venue_esc.dbc를 사용한다.대상 메시지와 신호를 선정한다. 나는 ESP 메시지의 ESP_counter 신호를 대상으로 정했다. 트랜스..
-
C 미니프로그램에서 CAN 메시지 송수신하기design 2026.03.19 12:32
시작하기 전에 0x700 메시지를 수시하면 0x701, 0x702, 0x703, 0x704 메시지를 전송하는 기능이 필요하다. TSMaster의 미니프로그램을 이용하면 이 기능을 구현할 수 있다. 미니프로그램의 언어로 Python 혹은 C를 사용할 수 있다. 나는 C를 모른다. 하지만 C로 도전한다. 개요프로젝트 설계미니프로그램나머지 설정힌트를 얻은 곳실행 결과 프로젝트 설계2 채널 CAN 인터페이스 하드웨어를 사용한다. 채널 1과 채널 2를 직접 연결하여 버스를 구성한다.채널 1에서 0x700 메시지를 1000msec 주기로 전송한다. (채널 2에서 수신한다.) 트랜스밋창에서 0x700 메시지 송신을 설정한다.미니프로그램은 0x700 메시지를 수신하면 (On CAN Rx)메시지가 채널 2에서 수신된..
-
dbc 병합application 2026.03.16 10:53
시작하기 전에 포르쉐 타이칸 CAN 데이터에서 요-레이트 신호 찾기 :: hsl's tsmaster 사용기, 포르쉐 타이칸 CAN 데이터에서 횡가속도 신호 찾기 :: hsl's tsmaster 사용기 에서 opendbc/opendbc/dbc at master · commaai/opendbc에서 다운로드 받은 dbc 파일들을 사용했다고 이야기 했다. dbc 파일들이 5개 있었다. 여러 메시지/신호들이 다른 이름으로 여러 dbc 파일들에 중복되어 있었다. TSMaster에 dbc 파일들을 임포트하니 중복된 메시지/신호들이 마지막에 임포트된 dbc 파일의 정의로 대체되었다. 내가 원하는 메시지/신호 정의를 사용할 수 없었다. dbc 파일들에서 메시지/신호들을 선택하여 내게 필요한 dbc를 만들 필요가 생겼..
-
YouTube: Panel에서 LED와 Switch 사용하기카테고리 없음 2026.03.13 12:45
Panel에서 LED와 Switch 사용하기 YouTube: https://www.youtube.com/watch?v=HbgT_ASejj4 설명 내용Panel에 LED와 Switch를 추가하고, CAN 신호와 연결한다.Switch를 조작하여 CAN 신호가 변경되도록 한다. CAN 신호의 변경에 따라 LED 상태도 변한다.CAN 메시지의 신호를 변경하여 LED와 Switch의 상태를 변경한다. 원본https://www.youtube.com/watch?v=iR6bF7aOqPI&t=9s 비디오를 편집하고 자막을 추가하였다.
-
YouTube: CAN, LIN 메시지 송수신YouTube 2026.03.12 18:39
CAN, LIN 메시지 송수신 YouTube: https://www.youtube.com/watch?v=FJaGl8kGZLY 설명 내용CAN, LIN 하드웨어 설정CAN 메시지 전송사용자 정의 신호를 정의하는 방법LIN 메시지 전송 마스터 노드와 슬레이브 노드 설정 방법 내가 배운 것사용자 정의 신호를 정의할 때, 먼저 Export를 한 후 엑스포트된 파일에 (시간, 값) 쌍들을 입력하고 저장하고, 이 파일을 Import 해야 한다. 마스터 노드와 슬레이브 노드를 변경할 때, Master Node 체크 박스를 먼저 uncheck 한 후 다시 check 해야한다. 아마 기존 설정을 삭제하고 새 설정을 저장하는 조작인 것 같다. hsl's tsmaster 사용기 목차 :: hsl's tsmaster ..
-
blf & dbc --> mdf or csv 변환application 2026.03.10 12:18
시작하기 전에 blf & dbc --> mdf 변환 :: hsl's tsmaster 사용기에서 blf 파일에서 dbc 파일에 정의된 신호들을 선택하여 mdf 파일을 생성하는 프로그램을 개발의 요점들을 설명하였다.디렉토리를 선택하면, 그 디렉토리에 있는 모든 blf 파일들을 표시하여 사용자가 선택할 수 있도록 하고, 선택된 파일들을 변환하여 csv 파일들을 생성하는 기능을 추가하였다. 사용법파일 입력blf 파일을 파싱할 dbc 파일을 선택한다.단일 파일을 변환할 것인지 디렉토리를 변환할 것인지 선택한다.파일 혹은 디렉토리를 선택한다.디렉토리를 선택한 경우, 파일 목록에서 변환할 파일들을 선택한다.파싱 버튼을 클릭한다. blf 파일에서 일정 크기를 읽는다. 일정 크기는 설정 탭의 "BLF 파싱 크기"에서..
-
FRD: blf & dbc --> mdf카테고리 없음 2026.03.09 10:09
나는 클로드를 이용하여 코딩할 때, 구현하고자 하는 기능을 (10줄 이내로) 간략하게 기술한다. 이를 FRD(Functional Requirement Document)라고 부른다. 클로드에게 FRD 검토와 피드백을 요청한다. 클로드의 피드백들 중에 내 마음에 드는 것을 선택하고 서브 기능에 관해 내 생각을 이야기하고 피드백을 요청한다. 이런 작업을 반복한다. 중간중간에 코드 작성을 요청하고 실행해 본다. 버그나 사용 방법 개선에 관해 클로드와 대화한다. 어느 정도 진척이 이뤄지면 클로드에게 FRD 업데이트를 요청한다. BLF + DBC → MDF 변환 도구 기능 요구 조건 (FRD)문서 버전: 0.7 작성일: 2026-03-08파일명: blf_dbc_to_mdf_mp.py (PySide6 데스크톱 앱..
-
blf & dbc --> mdf 변환application 2026.03.08 15:04
시작하기 전에 일이라는 것이 결정들의 연속이다. 엔지니어링도 그렇다. 측정과 연산 기술의 발전으로 감/경험에 기반한 결정들이 데이터 기반 결정들로 대체되고 있다. 최근에 데이터 기반 결정이 적용되는 영역이 빠르게 넓어지고 있다고 느낀다. CAN 데이터를 mdf 파일로 저장하는 방법 문의를 점점 더 많이 받는다. blf 파일과 dbc 파일을 입력으로 받아 mdf 파일을 생성하는 간단한 프로그램을 클로드와 만들었다. 그 방법을 설명한다.개요blf vs. mdf메시지 파싱하기blf에서 메시지 읽기mdf 파일로 저장하기코드프로그램결론 blf vs. mdfCAN 데이터는 주로 blf 파일로 저장된다. blf는 메시지 기반이다. 프레임들은 수신된 순서대로 타임스탬프와 함께 파일에 저장된다. 특정 신호의 시간에 따른..
-
TraceRoute - GPS 데이터를 지도에 표시하기api 2026.03.05 16:27
시작하기 전에Tlog100x는 일반 CAN/LIN-to-USB 인터페이스 하드웨어 기능과 로거 기능이 동합된 하드웨어이다. USB로 PC와 연결된 상태에서는 인터페이스로 작동한다. USB로 연결되지 않은 상태로 전원이 공급되면 로거로 작동한다. Tlog100x에는 GPS가 있다. 로거로 작동할 때는, GPS 좌표가 측정되어 데이터 파일에 CAN/LIN 데이터와 함께 저장된다. 차를 타고 이동할 때 로거로 데이터를 측정했다. 데이터 관리를 제대로 못해서 어느 blf 파일이 어디 다녀올 때 측정한 것인지 알 수 없게 되었다. TSMaster에서 하나씩 열어보며 확인할 수 있다. 시간이 제법 들 것이다. 브라우저에서 지도 위에 경로를 표시하는 앱이 있으면 좋겠다는 생각을 했다. Streamlit이라는 파이썬으..
-
libTSCAN API - Python 설명서api 2026.03.04 21:55
libTSCANAPI 완전 레퍼런스자동 생성된 API 문서 - Python 3.12.5이 문서는 실제 설치된 libTSCANAPI 패키지를 분석하여 생성되었습니다.기존 문서와 다른 함수 이름이나 누락된 함수가 포함되어 있을 수 있습니다.목차함수 목록 (144개)클래스 목록 (0개)상수 목록 (1개)함수 색인 (알파벳순)함수 목록총 144개의 함수check_status_operation시그니처:check_status_operation(result, function, arguments)설명:Check the status and raiseclose시그니처:close()msg_convert_tosun시그니처:msg_convert_tosun(msg)설명:can.Message convert to TLIBCAN TL..
-
TSMaster API - Python 설명서api 2026.03.04 21:35
이 설명서는 파이썬 스크립트로 TSMaster의 함수 리스트가 저장된 .ini 파일들에서 생성한 것입니다. 아래 압축 파일에 파이썬 스크립트와 ini 파일들이 있습니다. 이 설명서는 바이브 코딩을 할 때, AI에게 이 문서를 주고 AI가 TSMaster의 함수들을 찾을 수 있도록 하기 위한 목적으로 만들었습니다.AI에게 문의하니 마크다운(.md) 파일이 처리하기 좋다고 하여 설명서는 .md 파일로 저장하도록 하였습니다.파일은 아래처럼 사람이 보기 편리한 형태로 포맷 문자들을 포함하고 있습니다. AI에게 문의하니 포맷 문자들은 필요 없다고 합니다. 스크립트를 실행할 때 옵션 설정으로 AI가 선호하는 형태의 compact한 형태의 .md 파일로 저장할 수 있습니다. TSMaster Python API Ref..
-
libTSCAN의 CAN 메시지 전송 주기 정확도 살펴보기api 2026.02.17 13:57
시작하기 전에 '투썬(Tosun) 하드웨어와 libTSCAN를 이용하여 CAN(CAN-FD를 포함한다. 편의상 CAN이라 하겠다.) 메시지들을 전송한다면, 전송 주기는 얼마나 정확한가?'라는 문의를 받았다. libTSCAN에는 CAN 메시지 송신을 위한 tsapp_transmit_canfd_async() 함수가 있다. PC 프로그램에서 이 함수를 호출하면, PC는 USB 포트에 연결된 CAN 인터페이스 하드웨어에 메시지를 보낸다. PC의 OS(Windows / Linux)에 따라 함수 호출과 메시지 전달 사이에 지연이 있을 수 있다.CAN 인터페이스 하드웨어는 이 메시지를 CAN 콘트롤러(CAN 콘트롤러는 칩 혹은 칩의 일부이다. 어쨌든, 소프트웨어가 아니라 하드웨어이다.)의 메일 박스(버퍼)에 저장..
-
libTSCAN 예제 코드api 2026.02.05 10:55
시작하기 전에 투썬은 두 종류의 API를 제공한다. TSMaster API와 libTSCAN API이다. 둘의 차이는 아래 표와 같다. libTSCAN APITSMaster API장점1. x86/x64bit 지원 2. Windows 및 Linux 지원 Linux의 경우 libTSCANAPI.so를 사용해야 함 3. TSMaster에 종속되지 않음, 즉 TSMaster를 설치할 필요가 없음 4. C++ 런타임 라이브러리에 종속됨1. x86/x64bit 지원 2. Windows 지원 3. API가 많음 TSMaster의 거의 모든 API를 사용할 수 있음 TSMaster.dll의 래핑된 버전임단점1. API가 적음 2. 투썬 하드웨어만 지원됨 3. 무료1. Linux를 지원하지 않음 2. TSMaster에 ..
-
libTSCAN 함수 목록api 2026.02.05 10:16
libTSCANAPI 함수 목록 (알파벳순)144개 (2026-02-05)check_status_operation(result, function, arguments)close()msg_convert_tosun(msg)tosun_convert_msg(msg)tsapp_add_cyclic_msg_can(*args, **kwargs)tsapp_add_cyclic_msg_canfd(*args, **kwargs)tsapp_configure_baudrate_can(*args, **kwargs)tsapp_configure_baudrate_canfd(*args, **kwargs)tsapp_configure_baudrate_lin(*args, **kwargs)tsapp_configure_can_regs(*args, **..
-
자동차 사이버 보안응용 2026.02.03 17:30
자동차 사이버 보안칩임 감지 시스템 (IDS: Intrusion Detection System) :: hsl's tsmaster 사용기 asc 파일을 m_id별로 분리하기 :: hsl's tsmaster 사용기asc 파일을 pandas 데이터프레임으로 변환하기 :: hsl's tsmaster 사용기 CAN 메시지 전송 주기 분포 분석 :: hsl's tsmaster 사용기 침입 판정 기준값 데이터 준비 :: hsl's tsmaster 사용기 IDS 오감지/ 민감 감지에 관한 고찰 :: hsl's tsmaster 사용기침입 감지 시스템 (IDS) - 타임스탬프 보완 :: hsl's tsmaster 사용기 IDS - 다채널 :: hsl's tsmaster 사용기 IDS - 다채널: ..
-
Python 미니프로그램 내장 함수design 2026.02.02 09:21
TSMaster Python API Reference생성일: 2026-02-02도구: TSMaster언어: Python통계전체 API 개수: 473카테고리: 3매칭 성공: 461프로토타입만: 12상세정보만: 0Table of Contents1. app (260 APIs)1.1 add_application1.2 add_direct_mapping_can1.3 add_direct_mapping_with_factor_offset_can1.4 add_expression_mapping1.5 add_path_to_environment1.6 add_system_constant1.7 am_get_running_state1.8 am_run1.9 am_select_sub_module1.10 am_stop1.11 call_l..
-
TSMaster로 하는 작업교육 2026.01.28 11:03
모니터링 (측정)TSMaster로 CAN 버스의 메시지들을 봅니다. 흔히, 모니터링이라고 합니다. dbc 파일을 로드하면, 신호들을 모니터링 할 수 있습니다.모니터링한 메시지들을 파일에 저장합니다. 흔히, 측정이라고 합니다. TSMaster는 기본적으로 메시지 단위로 저장합니다. 파일 포맷은 blf 입니다. TSMaster에는 blf 파일을 asc(ASCII), csv(Comma Separated), mat(Matlab) 등으로 변환하는 log conveter가 있습니다.차량의 CAN 버스에서 데이터를 직접 측정하는 경우가 대표적입니다. RBS 시험 대상 제어기 (DUT: Device Under Test)가 정상적으로 작동하도록 하기 위해서 제어기에 CAN 메시지들을 공급하는 것을 RBS(Remaini..
-
TSMaster 사용법 기초 교육 준비교육 2026.01.28 10:07
TSMaster 사용법 기초 교육을 위해서 아래 준비가 필요합니다. TSMaster 설치TSMaster 설치 :: hsl's tsmaster 사용기의 설명에 따라 TSMaster를 설치합니다. 인터페이스 하드웨어가 없어도 TSMaster 사용법을 연습할 수 있습니다. 하드웨어 없이 CAN 통신 실습하기 - Virtual Device :: hsl's tsmaster 사용기 실습에 필요한 파일dbcCAN 통신은 메시지 단위로 이뤄집니다. 메시지 안에 신호들이 들어있습니다. 신호가 관심 대상입니다.메시지는 0, 1의 나열입니다. 메시지 안에 신호들의 위치, 크기, 바이너리 신호(예, 0b0011)를 엔지니어링 단위 (예, 바퀴 속도 8.00km)로 변환하기 위해서 필요한 factor, offset..
-
바이브 코딩 대화카테고리 없음 2026.01.19 16:06
User: (해설: 실제로 아래와 같이 불렛으로 구분해서 포맷을 맞춰서 대화하지 "않았습니다". 읽기 편하시라고 포맷을 편집하였습니다.)우리의 지난 대화가 모두 날라갔네요. :-(esc_diag_tester_FRD.md의 내용으로 진단 시험기를 작성하려던 참이었습니다.PyQt5를 이용하기로 했습니다.(해설: GUI를 개발할 파이썬 프레임워크로 tkinter와 PyQt5의 장단점을 논의하던 중이었다.)Phase 1, 2의 요구 사항을 기반으로 코드를 작성해 주십시오.(해설: 내가 최초로 작성한 FRD에 클로드가 추가 가능한 기능들을 제안하였다. 그리고 Phase 1, 2, 3으로 단계를 나눠서 기능을 구현하자고 제안했다. 나는 동의했고, Phase 1과 2를 한 번에 작성하자고 하는 중이다. Phase 1..
-
바이브 코딩으로 진단기 만들기application 2026.01.19 13:20
시작하기 전에 "hsl's tsmaster 사용기" 블로그를 시작할 때(2024년 7월)는 마땅한 용어가 없어서 'ai의 도움을 받아 하는 코딩'이라고 길게 이야기를 했는데, 이제는 '바이브 코딩'이라는 용어가 자리를 잡은 것 같다. '바이브 코딩으로 진단기 소프트웨어를 만들 수 있지 않을까?'라는 생각이 들었다. 바이브 코딩 초창기에는 pdf 파일을 업로드할 수 없거나, 업로드 할 수 있는 파일의 크기가 작았다. 지금은 그런 제한이 없거나 사용에 불편하지 않을 정도로 크다. 그렇다면 투썬의 무료 라이브러리인 libTSCAN의 함수 설명 문서를 통째로 업로드하고, 이를 바탕으로 바이브 코딩을 할 수 있을까? 한다면 무엇 정도를 개발할 수 있을까? TSMaster의 Diagnostic(진단) 기능은 유용하..
-
diag_tester_FRDapplication 2026.01.19 12:43
ESC Diagnostic Tester - Functional Requirement Document (FRD)개요ESC (Electronic Stability Control) 제어기를 진단하는 도구(Diagnostic Tester, 진단 시험기, 시험기)이다.ESC와 시험기는 UDS(Unified Diagnostic Services) 기반 통신 프로토콜로 통신한다.통신은 CAN (Controller Area Network)으로 한다.사용자는 GUI에서 서비스를 선택하여 실행할 수 있다.MVP(Minimum Viable Product) 접근법으로 단계별 개발을 진행한다.참조 문서esc_diag_hsl.md: ESC 진단 통신 스펙 libTSCAN_Library_Python_Description.md: TO..
-
멀티플렉스 메시지analysis 2026.01.18 12:53
시작하기 전에 hardware version은 3.4, software version은 7.12 라는 정보를 CAN 메시지를 이용하여 전송하는 경우를 가정한다. 3, 4, 7, 12를 각각 hw_ver_major, hw_ver_minor, sw_ver_major, sw_ver_minor라는 부르겠다. 각 신호의 크기가 6 비트라고 가정한다. 일반적인 방법으로 6 비트 신호를 네 개 전송하려면, 24 비트가 필요하다. 이 신호들은 사실상 상수라고 볼 수 있다. 왠지 비트가 낭비되는 것 같지 않은가? 그렇게 생각한 누군가가 더 적은 비트를 써서 여러 신호들을 전송하는 방법을 고안했다. 그것이 멀티플렉스 메시지이다. 멀티플렉스 메시지를 정의하고 사용하는 방법을 설명한다. 개요멀티플렉스 메시지dbc에서 멀티..
-
포르쉐 타이칸 CAN 데이터에서 횡가속도 신호 찾기application 2026.01.06 21:29
시작하기 전에 포르쉐 타이칸 CAN 데이터에서 요-레이트 신호 찾기 :: hsl's tsmaster 사용기에서 나는 요-레이트 신호를 찾았다. 횡가속도 신호를 찾는 방법을 설명한다. 개요횡가속도 계산비트 패턴 검색결론 횡가속도 계산횡가속도, 요-레이트, 차속(v) 사이에는 아래 관계가 있다. F = m * a = m * accel_lat = m * v^2 / R = m * v / R * v = m * yaw_rate * v네 바퀴 속도를 알고 있다. 일반적인 주행 중에 차속은 비구동륜 속도의 평균으로 볼 수 있다. 제동 중이 아니라면. 그런데 타이칸은 AWD이다. 나는 네 바퀴의 평균을 차속으로 하기로 한다. 요-레이트를 찾았던 blf 파일을 재사용할 것이고, 당시 주행은 일반적이다. CAN 데..
-
포르쉐 타이칸 CAN 데이터에서 요-레이트 신호 찾기application 2026.01.04 00:49
시작하기 전에 타이칸(Taycan)은 포르쉐(Porsche)에서 만든 전기 스포츠 세단이다. 이 차의 CAN 데이터 파일에서 어느 메시지, 어느 위치, 몇 비트 크기로 요레이트 신호가 포함되어 있는지 찾아서 dbc 파일에 추가해 달라는 요청을 받았다. 그 방법을 설명한다. 개요내게 주어진 것들나의 작전: 비트 패턴 검색작전 실행CAN 리버스 엔지니어링 연장 개발결론 내게 주어진 것들타이칸을 주행하며 CAN 데이터를 측정할 수 있다.타이칸에서 측정한 CAN blf 파일네 바퀴 속도 (WSFL=wheel speed front left, WSFR=wheel speed front right, WSRL=wheel speed rear left, WSRR=wheel speed rear right) 신호들의 정의가..
-
비트 패턴 검색application 2026.01.03 22:00
🔍 Bit Pattern Search - Technical Reference Guide개요비트 패턴 검색은 CAN 버스의 원시 데이터(BLF 파일)에서 알려진 기준 신호(Reference Signal)와 유사한 패턴을 가진 비트 조합을 자동으로 찾아내는 기술입니다. DBC 파일 없이도 신호를 역추적(Reverse Engineering)할 수 있는 핵심 기술입니다.1. 원시 CAN 데이터의 구조1.1 BLF 파일의 실제 모습CAN 버스에서 수집된 원시 데이터는 다음과 같은 형태로 저장됩니다:시간(s) 채널 메시지ID DLC 데이터 (Hex)----------------------------------------------0.000 0 0x123 8 01 23 45 67..
-
LIN RBS (Remaining Bus Simulation) - 3/3analysis 2025.12.15 00:28
LIN RBS메인 메뉴/ Simulation/ LIN RBS Simulation을 클릭하여 LIN Remaining Bus Simulation 창을 연다.ldf 파일의 설정에 따라 창의 왼편에 채널과 노드들이 표시된다. 창의 오른편에 네트워크/ 노드/ 스케줄 테이블/ 메시지/ 신호가 표시된다.Channel 1 탭을 선택한다. MasterNode만 활성한다. 시뮬레이션을 On 한다.Channel 2 탭을 선택한다. MasterNode를 제외한 나머지 노드들을 활성한다. 시뮬레이션을 On 한다.시뮬레이션을 시작한다. 트레이스창에 RBS 메시지들이 표시된다.RBS 창에서 Tx 메시지의 신호값을 변경한다. 트레이스창에서 신호값이 변경되는 것을 볼 수 있다. 위 실험으로 MasterNode가 헤더 부분을 슬레이브..
-
LIN RBS (Remaining Bus Simulation) - 2/3카테고리 없음 2025.12.14 20:23
LIN 메시지 전송하기TSMaster에서 LIN 메시지를 전송하기 위해서 먼저 아래 두 가지를 해야 한다.하드웨어 설정LDF 임포트하드웨어 설정내게는 LIN 통신을 하는 제어기가 없다. 대신 LIN 채널이 여러 개 있는 TC1026P 하드웨어를 사용하기로 한다. TC1026P의 채널 1과 채널 2를 직접 연결한다. 이렇게 하면 채널 1에서 헤더를 송신하고 채널 2에서 수신한 헤더에 상응하는 응답을 송신하도록 할 수 있을 것이라는 생각이다. 헤더와 응답이 합쳐져서 하나의 LIN 메시지가 된다. 메인 메뉴/ Hardware/ Channel Selection에서 LIN 채널을 설정한다. 나는 2 채널을 사용할 것이라서 Channel Count를 2로 하였다. LIN 1, LIN 2에 TC1026P의 1, 2번..
-
LIN RBS (Remaining Bus Simulation) - 1/3analysis 2025.12.14 20:23
시작하기 전에 나는 전에 LIN 버스를 다뤄본 적이 없다. TSMaster로 LIN 버스 시뮬레이션(LIN RBS)하는 방법에 대한 문의를 받았다. 이 포스트에서 그 문의에 답하기 위해서 내가 해본 것들을 정리한다. 개요LIN 공부LIN 메시지 전송하기LIN RBS결론 LIN 공부참고 자료이 문의를 받기 전까지 내가 LIN을 전혀 들어보지 못했던 것은 아니다. 그렇다고 내 머리 속에서 이렇게 저렇게 하면 TSMaster로 LIN RBS를 할 수 있겠다.'는 생각이 떠 오르는 수준은 아니었다. 이런 경우 지식이 부족한 상태라는 것을 경험으로 배웠다. 유튜브에서 LIN 관련한 비디오들을 찾아보았다. LIN Bus Explained - A Simple Intro (2020): CSS Electronics라는..
-
CAN dbc를 CAN-FD dbc로 변환하면서 배운 것tip 2025.12.09 19:14
dbc conversion from CAN to CAN-FD¶CAN dbc 파일을 CAN-FD dbc 파일로 변환한다.candb++ 에디터에서 CAN dbc 파일을 열어서, 각 메시지들의 Type과 DLC를 변경하여 CAN-FD dbc로 변환하고자 했다. 메시지의 Type 선택 메뉴에 CAN Standard, CAN Extended 옵션은 있으나, CAN-FD Standard, CAN-FD Extended가 없다. DLC도 8 바이트를 초과하여서는 설정할 수 없다.살펴보니, candb++에서 처음에 dbc를 만들 때부터 CAN인지, CAN-FD 인지를 선택해야 한다.CAN dbc 파일을 CAN-FD dbc 파일로 변환하는 방법이 많이 있겠지만, 나는 코파일럿 (claude sonnet 4.5)의 도움으로..
-
CAN 통신 에러analysis 2025.11.30 16:07
시작하기 전에TSMaster를 사용하다보면 CAN 통신 에러가 발생한다. 아래 그림처럼 트레이스창에 에러의 종류가 표시된다. 에러를 감지한 제어기는, 즉시(현재 전송 중인 메시지의 전송 완료를 기다리지 않고) 에러 플래그를 전송한다. 버스 상의 모든 제어기들은 에러 발생을 통보받는다. 수신 제어기들은 현재 수신 중인 메시지를 버린다. 송신 제어기는 에러가 발생한 메시지를 재전송한다. 만일, 아래 그림의 예처럼 원인이 해결되지 않으면, 수신 제어기들은 메시지를 수신할 때마다 에러를 감지하여 즉시 에러 플래그를 전송하고, 송신 제어기는 즉시 재송신을 시도하기에 버스 로드가 급격히 증가한다. 증가된 버스 로드로 통신이 정상적으로 운영되지 않을 수 있다. 이 포스트에서는 에러의 종류와 감지 방법을 설명한다. ..
-
IDS - 다채널: TSMaster 미니프로그램 변경카테고리 없음 2025.11.26 16:59
시작하기 전에단채널 IDS를 수정하여 다채널을 대응하도록 한다. 구체적으로는, 메시지 아이디 (mid)만을 기준으로 참조하던 화이트 리스트, DLC (Data Length Code) 기준값, 전송 주기 기준값을 (채널, 메시지 아이디)의 쌍, 즉, (ch, mid)를 기준으로 참조할 수 있도록 코드를 수정한다. 수정한 결과는 아래와 같다. 미니프로그램 다채널 IDS 기능의 TSMaster 미니프로그램의 코드은 아래와 같다. 코드의 주석으로 설명을 하였다.# CODE BLOCK BEGIN Global_Definitions from TSMaster import *# 침입이 없는 상태에서 CAN 버스를 측정하였다.# 측정한 데이터를 분석하여, (채널, 메시지 아이디)의 쌍들을 추출했다.# (채널, 메시..
-
IDS - 다채널: 데이터 처리 코드 변경application 2025.11.26 15:43
asc 파일에서 IDS의 칩입 판정 기준들을 계산한다.¶CAN 채널이 여러 개인 경우의 IDS를 만들어 본다.이전에 작성한 IDS는 CAN 채널이 1개인 경우에 해당한다.(채널, 메시지 아이디) 조합을 기준으로 화이트 리스트가 필요하다.침입 감지 기준값들도 (채널, 메시지 아이디)를 기준으로하는 데이터 구조로 변경이 필요하다.asc 파일을 입력하면 (채널, 메시지 아이디)별로화이트 리스트를 작성하고,각 메시지 아이디별로 dlc 기준값을 저장하고,각 메시지 아이디별로 침입 감지를 위한 기준값을 계산하여계산 결과를 pickle 파일로 저장한다.수동으로 계산 값을 변경할 경우를 대비하여.계산 결과를 xlsx 파일로 저장한다.xlsx를 pickle 파일로 변환하여 저장한다. # importfrom pathlib..
-
IDS - 다채널application 2025.11.26 15:42
시작하기 전에 이전에 작성한 IDS( 침입 감지 시스템 (IDS: Intrusion Detection System) :: hsl's tsmaster 사용기)는 CAN 채널이 1개인 경우에 해당한다. 이 IDS를 변형하여 CAN 채널이 여러 개인 경우에 해당하는 다채널 IDS를 내나름대로 만들어본다. 개요(채널, 메시지 아이디) 조합을 기준으로 화이트 리스트를 만든다. 이전에는 메시지 아이디만을 기준으로 화이트 리스트를 만들었다.) 침입 감지 기준값 (DLC: Data Length Code, 메시지 전송 주기의 최소값)들도 메시지 아이디만을 기준으로 하는 구조에서 (채널, 메시지 아이디)를 기준으로하는 구조로 변경이 필요하다. 기존 데이터 처리를 위한 파이썬 코드를 변경한다. TSMaster에서 실행..
-
조향과 구동 조종을 위한 판넬을 만드는 법application 2025.09.18 12:37
시작하기 전에 can2ado - CAN to Analog/ Digital Output :: hsl's tsmaster 사용기에서 무선조종자동차(무조차)의 무선 통신을 CAN 통신으로 대체하여 조향과 구동을 제어하는 데모 개발 과정을 설명하였다.조향과 구동 제어를 위한 CAN 신호를 TSMaster의 Transmit 기능을 이용하여 만들었다. Transmit 기능은 CAN 메시지/ 신호를 만들 때 여러 모로 편리하다. 전용 GUI 만큼 편리할 수는 없다. TSMaster의 Panel 기능을 이용하여 전용 GUI를 만들어 본다. DIFA (Daegu International Future Auto & Mobility Expo 대구 국제 미래 모빌리티 엑스포 포럼 2025 대한민국 미래모빌리티엑스포 컨퍼런스)에..
-
can2ado - CAN to Analog/ Digital Output카테고리 없음 2025.09.12 10:38
시작하기 전에디지털/ 아날로그 신호를 CAN 신호와 함께 측정하기 - ADI2CAN :: hsl's tsmaster 사용기에서 adi2an (Analog/ Digital Input to CAN) 장치를 만든 배경, 과정, 결과물에 관하여 설명하였다.can2ado는 adi2can의 상대 장치라고 할 수 있다. CAN 신호를 받아서 아날로그, 디지털 출력을 한다.나는 (2025년) 10월 22일부터 24일까지 열리는 DIFA (Daegu International Future Auto & Mobility Expo 대구 국제 미래 모빌리티 엑스포 포럼 2025 대한민국 미래모빌리티엑스포 컨퍼런스 )에서 TSMaster를 전시할 때 데모를 만드는 중이다. 데모는 무선 조정 자동차(무조차)를 이용한다. 무선 대신 ..
-
blf --> csv --> 리샘플 --> xlsxanalysis 2025.09.05 09:14
시작하기 전에CAN 버스 데이터를 측정하여 blf 파일로 저장한다.TSMaster의 Log Converter를 이용하면 blf 파일을 csv 파일로 변환할 수 있다.csv 파일에는 타임스탬프 컬럼이 있다. 아래 그림의 A 컬럼이다. 모든 메시지들의 타임스탬프들이 있다. 빽빽하다.각 신호가 열로 입력되어 있다. C 컬럼부터다. 듬성듬성하다. 신호의 타임스탬프는 정확히는 신호를 포함한 메시지의 타임스탬프이다. 빈 셀이 있으면 데이터 분석이 어렵다. 리샘플링을 하여 아래 그림과 같이 만들어야 분석이 편리하다.csv 파일을 리샘플링하여 xlsx 파일로 저장하는 방법을 설명한다.이 방법은 TIO 측정 데이터 분석 - mat 파일을 데이터프레임으로 변환하기 (mdf2df) :: hsl's tsmaster 사용..
-
라이선스 확인 방법 - 하드웨어 라이선스카테고리 없음 2025.09.02 17:11
시작하기 전에 TSMaster의 라이선스에는 두 종류가 있다. 하드웨어 라이선스, 사용자 라이선스.하드웨어 라이선스의 경우,토선의 인터페이스 하드웨어에 라이선스가 심어진다. 토선이 라이선스를 심은 하드웨어를 고객에게 전달한다.추가 라이선스를 구매하는 경우, 라이선스 업데이트 :: hsl's tsmaster 사용기 에 설명한 방법대로 라이선스를 업데이트 한다.사용자 라이선스의 경우, 인터넷으로 토선의 라이선스 사이트(https://license.tsmaster.net/)에 로그인하여 라이선스와 PC를 바인드(bind)하여 사용하게 된다.하드웨어 라이선스의 경우, 하드웨어에 심어져 있는 라이선스를 확인하는 방법은 아래와 같다. 개요하드웨어 연결라이선스 확인 하드웨어 연결USB 포트 (혹은 이더넷 포트)..
-
TIO 측정 데이터 분석 - 디지털 입출력application 2025.09.02 16:29
이 글은 Jupyter 노트북으로 작성되었습니다. TIO 측정 데이터 분석 - 2. 디지털 입출력 점검¶TIO의 디지털 입출력 성능을 보기 위해 아래 실험을 하였다.TSMaster에서 TIO로 500msec 주기로 출력 요청용 CAN 메시지를 전송한다.디지털 출력 신호가 on/off로 토글하도록 요청 메시지의 해당 신호값을 토글시킨다.TIO의 디지털 출력 포트를 TIO의 디지털 입력 포트에 직접 연결한다. TIO는 입력 포트의 상태를 10msec 주기로 CAN 메시지로 전송한다.위 과정의 CAN 메시지들을 측정하여 파일로 저장한다.출력을 요청한 CAN 메시지의 요청 신호와 입력 신호를 전송한 CAN 메시지의 입력 신호를 비교한다. 아래 항목들을 확인한다.지연 시간은 몇 msec인가?요청 대비 출력..
-
수신 --> 필터 --> 연산 --> 전송simulation 2025.09.02 11:27
시작하기 전에 제어기가 동작하기에 필요한 CAN 통신을 모사해 주는 것을 RBS (Rest/ Remaining Bus Simulation)라고 한다. RBS를 아래 포스트들에서 다뤘다.CAN 버스 시뮬레이션 (RBS: Remaining Bus Simulation) :: hsl's tsmaster 사용기(판넬 사용법 설명을 포함한다.)Symbol Mapping: CAN 신호로 계산한 결과를 시스템 변수에 넣기 :: hsl's tsmaster 사용기 Symbol Mapping: 시스템 변수를 CAN 신호로 전송하기 :: hsl's tsmaster 사용기 TSMaster API를 사용하여 CAN 메시지 송신하기 (RBS) :: hsl's tsmaster 사용기 Python 미니프로그램: 코드에..
-
TIO 측정 데이터 분석 - mat 파일을 데이터프레임으로 변환하기 (mdf2df)application 2025.09.01 12:26
이 글은 Jupyter 노트북으로 작성하였습니다. 시작하기 전에TIO로 디지털 신호와 아날로그 신호를 측정했다.TIO는 CAN으로 통신하는 Tosun의 Input Output 장치이다 (이름의 유래로 추측한다.). Digital IO, Analog IO, 저항, 릴레이 모듈들이 있다. 모듈들을 아래 사진처럼 TSMaster와 CAN으로 연결한다. https://tosunai.kr/hardware/category/tio-series/ 위 실험 셋업에서 CAN 메시지로 Digital Output, Analog Output을 제어하며, Digitial Input, Aanlog Input 메시지로 수신하여 blf 파일로 저장하였다.제어 요청과 디지털, 아날로그 신호의 실제 값 사이에 얼마의 시간 지연이 있..
-
온라인 재생카테고리 없음 2025.08.29 17:13
시작하기 전에 CAN 버스를 측정한 blf 파일을 제어기가 연결된 버스선에 온라인으로 재생하여 제어기의 기능을 검증하는 경우가 있다. blf 파일의 데이터를 CAN 버스에 재생하는 것을 온라인 재생이라고 부른다. (CAN 버스에 재생하지 않고 화면에 데이터를 보기만 하는 경우 오프라인 재생이라고 한다.)온라인 재생 방법을 설명한다. 개요온라인 재생온라인 재생에 필터 걸기 온라인 재생메인 메뉴/ Analysis/ Bus Replay로 Bus Playback 창을 연다.Bus Playback 창에서 Online Replay 탭으로 간다. + 기호가 있는 버튼을 클릭하여 삼각형의 플레이 버튼을 클릭하면 온라인 재생이 시작된다.온라인 재생의 속도는 기본적으로 측정 속도와 동일하다. 변경할 수 있다.트레이스 창..
-
dbc2xlsxtip 2025.08.29 11:32
시작하기 전에 xlsx2dbc :: hsl's tsmaster 사용기에서 xlsx 파일을 dbc 파일로 변환하는 방법을 설명했다.xlsx를 dbc로 변환한다는 것은, dbc를 변환한 xlsx가 존재하는 것을 전제한다. 수작업으로 신호 하나하나 메시지 하나하나 엑셀에서 작업했을 수도 있다. dbc에서 xlsx로 변환하는 파이썬 스크립트를 작성한다. 개요메시지 정의에 필요한 데이터는 무엇인가?신호 정의에 필요한 데이터는 무엇인가?dbc2xlsx.py 메시지 정의에 필요한 데이터는 무엇인가?xlsx2dbc :: hsl's tsmaster 사용기에 H사가 만든 xlsx를 보면 메시지와 신호를 정의하는데 필요한 최소 데이터를 알 수 있다. 다시 나열하며 아래와 같다. Message: 메시지 이름 ID: 메시..
-
dbc 파일에서 바이트 오더와 스타트 비트 위치와 LSBtip 2025.08.27 09:13
시작하기 전에dbc 파일을 xlsx 파일로 변환하는 파이썬 스크립트를 작성했다. (블로그 작성 예정이다.)xlsx 파일을 dbc 파일로 변환하는 파이썬 스크립트를 작성했다. xlsx2dbc :: hsl's tsmaster 사용기cantools( CAN BUS tools — cantools 39.4.3.dev10+gcc02988 documentation)라는 파이썬 모듈을 이용했다.cantools의 메시지 내 신호 시작 "위치"(start bit. 스타트 비트)를 지정하는 방법과 dbc 파일에서의 방법이 바이트 오더 (byte order)가Intel (little endian)인 경우, 동일하다.Motorola (big endian)인 경우, 다르다.이를 고려하여 스타트 비트를 변환을 해야 한다. 이것을 ..
-
dbc 파일 인코딩 (encoding)tip 2025.08.26 17:31
dbc 파일에 메시지나 신호에 관한 설명을 comment 칸에 한글로 입력하는 경우가 있다.dbc 파일을 cantools 같은 툴로 xlsx 파일로 변환하는 경우가 있다. cantools의 dbc 파일의 기본 인코딩 CP1252이다. CP1252는 마이크로소프트 윈도우의 레거시 환경에서 영어, 프랑스어, 독일어 등 서유럽 언어를 지원하기 위해 사용되는 단일 바이트 문자 인코딩(코드 페이지)입니다. ISO 8859-1과 일부 호환되지만, 몇몇 문자인코딩이 다릅니다. - 위키피디아cantools에서 dbc 파일을 읽어서 xlsx 파일로 변환하여 Excel에서 보면 글자가 깨져서 표시된다. 해결은 간단하다. dbc 파일을 텍스트 에디터인 Notepad++ 열면 인코딩을 확인할 수 있다. EUC-KR로 인코딩..
-
xlsx2dbctip 2025.08.22 16:10
시작하기 전에 H사는 협력사와 CAN 메시지/신호(매트릭스, matrix) 변경을 협의할 때 xlsx 파일을 이용한다고 한다.변경된 CAN 매트릭스를 툴에 적용하려면 dbc 파일이 필요하다.xlsx의 변경 내용을 수동으로 dbc에 입력하는 것은 불편하다. 귀찮은 일이다. 입력하고 확인하는데 시간도 많이 든다. 꼼꼼하게 하는데 에너지도 많이 든다. 실수가 있을 수도 있다.xlsx를 dbc로 만드는 파이썬 스크립트를 작성하였다.시간, 노력을 아끼는데 도움이 되기를 바란다. 개요xlsx 구조 살펴보기xlsx2dbc.py 작성하기실행 결과 (생성된 dbc) xlsx 구조 살펴보기xlsx의 구조는 아래 그림과 같다. Message: 메시지 이름ID: 메시지 아이디, 헥스 (string)DLC [byte]: 메시지..
-
트레이스창에서 메시지 필터 걸기analysis 2025.08.19 14:41
트레이스창에서 특정 메시지 아이디만 보거나(pass) 차단(block) 할 수 있다. 그 방법을 설명한다.트레이스창을 연다.트레이스창의 상단에서 필터(깔때기 모양) 단축 버튼을 클릭한다. 필터 설정창이 열린다.왼쪽 아래에서 "Filter Enabled"를 체크한다.Pass 필터를 선택한다. (혹은 Block 필터를 선택한다.)마우스 우클릭으로 메뉴를 띄운다. Add raw CAN frame을 선택한다. 필터 행이 추가된다.필터 행에서 Channel을 선택하고 Identifier를 입력한다.Add CAN frame from DB 메뉴를 선택하면, 필터를 적용할 메시지 아이디를 입력하는 대신 데이터베이스에서 메시지를 선택할 수 있다.트레이스창의 필터는 메시지 아이디 범위로 필터할 수 없고 개발 메시지 아이디..
-
YouTube: 미니프로그램에서 엑셀 파일 다루는 방법YouTube 2025.08.19 14:14
미니프로그램에서 엑셀 파일을 다루는 방법MiniProgramReadExcel - YouTube 설명 내용미니프로그램에서 엑셀 파일의 데이터를 읽어서 프로그램에 사용할 수 있다. 예를 들면 전송해야할 메시지 아이디와 데이터를 엑셀 파일에 저장해두고, 미니프로그램에서 엑셀 파일을 읽어서 전송한다. 이렇게 하면 코드 수정없이 엑셀 파일 변경으로 전송 메시지를 변경할 수 있다. 내가 배운것미니프로그램 라이브러리를 사용하는 방법 미니프로그램 라이브러리 사용법 :: hsl's tsmaster 사용기async 전송과 sync 전송의 차이
-
YouTube : 하드웨어 설정에서 하는 수신 메시지 필터YouTube 2025.08.19 14:13
하드웨어 설정에서 하는 수신 메시지 필터YouTube: Global Rx Filter설명 내용하드웨어 설정에 수신 메시지 필터가 있다.이 방법은 CAN 콘트롤러 칩에 있는 마스크(Mask)와 필터를 설정한다. 내가 배운것하드웨어 설정으로 필터를 하면 PC 프로세서에 연산 부담이 없다. UDS 메시지만 보기 - 메시지 아이디 필터 :: hsl's tsmaster 사용기나 트레이스창에서 메시지 필터 걸기 :: hsl's tsmaster 사용기에서 소개한 방식은 TSMaster를 이용하여 소프트웨어적으로 필터를 하는 방식이다. PC 프로세서에 부담이 있다.TSMaster를 2개 열어서 Virtual Device를 이용하여 한 쪽은 송신으로 다른 한 쪽은 수신으로 사용할 수 있는 것을 배웠다.미니프로그램으로 ..
-
UDS 기반 제어기 프로그래머 개발 - libTSCANapplication 2025.08.11 16:23
시작하기 전에 ts_can_flash_programmer 개발 - libTSCAN :: hsl's tsmaster 사용기 에서 토선의 libTSCAN.dll (libTSCAN은 공짜다. 토선 하드웨어는 공짜가 아니다.)을 이용하여, Texas Instrument의 C2000 패밀리 마이크로콘트롤러 칩을 CAN으로 프로그램밍하는 PC용 툴을 개발했다.ts_can_flash_programmer는 오늘날 자동차 산업에서 사실상 표준인 UDS (Universal Diagnostic Service)를 따르지 않는다. libTSCAN을 이용하여 UDS 표준에 따라 CAN 통신으로 프로그래밍을 하는 PC용 툴을 만들어본다.ts_can_flash_programmer는 C로 짰다. (ai가 짰지만) 내가 익숙한 파이썬으..
-
판넬에서 이미지로 차의 주행 방향을 표시하는 방법analysis 2025.07.27 19:57
시작하기 전에 아래 포스트들에서 판넬 기능으로 출력용 GUI와 입력용 GUI를 작성하는 방법을 설명하였다. 판넬로 출력하는 방법 - 관계도 :: hsl's tsmaster 사용기 판넬로 사용자 입력 받는 법 :: hsl's tsmaster 사용기 차 그림을 이용하여 차의 주행 방향을 표시할 수 있으면 좋겠다는 요청을 받았다. 내가 구현한 방법을 설명한다. 개요판넬에 차 이미지 출력을 위한 콘트롤 추가하기YAW_RATE(CAN 신호)에서 calc.heading_angle(시스템 변수) 구하기heading_angle 만큼 차 이미지를 회전하기 실행결론 판넬에 차 이미지 출력을 위한 콘트롤 추가하기메인 메뉴/ Simulation/ Panel/ Add Panel로 새 판넬을 추가한다. 혹은 기존 ..
-
ts_can_flash_programmer 개발 - libTSCANapplication 2025.07.26 16:55
시작하기 전에 TI (Texas Instrument)에 C2000 패밀리 마이크로콘트롤러 칩이 있다. 이 패밀리의 어떤 칩들은 CAN/ CAN-FD를 지원한다.TI에서 제공하는 기본 부트로더는 CAN 통신으로 플래시 메모리 프로그래밍할 수 있는 기능을 제공한다. TI는 이때 사용하는 can_flash_programmer.exe라는 PC용 앱을 제공한다.이 프로그램은 PEAK사의 CAN 인터페이스 하드웨어만 지원한다. 나는 TOSUN사의 하드웨어만 갖고 있다.ti.com에서 can_flash_programmer의 코드(can flash programmer)와 문서( CAN Flash Programming of C2000™ Microcontrollers (Rev. A))를 찾았다. 이 둘을 기반으로 토선 하..
-
vscode에서 깃헙 코파일럿과 코드 개선카테고리 없음 2025.07.26 16:25
promptg_iTransmitDelay = 10; 의 10을 #define 으로 설정하도록 해주세요.responseI'll help you replace the hardcoded value 10 with a #define constant. Let me first examine the file to understand the context better and then make the changes.Read ts_can_flash_programmer_v1_1.c, lines 1 to 100Now I need to see the part where the value 1 is also used for f28p65x to add both defines. Let me check the area around lin..
-
claude.ai와 코드, 문서 분석 및 코드 작성application 2025.07.26 15:07
CAN Flash Programmer Porting ProjectPrompt:내가 첨부할 파일들은 TI(Texas Instrument)사의 칩을 CAN 통신을 통해서 플래시 프로그래밍하는 도구인 can_flash_programmer의 코드 파일들입니다.can_flash_programmer.cppf021_DownloadImage.hf021_DownloadImage.cppPCANBasic.h이 앱은 PEAK사의 CAN(Controller Area Network) 하드웨어를 이용하여 USB를 통해서 CAN 통신을 합니다.나는 토선(Tosun)사의 CAN 하드웨어를 이용하는 이와 동일한 프로그램을 개발하려고 합니다.이 프로그램의 이름은 ts_can_flash_programmer로 하겠습니다.이 프로그램 개발을 ..
-
배터리 셀 정보 표시 대시보드 만들기카테고리 없음 2025.07.26 13:09
시작하기 전에 아래의 요청을 받았다.배터리 셀들의 정보를 한(one) CAN 메시지(CELL_INFO)로 받는다.메시지에는 셀 아이디 (idCell) 신호와 셀의 상태 신호들(s1, s2, s3, s4)이 있다.단일 아이디의 메시지에 여러 셀들의 정보를 전송한다. 일종의 멀티플렉서이다. idCell은 4 비트 신호다. 0 .. 15 까지 16개이다.상태 신호는 s1, s2, s3, s4로 4개이다. 실제로 전압, 온도 등이다. TSMaster 그래픽스창에 셀 별로 상태 신호 (총 16 x 4 = 64개)들을 셀 별로 출력할 수 있는가? 가능하다. 결과는 아래 그림과 같다. TSMaster의 그래픽스창은 시스템 변수를 표시할 수 있다는 사실을 이용하여 아래와 같이 하였다.파이썬 미니프로그램으로 64개의..
-
adi2can 사용자 설명서hardware 2025.07.21 15:46
개요기능: 아날로그, 디지털 입력 신호를 CAN 메시지로 전송입력아날로그: 0V ~ 5V x 2 채널 (5V를 초과하면 칩에 영구적인 손상이 발생할 수 있습니다.)디지털: 5V ~ 12V x 6 채널 (12V를 초과하면 칩에 영구적인 손상이 발생할 수 있습니다.)출력CAN 메시지Tx: aMsg x 1, dMsg x 1, sMsg x 1Rx: cMsg x 1 (Msg Id, 전송 주기 설정용)aMsg, dMsg, sMsg, cMsg에 대한 상세는 차차 설명합니다. 사용법먼저 설정하고 측정에 사용합니다.첨부 dbc 파일로 aMsg, dMsg, sMsg의 신호들을 볼 수 있다.adi2can의 aMsg, dMsg, sMsg 정의가 포함된 dbc 파일첨부 T7z 파일은 TSMaster 프로젝트를 Export하여 ..
-
ADI2CAN 개선 - Open Source 공개hardware 2025.07.19 15:46
PICODE( PICODE – Automotive testing solution)에 의해 창작된 adi2can을 만드는데 필요한 PCB 거버 파일과 회로도, 3D 프린터로 케이스를 만들기 위한 파일들, 소프트웨어 소스 코드, CAN dbc 파일, 사용자 가이드는 크리에이티브 커먼즈의 CC BY 라이선스 (https://ccl.cckorea.org/reuse/method/)에 따라 이용할 수 있습니다. 시작하기 전에 디지털/ 아날로그 신호를 CAN 신호와 함께 측정하기 - ADI2CAN :: hsl's tsmaster 사용기 에서 아두이노를 이용한 아날로그, 디지털 신호를 CAN 메시지로 전송하는 ADI2CAN을 만들었다. 자동차의 이그니션 신호를 ADI2CAN의 입력으로 받을 일이 있다. 이그니션 ..
-
라이선스 업데이트tip 2025.07.10 09:44
시작하기 전에TSMaster는 수십 가지 모듈들로 구성되어 있다. (https://license.tsmaster.net/mainInterface/pricing) 사용자는 모듈들을 선택하여 사용권(라이선스)을 구매하고 사용하게 된다. (어떤 모듈들은 패키지로 묶여있다. 이들은 개별적으로 선택할 수 없다.)구매한 모듈들의 라이선스는 토선 하드웨어에 키(key)로 심어져 제공된다. PC에 파일로 설치할 수도 있다. 전자는 하드웨어를 공유할 때 편리하다, 후자는 PC를 공유할 때 편리하다. 후자의 경우 PC를 바꿀 수 있는 회수 제한이 있다. (5회던가?) PC를 바꾸는 일이 생기니까.사용 중에 모듈을 추가 구매하는 경우 라이선스 업데이트가 필요하다. 여기서는 "하드웨어"의 라이선스 업데이트 방법을 설명한다. ..
-
하드웨어 펌웨어 업데이트tip 2025.07.09 21:34
개요TSMaster 업데이트 :: hsl's tsmaster 사용기하드웨어 펌웨어를 업데이트 하기 전에 TSMaster를 업데이트 한다.TSMaster가 설치될 때 하드웨어 펌웨어 파일들이 함께 설치된다. TSMaster를 업데이트 하는 것으로 최신 펌웨어 파일들을 다운로드 받게된다. 그래서 펌웨어 업데이트 전에 TSMaster 업데이트를 권장한다. 하드웨어 펌웨어 업데이트 하드웨어 펌웨어 업데이트메인 메뉴/ Hardware/ Channel Mapping을 클릭하여 TS Channel Mapping 창을 연다. 창 왼쪽 영역의 Hardware에서 업데이트 대상 하드웨어를 선택한다. 창의 오른쪽 영역 Latest Firmware Date Time의 날짜가 빨간색으로 표시되면 업데이트할 펌웨어가 있다는 의..
-
TSMaster 업데이트tip 2025.07.09 21:20
TSMaster 업데이트메인 메뉴/ Help/ Check Update를 클릭하여 Check Software Update 화면을 연다. TSMaster는 업데이트가 있는 지 확인한다. 잠시 시간이 걸린다. 업데이트가 있으면 아래 그림처럼 업데이트 진행 여부를 묻는 창이 뜬다. Yes를 클릭한다. TSMaster 설치 파일 다운로드가 진행된다. 설치를 위해서 현재 열려있는 TSMaster를 닫아야 한다. TSMaster를 닫고 예를 클릭한다. 윈도의 프로그램 설치 창이 뜬다. 프로그램 설치 안내에 따라 설치를 진행한다. 설치가 완료되면 TSMaster가 자동으로 시작되어 아까 TSMaster를 닫았을 때 화면이 열린다. Have fun! 목차 :: hsl's tsmaster 사용기
-
메시지 아이디 필터 - 진단 통신 메시지만 보기analysis 2025.07.09 19:57
시작하기 전에 트레이스 창에서 진단 통신 메시지만 필터해서 볼 수 있는 방법에 관한 문의를 받았다. 진단 통신 메시지의 아이디가 0x700에서 0x7FF 까지라는 점에서 착안하여, TSMaster의 Measurement Filter에서 Id Range 필터 기능을 이용하면 구현한다. 개요트레이스 창 앞에 필터 추가필터 설정측정 트레이스 창 앞에 필터 추가 메인 메뉴/ Analysis/ Measurement Setup을 클릭한다. 필터 설정Measurement Setup 창에서 필터를 걸 Trace 창을 선택한다. 마우스 우클릭하여 Insert Filter를 선택한다. 아래 그림처럼 Trace 창 앞에 Measurement Filter가 삽입된다. Measurement Filter를 더블클릭하여 Meas..
-
TSMaster 설치tip 2025.06.25 22:37
개요TSMaster 설치언어 설정 TSMaster 설치TSMaster는 아래 링크에서 설치할 수 있다. https://license.tsmaster.net/mainInterface/pricing 링크를 클릭하면 아래 그림의 페이지로 이동한다. 이 페이지에서 세 버전의 TSMaster를 다운로드 할 수 있다. Lite, Standard, Professional.Free Trial 버튼을 클릭하면 Log In 화면이 뜬다. 위 링크에서는 로그인을 한 후에 다운로드를 한다.토선 홈페이지 (https://tosunai.kr/)에는 TSMaster를 다운로드할 수 있는 링크가 여러 곳에 있다. 다른 곳과 달리 이곳에서는 로그인이 필요하다. 회원 가입 이전이면 "Sign Up" 링크를 클릭하여 회원 ..
-
Jupyter 노트북 열어보기 가이드tip 2025.06.25 12:53
배경나는 파이썬 코드를 작성할 때 Jupyter(주피터) 노트북을 종종 사용한다. 코드를 여러 부분들로 나눠서 작성하고, 실행하며 검증할 수 있어서 편리하다. 특히 좋은 점은 "주피터 노트북"을 저장하면 전체 과정이 "기록"으로 남는 것이다. 내 포스트들 중 일부는 그 자체로 주피터 노트북이다. 주피터 노트북이 생소한 독자분들을 위해서 claude.ai에게 요청하여 만든 사용 가이드를 올린다. 주피터 노트북이 있는 포스트들에 이 포스트를 링크할 계획이다. Jupyter 노트북(.ipynb) 파일 열어보기 가이드📋 ipynb 파일이란?.ipynb 파일은 Jupyter 노트북 파일로, 파이썬 코드와 그 실행 결과, 텍스트 설명 등이 함께 저장된 대화형 문서입니다. 데이터 분석, 머신러닝, 연구 등에 널리..
-
CAN과 CAN-FD를 혼합 사용하면 ...?hardware 2025.06.13 18:07
시작하기 전에CAN이 탄생한 시기에 CAN의 (최대 1Mbps가 가능하지만 통상 사용되는) 500kbps 라는 통신 속도는 느린 편이 아니었다. CAN 출현 후 거의 40년이 지난 오늘날 우리에게 익숙한 통신 속도의 단위는 Mbps나 Gbps이다. 이에 비하면 500kbps는 (실제 느린가는 별도 논의의 좋은 주제라고 생각하지만) 느린 느낌이다.CAN을 발명한 Bosch는 누구보다 이걸 잘 안다. 그래서 CAN의 속도를 개선하였다. 임시로 이 개선된 CAN을 2세대 CAN이라고 부르겠다.CAN이 가장 많이 사용되는 산업 분야인 자동차 산업은 제품의 수명 주기가 길다. 자동차사들은 원가를 낮추기 위해서 '규모의 경제'를 최대한 활용한다. 차종간에 부품을 공유할 수 있도록 설계하고, 부품을 구매할 때 한 차..
-
timestamp, ACK와 ACK errorhardware 2025.06.11 12:09
시작하기 전에 CAN 프레임에는 ACK 비트가 있다. CAN 하드웨어 설정에는 Controller Mode 항목이 있고, 이 항목에는 "ACK Off"라는 옵션이 있다. ACK 관련하여 ACK error가 발생하기도 한다. ACK 관련하여 실험한 내용을 정리한다. 개요실험 환경ACK와 timestampACK Off와 ACK errorACK Off를 사용하는 경우결론 실험 환경CAN 채널이 2개인 TC1013을 이용한다.TC1013의 두 채널을 아래 사진처럼 점퍼 케이블로 연결한다. TSMaster에서 메시지를 송신할 Transmit 창과 수신 메시지를 표시할 Trace 창을 연다채널 1에서 메시지를 전송하고 채널 2에서 수신한다. ACK와 timestamp채널 1과 2의 하드웨어 설정을 디..
-
디지털/ 아날로그 신호를 CAN 신호와 함께 측정하기 - ADI2CANhardware 2025.06.07 21:14
시작하기 전에 CAN 신호를 측정하다보면 CAN과 신호와 함께 디지털 신호(on/ off. 스위치 상태)나 아날로그 신호(센서 출력)를 측정하면 유용한 경우가 있다. 예를 들면,이그니션 신호(on/ off만 있으므로 디지털 신호이다.)를 CAN 신호와 함께 저장하면 시험 시작과 종료를 정확히 알 수 있다. 시험 자동화를 한 수준 높일 수 있을 것이다.외부 로드셀 신호(하중 값은 일정 범위에서 변하므로 아날로그 신호이다.)를 CAN 신호와 함께 저장하여 하중과 액추에이터 소비 전류의 관계를 검증할 수도 있다. 시중에 CAN 하드웨어 제품들 중에 디지털 입력이나 아날로그 입력을 받을 수 있는 것들이 있다. 이런 하드웨어들은 CAN만 측정하는 하드웨어에 비하여 (당연히) 비싸다. 나는 단지 디지털 입력 채널..
-
DoIP 메시지 분석기diagnostic 2025.04.29 00:42
시작하기 전에 DoIP (Diagnostic over Internet Protocol) - 하드웨어 설정 :: hsl's tsmaster 사용기 에서 DoIP의 메시지는 TCP 메시지의 페이로드이고, TCP 메시지는 IP 메시지의 페이로드이고, IP 메시지는 이더넷 메시지의 페이로드라는 것을 설명하였다. 그리고 DoIP 메시지의 페이로드는 UDS 메시지이다. 이 UDS 메시지는 CAN의 UDS 메시지와 동일하다. DoIP (Diagnostic over Internet Protocol) - 메시지 해석 :: hsl's tsmaster 사용기 에서 Ethernet Trace 창에서 이더넷 메시지의 헤더와 페이로드를, 이더넷 메시지의 페이로드인 IP 메시지에서 헤더와 페이로드를, IP 메시지의 페이로드인 ..
-
DoIP asc to xlsxdiagnostic 2025.04.28 23:56
DoIP asc 데이터 파일을 xlsx로 변환하기DoIP 통신 데이터가 저장된 asc 파일을 읽는다.이더넷 메시지가 있는 줄만 추출한다.각 줄을 구성 요소별로 분리한다.각 줄을 행으로 요소를 열로 하여 xlsx에 저장한다.# importfrom pathlib import Pathimport pandas as pd# asc 파일을 줄 별로 읽어오기dir_asc = Path('.').absolute()/'asc'file_asc = dir_asc/'obd_ethernet_log.asc'with open(file_asc, "r") as file: lines = file.readlines()# asc 파일의 내용을 본다.lines[:25]['date Fri Sep 13 02:57:32.035 pm 2024\..
-
XCP - 측정카테고리 없음 2025.04.13 20:25
시작하기 전에XCP - 설정 :: hsl's tsmaster 사용기 에서 제어기 소프트웨어 내부 신호 측정과 파라미터 캘리브레이션을 위하여 TSMaster의 Calibration 창에서 XCP 관련 설정하는 방법을 설명하였다. 기본적으로 a2l 파일을 로드하면 된다. (간단하다.) 이번에는 XCP로 측정하는 방법을 설명한다. 개요측정할 신호들을 수치창에서 보기그래프로 보기판넬로 보기 측정할 신호들을 수치 표시창에서 보기Calibration 창의 왼쪽 캘리브레이션 요소에서 Devices/ ECU/ Database를 선택하면, 창의 오른쪽에 a2l에 포함된 정보를 볼 수 있다. 여러 종류의 소프트웨어 변수들이 있다. (기회가 되면 소프트웨어 변수의 종류들을 하나씩 설명하겠다. 지금 설명하면 이야..
-
XCP - 설정application 2025.04.13 15:44
시작하기 전에모니터링의 제약TSMaster로 네트워크(CAN, LIN, FlexRay, Ethernet)의 메시지들를 모니터링 할 수 있다. CAN을 대상으로 설명하자면, CAN 버스(들)의 메시지들을 모니터링 할 수 있다. 메시지의 구조를 알면 (dbc 파일이 있으면), 메시지에 포함된 신호들을 모니터링 할 수 있다. CAN 데이터로 제동 성능 평가하기 :: hsl's tsmaster 사용기 등에서 설명한 것처럼 CAN 신호 모니터링은 차량 성능 평가나 기능 개발에 여러 모로 유용하다. 하지만 dbc와 소프트웨어를 변경하지 않고서는 새로운 신호를 모니터링 할 수 없다는 한계가 있다. 제어기 소프트웨어의 많은 변수들 중에서 그때그때 내가 필요로 하는 변수들을 선택해서 모니터링 할 수 있으면 좋지 않을까?..
-
DoIP (Diagnostic over Internet Protocol) - TSMaster API C 코드카테고리 없음 2025.04.11 15:28
시작하기 전에 정비를 하다보면 진단 통신으로 제어기의 상태를 확인하고, 상태에 따라 제어기를 조작하고, 다시 제어기의 상태를 확인하고, 또 다시 상태에 따라 제어기를 조작하는 일을 반복하는 경우가 많다. 이런 경우 미리 프로그램을 작성해두면 편리하다. TSMaster Diagnostic의 Automatic Diagnostic 기능을 이용하여 프로그램을 할 수 있다. TSMaster는 이를 진단 플로우(flow)라고 한다. C나 Python으로 코딩을 하면 더 유연하게 더 복잡한 조작을 프로그램 할 수 있다. C 코드를 이용하여, DoIP 진단 통신하는 방법을 설명한다. 개요DoIP 예제 코드로 방법을 설명한다. 코드는 아래의 구조로 되어있다. TSMaster 설정하드웨어 설정채널 설정DoIP 설정Do..
-
DoIP (Diagnostic over Internet Protocol) - 메시지 해석diagnostic 2025.04.08 21:13
개요이더넷 메시지를 보는 방법DoIP 메시지 해석 방법Rourting Activation Request/ Response MessageDiagnostic MessageVehicle Identification Message 이더넷 메시지를 보는 방법인터페이스 하드웨어를 이더넷 케이블에 연결한다. 인터페이스 하드웨어를 PC의 USB에 연결한다. 메인 메뉴/ Analysis/ Trace 버튼을 클릭하여 Add Ethernet Trace를 선택하여 이더넷 트레이스 창을 연다.Start 버튼을 클릭하면, 이더넷 트레이스 창에 이더넷 메시지들이 보인다.데이터의 상세를 보고 싶은 메시지를 선택한 후, 위 그림에서 노란색 화살표가 가리키는 영역 확장 버튼을 클릭한다. 그러면 아래 그림처럼 메시지의 상세를 볼 수 있다...
-
DoIP (Diagnostic over Internet Protocol) - TP 설정diagnostic 2025.04.07 23:21
개요TP 설정PC의 TCP/IP Stack 설정Diagnostic Layer 설정 TP 설정TSMaster에는 DoIP 설정을 위한 창이 두 개가 있다. 추측컨데, 이더넷에 대응하기 위해서 DoIP 창을 만들었고, 개발을 진행하여 DoiP 창의 기능을 Diagnostic 창과 합친 것이 아닌가 한다. 나는 Diagnostic 창을 이용해서 설명한다. 해보지 않았지만, 동일한 방법으로 DoIP 창에서 해도 되는 것 같다.메인 메뉴/ Application/ DoIP 버튼을 클릭하여 DoIP 창을 연다.메인 메뉴/ Application/ DoIP 버튼을 클릭하여 Diagnostic 창을 연다.Diagnostic 창에서 Protocol (ISO TP) 탭을 선택한다. 창의 왼쪽 영역의 DiagnosticECU..
-
DoIP (Diagnostic over Internet Protocol) - 하드웨어 설정diagnostic 2025.04.07 22:14
시작하기 전에 나는 환경, 에너지, 자동차, SDV, 통신, 사이버 보안, ai 코딩에 관심이 있다. 나는 이전 글들에서 SDV (Software Defined Vehicle)를 한두 번 언급한 적이 있다. 나는 아래 생각을 갖고 있다. 2025년 자동차 산업은 SDV (Software Defined Vehicle)로 패러다임 전환을 진행 중이다. “나이든 개에게는 새 재주를 가르칠 수 없다. (You cannot teach an old dog new tricks.)” 라는 서양 속담이 있다. (맞는 비유는 아니지만 강조를 위해 이를 차용하자면) 지난 시대의 자동차는 처음부터 늙은 개와 같다. 주인과 함께 하는 동안 새 재주를 배우지 못한다. (이런 것이 나쁘다고 말하려는 의도가 아니다. 그냥 그렇다는..
-
미니프로그램 라이브러리 사용법tip 2025.04.07 18:47
TSMaster에는 미니프로그램 기능이 있다. C, Python 프로그램으로 TSMaster 자체를 조작할 수 있고, CAN/ LIN/ Ethernet 메시지들을 송수신 할 수 있고, ... C, Python 프로그램으로 할 수 있는 무궁무진한 작업들을 할 수 있다. TSMaster는 미니프로그램에서 사용할 수 있는 함수들을 모아둔 라이브러리를 제공한다. 막강한 C나 Python 라이브러리에 비해 보잘 것 없다. ai 코딩의 발전 덕택에 활용도는 더 낮아질 것 같다. 그래서 쓸 일이 있을까 싶기도 하다. 어쨌든 ... 사용법은 아래와 같다. 메인 메뉴/ Design/ Mini Program Library를 클릭하여 Mini Program Library 창을 연다. Mini Program Library ..
-
트레이스를 이용한 RBS - 필터simulation 2025.03.24 13:15
시작하기 전에트레이스를 이용한 RBS(Remaining Bus Simulation) :: hsl's tsmaster 사용기 설명에서 트레이스를 이용하여 RBS 하는 방법을 설명하였다. 내가 실험할 당시에는 온라인 재생 기능에 "전송" 메시지 필터 기능이 없었다. (혹은 내가 찾지 못했다.) 최근에 살펴보니 온라인 재생 기능에 전송 메시지 필터 기능이 있다. 방법메인 메뉴/ Analysis/ Bus Replay 버튼을 클릭하여 Bus Playback 창을 연다. Bus Playback 창에서 Online Replay 탭을 클릭한다.트레이스 추가 버튼을 클릭하여 재생할 트레이스 파일을 선택한다.트레이스의 설정 버튼을 클릭하여 설정 창을 연다. 트레이스 설정 창에서 Set As Block Filter 버튼..
-
하드웨어 없이 CAN 통신 실습하기 - Virtual Devicetip 2025.03.20 20:00
TSMaster의 TS Virtual Device를 이용하면 하드웨어 없이 송/수신 관련 기능을 실습할 수 있다.TSMaster가 실행된 상태에서 TSMaster를 한 번 더 실행하여 TSMaster를 두 개 실행한다. TSMaster를 실행한 상태에서 윈도의 TSMaster 아이콘에서 마우스 우클릭을 하면 아래 그림처럼 메뉴가 뜬다. TSMaster를 선택하면 두 번째 TSMaster를 실행할 수 있다. 두 TSMaster의 채널 설정을 동일하게 Virtual Device로 하고 동일한 채널 설정을 하면, 두 TSMaster 사이에 CAN 통신이 가능하다. 같은 버스에 TSMaster를 두 개 연결한 것과 같다. 한쪽 TSMaster에서 CAN 메시지를 전송하면 다른 TSMaster에서 수신한다. h..
-
Secure Boot카테고리 없음 2025.03.15 02:07
시작하기 전에부트로더와 사이버 보안 기능인 시큐어 부트에 관해서 설명하려고 한다.자동차 제동 제어기인 ESC (Electronic Stability Control. ESC 차체 자세 제어 작동원리 [숏버전/요약] #shorts 유튜브 검색에서 제일 위에 나온 쇼츠다.)를 대상으로 설명한다.소프트웨어는 C로 짠다. 코드의 양은 수백 개 파일에 수십만 라인에 이른다. (요즘은 더 클 수도 있겠다.) 이를 컴파일하면 마이크로콘트롤러에서 실행할 수 있는 형태의 파일로 변환된다. 파일 형식이 몇 가지 있다. elf, hex, bin 등이다. 편의상 헥스라고 부르겠다. 컴파일 결과 헥스 파일이 두 개 생긴다. 하나가 부트로더(bootloader)이고 다른 하나가 어플리케이션(application, 앱)이다.부트로더..
-
Secure Flash - 서명이란?카테고리 없음 2025.03.10 22:02
시작하기 전에 요즘 자동차들은 통신으로 외부와 연결되어 있다. 와이파이, LTE, 5G, 블루투스, UWB, NFC 등 외부 통신의 방법은 다양하다. 외부와 통신으로 "연결"된 덕택에 운전자와 탑승자들은 전에 없던 편안함과 안전을 누린다. 이런 것들을 총칭하여 커넥티비티(connectivity)라고 한다. 커넥티비티가 가져온 자동차 패러다임의 큰 변화가 있다. SDV (Software Defined Vehicle)이다. 소프트웨어 업데이트로 기능이 더 좋아지거나 없던 기능이 생긴다. 소프트웨어로 차가 달라진다. 소프트웨어로 차가 정의된다. 커넥티비티 이전에도 소프트웨어 업데이트는 가능했다. 하지만 시간, 노력이 매우 많이 들었다. 누군가가 일일이 차를 찾아다니며 혹은 차가 누군가에에 가도록 하여 한..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 6 - 자동 진단diagnostic 2025.03.02 11:55
자동 진단 (Automatic Diagnostic) 앞에서 정의한 서비스 단계들을 하나로 묶어서 작업 그룹을 정의한다. 작업 그룹을 실행시키면 모든 서비스 단계들이 한 번에 순차적으로 "자동" 실행된다. 작업 그룹 정의Diagnostic 창/ Automatic Diagnostic 탭/ 작업 그룹 트리 영역의 "빈 공간"에서 마우스 우클릭하여 "Add a new group"을 선택한다. 폴더 아이콘으로 표시되는 새 작업 그룹이 만들어진다. [주의] "빈 공간"을 선택한 상태가 아니라 항목을 선택된 상태에서 "Add a new group"하면 새 작업 그룹은 선택된 항목 아래에 생성된다. 방금 만든 작업 그룹을 선택하고 마우스 우클릭하여 뜬 팝-업 메뉴에서 "Edit Name"을 선택하고 작업 그룹의..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 5 - 메타 데이터 업데이트diagnostic 2025.02.28 16:16
소프트웨어 전송 후소프트웨어 전송을 완료한 후 소프트웨어 업데이트를 추적할 수 있는 메타 데이터를 기록한다. 업데이트가 잘 되었는지 확인도 필요하다. 아래 그림의 빨간 테두리 부분이다. 소프트웨어 번호 쓰기논점을 흐리지 않기 위해 업데이트의 이력 관리가 왜 중요한지를 설명하지는 않지만 이는 매우 중요하다. 이력 관리에 필요한 데이터를 제어기에 기록한다. 이력 기록을 위한 루틴이 정의되어 있을 수 있다. 설명을 시작할 때 루틴이 정의되어 있다고 가정했다. 앞에서 0x31 RoutineControl을 설명하였다. 동일한 서비스를 다시 설명하는 것보다 WriteDataByIdentifier와 ReadDataByIdentifier 서비스를 설명하는 것이 더 유용할 것 같아 계획을 수정한다.UDS 표준에 Wr..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 4 - 소프트웨어 전송 (계속)diagnostic 2025.02.28 12:27
소프트웨어 전송 (계속)아래 그림의 빨간 테두리 부분에 관한 설명이다. 이와 관련한 설정은 Request and Transmit Data 탭에서 한다. 설정 화면은 아래 그림과 같다.설정 항목들은 DataFormat Identifier of Request Transmit Data(0x), Enable User Define MaxNumOfBlockLength(0x), Delay Time after Transfer Request, Delay Time after Transfer Data이다. Data Format IdentifierData Format Identifier of "Request Transmit"을 설명하려면 먼저 "Request Transmit" 서비스의 포맷을 설명해야 한다. 포맷은 아래와 ..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 3 - 소프트웨어 전송diagnostic 2025.02.27 13:04
소프트웨어 전송소트웨어 전송 과정은 아래 그림과 같다. 소프트웨어가 프로그램될 영역 삭제, 다운로드 요청, 프로그램할 소프트웨어 전송 (데이터 전송), 전송 종료, 소프트웨어 번호 (기타 메타 데이터) 쓰기이다. 영역 삭제와 메타 데이터 쓰기는 자동차사, 협력사 특화된 루틴(기능)이다. UDS에는 RoutineControl 이라는 이름으로 서비스 아이디 0x31이 정의되어 있다. 나는 영역 삭제와 메타 데이터 쓰기를 위한 루틴이 정의되어 있다고 가정하고 설명한다. 다운로드 요청 (서비스 아이디 0x34), 데이터 전송 (서비스 아이디 0x36), 전송 종료 (서비스 아이디 0x37)는 각각의 서비스로 분리되어 있지만 실제로는 합쳐져 실행된다. 그래서 TSMaster에는 Combined Services 라..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 2 - 보안 접속diagnostic 2025.02.26 16:19
보안 접속(Security Access)시드 & 키 보안 접속으로 설명한다. 아래 순서대로 동작한다. 시드 요청 (Request Seed)Diagnostic 창의 왼쪽에 UDS 표준의 서비스들이 나열된 트리 영역에서 SecurityAccess 항목을 선택하고 마우스 우클릭하여 Add New Service를 선택한다. 그리고 아래 그림과 같이 Request Seed를 입력한다.SecurityAccess의 서비스 아이디는 0x27이다. SecurityAccessType은 입력 칸의 오른쪽 끝 '...' 버튼을 클릭하여 Select Sub Function ID 창을 열고 0x01 RequestSeed를 선택한다. RequestSeed와 SendKey는 둘이 한 쌍을 이룬다. 0x01로 시드를 요청한 경우, ..
-
UDS 진단 통신으로 하는 소프트웨어 업데이트 1 - 작업 개요카테고리 없음 2025.02.26 14:42
시작하기 전에진단 통신은 제어기 소프트웨어 업데이트에도 활용될 수 있다. UDS 표준이 만들어진 시기에는 프로그래밍이라고 불렀다. 요즘은 소프트웨어 업데이트가 더 흔하게 사용된다. 여기서는 문맥에 따라 소프트웨어 업데이트와 프로그래밍을 혼용한다.TSMaster의 UDS Diagnostic 모듈을 이용하여 프로그래밍 하는 방법을 설명한다. Secure Boot :: hsl's tsmaster 사용기에서 설명한 제어기 플래시 메모리의 구조, 부트로더 개념에 대한 이해가 다음 이야기의 이해에 도움이 될 것으로 생각한다. 개요제어기 소프트웨어 업데이트는 대략 아래의 절차로 이뤄진다.소프트웨어 업데이트 중에 다른 통신에 방해를 받지 않도록 하기 위해서 모든 제어기들에게 CAN 송신 중지를 요청한다. 모든 제어..
-
QR 코드 명함카테고리 없음 2025.02.23 13:09
문제 인식종이 명함은 일회용품이다. 매우 많이 만들어진다. 종이 명함의 종이는 나무에서 온 것이다. 명함 제작에 많은 나무들이 잘려나갔을 것이다. 명함으로 잘려나가는 나무를 줄일 수 없을까? 요즘 명함을 받으면 스마트폰 카메라로 스캔하여 데이터를 연락처 앱에 저장하고 명함은 버린다. 버려진 것은 쓰레기가 되어 환경을 파괴한다. 환경 파괴를 줄일 수 없을까?스마트폰의 문자 인식 성능이 좋아졌다. 하지만 여전히 오인식이 적지 않다. 스캔 후에 데이터를 일일이 검토해야 하는 귀찮음이 있다. 그래서 나는 어떤 명함들은 스캔하지 않고 그냥 버린다. 데이터 오인식을 줄일 수 없을까? 상대가 내 명함을 그냥 버리지 않게 할 수는 없을까?오인식이 없음을 내세워 서비스하는 회사가 있다. 사용자가 촬영한 명함이 그 회사로..
-
SecOC 구현application 2025.02.11 19:38
개요SecOC의 작동을 데모하기 위해 TSMaster 미니프로그램을 짠다. 데모의 구성은 아래 그림과 같다.PC에서 TSMaster를 2개 연다. 한 쪽은 센더, 다른 쪽은 리시버 역할을 한다.센더는 메시지에 MAC을 부착하여 전송한다.리시버는 메시지의 MAC을 검사한다.필요한 경우 FV 값을 변경할 수 있다. PC에서 TSMaster를 2개 열어 사용하기TSMaster가 이미 열려있는 상태에서 설명한다.TSMaster 아이콘에서 마우스 우클릭을 하여 팝-업 메뉴를 띄운다. 메뉴에서 TSMaster를 선택한다. 두 번째 TSMaster가 시작된다. 중간에 TSMaster가 이미 실행 중이라는 안내가 나온다. 양쪽 TSMaster 모두 메인 메뉴/ Hardware/ Channel Selection 버튼..
-
SecOC (Secure On-board Communication)application 2025.02.09 12:18
시작하기 전에 SecOC에 관한 글을 작성한다. 아래 내용들을 포함한다.SecOC가 무엇인가?왜 CRC는 사용하지 않는가?SecOC 구현 SecOC는 무엇인가?SecOC는 Secure On-board Communication을 줄임말이다.On-board는 "차량 내"라는 의미이다. "차량 내 통신 보안" 정도로 해석할 수 있다.AUTOSAR에서 발표한 통신 보안을 위한 사양이다.AUTOSAR는 AUTomotive Open System ARchitecture의 줄임말이다. 문맥에 따라 아키텍처, OS를 혹은 AUTOSAR 기구(organization)를 의미한다.AUTOSAR (Automotive Open System Architecture) 다양한 통신 프로토콜에 적용 가능하다고 한다. 나는 CAN(..
-
CRC 리버스 엔지니어링하기application 2025.02.09 12:14
Reverse Engineer CRC목적CRC를 리버스 엔지니어링하는 것이 어렵지 않다는 것을 보여준다.개요데이터 준비데이터 길이가 16 바이트인 CAN 메시지를 가정한다.시작 바이트는 0번이다.0번 부터 10번 바이트까지를 랜덤 바이트로 채운다.11번 바이트에는 alive counter를 넣는다.12번 부터 15번 바이트까지는 4 바이트 CRC로 채운다.왜 4 바이트 CRC인가?AUTOSAR CRC는 1 바이트이거나 4 바이트이다.1 바이트는 4 바이트보다 상대적으로 CRC 알고리즘을 찾는 리버스 엔지니어링이 쉬울 것 같다. (실제 그런지 모르겠다.) 일부러 어려워 보이는 4 바이트를 선택한다. 어려워도 리버스 엔지니어링 된다는 것을 보여주려는 목적이다실험용 메시지 n_message개를를 생성한다.CR..
-
qwen2.5 on Jetson Orin Nano Super FFT Demo 1, 2카테고리 없음 2025.02.08 14:06
USERfast fourier transformation (FFT)에 대해 이해하고 싶습니다. 진폭과 주파수가 다른 sine과 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만들고, 이 데이터를 FFT하여 결과에서 입력한 진폭과 주파수를 확인하는 파이썬 예제를 부탁합니다. 그래프는 plotly로 해주세요.ASSISTANT먼저 필요한 패키지를 불러옵니다.import numpy as npfrom scipy.fft import fft, ifftimport matplotlib.pyplot as pltimport plotly.graph_objs as go다음으로, 진폭과 주파수가 다른 sine와 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만듭니다.# 설정값 설정fs = 1000 ..
-
deepseek-r1 on Jetson Orin Nano Super FFT Demo - 3카테고리 없음 2025.02.08 12:49
USERfast fourier transformation (FFT)에 대해 이해하고 싶습니다. 진폭과 주파수가 다른 sine과 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만들고, 이 데이터를 FFT하여 결과에서 입력한 진폭과 주파수를 확인하는 파이썬 예제를 부탁합니다. 그래프는 plotly로 해주세요.ASSISTANTThought for 103 seconds 부분을 클릭하면 사고 과정을 볼 수 있습니다.Thought for 103 seconds> Okay, I need to create a Python example that demonstrates understanding of the Fast Fourier Transform (FFT). The user wants to generate inp..
-
claude-haiku on-line FFT Demo카테고리 없음 2025.02.08 12:09
Promptfast fourier transformation (FFT)에 대해 이해하고 싶습니다. 진폭과 주파수가 다른 sine과 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만들고, 이 데이터를 FFT하여 결과에서 입력한 진폭과 주파수를 확인하는 파이썬 예제를 부탁합니다. 그래프는 plotly로 그려주세요.ResponseFFT를 사용하여 신호를 분석하는 예제를 만들어보겠습니다.import numpy as npimport plotly.graph_objects as gofrom plotly.subplots import make_subplots# 시간 도메인 설정t = np.linspace(0, 1, 1000)# 입력 신호 생성 (5개의 sine과 5개의 cosine 파형)amplitudes_si..
-
deepseek-r1 on-line FFT Demo카테고리 없음 2025.02.08 02:17
Promptfast fourier transformation (FFT)에 대해 이해하고 싶습니다. 진폭과 주파수가 다른 sine과 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만들고, 이 데이터를 FFT하여 결과에서 입력한 진폭과 주파수를 확인하는 파이썬 예제를 부탁합니다. 그래프는 plotly로 해주세요.ThoughtOkay, the user wants to understand FFT through a Python example with Plotly. Let me start by recalling the previous example I provided. Wait, they had sine and cosine waves each with different amplitudes and frequ..
-
deepseek-v3 on-line FFT Demo카테고리 없음 2025.02.08 02:00
Promptfast fourier transformation (FFT)에 대해 이해하고 싶습니다. 진폭과 주파수가 다른 sine과 cosine 웨이브들을 각각 5개씩 더한 입력 데이터를 만들고, 이 데이터를 FFT하여 결과에서 입력한 진폭과 주파수를 확인하는 파이썬 예제를 부탁합니다. 그래프는 plotly로 해주세요.ResponseFast Fourier Transform (FFT)는 시간 도메인의 신호를 주파수 도메인으로 변환하는 알고리즘입니다. 이 변환을 통해 신호를 구성하는 주파수 성분들을 분석할 수 있습니다. 아래는 진폭과 주파수가 다른 sine과 cosine 웨이브를 생성하고, 이를 FFT를 통해 분석하는 파이썬 예제입니다. 그래프는 Plotly를 사용하여 그립니다.예제 코드import numpy..