Wenzl, M. (2011). Design and implementation of a VOIP stack for high packet rates in an FPGA [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-41431
VOIP; FPGA; Embedded VOIP Stack; High Packet Rates; HW-SW Interface
de
VOIP; FPGA; Embedded VOIP Stack; High Packet Rates; HW-SW Interface
en
Abstract:
Dank einer breiteren Verfügbarkeit von Internetanschlüssen mit entsprechender Bandbreite erfreut sich Voice over Internet Protocol (VOIP) Kommunikation im Privaten wie im Geschäftsbereich in industrialisierten Ländern immer größerer Beliebtheit. Die meisten VOIP-fähigen Endgeräte sind jedoch nicht auf die speziellen Bedürfnisse einiger Einrichtungen, wie zum Beispiel der Luftraumüberwachung, dem öffentlichen Verkehr, oder militärischen Einrichtungen, abgestimmt.<br />Um diesen speziellen Anforderungen besser Rechnung tragen zu können wurde im Rahmen eines Forschungsprojektes ein spezielles Hardwaremodule entwickelt, welches sämtliche Aufgaben den Sprachdatenaustausch einer VOIP Verbindung betreffend in Hardware realisiert. Dieser Intellectual Property (IP)-Core, genannt Real-time Transport Protocol (RTP)-Engine, wird in einer standalone Konfiguration in einem Xilinx Virtex4 Field Programmable Gate Array (FPGA) auf einer Prototypingplattform betrieben.<br />Die notwendigen Kommunikationsparameter werden über statische Konfigurationsvektoren gesetzt. Es ist die Aufgabe dieser Diplomarbeit die Konfigurationsschnittstelle der RTP-Engine so zu erweitern, dass es zur Laufzeit entsprechend den Anforderungen einer VOIP-Verbindung konfiguriert werden kann.<br />Ziel dieser Arbeit ist die Implementierung eines kompletten VOIP-Stacks bestehend aus einem Signalisierungsprotokoll (Verbindungsaufbau - Abbau), einem Verbindungsqualitätssicherungsprotokoll, und der RTP-Engine inklusive der zu entwickelnden Konfigurationsschnittstelle.<br />Als Randbedingungen treten hierbei Embedded System spezifische Beschränkungen bezüglich limitierter Rechenleistung und eingeschränkten FPGA Resourcen auf. Diese haben direkten Einfluss auf den VOIP-Stack Designprozess. Des weiteren müssen gewisse Auflagen betreffend der Hardware/Software Schnittstelle der RTP-Engine, welche durch die vorgegeben VOIP-Stack Funktionalität induziert sind, eingehalten werden.<br /> Um die Aufgabenstellung entsprechend umsetzen zu können wird eine Evaluierung des grundlegenden Aufbaus eines VOIP-Stacks durchgeführt und die Anforderungen an das Design eines Basis-Systems und der Hardware/Software Schnittstelle der RTP-Engine erhoben. Die so erhaltenen Anforderungen sowie Randbedingungen fließen in die Auswahl entsprechender Software und Hardware Komponenten ein.<br />Außerdem wird der Einsatz unterschiedlicher Software-Stacks, Schnittstellendesigns und User/Kernel -Space Separierungen diskutiert.<br />Schließlich wird ein funktionstüchtiger Prototyp implementiert, welcher in der Lage ist, einen VOIP-Sitzung direkt zwischen zwei Prototypingplattformen oder einem Personal Computer (PC) zu realisieren.<br />Es wird gezeigt, dass eine den Anforderungen entsprechend entwickelte und umgesetzte Schnittstelle eines IP-Cores welcher den unmittelbaren Sprachdatenaustauch zwischen zwei Kommunikationspartnern durchführt, eine wesentliche Freisetzung von Rechenzeit eines Prozessors mit sich bringt und somit entsprechende Echtzeitanforderungen leichter erfüllt werden können.<br />Deshalb wäre es möglich, eine Erweiterung des Prototypen durchzuführen, um Konferenzschaltungen zu unterstützen.<br />
de
In recent years, Voice over Internet Protocol (VOIP) communication has become an interesting alternative to the Public Switches Telephone Network (PSTN) for casual and business phone-calls in industrialized countries.<br />Most of the available VOIP capable end-devices are considered for general purpose use, thus neglecting firmer real-time requirements of certain operational environments, like air traffic management, public transport, or defense.<br />In order to accommodate these requirements, a dedicated hardware module performing all tasks necessary to exchange voice packets between two communication partners, called Real-time Transport Protocol (RTP)-Engine, has been developed in a research project. The Intellectual Property (IP)-Core is operated standalone on a Xilinx Virtex4 Field Programmable Gate Array (FPGA) sited on a prototyping board. The necessary configuration parameters are supplied through static configuration vectors. It is the objective of this diploma thesis to extend the module's interface in such a way that it can be configured in a VOIP-session appropriate way at run-time.<br />The aim of this work is to design and implement a complete VOIP-stack consisting of a signaling protocol (call setup - tear-down), a call quality feedback protocol, and the RTP-Engine including the interface to be designed. However, the a priori chosen prototyping platform induces several embedded system specific constraints, like limited computing speed and limited FPGA resources, directly affecting the VOIP-stack design. Moreover, special care in designing the hardware/software interface of the IP-Core must be taken to achieve certain constraints imposed by the VOIP-stack.<br />To achieve the given objective, the general design of a VOIP-stack has been evaluated to derive appropriate constraints when designing a Base-System and the RTP-Engine's hardware/software interface. The gained constraints are used to evaluate and decide upon interface design questions as well as choosing suitable components for the system.<br />Furthermore, several implementation options considering software-stacks, interface design, and user/kernel -space realization of certain software related interface parts are discussed.<br />Finally, an operational prototype able to perform a VOIP-call directly between two prototyping platforms or a Personal Computer (PC) has been realized. It can be seen that a properly designed and implemented interface and VOIP-stack for an IP-Core transposing the necessary tasks to exchange voice packets between two communication partners results in less pressure on the general purpose processor on meeting the required real-time constraints. Therefore, it would be possible to extend the prototype in such a way to support teleconference calls as well, which can be the prospect of future work.