Can4linux

Can4linux

CAN4linuxOpen Source CAN Linux-Kernel 디바이스 드라이버입니다.ISA 보드 AT-CAN-MINI에 탑재된 Philips 82C200 CAN 컨트롤러 독립형 칩의 개발은 1990년대 중반에 시작되었습니다.1995년에 FU Berlin의 Linux Lab Project 프로젝트에서 실험실 자동화를 위해 Linux와 함께 CAN 버스를 사용하는 첫 번째 버전이 개발되었습니다.

특히 임베디드 장치에서 자동화를 위한 CAN 필드 버스 기술의 확산과 이 분야에서 Linux의 증가로 CANopen, J1939 및 DeviceNet과 같은 상위 계층의 CAN 프로토콜의 기반으로서 장치 드라이버의 중요성이 커지고 있습니다.

최초의 지원 대상 CAN 컨트롤러인 Philips 82C200과 Intel 82527의 후속 모델인 NXP SJA1000과 더불어 Linux 운영체제를 실행할 수 있는 내장 CAN 컨트롤러를 갖춘 강력한 마이크로 컨트롤러의 개발은 2005년 이후 더욱 강화되었습니다.이 개발의 예로서 ATMEL[2] 및 Freescale의[3] ColdFire 프로세서 또는 ARM 모델뿐만 아니라 SPI 버스를 통해 연결된 독립형 CAN 컨트롤러 MCP2515도 [4]제공합니다.지원되는 CAN 컨트롤러 목록은 can4linux 프로젝트 [5]사이트에서 확인할 수 있습니다.

최신 버전에는 가상 CAN 모드가 구현되어 있으며, 이를 통해 애플리케이션은 CAN 하드웨어 없이 디바이스 드라이버 소프트웨어 계층을 통해서만 통신할 수 있습니다.이 모드에는 데이터 프레임 길이를 최대 64바이트까지 허용하는 CAN FD라는 새로운 CAN 프레임 형식이 이미 지원됩니다.

사용.

응용 프로그램소프트웨어가 CAN 디바이스 기술자를 열고 파일 기술자를 가져옵니다.이 파일 디스크립터의 표준 운영체제의 기능은 다음과 같습니다.read()그리고.write()는 CAN 버스를 통해 다른 CAN 노드와 CAN 프레임을 교환하는 데 사용됩니다.

다음 코드는 버스에 CAN 프레임을 배치한 후 다른 CAN 노드에서 전송되는 CAN 프레임을 기다리는 예입니다.can4linux 프로젝트 사이트에서 더 많은 [8]예를 볼 수 있습니다.

/* 심플한 CAN 어플리케이션 예시 * * can4linux에 관한 위키피디아 기사에 사용 */ #실패하다 <stdio.h> #실패하다 <fcntl.h> #실패하다 <리스트 없음.h>  #실패하다 <can4linux>h>  인트 주된(인트 argc, **argv) {     인트 fd;     할 수 있다 ;          /* 열림 비트환율은 proc/sys/dev/Can*/의 파라미터에서 가져옵니다.     fd = 열다.("/dev/can0", O_RDWR);      .아이디      = 100;     .길이  = 2;     .데이터.[0] = 5;     .데이터.[1] = 0;     쓰다(fd, &, 1); /*! count는 바이트가 아닌 프레임 수 */      읽어주세요(fd, &, 1);  /*! count는 바이트가 아닌 프레임 수 */     인쇄물("CAN 프레임 ID %ld, DLC=%d가 필요함\n", .아이디, .길이);     돌아가다 0; } 

CAN4linux는 여러 프로세스가 CAN 버스에서 프레임을 읽고 쓰기 위해 동일한 CAN 컨트롤러 하드웨어에 액세스할 수 있도록 하는 방식으로 컴파일할 수 있습니다.실제 애플리케이션 외에 데이터 로거 또는 기타 진단 프로세스와 같은 다른 프로세스도 버스에 액세스할 수 있습니다.

레퍼런스

  1. ^ 프리스케일 콜드파이어
  2. ^ ATMEL SAM9263
  3. ^ 프리스케일 1MX35 패밀리[영구 데드링크]
  4. ^ 스탠드아론 CAN MCP2515
  5. ^ can4linux 프로젝트 사이트
  6. ^ CAN FD 사양 2013-08-22 웨이백 머신에 보관(PDF; 314kB)
  7. ^ CAN FD 컨퍼런스 페이퍼 2012-11-13 Wayback Machine 아카이브 완료(PDF; 624kB)
  8. ^ Online can4linux - : 2018-06-28 Wayback Machine에서 아카이브됨

외부 링크