CANPIE
CANpieCANPIE(CAN Programming Interface Environment)는 오픈 소스 프로젝트로, CAN 버스에 액세스할 수 있는 개방적이고 표준화된 소프트웨어 API를 만들고 구축하는 것을 목표로 합니다.
이 프로젝트는 2001년에[1] MicroControl에 의해 설립되었으며 Apache License 버전 2.0에 따라 라이센스가 부여되었습니다.현재 버전의 CANpie[2] API는 ISO CAN[3] FD 프레임뿐만 아니라 기존 CAN 프레임도 모두 포함합니다.이 API는 PC 인터페이스 보드뿐만 아니라 임베디드 제어 애플리케이션에도 사용할 수 있도록 설계되었습니다. 임베디드 마이크로 컨트롤러는 C로 프로그래밍되며, 인터페이스 보드에 대한 OS 독립 액세스를 위한 C++ API가 제공됩니다.API는 ISO/OSI Layer-2(Data Link Layer) 기능을 제공합니다.CANpie의 의도는 상위 계층 기능(예: CANopen, SAE J1939)을 통합하는 것이 아니다.
운전자 원리
CANPIE API는 하드웨어 메시지버퍼(메일 박스)의 개념을 지원하며 총 255개의 버퍼를 지원합니다.메시지 버퍼에는, 일의의 방향(수신 또는 송신)이 있습니다.옵션으로서 임의의 크기의 FIFO를 양쪽 전송 방향의 메시지버퍼에 접속할 수 있습니다.총 CAN 채널 수는 255개로 제한되며, API는 각 CAN 하드웨어 채널의 기능에 대한 정보를 수집하는 방법을 제공합니다.이는 코드를 한 번만 작성하려는 애플리케이션 설계자에게 특히 중요합니다.CAN 프레임 타임스탬프(CiA 603, CAN 프레임 타임스탬프 – 네트워크 시간 관리[4] 요건에 의해 지정됨)는 1나노초의 분해능으로 지원됩니다.
사용.
다음 코드 조각은 마이크로 컨트롤러의 초기화를 보여 줍니다.
#실패하다 "cp_core.h"// CANPIE 핵심 기능 무효 MyCanInit(무효) { CpPort_ts tsCanPortt; // 논리 CAN 포트 //--------------------------------------------------- // CAN 컨트롤러 설정/물리 CAN 열기 // 포트 // 메모리 세트(&tsCanPortt, 0, 크기(CpPort_ts)); CpCoreDriverInit(eCP_CHANNEL_1, &tsCanPortt, 0); //--------------------------------------------------- // 500 kBit/s 설정 // CpCoreBitrate(&tsCanPortt, eCP_BITRATE_500K, eCP_BITRATE_NONE); //--------------------------------------------------- // CAN 작동 시작 // CpCoreCanMode(&tsCanPortt, eCP_MODE_Operation); //.. 이제 작동 가능 } 유사한 프로젝트
Linux 운영 체제의 경우 프로젝트 can4linux 및 SocketCAN은 클래식 CAN 및 ISO CAN FD를 지원합니다.상용 AUTOSAR 사양은 버전 4.3 이후 CAN FD를 지원하며 AUTOSAR 파트너만 사용할 수 있습니다.CMSIS-Driver(Cortex Microcontroller Software Interface Standard) 사양은 ARM Cortex-M [5]프로세서의 미들웨어 스택 및 사용자 애플리케이션용 페리페럴 드라이버 인터페이스를 설명하는 소프트웨어 API입니다.
레퍼런스
- ^ "CANpie - Browse Files at SourceForge.net".
- ^ https://www.microcontrol.net/wp-content/uploads/2021/10/canpie_user_v3r08.pdf[베어 URL PDF]
- ^ https://www.can-cia.org/fileadmin/resources/documents/proceedings/2012_hartwich.pdf[베어 URL PDF]
- ^ "CAN in Automation (CiA): Technical documents".
- ^ "Common Microcontroller Software Interface Standard (CMSIS)".