큐빗 스페이스 프로토콜

Cubesat Space Protocol
큐브샛 우주 프로토콜
원본 작성자요한 드 클라빌 크리스천센
개발자SpaceInventor, GomSpace
초기 릴리즈2010년 4월 26일
안정적 해제
1.6 / 2020년 4월 17일; 23개월(2020-04-17)
기록 위치C, 파이톤
운영 체제FreeRTOS, Linux, Mac OS X, Microsoft Windows
유형프로토콜
면허증GNU 약소 일반 공중 라이선스
웹사이트http://www.libcsp.org

CubeSat 스페이스 프로토콜(CSP)은 CubeSats를 위해 설계된 작은 네트워크 계층 전송 프로토콜이다.[citation needed]이 아이디어는 2008년 알보리 대학 학생 그룹에 의해 개발되었으며, 2013년에 출범한 AAUSAT3 큐브사트 임무를 위해 더욱 발전되었다.프로토콜은 네트워크와 전송 계층 정보를 모두 포함하는 32비트 헤더를 기반으로 한다.8비트 AVR 마이크로프로세서와 32비트 ARM 및 AVR과 같은 임베디드 시스템을 위해 구현되었다.구현은 C로 작성되며, FreeRTOSPOSIX, Linux와 같은 pthreads 기반 운영 체제에서 실행되도록 포팅되어 있다.최초의 MAC 레이어 드라이버가 CAN-bus용으로 작성되었기 때문에 3자 약어로 CSP가 채택되었다.그 후 물리 계층은 몇 가지 다른 기술을 포함하도록 확장되었고, 따라서 약자를 변경하지 않고 보다 일반적인 큐브샛 우주 프로토콜로 이름이 확장되었다.

이 프로토콜과 구현은 요한 드 클라빌 크리스천슨, 스페이스 Inventor, 곰스페이스에 의해 여전히 활발하게 유지되고 있다.소스 코드는 LGPL 라이센스로 사용할 수 있으며 GitHub에서 호스팅된다.

설명

CubeSat 스페이스 프로토콜은 분산형 임베디드 시스템이 서비스 지향 네트워크 토폴로지를 배치할 수 있도록 한다.[citation needed]CSP의 계층화는 TCP/IP 모델과 동일한 계층에 해당한다.이 구현은 연결 지향 전송 프로토콜(레이어 4)과 라우터 코어(레이어 3) 및 여러 네트워크 인터페이스(레이어 1-2)를 지원한다.서비스 지향 토폴로지는 통신 버스 자체가 다른 서브시스템과의 인터페이스이기 때문에 위성 서브시스템의 설계를 용이하게 한다.이것은 각 서브시스템 개발자가 서비스-계약과 그들의 시스템이 반응할 일련의 포트-넘버들을 정의하기만 하면 된다는 것을 의미한다.나아가 서브시스템 상호의존성이 감소하고, 통신버스에 유사한 노드를 여러 개 추가하면 중복성이 쉽게 추가된다.

주요 기능:[citation needed]

  • 버클리 소켓과 유사한 간단한 API.
  • 정적 경로가 있는 라우터 코어.스페이스링크 등을 통한 패킷의 투명한 전달 지원.
  • (UDP와 유사) 무연결 작동과 (RUDP 기반) 연결 지향 작동에 대한 지원.
  • ping 및 버퍼 상태와 같은 ICMP와 유사한 요청을 구현하는 서비스 처리기.
  • 루프백 트래픽 지원.예를 들어, 서브시스템 작업 간의 프로세스통신에 사용될 수 있다.
  • 물리적 인터페이스에서 지원하는 경우 브로드캐스트 트래픽에 대한 선택적 지원.
  • 물리적 인터페이스에서 지원하는 경우 비규칙(Promiscuous) 모드에 대한 선택적 지원.
  • CTR 모드에서 XTEA로 암호화된 패킷에 대한 선택적 지원.
  • SHA-1 HMAC가 잘린 HMAC 인증 패킷에 대한 선택적 지원.

지원되는 운영 체제

CSP는 gcc 컴파일러의 최신 버전이 있는 모든 플랫폼에서 컴파일해야 한다.CSP는 인라인 기능 및 지정 이니셜라이저와 같은 C99 기능에 대한 지원이 필요하다.

물리적 계층 드라이버

CSP는 몇 가지 물리적 계층 기술을 지원한다.LGPL 면허 소스 코드는 소켓CAN 및 Atmel AT90CAN128, AT91SAM7A1 및 AT91에 대한 단편적인 CAN 인터페이스와 드라이버를 구현하는 것을 포함한다.SAM7A3 프로세서.버전 1.1 이후부터 CSP에는 I2CRS-232용 인터페이스도 포함된다.인터페이스는 패킷을 전송하는 기능만 구현하면 되고, 수신 패킷은 csp_new_packet 기능으로 프로토콜 스택에 삽입하면 된다.CSP는 다음과 같은 물리적 계층으로 성공적으로 테스트되었다.

프로토콜 헤더

버전 1

좌현 범위는 세 개의 조정 가능한 세그먼트로 나뉜다.포트 0~7은 ping, buffer status 등의 일반 서비스에 사용되며, CSP 서비스 취급자에 의해 구현된다.8 ~ 47의 포트는 서브시스템별 서비스에 사용된다.48에서 63까지 남은 모든 포트는 송신 연결에 사용되는 사용 후 삭제 포트다.28에서 31까지의 비트는 HMAC, XTEA 암호화, RDP 헤더 및 CRC32 체크섬으로 패킷을 표시하는 데 사용된다.

CSP 헤더 1.x
비트 오프셋 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 우선 순위 출처 목적지 목적지
항구
출처
항구
예약됨 H
M
A
C
X
T
E
A
R
D
P
C
R
C
32 데이터(0 – 65,535바이트)

버전 2

CSP 헤더 2.x
비트 오프셋 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 우선 순위 목적지 출처 목적지
항구
출처
항구
예약됨 H
M
A
C
X
T
E
A
R
D
P
C
R
C
48 데이터(0 – 65,535바이트)

참조

  1. ^ "KISS Protocol".
  2. ^ https://public.ccsds.org/Pubs/131x0b1s.pdf[bare URL PDF]
  3. ^ https://public.ccsds.org/Pubs/131x0b2ec1s.pdf[bare URL PDF]

외부 링크