FPGA-based VME Interface and UART Multiplexer

  • FPGA-based VME Interface and UART Multiplexer - Image

Submarine cable installations are high-reliability infrastructure with a long service lifetime. Keeping up with advancing technologies means replacing earlier components with newer variants, and a common problem is interfacing newer hardware with older buses, such as Versa Module Europa (VME).

In this particular case, an earlier module was approaching “end-of-life” and would soon become unavailable. This module had a dedicated VME bus chip accessed using the PCI interface, and formed part of a sandwich of three PCB, including nine RS422 / RS232 serial interfaces, many of which were provided by a RS422 port expander. The rest were multiplexed over the built-in serial ports by software application logic.

A “drop-in” replacement was needed, which maintained the existing functionality of the system.

LeoTel Software Systems developed a high-speed USB-based interface to the VME bus, and a single multiplexed high speed UART (HSUART) interface, which could be used by existing software logic.

The underlying logic of the VME bus and serial port multiplexing were implemented using an Intel MAX 10 FPGA and VHDL. All of this could then be interfaced with an industrial standard COM Express module, on a single PCB.

LeoTel Software Systems worked with the customer, a global telecommunications equipment provider, and initially provided a feasibility study and report containing recommendations for the upgrade.

Once the project had the go-ahead, LeoTel engineers defined the system architecture for the new components, hardware and software interfaces and prototyped the new components of the system on a bespoke PCB, which could be connected to the original VME backplane. Much of this prototyped hardware layout was then reused by the customer when the replacement baseboard was designed.

As soon as this infrastructure was in place and proven, the existing application logic was upgraded, using thin software interface layers to minimise changes to the code base.

LeoTel engineers upgraded the software application, and supported the project through the baseboard hardware “bring-up”, board integration, temperature and environmental testing, and right through to factory acceptance testing.

On the VME bus side, a PCI Express interface, rather than USB, was initially proposed as the interface between the existing VxWorks-based application on the COM Express module and the FPGA; however, other operational requirements prevented its use. A worst case analysis of VME bus transactions workload plus a safety margin showed that other interfaces on the COM Express module, such as USB, were possible alternatives. Transfer reliability was important.

Ultimately, a Cypress FX2-LP low-power USB 2.0 microcontroller with a slave endpoint FIFO and 16-bit data bus was used to interface with the master on the Intel MAX 10 FPGA. A simple protocol was developed to transfer VME requests via the Cypress USB device to the FPGA, and the corresponding responses back, via the USB FIFO, to the application logic.

Bespoke firmware was written for the Cypress FX2-LP, and a bespoke Cypress FX2-LP USB driver was developed for VxWorks 6.9. A new interface layer was written in C to direct the existing VME bus accesses to the new high-speed USB interface.

On the serial side, another simple protocol was designed to encapsulate the multiplexed serial data for transfer to the FPGA. The HSUART on the COM Express module provided sufficient bandwidth to allow the nine serial endpoints to operate in parallel, in full-duplex mode, on the FPGA.

  • the legacy (and significantly more expensive) module could be replaced by a newer module with less components
  • the existing software application logic could be maintained, including the key real time requirements of the system
  • an existing product line can be maintained, and has been taken a step closer to a single board solution without the need for legacy buses



Simplify production

Extend system life