I am having an internal debate about how should be the communication between the different subsystems and the ground segment. Some specifications:
- The communication between the spacecraft and the ground segment is with CCSDS, and sent by the COMMS.
- The communication between the different subsystems is with CAN
- There shall be information about the senders and the receiver in each CAN message.
One example of communication could be when the satellite is sending the telemetry of the ADCS. It should be like:
- The OBC ask the ADCS to send the information of the ADCS subsystems
- ADCS create a CAN message with the requested information
- The OBC save the information in the ADCS subsystem for housekeeping data
- The OBC create the CCSDS packet with all the information
- The OBC send the CCSDS packet to the COMMS subsystem with the telemetry of the ADCS
- The COMMS subsystem receive the request to do a transmission. It transmit the content of the CCSDS packet
Othe scenarion could be when Ground segment send a telecommand to activate something at the ADCS:
- Ground segment create a CCSDS packet with the information of the telecommand
- Ground segment send the CCSDS packet
- COMMS receive the packet.
- COMMS forward the packet to the OBC
- OBC read the CCSDS packet
- OBC create a CAN message to do something in the ADCS
- ADCS receives the CAN message, and activate something
Some conclusiones from the previous scenarios:
- The only subsystem implementing CCSDS is the OBC
- Each subsystem needs to describe the possible message in CAN
- It is necessary to create an internal protocol of CAN, able to fragmentate the messages and reassembly them