Processor

From Satellite Wiki
Jump to: navigation, search

We need a processor for the different subsystem that can execute the onboard programs in a reasonable way. The compulsory tasks of the satellite (power control, communication, attitude control, etc.) could be managed by a quite humble processor or microcontroller.

Selection of a Processor

The processor selection can be done based on the following factors:

Space Grade Tested/ Used in Another Satellite

Although not intuitive, this generally becomes a big factor when selecting components for a satellite. If the processor has been already used in space it will tell us about the reliability of the processor in space and then the matching of other specifications to our requirements generally helps finalize that processor. If a processor satisfies all requirements, but hasn't been tested in space before, there will always be some doubt about its reliability creeping in now and then.

Operational Temperature Range

The thermals subsystem (either through active or passive thermal control) maintains the temperature of the satellite within a specific range. If the microcontroller can work well in that temperature range, it can be used for the satellite. On an average operational temperature of an off the shelf micro-controllers is -40 to 80 degrees Celsius.

Development Environment and Practical Considerations

In order to have a fully functional microcontroller, software must be developed and implemented. This criterion compares the facilities of development environment provided by the manufacturer. It is really important to have powerful tools to manage the hardware in order to debug and test the software. Certain practical considerations also come into play here. For instance, if the software of a powerful microcontroller can be developed only in Assembly, and none of the team members know that language, but all are familiar with embedded C and a good enough microcontroller is available (which satisfies all the requirements), which can handle embedded C software, then it will be a good idea to forgo the powerful microcontroller, because learning to code in Assembly language and developing expertise won't always be worth it. Also, for some family of microcontrollers, like the Atmel microcontrollers, a lot of documentation and active discussion forums like http://www.avrfreaks.net/forum are available. Choosing them would be a good option when starting off, because people tend to get stuck and documentation and discussion forums help over there.

Digital and Analog I/O Ports

All sensors and actuators need access to the processor via the I/O pins of the processor, it is preferable to have sufficient I/O pin in order to connect all the peripherals.

Communication ports and protocols

As the processor will be required to interact with various sensors and other processors it is of utmost importance that the processor has sufficient number Communication ports and protocols. A microcontroller having multiple UART channels is better than a microcontroller with only one UART channel. Similarly, a microcontroller having UART, SPI and I2C channels will be better than a microcontroller with only UART channels.

Peak and standby power consumption

As our satellite will have only limited power supply so it is necessary that the processor has low power consumption. Also it is possible that during some stage in mission some subsystem’s processor might not be in use so it is also important that processor has low standby power consumption. Values of peak and standby power consumption can be easily seen from datasheet of the processor.


Interfacing a Processor

As our satellite will consist of various sensors which would need to be interfaced by microcontroller therefore our microcontroller should have various types of communication ports supporting various communication protocols such as :

  • Universal Asynchronous Receiver-Transmitter (UART): UART is used to send or receive serial data. A PC uses UART to communicate. Really useful for debugging.
  • Serial Peripheral Interface (SPI): It is a synchronous, full duplex serial communication interface specification. It communicates using master-slave structure. Multiple slave devices are supported through selection with individual slave select(SS) lines.
  • I2C: The I2C bus uses a bi-directional Serial Clock Line (SCL) and Serial Data Lines (SDL) and due to its two-wire nature can only communicate half-duplex. It is a multi-master, multi-slave, packet switched, single ended serial computer bus. Data and clock are sent from master.
  • Controller Area Network (CAN): The CAN bus is a balanced (differential) two-wire interface. This bus use NRZ encoding to ensure compact messages with a minimum number of transition and high resilience to external disturbance.
  • SpaceWire: The Spacewire bus provides a bidirectional serial interconnect which builds a scalable parallel system using a pair of unidirectional lines. IEEE 1355 defines the Physical and Data Link Layer. The electrical interface is specified as standard Transistor-Transistor Logic (TTL).

If you are done reading this page, you can go back to Electrical Subsystem