-
uCAN Converter (Data Type)한국과학기술연구소 인턴 2023. 3. 17. 16:27
배경
모터를 CAN 통신으로 제어하기 위한 방법들에 대해서 공부해 보았고, 그 중에서도 uCAN Converter 에 대해서 정리해 보고자 합니다
uCAN Converter Spec
- Locking USB Cable 적용
- GUI 환경의 통합 유틸리티 제공
- 다양한 시리얼 명령어 및 C코드 API지원
- 통신용 예제 샘플 코드 제공
- CAN 최대 통신 속도 1Mbps
- 시리얼 최고 통신 속도 460.8Kbps 지원
- CAN 2.0A / CAN 2.0B 호환
- LED를 통한 통신 상태 확인
구조체 자료형
CAN Serial Struct
typedef struct{ UINT8 Format; UINT32 ID; UINT8 DLC; UINT8 DATA[8]; }CAN_Struct; enum CAN_StructFormat { TX_STD_DATA = 0x14, TX_STD_REMOTE = 0x15, TX_EXT_DATA = 0x16, TX_EXT_REMOTE = 0x17, RX_STD_DATA = 0x04, RX_STD_REMOTE = 0x05, RX_EXT_DATA = 0x06, RX_EXT_REMOTE = 0x07 };
Code Description
- 표준 원격 프레임(Standard Remote Frame)은 데이터를 요청하기 위한 메시지 유형입니다. 이 메시지는 데이터를 포함하지 않으며, 다른 장치에서 이 메시지를 수신하면, 해당 데이터를 전송해야 합니다. 이 메시지 유형에서 사용되는 메시지 식별자는 11비트 길이입니다.
CAN Info Struct
typedef struct{ UINT32 Baudrate; UINT32 ID; UINT32 Mask; UINT8 Spec; bool DAR; bool ABOR; }CANConfigInfo; enum CANSpec { CAN_A = 3, //Max Standard CAN ID Length for ascii (0~7FF) CAN_B = 8 //Max Extended CAN ID Length for ascii (0~1FFFFFFF) };
Code Description
- Baudrate
CAN 버스에서 데이터 전송 속도를 나타내는 매개변수입니다. Baudrate가 높을수록 데이터 전송 속도가 빨라지지만, 신호가 불안정해질 수 있습니다. - Mask
CAN 메시지 수신 필터를 설정하기 위해 사용되는 값입니다. 마스크는 수신 필터와 메시지 식별자를 비교하여 수신할 메시지를 결정합니다. - Spec
CAN 네트워크의 통신 규격을 나타냅니다. 예를 들어, CAN 2.0A와 CAN 2.0B는 각각 다른 통신 규격을 가지고 있습니다. - DAR
데이터 길이 코드 (DLC)와 함께 사용되는 값으로, 데이터 프레임의 길이를 나타냅니다.- DLC VS DAR:
DLC는 데이터 프레임의 길이에 대한 정보를 제공하지만, 실제로 전송되는 데이터의 길이와 일치하지 않을 수 있습니다. 이는 프레임이 손상되거나 노이즈가 있는 경우 발생할 수 있습니다. 따라서 DAR은 데이터 프레임의 실제 길이를 확인하는 데 사용되며, 이를 통해 데이터의 무결성을 보장합니다.
- DLC VS DAR:
- ABOR
CAN 프로토콜에서 사용되는 중요한 신호 중 하나입니다. 이 신호는 노드가 데이터를 전송하지 않고 메시지 전송을 중지하고자 할 때 사용됩니다. 이를테면, 다른 노드에서 이미 같은 ID로 메시지를 보내고 있을 경우, 혹은 버스 충돌이 발생할 가능성이 있을 때, 노드는 ABOR 신호를 전송하여 데이터 충돌을 방지할 수 있습니다.
'한국과학기술연구소 인턴' 카테고리의 다른 글
UART (0) 2023.03.26 uCAN Converter (API) (0) 2023.03.25 AK Series CAN protocol Instruction 코드 정리(2) (0) 2023.03.09 AK Series CAN protocol Instruction 코드 정리(1) (0) 2023.03.08 CAN Protocol(2) (0) 2023.03.02