Client
A state-owned railway company.
Challenge
The customer commissioned us for the design of a universal communication and navigation unit for passenger and freight trains on the railroad. The device to be installed in the train engineer’s cab; it receives the coordinates from the satellite navigation systems and transmits the geolocation data to the customer's server.
Solution
We offered the customer a hardware solution based on three modules (units) that are connected with cables. For the device, we developed a Linux-based software platform including the graphical interface. Within the project, we also developed the enclosure design and the internal structure of the device.
The designed communication & navigation unit has the following capabilities:
- GPS systems with 1-meter accuracy. Operates on two SIM cards in roaming.
- Personal data of the train engineer input. Receiving data from third-party systems via the CAN bus.
- Transferring the device status information to the customer's tablet via a Wi-Fi network.
- Showing information on the display.
- Transferring the information to the customer’s server. In case when communication with the customer's server is unavailable, the information should be stored in the internal memory of the device and transmitted at the first connection to the server.
- Operating with the built-in battery during long idle hours of the train.
- Data input on the energy resources condition with the built-in keyboard.
Business Value
The customer has got a working prototype of the device, and all necessary software and documentation to start mass production.
1. Hardware
We offered the customer a hardware solution based on three modules (units) are connected with cables:
1. The coordinate determination unit for receiving data from satellite systems and transmitting information to the customer server via the GPRS network. This board is used as the modem and based on the STM32 controller, GPRS-module of Sara G3 series.
2. Terminal unit for keyboard, display and external data sources connection via CAN bus. This board is based on the IMX-6UL Ultralight processor and a Laird Wi-Fi module.
3. The power supply unit for the boards of Units 1 and 2. It is designed on the basis of a DC / DC converter with the input range from 24 to 110 V.
Also, we implemented the connection of 3G modules with the interface of Mini-PCI-E by any manufacturer, a display with a parallel interface and a membrane keyboard to input information about the operator and scheduled trips. The device can be connected to external sensors via Ethernet, RS-485, and CAN. Settings and performance monitoring is via Wi-Fi technology.
2. Software of the terminal unit
For the device, we developed a Linux-based software platform including the graphical interface.
Software of the terminal unit
The main function of the terminal unit is interaction with the user, and its software is implemented in accordance with a multilevel structure:
Advantages of such architecture:
- The low-level software on the Linux kernel provides the developer with all the advantages of this operation system: open source code, a huge number of already implemented device drivers, the documented architecture, active community support, etc.
- As a tool for assembling the file system, we suggested using Buildroot, an easy-to-use scalable and efficient tool for building embedded Linux systems using cross-compilation.
- High-level software is built upon Qt cross-platform application development tool. Qt is not only a graphic library; it is also a set of ready modules to accelerate application development. For example, modules to work with the network, to accelerate graphics, to work with various file formats, databases, etc. The framework is well documented, it has a modular structure and a convenient configuration system for specific requirements.
- In conjunction with Qt, we suggested using the QML language and the QtQuick module. QML is a declarative language for describing the user interface of the program. QtQuick includes QML and QtDeclarative C ++ module for QML and C ++ objects.
Advantages of QML and QtQuick module:
- integration with C++ code;
- direct call to javascript functions;
- ability to create own QML components using QML / C ++;
- localization (QtLinguist);
- ability to use WebKit with WebView QML-element;
- tight integration with IDE QtCreator; QML graphic designer.
Software of the coordinate determination unit
The hardware platform of the coordinate determination unit is built upon a low energy microcontroller, therefore we proposed using FreeRTOS multitasking real-time operating system.
The software structure is also split into several levels, where logical blocks and interaction interfaces are allocated:
- level of peripheral drivers;operating system task level;
- business logic description level;
- auxiliary software modules.
3. The enclosure design and mechanical engineering
Within the project, we also developed the enclosure design and the internal structure of the device.