A European mission systems integrator designing, industrialising and validating systems for severe and industrial environments. The programme required a computer in an equipment rack to receive live data from a piece of specialist equipment and present it to an operator application, with the timing discipline the source imposes.
The equipment delivered a proprietary serial protocol over an RS422 link that no catalogue acquisition board could read. The application also needed a hardware synchronisation pulse, generated deterministically rather than in software.
Two options existed, and both were bad:
That is roughly a year of development, and it also means starting the whole conformity and qualification package again, before anything could ship:

The protocol is specific to the programme: It is not a standard the market supports, so no product roadmap will ever cover it.
The timing is not negotiable: A hardware synchronisation pulse has to be generated deterministically, which rules out generating it in the operating system.
The integrator could not wait for the equipment: Development and testing had to start before the real source was available on the bench.
Schedule risk was the real constraint: A programme cannot absorb a year of board development plus a complete re-certification in order to read one message. The certification package is often the longer pole, not the electronics.
We kept the standard APCIe-1711 and wrote the customer protocol into its on-board FPGA as a dedicated function module, rather than forking the whole design. The board is built around four programmable function modules, so adding a function is a firmware activity, not a hardware one.
Two firmware builds were delivered:
A normal mode that decodes the live data stream and generates the hardware synchronisation pulse.
A simulation mode that generates protocol frames on the board itself, so the integrator could develop and validate their application without the live equipment on the bench.
The package included Linux drivers, a command line acquisition tool, and a CSV visualisation tool for inspecting captured data.
Every build was verified against a ModelSim test bench and on real hardware, and compiled through a CI pipeline so each release was reproducible. Decoding was then optimised to sustain 4096 values per acquisition cycle, and the write path was reworked to buffer a full acquisition period before writing to disk rather than writing per sample.
APCIe-1711 PCI Express counter board, standard catalogue product
Custom VHDL function module in the on-board FPGA
RS422 interface, proprietary protocol decoding
Hardware synchronisation pulse generated on the board
Simulation mode firmware, to test without the live equipment
Linux drivers, acquisition tool and CSV visualisation tool
ModelSim test bench, on-hardware verification, CI pipeline
Optimised to 4096 values per acquisition cycle
Off the shelf did not fit. A clean sheet was a schedule risk. There is a third option: when the board is FPGA-based and the vendor owns the firmware, a proprietary protocol becomes a configuration rather than a new product. The customer got a bespoke capability while inheriting the certification, reliability data, availability and reorderability of a catalogue item.
Wenn Sie Fragen zu Ihren zukünftigen Projekten haben, können Sie sich jederzeit an unser Expertenteam wenden.
| CentOS 7 3.10.0-1160 | CentOS 8 4.18.0-348 | CentOS 10 6.12 | Debian 9 4.9.0-16 | Debian 10 4.19.0-17 | Debian 11 5.10.0-8 | Debian 12 6.1.0-18 | Debian 13 6.12 | Fedora 35 5.16.18-200 | OpenSUSE 15.3 5.3.18-59.19 | Ubuntu 16 4.15.0-142 | Ubuntu 18 4.15.0-159 | Ubuntu 20 5.13.0-28 | Ubuntu 22 5.15.0-30 | Ubuntu 24.04 LTS 6.8 | |
| APCI-1016 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1032 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1500 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1516 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1564 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1648 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1696 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1710 / APCIe-1711 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1712 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2016 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2032 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2200 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3001 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3120 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3200 | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | PASS | IN PROGRESS | IN PROGRESS |
| APCI-3504 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3600 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3701 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-040 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1516 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1532 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1564 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1711 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-2032 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-2200 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| xPCI-3xxx | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |