From f035274f4770826b4218251441d335d8e98cc799 Mon Sep 17 00:00:00 2001 From: Roland Sahlsten Date: Mon, 28 May 2012 08:15:25 +0000 Subject: git-svn-id: https://svn.spreadspace.org/mur.sat@484 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- doc/MPU/inputs/OperatingSystem.tex | 114 +++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 doc/MPU/inputs/OperatingSystem.tex (limited to 'doc/MPU/inputs/OperatingSystem.tex') diff --git a/doc/MPU/inputs/OperatingSystem.tex b/doc/MPU/inputs/OperatingSystem.tex new file mode 100644 index 0000000..bfdd415 --- /dev/null +++ b/doc/MPU/inputs/OperatingSystem.tex @@ -0,0 +1,114 @@ +% -------------------------------------- +% CHAPTER: Operating System +% -------------------------------------- + +\section{Operating System} +\label{sec:Operating System} + +The software running on the MPU is based on a preemtive real time operating systems +and manages the tasks the satellite has to fulfill. +The Operating system, on which the whole software is based on, is FreeRTOS. %\hyperlink{http://www.freertos.org}{FreeRTOS}.\\ + +\url{http://www.freertos.org} + +\subsection{FreeRTOS} + +FreeRTOS is a preemtive multitasking real time operating sytem. It provides methods for +creating and sceduling tasks and implements queues and semaphores for communication +between, and synchronisazion of the tasks. + +\subsection{MPU Tasks} + +The MPU gets commands from the low level control interface IHU and from the Hackled Handheld +Transceiver. +The IHU sends mainly commands which are related to the power management, whereby the Hackeld +Handheld Transceiver is the command communication interface between the satellite and a base +station on earth. +The satellite has to send its bacon signal permanently. This way it can be located in space. +When the satellite gets in communication distance to a base station on earth, a special signal +is sent to the satellite which is received by the IHU via the Hacked Handheld Scanner. The IHU +then tells the MPU to swith on the Hacked Handheld Transceiver. From now on a communication +between the base station and the satellite is possible. + +The satellite can receive configuration commands and data request commands from the base +station. The configuration commands are used to set parameters like e.g. the sampling rate +of the microphone (piezzo element), or to set parameters for the camera, as well as to tell +the satellite when and how often to take pictures. + +\subsubsection{Messages} +The communication inside the operatin system is based on a message system. Tasks can send messages to each others. + +FreeRTOS provides with an object called xQueue. This is used to communnicate between tasks in +FreeRTOS. An xQueue is primarily a void pointer which can be sent to a task. This pointer can +point to any address in the memory. In this implementation xQueues are used to point to +structures which represent "Messages". + +\begin{lstlisting} +typedef struct +{ + void *pData; + Sender_t Sender; +}Message_t; +\end{lstlisting} + +A message consists of a pointer to the data which shall be sent and an identifier of the +sender. The Sender type is just an enumeration of the tasks that want to communicate with +each others. + +\subsubsection{Kernel Process Task} +The Kernel Process Task is reponsible for dispatching the jobs and assigning them to the +according tasks. +Each time a communication interface (UART, SPI, I2C) receives data, its interrupt service +routine notifies the Communication Process about this event. The Communication Process +collects all arriving data and when a comand is completely received, the Kernel Process Task +is notified, gets the command via a message, checks this command and sends the respective +message to the task which is responsible for the execution of the command. + +\subsubsection{IHU Process Task} +It seems that the IHU Process Task is not needed, so it will be taken out of the operating +system. +Actually the Internal Householding Unit IHU is providing the satellite with energy which is a +rather limited ressource. Therefore it is necessary to implement some kind of protocol to +manage the energy consumtion of all satellite components. This IHU Process Tasks was ment to +handle this protocol, but right now it looks like if this task is taken over by the Kernel +Processing Task. + +\subsubsection{Communication Process Task} +This tasks purpose is to receive commands and send responses over the respecting interface +(UART, SPI, I2C). +When ever a byte arrives at one of the interfaces, the respective interrupt service routine +ISR is triggert. The ISR copies the received byte to a buffer and if the end of frame EOF +character is received, it sends a message to the communication task. The communication task +then analyses the received frame and informs the Kernel Process Task. +The Communication Task can also receive messages from other tasks. These messages contain data +frames that shall be sent via one of the interfaces. When such a message is received by the Communication Task, it sends the messages data over the respective interface. + +\subsubsection{Alien Encounter Process Task} +The Alien Encounter Task is waiting for a message which is sent by the interrupt service +routine of the according external interrupt. When ever an alien is passing by the satellite +who is willing to press the Alien Encounter Button, and also can manage to do so, an external +interrupt is triggert. + +\subsubsection{Light Sensor Process Task} +The Light Sensor Process Task is responsible for handling light sensor related jobs. +The light sensors are placed such way that they detect light in all three dimmensions in +relation to the satellites local coordinate system. When sampling the intensity of light +for these directions it shall be possible to calculate the satellites, especially the cameras +orintation related to sun and earth. This should help to decide at which moment a picture of +the earth can be taken. The sampling rate of the light sensors can be adjusted and is +depending of the angular velocity of the satellites rotation. + +\subsubsection{Camera Process Task} +The Camera Process Task handels all camera related jobs. It triggers the camera to take +pictures and reads the cammeras data (pictures) from the cameras memory to a buffer. When +ever the buffer is filled, this task sends a message to the Memory Process Task to store the +data in the SD-Card. + +\subsubsection{Memory Process Task} +The responsibility of the Memory Process Task is to read and write data from and to the +SD-Card. This task can receive messages from any other task. +If a message sender wants to write data to the SD-Card, the Memory Process Task reads the +data from the message and sends it to the SD-Card. If a task wants to read data from the +SD-Card, the Memory Process Task reads the desired data from the SD-Card and writes it to a +message which is then sent to the requesting task. + -- cgit v1.2.3