Top Banner
Software development for nanosatellite onboard computers Dmitriy Kornilin 2021
41

Software development for nanosatellite onboard computers

Dec 01, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software development for nanosatellite onboard computers

Software development for

nanosatellite onboard

computers

Dmitriy Kornilin

2021

Page 2: Software development for nanosatellite onboard computers

ONBOARD COMPUTER (OBC)

2

OBC TransceiverEPS

I2C

Solar panels

Magnetorquer

Sensors, Science

units

Page 3: Software development for nanosatellite onboard computers

MAIN PROBLEMS

3

• What tasks has our computer to execute?

• What kind of processor is the most suitable for us?

• What interfaces we need?

• Do we need operating system?

• What language shall we use for programming?

• What data we need to collect and transport to control center?

• How many memory do we need?

Approaches:

• Ready embedded computer

• Mezzanine boards

• User’s specific solution

Page 4: Software development for nanosatellite onboard computers

HARDWARE CORES

4

Page 5: Software development for nanosatellite onboard computers

ARM CORES

5

Page 6: Software development for nanosatellite onboard computers

NXP MCUS

6

ARM7TDMI

CORTEX-M3

CORTEX-M0

LPC2148

LPC1768

LPC1114

LPC4357 CORTEX-M4

Page 7: Software development for nanosatellite onboard computers

LPC2142/44/46/48 BLOCK DIAGRAM

7

VLSI Peripheral Bus (VPB)

Memory

Accelerator

64-512 KB

FLASH

SRAM

Controller

16-32KB

SRAM

Test/Debug

TC

K

TM

S

TD

I

TD

O

ETM

TR

ST

VIC

AHB to

VPB

Bridge Watchdog

Timer

Real Time

Clock

AMBA AHB Bus

System

Functions

X1

X2

RS

T

Vd

d

Vss

PLL1 System Clock

I2C 0/1

SC

L

SD

A

Fast I/O

GP

IO

46 m

ax

SPI Port

MO

SI

MIS

O

SC

K

SS

EL

UART0/1

Tx/R

X 0

,1

Timer0/1

CA

P x

8

MA

T x

8

PWM

PW

M1 -

6

ARM 7TDMI-S

ADC 0/1

6+

8 p

ins

BrownOutDetect

PowerOnReset

SSP Port

MO

SI

MIS

O

SS

EL

SC

K

DAC

1-1

0-b

it

32 kHz

Vbat

USB 2.0 Full

Speed Device

w/ DMA

PLL2 USB Clock

8 KB SRAM

shared w/ DMA (LPC2148 only)

D+

D-

Up_LED OR Connect Vbus

Mo

dem

pin

s (

6)

Local Bus

Page 8: Software development for nanosatellite onboard computers

CORTEX MICROCONTROLLERS

8

Page 9: Software development for nanosatellite onboard computers

CORTEX M3

9

Page 10: Software development for nanosatellite onboard computers

CORTEX M3

10

Page 11: Software development for nanosatellite onboard computers

BENEFITS OF CORTEX M3 COMPARED TO ARM7

11

Page 12: Software development for nanosatellite onboard computers

BENEFITS OF CORTEX M3 COMPARED TO ARM7

12

Page 13: Software development for nanosatellite onboard computers

THUMB-2 COMMANDS

13

Thumb + additional Thumb + 32- bit commands

Page 14: Software development for nanosatellite onboard computers

ARM7 AND CORTEX M3 PERFOMANCE

14

Page 15: Software development for nanosatellite onboard computers

MULTICORE CORTEX M4+M0

15

Page 16: Software development for nanosatellite onboard computers

GENERAL SOLUTION

16

Page 17: Software development for nanosatellite onboard computers

GENERAL SOLUTION

17

Page 18: Software development for nanosatellite onboard computers

NANOMIND A712D

18

• ARM7 processor - 8-40 MHz

• 2 MB RAM, 4 MB Code storage, 4 MB data flash

• CAN and I2C interfaces

• RTC - real time clock w/backup power keeps

time 30-60 minutes without external power

• FreeRTOS OS and driver library included

• MicroSD socket for up to 2 GB storage

• On-board magnetometer

• 3 PWM bidirectional output 3.3-5 V/±3 A

(Compatible with NanoPower Solar P110U)

• Interface to 6-analog inputs (e.g. sun sensors)

(Compatible with NanoPower Solar P110U)

• SPI interface to e.g. gyroscopes

Page 19: Software development for nanosatellite onboard computers

IOBC

19

• Power Consumption: 400mW average (550 mW max @3.3V)

Interface: • I2C (master or slave, up to 400 Kbits/s

on fast mode) • SPI: up to 8 slaves, up to 10 Mbit/s • UART: 2x RS232 / 1x RS232 + 1x RS485 • ADC: 8 channel, 10-bit • PWM: 6 channel • GPIO: up to 27 • 1x USB host • 1x USB device • Image Sensor Interface for directly

interfacing CMOS Image Sensors • JTAG for programming • Debug port: UART for console user-

interface • 4x LEDs (Engineering Model only) to

support testing and debugging

• Processor: 400MHz 32-bit ARM9 processor

• Volatile Memory: 64MB RAM • Data Storage: 2x any size standard SD

cards • Code Storage: 1MB NOR Flash • FRAM: 256KB

Page 21: Software development for nanosatellite onboard computers

Nanosatellite subsystems - OBC 201b

21

• Two independent microcontrollers

• Three cores: Cortex M4F, M0, ATxmega

• Operating frequency up to 204 MHz

• Two shared microSD cards up to 32 GB each

• Two independent set of 3-axis magnetometer, gyroscope and accelerometer

• RTC with battery back up power

• Three PWM channels for magnetorquers

Page 22: Software development for nanosatellite onboard computers

SSAU OBC

22

OBC CANUARTUART

I2C

3.3 В5 В

I2C3.3 В

LPC4300

CortexM4F

CortexM0

ATxmega

AVR

coilsI2CI2C

10 bit SGPIO8 inputs ADC/DAC

UARTPDI

SPI

Magnetometer,Accelerometer,

Gyroscope

microSD card

PC104bus

Debug interface

Debug interface

Solar panels х6

Solar panel

Temperature sensor

Temperature sensor

Temperature sensor

OBCI2C

6

3

Page 23: Software development for nanosatellite onboard computers

SSAU OBC STRUCTURE

23

Magnetometer,Accelerometer,

Gyroscope

Magnetometer,Accelerometer,

Gyroscope

ATxmega

AVR

I2C I2C

LPC4300

CortexM4F

CortexM0

I2C I2C

I2C GPIO

I2C GPIO

I2C MUX

I2C I2C x8

I2C

I2C

ToPC104

6

2

I2C

Page 24: Software development for nanosatellite onboard computers

SSAU OBC POWER SUPPLY

24

LPC4300

CortexM4F

CortexM0

RTC UART

PWM

EMC

QSPI

ATxmega

AVR

UART

SDRAM

Flashmemory

micro SD card

Sensors, controlled switches,

other elements

Power monitor

Power monitor

Power monitor

Power monitor

Battery

3,3 V

5 V Power monitor

Н-brigeTo coils

3

ToSolar panels

ToPC104

Page 25: Software development for nanosatellite onboard computers

SSAU OBC INTERFACES

25

Page 26: Software development for nanosatellite onboard computers

OPERATING SYSTEM

26

Page 27: Software development for nanosatellite onboard computers

OPERATING SYSTEM

27

Operating systems

General purpose operating systems (GPOS) Real-time operating systems (RTOS)

Windows, Unix, Linux, etc. QNX, FreeRTOS, Salvo, uC/OS etc.

Designed to do many things but are not designed to offer strict guarantees of: • availability (how often the system responds to

requests in a timely manner) • reliability (how often these responses are

correct)

Engineered to guarantee: • availability • reliability

Page 28: Software development for nanosatellite onboard computers

OPERATING SYSTEM

28

Advantages Drawbacks

Developer can use built-in features Code size increases

Less software dependency on hardware

Efficiency can decrease

Multitasking and protection Dependency on OS principles

Page 29: Software development for nanosatellite onboard computers

SIMPLE KERNEL

29

Start

Initialization 1

Stage 1

Task 1 flag

Run task 1

Task 2 flag

Run task 2

Task N flag

Run task N

Initialization 2

Timer

Task 1 enable and timeout?

Set Task 1 flag

Task 2 enable and timeout?

Set Task 2 flag

Task N enable and timeout?

Set Task N flag

end

Page 30: Software development for nanosatellite onboard computers

DATA BUDGET

30

Item Telemetry type Quantity Sampling rate (Hz)

Word size (bits)

Required data rate (bps)

EPS voltage 3 0.02 16 0.96

current 3 0.02 8 0.48

OBC status 1 0.02 16 0.32

time 1 4 32 128

ADCS magnetometer 3 4 10 120

accelerometer 3 4 16 192

gyroscope 3 4 16 192

Light sensor, RGBW 4x6 4 8 768

PCM Data Rate 1 401.76

Data per one revolution (5400 sec) = 7569504 bits ≈ 1 Mb @ 1200 bit/s, 420 sec window ≈ 15 passes

Page 32: Software development for nanosatellite onboard computers

DATA STORAGE

32

Stack Queue

Page 33: Software development for nanosatellite onboard computers

FILE SYSTEM

33

File Allocation Table (FAT)

Journaling File System (JFS)

Application

File System Module

Low level disk I/O layer

Media

Page 34: Software development for nanosatellite onboard computers

STORAGE TYPES

34

Page 35: Software development for nanosatellite onboard computers

COMMAND STRUCTURE

35

Header Payload CRC

Packet ID Command Data

Header Payload CRC

Packet ID Response ID Data

Request:

Response:

• Reboot

• Get status

• Get N bytes with M step from file F

• Get N bytes starts from byte S from file

F with file step M

• Delete file

• Free memory space

• Format flash drive

• I2C direct read/write

• OBC control and status

Page 36: Software development for nanosatellite onboard computers

CMSIS

36

Cortex Microcontroller Software Interface Standard

Aims:

- improving code reusage (portability) on other Cortex

microcontrollers

- offers the possibility of using standard code by third party

software developing firms

- shorten time of code development

- using of different compilers

- Compatibility of code obtained from different sources

Page 37: Software development for nanosatellite onboard computers

CMSIS COVERAGE

37

Cortex Microcontroller Software Interface Standard

- unified registers names (NVIC, SYSTICK, MPU)

- unified exception names

- unified structure of header files

- unified system initialization process (SystemInit(); )

- standard intstrinc functions

- common functions for data exchange (UART, SPI, Ethernet)

- unified method of system clock frequency determination

(global variable SystemFrequency)

Page 38: Software development for nanosatellite onboard computers

CMSIS STRUCTURE

38

Page 39: Software development for nanosatellite onboard computers

CMSIS FILES

39

Page 40: Software development for nanosatellite onboard computers

CMSIS EXAMPLE

40

Page 41: Software development for nanosatellite onboard computers

По желанию – личные контактные

данные автора,

телефон,

e-mail