The onboard software is very simple and
straightforward. There is a main loop that occur every 50 ms, regulated
by a microcontroller timer, that holds all the principal tasks.
The unit has two main state: “Flight Mode” and
“Service Mode”. The Flight Mode is the default state. In this mode the
unit acquires data from sensors, sends telemetry and writes to memory,
if enabled. It is able to receive a limited number of telecommands, and
the TC reception is assured by periodically polling the RX buffer. In
Service Mode, the unit is able to receive long telecommands for
calibrations purposes. In this state the TCs are handled with an
Interrupt Service Routine (ISR) because the RX buffer is not big enough
to receive the entire TC. This causes the telemetry packet to be
corrupted when a TC is sent to the unit, and this is the main reason for
the existence of two modes, “flight” and “service”. While in Service
Mode, the unit can go to the “memory dump mode” state. In this case the
data acquisition is halted until the unit remains in memory management
mode.
There are three interrupt service routines:
-
Real time clock ISR: the routine is entered to
alert the main program that is time to acquire data from sensors. If
20 Hz sampling frequency is selected, the interrupt occurs every
50ms.
-
Capture ISR : is an interrupt that occurs every
rising edge of the incoming signal from magnetometers. It is used to
make frequency measurements of magnetometers output.
-
RX buffer ISR: is a routine that store the
telecommand when received from e-link and makes it available to the
main program for proper handling.
A C-compiler (CCS) has been used to program the
microcontroller.
LowCoINS experiment is able to receive either from e-link serial port or
service serial port several telecommands.
Thermal Control
Telecommands
-
TCs regarding TCU are
needed to switch the heater on and off manually and set the
temperature threshold that trigger the heater switch when the TCU is
in automatic mode.
-
Heater On/Off TCs switch
the heater on/off regardless the actual temperature read on T0 and
threshold temperatures. The Heater will remain in the on/off state
until another on/off TC is received. When “Heater Auto” TC is
received, the control of the heater is restored to the automatic
mode and the heater will be switched on or off accordingly to the
temperature thresholds.
-
TLT & THT (Temperature
Low/High Threshold) TCs can set the temperature thresholds that
trigger the heater switch. The TC is made by a first byte that
specifies if the High or Low threshold has to be modified, the
second byte specifies the value as two’s complement format over 8
bits, the 3rd byte doesn’t care.
Calibration
Telecommands
-
Automatic Bias Null
Calibration
A single-command, automatic bias calibration measures all three
gyroscope output registers, then loads the three bias correction
registers with values that return their outputs to zero (null).
-
Precision Automatic Bias
Null Calibration
Another option for gyroscope calibration, which typically provides
better accuracy, is with the single-command, precision autonull.
This incorporates the optimal averaging time for generating bias
correction factors for all three gyroscope sensors. This command
requires approximately 30 seconds to complete. For optimal
calibration accuracy, the device should be stable (no motion) for
this entire period.
-
Manual Bias Calibration
Using this set of TCs, the user can manually set the bias correction
for accelerometers or gyros. The TC format is as follows: 1st byte:
set the inertial sensor to be calibrated, 2nd & 3rd bytes specifies
the correction value in two’s complement format over 12 bit
(accelerometers) or 13 bit (gyros).
Memory Dump
Telecommands
-
Enter memory dump mode
Makes the unit to enter in memory dump mode; the telemetry
transmission is suspended and a synchronization frame is transmitted
every second.
-
Read All Memory
The entire memory is dumped by the unit.
-
Read Bank N
Only the bank N is dumped.
-
Read bank n, from page
m, for k pages
It allows for read a part of memory bank.
Software for live data recording has been developed
using National Instruments Labview 8.5.
It allows to manage every aspect of LowCoINS
experiment:
·
Live data recording
·
IMU management, sensor sampling rate,
digital filtering, calibration and bias set up
·
Memory management: memory erase, memory
dump
·
Thermal control unit management: allows
for change temperature threshold that triggers the heater also during
the flight, and allows for manual control of the heater.
·
Estimated remaining battery charge
Three different versions have been developed:
1.
Flight mode: to be used for live data recording during the
flight. This version has the ability to send only the TCs needed during
the flight, does not have the TCs for the calibration of the unit.
2.
Service mode: to be used to calibrate the sensors and debug.
3.
Memory Dump: to be used to read the data from the flash memory
and save in the PC.
Below the screenshots of the different software:
In order to have a simpler data
acquisition software every measurement is gathered with the same
sampling frequency, however only nine measurement are downlinked and
saved to memory with this frequency. The packet of data (frame) to be
stored in the memory is organized as follow:
The last three bytes contain
cyclically ten different data, the resulting update rate for these
measurements is 2 Hz.
Since the flash memories are
organized in 8192 pages of 528 bytes size, each data frame is 24 bytes
long, in this way 22 different frames exactly fit the page memory size
of 528 bytes. Using four Atmel AT45DB321D 32Mbit memories the total
amount of data stored reaches 10 hours of recordings.
The unit begins to record data
in the memory upon reception of the “Start of acquisition” telecommand.
The experiment is connected to
E-link TM/TC module through RS-232 interface. The primary function is to
downlink data collected to the ground station. The telemetry frame
layout is the same as the data frame to be recorded in memory showed
earlier. The only difference is the presence of the byte 25 that
contains a checksum for error detection. The checksum byte is simply the
8 bits sum of the 24 data bytes.
Serial communication is a
standard 9600 bps, 1 bit stop, parity none, no hardware flow control
setup. The protocol used to identify each data frame is the DLE-STX/ETX
protocol. Each data frame starts with two control bytes DLE-STX (10-02
hex) and stops with DLE-ETX (10-03 hex). If in the data frame any byte
is equal to “DLE” (10 hex), then it is sent twice. Adopting these rules,
the start and the end of the frame can be recognised by the ground
software without errors, as DLE-STX and DLE-ETX sequences can only
identify the frame boundary since if they are encountered in the data
frame an extra DLE is present.
|