Flight-Control
S | M | T | W | F | T | S | |
---|---|---|---|---|---|---|---|
51 | 15 15 | 16 16 | 17 17 | 18 18 | 19 19 | 20 20 | 21 21 |
52 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
01 | 29 | 30 | 31 | 01 | 02 | 03 | 04 |
02 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
03 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
|
Hot Projects
S | M | T | W | F | T | S | |
---|---|---|---|---|---|---|---|
51 | 15 15 15 | 16 16 16 | 17 17 17 | 18 18 18 | 19 19 19 | 20 20 20 | 21 21 21 |
52 | 22 22 | 23 23 | 24 24 | 25 25 | 26 26 | 27 27 | 28 28 |
01 | 29 29 | 30 30 | 31 31 | 01 01 | 02 02 | 03 03 | 04 04 |
02 | 05 05 | 06 06 | 07 07 | 08 08 | 09 09 | 10 10 | 11 11 |
03 | 12 12 | 13 13 | 14 14 | 15 15 | 16 16 | 17 17 | 18 18 |
|
The PDU is designed to efficiently convert electrical energy for three main power bus lines: 12V, 5V and 3.3V. This was done to overcome the problem of having to deal with inefficient power-converters found in many industry produced off-the-shelf components, used in the various application cases all over Apollo-NG's infrastructure.
The idea is to have modular, bus-controlled, point-of-load conversion modules for remote systems and to use the PDU's highly-efficient (>90%) buck/boost converters to supply the MCU, Storage-Devices, Audio, Communications- and Navigation-Equipment and all other hardware in close vicinity of the System-Module-Rack (SMR).
All devices are fed directly from the PDU, bypassing the on-board converters, thereby increasing the overall efficiency.
AVR ATmega88
The protocol and software were developed with a strong focus on security/reliability, very low system requirements and enough room for future options and modifications. The software package in the git repo consists of two parts.
Developed and tested with GCC
In order to keep the system impact on the SKU at a minimum, a polling system was out of the question. Luckily the Linux kernel supports inotify, as does python, which made the development of an inotify-event driven system very easy.
The following tables show the protocol structure with example data:
Command-Request Frame
8 byte frame length
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Def. | Frame Begin (FB) | Bus Device Adress (BDA) | CMD | P1 | P2 | P3 | CHK | Frame End (FE) |
DATA | 0xFB | 0x10 | 0xCA | 0xFF | 0x00 | 0x00 | 0xB4 | 0xFE |
Command-Response Frame
4 byte frame length
Byte | 0 | 1 | 2 | 3 |
---|---|---|---|---|
Def. | Bus Device Adress (BDA) | R1 | R2 | CHK |
DATA | 0x10 | 0xFF | 0x00 | 0x79 |
Data-Request Frame
8 byte frame length
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Def. | Frame Begin (FB) | Bus Device Adress (BDA) | CMD | P1 | P2 | P3 | CHK | Frame End (FE) |
DATA | 0xFB | 0x10 | 0xDA | 0x00 | 0x00 | 0x00 | 0xA7 | 0xFE |
Data-Response Frame
13 byte frame length
Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Def. | BDA | Loops | PDU_I | PDU_U | PSU_U | PS5_U | PS3_U | CHK | |||||
DATA | 0x10 | 0x59 | 0xC3 | 0x56 | 0xA2 | 0x97 | 0x23 | 0x42 | 0x08 | 0x15 | 0xE1 | 0xFA | 0xCC |
These DSO screenshots show the protocol on the wire: The left and middle image show different command-request (green) and command-response (yellow) frames, the right image shows a data-request (green) and data-response (yellow) frame. The latency for command execution is virtually non-existant (0.4ms), data-requests take a little more time to collect (2.5ms), this is due to the 13 byte framelength - it takes the ATmega a bit more time to calculate the checksum of the larger frame.
Required tests to pass ORT
Results
All tests passed without a glitch, the system works as designed, com signals are solid and the system impact of the PDU Daemon on the host is almost non-existent, due to its use of kernel inotifiers (see the video for a time lapsed summary).
Grab the latest code and all related files:
Anonymous GIT Access
git clone git://apollo.open-resource.org/pdu
If you want to add files or commit changes, send your work to the ops-team or apply for git RW access by sending your pub-key to the ops-team.