CSP Interfaces¶
The SRS-3 transceiver is operated remotely via CubeSat Space Protocol (CSP) messages. The SRS-3 Client Library and Property Client Library all contain wrapper function around CSP protocols. In addition, SRS-3 also implements the standard CSP service ports such as CSP_PING
and CSP_REBOOT
.
Configuration CSP parameters¶
By default, the system uses address 21 but this can be changed by adjusting the address property sys.csp.address
and saving the sys
group. The system must be rebooted for the address change to take effect.
The system supports CSP via CAN-bus (CAN
interface) and RS-422 (KISS
interface) in the P1 connector, and through the spacelink (SPACE
interface). The interfaces are always enabled for incoming messages, but the default routing table sends egress messages on the CAN interface for all traffic except traffic to ground (address 10) and loopback.
Note that the CAN interface by default operates in CSP/CFP “promiscuous” mode, meaning that the SRS-3 will receive, and potentially forward, all CSP frames on the CAN-bus regardless of the CSP/CFP destination address. This behaviour can be disabled by setting the sys.can.promisc
property to false.
The current routing table can be listed using the csp route show
command in the debug shell:
[srs-3] csp route show
21/5 LOOP
0/0 CAN
10/5 SPACE
The results are listed using CIDR notation. CSP addresses are 5 bits long so, 21/5
is an exact match to address 21
, i.e. the loopback address. 0/0
marks the default route. To adjust CSP routing, the sys.csp.routes
property should be used. As an example, to send all traffic via the RS-422/KISS interface set the property to 0/0 KISS
and save the sys
group. It is not necessary to add an explicit route for the loopback interface.
The CSP connection can be tested using the csp ping
debug shell command. This can be combined with the watch
command to e.g. ping a system 10 times and report the number of successful replies. This example pings address 1 with 100 byte frames:
[srs-3] watch -c10 -s csp ping -s100 1
Running command 'csp ping -s100 1' every 1000 ms
Reply in 4 ms
Reply in 4 ms
Reply in 4 ms
Reply in 4 ms
Reply in 5 ms
Reply in 5 ms
Reply in 4 ms
Reply in 4 ms
Reply in 4 ms
Reply in 6 ms
10 executions, 10 success 0 failures