Software Architecture

This section will describe the software architecture of the AMTAB System. It also defines which parts of the software are classified as legally relevant according to the OIML-R 106 / WELMEC 7.2 standards.

The diagram below illustrates the software architecture for the SIPR firmware:

Software Architecture

Fig. 4 SIPR Software Architecture

The firmware is loaded into the flash memory of the CM-BF27 which is SIPR’s processing unit. It consists of three parts, environment tables, bootloader and the application. The bootloader and application are developed and compiled by AMTAB and are provided as .ldr-files which are binary files that represent the contents that are to be written to the flash memory. This means the bootloader and the application can be updated independently of each other, and they have independent version numbers.

Environment Tables

The environment tables are reserved space in the flash memory which is used to store persistent information such as user accounts and settings. The environment tables are not affected by a bootloader or application update, but can be manually reset to default via either. The bootloader and the application reads from and writes to the environment tables.

The environment tables themselves are not classified as legally relevant, but the settings stored within could be. Those critical settings are handled in the SIPR Application by calculating and storing checksums together with the recorded measurements.

Bootloader

The bootloader’s main functionality is to initiate the CPU and peripherals. When the bootloader has started up, it will look for an application in the memory and load it if it exists.

The bootloader has minimal functionality and provides no means of measuring trains. It’s therefore not classified as legally relevant.

Application

The application is a package containing multiple parts:

  • BlackSheep OS - A Real-Time Operating System (“RTOS”) which provides an abstraction layer for interfacing with the hardware and services such as Web Server, FTP Client and CLI.

  • SIPR Application - The main application that performs the actual functionality of the AMTAB System. Communicates with the hardware and performs measurements. Provides the API and GUI logic for the Web Server.

  • GUI - The bundled HTML, CSS and JavaScript files that are sent to the browser when a user accesses the GUI. Has a separate version number which is displayed in the GUI itself.

The application has a separate version number which is displayed in the API and the GUI.

The application contains critical functionality and the whole package is classified as legally relevant.