Reverse Engineering the Panasonic DPT protocol

Overview

As mentioned in my last blog post, I've also been looking at the panasonic DPT ("Digital Proprietary Telephone", also known as the "Digital Super Hybrid System")

This is a digital signalling format, with a lot of similarities to an ISDN BRI.

Audio is transmitted as G.711 (u-law or a-law, depending on the PBX setting). Line Power can be either +15V or +40V depending on the type of phone. The D channel somewhat resembles HLDC, but the message structure doesn't quite match.

I've written some notes on the protocol documentation here: DPT Protocol Documentation

Unlike the APT signalling, the DPT signalling would probably be quite complex to implement in a microcontroller, but it's fairly easy to implement in an FPGA.

I've attached some very early proof-of-concept RTL to this post (note that this RTL will likely fail for phones connected via long cables - the synchronisation logic does not properly lock to the start of the frame returning from the phone, but instead assumes a fixed time from the end of the frame from the PBX).

It's not compilable as-is (I've not yet worked out the best way of archiving FPGA projects that's easily reusable), but it might be a helpful starting point.

There's also some proof-of-concept C code as well, for managing some of the higher level protocol. Again, this won't be compilable as-is, but might be a useful starting point.

Useful files

panasonic_dpt_all.zip