2022/06(7)
-
[Python] argparse 사용 방법
아래와 같이 argparse 모듈을 사용하면, 해당 Python Code를 실행 할 때 파라미터를 입력 받아 사용 할 수 있다. import argparse if __name__=='__main__': parser = argparse.ArgumentParser(description = 'TI Bin Maker') parser.add_argument('-f', '--file_name', default = '', type=str, help='BIN File Name', required=True) parser.add_argument('-s', '--start_address', default=0x88000, type=lambda x: int(x,0), help='Start Flash Address', requi..
2022.06.27 -
[Python] struct 모듈을 사용하여 패킹된 바이너리 해석 #1
바이트 순서, 크기 및 정렬 문자 바이트 순서 크기 정렬 @ 네이티브 네이티브 네이티브 = 네이티브 표준 none 빅 엔디안 표준 none ! 네트워크 (= 빅 엔디안) 표준 none 포맷 문자 포맷 C형 파이썬 형 표준 크기 x 패드 바이트 값이 없습니다 c char 길이가 1인 bytes 1 b signed char 정수 1 B unsigned char 정수 1 ? _Bool bool 1 h short 정수 2 H unsigned short 정수 2 i int 정수 4 I unsigned int 정수 4 l long 정수 4 L unsigned long 정수 4 q long long 정수 8 Q unsigned long long 정수 8 n ssize_t 정수 N size_t 정수 e (6) floa..
2022.06.17 -
[CAN] CAN ISO-TP(ISO 15767-2) Addressing #2
SAE J1939에 따른 데이터 링크 계층이 사용 될 때 CAN 주소 프레임을 설명 한다. 해당 자료는 ISO 15767-2 Appendix A를 참고 하여 작성 되었다. J1939 Message Format Priority Bit 우선 순위 기본 값 : 6 0 : 가장 높은 우선 순위, 7(111) : 가장 낮은 우선 순위 Reserved Bit 사용 하지 않는 Bit 0으로 고정해서 사용 Data Page (DP) Data Page Bit는 0으로 고정해서 사용 Protocol Data Unit Format (PF) PF 값이 0~239인 경우, 이 영역은 PDU1으로 알려진 수신지 주소를 포함한다. Normal Address & Physical 인 경우 : 0xDA(218) Normal Addres..
2022.06.16 -
[CAN] CAN ISO-TP(ISO 15767-2) Addressing #1
ISO-TP에서 사용가능한 Addressing 방식은 아래와 같다. Addressing Modes Extended Addressing CAN ID와 DATA의 첫번째 바이트를 주소로 사용 DATA의 첫번째 바이트는 받는 장비의 Source Address로 설정 Example Normal Addressing CAN ID로만 주소 사용 Example Mixed Addressing Normal Addressing과 Extended Addressing을 혼합 해서 사용 Example 참고 자료 https://can-isotp.readthedocs.io/en/latest/isotp/addressing.html#definitions Addressing — isotp 0 documentation Parameters:..
2022.06.15 -
[CAN]Python에서 PCANBasic 라이브러리 사용 시 문제 해결
실행하려는 isotp_test.py와 PCANBasic.py를 같은 폴더에 넣고 수행하는 중, 아래와 같은 에러가 발생 하였고, PEAK-System 홈페이지에서 PEAK-Drivers를 다운로드 하여 재 설치하니 문제가 해결 되었다. D:\Workspace\Phoenixon_Porject\canLFU_CPU1\Tool>python isotp_test.py Traceback (most recent call last): File "isotp_test.py", line 75, in isoTpTester = ISO_TP_TESTER(args.can_if_num) File "isotp_test.py", line 14, in __init__ self.objPCAN = PCANBasic() File "D:\Work..
2022.06.14 -
[CAN] CAN Frame 구조
CAN Frame 구조 SOF(Start Of Frame) 데이터를 전송하고자 하는 노드는 SOF를 송신함으로서 메시지 전송을 시작한다. SOF는 1bit로 구성되어 있으며 이 신호에 의해 모든 노드는 싱크되어 수신 및 응답 준비가 되야 한다. ID(Identifier) Field CAN에서의 ID는 메시지를 식별하는데 사용된다. CAN 2.0A(Standard)는 11bit, CAN 2.0B(Extension)는 29bit로 구성되어 있다. Control Field Control Field는 6bit로 구성되어 있으며, 첫번째(IDE), 두번째(R0) bit는 Standard Type인지 Extenstion Type인지를 구분하는데 사용된다. 나머지 4bit는 DLC(Data Length Code)로 ..
2022.06.13