{"id":13871,"date":"2023-01-13T09:26:12","date_gmt":"2023-01-13T09:26:12","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=13871"},"modified":"2026-02-09T12:49:07","modified_gmt":"2026-02-09T12:49:07","slug":"real-time-communication-protocols","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols","title":{"rendered":"Real time communication protocols"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Fully-supported-real-time-communication-protocols\" >Fully-supported real-time communication protocols<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Ethernet\" >Ethernet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#CAN\" >CAN<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#RealSync\" >RealSync<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Serial-communication\" >Serial communication<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Custom-communication-protocols\" >Custom communication protocols<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Recommended-protocol-by-application-scenario\" >Recommended protocol by application scenario<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#In-between-imperix-controllers\" >In-between imperix controllers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Fromto-third-party-devices-eg-PLC\" >From\/to third-party devices (e.g. PLC)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#Fromto-a-user-defined-GUI-on-a-computer\" >From\/to a user-defined GUI on a computer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\/#For-interfacing-with-additional-hardware\" >For interfacing with additional hardware<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>Imperix converter controllers (e.g., B-Box family, B-Board PRO, and TPI) utilize various real-time communication protocols to enable coordination and interaction with external devices. In this context, this article aims to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Present<\/strong> the real-time communication protocols, outlining their intended purpose and required implementation effort.<\/li>\n\n\n\n<li><strong>Clearly differentiate<\/strong> between the available protocols.<\/li>\n\n\n\n<li><strong>Assist<\/strong> users in deciding the optimal approach for their application.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-fully-supported-real-time-communication-protocols\"><span class=\"ez-toc-section\" id=\"Fully-supported-real-time-communication-protocols\"><\/span>Fully-supported real-time communication protocols<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><a href=\"https:\/\/imperix.com\/products\/power-electronic-controllers\/\">Imperix controllers<\/a> provide support for the following real-time communication protocols. Despite minor differences, this support is mostly identical among products. Details on each protocol are given below.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Interface<\/th><th><a href=\"https:\/\/imperix.com\/products\/control\/rcp-controller\/\">B-Box 4<\/a><\/th><th><strong><a href=\"https:\/\/imperix.com\/products\/control\/rapid-prototyping-controller\/\">B-Box RCP<\/a> \/ <\/strong><a href=\"https:\/\/imperix.com\/products\/control\/inverter-control-board\/\"><strong>B-Board<\/strong> PRO<\/a><\/th><th><strong><a href=\"https:\/\/imperix.com\/products\/power\/programmable-inverter\/\">TPI 8032<\/a><\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Ethernet<br><\/strong>1x RJ45<br><\/td><td>&#8211; UDP<br>&#8211; Modbus TCP (2026.2)<br>&#8211; OPC-UA<\/td><td>&#8211; UDP<br>&#8211; Modbus TCP (2026.2)<br>&#8211; OPC-UA<\/td><td>&#8211; UDP<br>&#8211; Modbus TCP (2026.2)<br>&#8211; OPC-UA<\/td><\/tr><tr><td><strong>CAN<\/strong><br>2x RJ45<\/td><td>Two busses supporting<br>&#8211; CAN 2.0A, CAN 2.0B, CAN FD<\/td><td>One bus supporting<br>&#8211; CAN 2.0A, CAN 2.0B<\/td><td>One bus supporting<br>&#8211; CAN 2.0A, CAN 2.0B<\/td><\/tr><tr><td><strong>Serial<\/strong><br>2x RJ45<\/td><td>Two busses supporting<br>&#8211; EnDat 2.1, 2.2 \/ SSI \/ BiSS-C<\/td><td>Not supported<\/td><td>Not supported<\/td><\/tr><tr><td><strong>RealSync<\/strong><br>QSFP+\/SFP+<\/td><td>4x QSFP+ (40Gbps) sockets<\/td><td>3x SFP+ (10Gbps) sockets<\/td><td>3x SFP+ (10Gbps) sockets<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Supported real-time communication protocols on the different imperix controllers<\/figcaption><\/figure>\n\n\n\n<p>These technologies, although all considered as real-time protocols, perform unequally in control applications, especially in power electronics. The table below provides some rough performance figures in this respect.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td><strong>Latency<\/strong><\/td><td><strong>Refresh rate<\/strong><\/td><td><strong>Payload size<\/strong><\/td><td><strong>Deterministic<\/strong><\/td><\/tr><tr><td><strong>UDP<\/strong><br>over Ethernet<\/td><td>Typ. 1-10 ms<\/td><td>Typ. 0.1-1 kHz<\/td><td>up to 1024 bytes<br>Typ. &lt; 100 blocks<\/td><td>NO<\/td><\/tr><tr><td><strong>Modbus <\/strong><br>over TCP\/IP (i.e. Ethernet)<\/td><td>Typ. 1-10 ms<\/td><td>Typ. 0.1-10 Hz<\/td><td>up to 253 bytes<\/td><td>NO<\/td><\/tr><tr><td><strong>CAN<\/strong><\/td><td>Typ &lt; 1 ms<\/td><td>Typ. 0.1-1 kHz<\/td><td>up to 8 bytes (CAN)<br>up to 64 bytes (CAN FD)<\/td><td>NO (almost)<\/td><\/tr><tr><td><strong>OPC UA<\/strong><br>over Ethernet<\/td><td>Typ. &gt; 10ms<\/td><td>Typ. 0.1-100Hz<\/td><td>Typ.  4 bytes<\/td><td>NO<\/td><\/tr><tr><td><strong>RealSync<\/strong><br>Native exchanges<\/td><td>Typ. 0.1-1 us<br>(sub-interrupt)<\/td><td>Typ. 0.3-300kHz<\/td><td>Typ. &lt; 200 bytes<\/td><td>YES<\/td><\/tr><tr><td><strong>RealSync<\/strong><br>User-defined exchanges<\/td><td>Typ. 1-10 us<br>(next interrupt)<\/td><td>Typ. 0.3-300kHz<\/td><td>=32bits per block<br>Typ. &lt; 100 blocks<\/td><td>YES<\/td><\/tr><tr><td><strong>EnDat \/ SSI \/ BiSS-C<\/strong><\/td><td>Typ. 1-10 us<\/td><td>Sensor-dependant<\/td><td>Typ. &lt; 40 bytes<\/td><td>NO<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Comparative summary of the supported real time communication protocols for various performance criteria.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ethernet\"><\/span>Ethernet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Ethernet is used as the physical layer for several protocols listed below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UDP <\/strong>is the preferred choice for non-critical user-defined data exchanges between controllers.<\/li>\n\n\n\n<li><strong>TCP <\/strong>is widely employed for communication between the controller and the host PC. It is notably widely used by <a href=\"https:\/\/imperix.com\/software\/cockpit\/\">Cockpit<\/a>.<\/li>\n\n\n\n<li><strong>Modbus <\/strong>(over TCP\/IP) is an application layer (OSI layer 7), vendor-agnostic, royalty-free protocol specifically intended  for automation equipment. Originally developped in the early &#8217;80s, it has since become a de-facto standard fieldbus protocol for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Programmable_logic_controller\">PLC<\/a>s and within <a href=\"https:\/\/en.wikipedia.org\/wiki\/SCADA\">SCADA<\/a> systems.<\/li>\n\n\n\n<li><strong>OPC UA<\/strong> is an open communication standard for data exchanges between interoperable industrial systems. Compared to Modbus, it offers somewhat more modern capabilities, notably regarding security or the handling of complex systems. On imperix controllers, OPC UA is exclusively supported over Ethernet.<\/li>\n<\/ul>\n\n\n\n<p><span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">Sinc<\/span>e transmission delays are&nbsp;non-deterministic&nbsp;over Ethernet, latency cannot be guaranteed. However, its high maximum throughput (typically 1 Gbps) ensures that transmission delays aren&#8217;t much dependent on data volume (much less than CAN, for instance). This translates to millisecond-scale data transfer delays for up to dozens of words over a wired connection. Therefore, provided a data transfer latency greater than the refresh period is acceptable, <strong>UDP\/IP<\/strong> can generally be employed with refresh rates in the kHz range.<\/p>\n\n\n\n<p><a href=\"https:\/\/opcfoundation.org\/about\/opc-technologies\/opc-ua\/\">OPC UA<\/a> is used for the real-time configuration and monitoring of imperix controllers from the host PC. It is notably used by <a href=\"https:\/\/imperix.com\/software\/cockpit\/\">Cockpit<\/a>. Besides, the same interface is also available to third-party clients, such as computer software or dedicated hardware (e.g. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Programmable_logic_controller\">PLCs<\/a>). More information on this topic is given in <a href=\"https:\/\/imperix.com\/doc\/help\/opc-ua\">PN177<\/a>. <strong>OPC UA<\/strong> isn&#8217;t particularly optimized for speed. It is therefore not recommended for closed-loop control applications.<\/p>\n\n\n\n<p><strong>Modbus <\/strong>(more specifically Modbus TCP) is supported for compatibility with PLCs and other third-party controllers. This protocol is widely supported and convenient for supervision and configuration, but is not well-suited for hard real-time applications.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CAN\"><\/span>CAN<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>CAN is a widespread field bus communication standard. Its support on imperix hardware differs slightly:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CAN <strong>2.0<\/strong><\/strong> is available on all controllers. It supports both standard (CAN 2.0A, 11-bit identifiers) and extended (CAN 2.0B, 29-bit identifiers) formats, with a configurable bitrate up to 1 Mbps.<\/li>\n\n\n\n<li><strong>CAN FD<\/strong> is available on the <a href=\"https:\/\/imperix.com\/products\/control\/rcp-controller\/\">B-Box 4<\/a> only. It supports standard and extended identifiers, payloads up to 64 bytes, and a configurable data bitrate of up to 5Mbps.<\/li>\n<\/ul>\n\n\n\n<p>While CAN is inherently non-deterministic due to potential data conflicts, it achieves near-deterministic performance when only one master is guaranteed to transmit data and transmission failures can be avoided. Under these conditions and for small payloads, CAN can be reliably used within closed-loop control applications up to few kHz. CANopen is, however, not (yet) supported on imperix products.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"RealSync\"><\/span>RealSync <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Imperix <a href=\"https:\/\/imperix.com\/technology\/networked-control\/\" type=\"link\" id=\"https:\/\/imperix.com\/technology\/networked-control\/\">RealSync <\/a>is a proprietary protocol built on top of AMD\/Xilinx <strong>Aurora<\/strong>. It is used for ultra-low latency data exchanges between controllers. This protocol also natively implements synchronization (\u00b12ns) between controllers. At the hardware level, RealSync is supported by two connector form factors:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SFP+<\/strong> is available on B-Box RCP 3, B-Board PRO, and TPI8032. Three sockets are available, supporting up to 10Gbps transfers each.<\/li>\n\n\n\n<li><strong>QSFP+<\/strong> is available on B-Box RCP 4. Four quadruple sockets are available, supporting up to 4x10Gbps transfers per socket. Fork cables (one QSFP+ to four SFP+ connectors) are available for inter-connectivity between units of different generations.<\/li>\n<\/ul>\n\n\n\n<p>RealSync is heavily optimized for achieving an extremely low data transfer and low latency. This is notably achieved thanks to data aggregation (respectively de-aggregation) for upstream transfers (respectively downstream transfers) along the network tree. Furthermore, all transfers are 100% deterministic: data transfers never exceed the planned delay.<\/p>\n\n\n\n<p> RealSync can be involved (even simultaneously) in two types of data exchanges:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Native data exchanges, such as those occurring in <strong>master-slave<\/strong> configurations (also called <strong>I\/O extension mode<\/strong>), between the operating CPU and FPGAs (read more <a href=\"https:\/\/imperix.com\/technology\/distributed-converter-control\/\">here<\/a>) at the beginning (upstream) and at the end (downstream) of each control period. These data transfers are configured automatically and are entirely transparent to the user.<\/li>\n\n\n\n<li>Manually-defined data exchanges using the SFP_in and SFP_out blocks (or routines), occurring between two CPUs in <strong><a href=\"https:\/\/imperix.com\/doc\/help\/multi-master-mode-for-distributed-networked-control-systems\">multi-master operation<\/a><\/strong>. In this case, the data transfers are configured by the user as a function of the application-level requirements.<\/li>\n<\/ul>\n\n\n\n<p>Transmission delays are perfectly deterministic in both cases. Native data exchanges are largely sub-microsecond, while manually-defined transfers are updated at the next interrupt cycle. <strong>RealSync<\/strong> is perfectly suited for data transfers involved within closed-loop control up to several hundred kHz. More information on latency can be found on the <a href=\"https:\/\/imperix.com\/technology\/low-latency-communication\/\">technology page<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Serial-communication\"><\/span>Serial communication<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Serial communication with digital motor encoders is available on B-Box 4, thanks to two distinct busses. Support for the following protocols is currently implemented:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SSI <\/strong>is a serial interface standard, originated in the 80s&#8217;, for the interfacing of absolute position encoders. Based on RS-422 clocked at up to 2MHz, SSI remains widely used, although BiSS-C now offers superior performance and capabilities.<\/li>\n\n\n\n<li><strong>BiSS-C<\/strong>, introduced in 2007, somewhat adds bidirectional transfer capabilities to SSI (over RS-485) as well as an increased maximum clock rate (max. 10MHz) and support for CRC. It is now an open standard, widely adopted across the industry.<\/li>\n\n\n\n<li><strong>EnDat 2.1 and 2.2<\/strong> are similar standards released by&nbsp;Heidenhain in 2003, and adopted by many other manufacturers since then. It operates at up to 16 MHz in full-duplex mode. Sensors with EnDat 2.2 interfaces generally offer rich configuration and diagnostics information as well as simple configuration.<\/li>\n<\/ul>\n\n\n\n<p>In general, the choice of the encoder protocol is guided by the selection of the position or speed sensor in the first place. Nonetheless, when flexibility exists, the clock rate should be considered a key indicator of the transmission speed and, therefore, of the achievable angular resolution.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Custom-communication-protocols\"><\/span>Custom communication protocols<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>For applications requiring non-standard interfaces or performance levels beyond native support, imperix controllers offer a dedicated <strong>FPGA sandbox<\/strong>. This user-programmable area allows engineers to implement custom drivers, such as for specialized sensors or high-speed serial links, directly on the FPGA using Vivado Design Suite.<\/p>\n\n\n\n<p>Communication between the custom FPGA logic and the CPU is handled transparently. Custom registers are accessible through the dedicated <a href=\"https:\/\/imperix.com\/doc\/software\/sandbox-input-from-fpga\" type=\"post\" id=\"1679\">SBI <\/a>and <a href=\"https:\/\/imperix.com\/doc\/software\/sandbox-output-towards-fpga\" type=\"post\" id=\"1684\">SBO <\/a>blocks part of the ACG SDK, enabling seamless integration with Simulink or PLECS models. Advanced users can also repurpose the SFP\/QSFP+ ports for custom Aurora-based communication with third-party hardware.<\/p>\n\n\n\n<p>For further details on this workflow, refer to <a href=\"https:\/\/imperix.com\/doc\/help\/fpga-development-on-imperix-controllers\" target=\"_blank\" rel=\"noreferrer noopener\">PN169: FPGA development on imperix controllers<\/a><br>and <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-fpga-control-development\" target=\"_blank\" rel=\"noreferrer noopener\">PN159: Getting started with FPGA control development<\/a>.<\/p>\n\n\n\n<div style=\"height:0px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-recommended-protocols-by-scenario\"><span class=\"ez-toc-section\" id=\"Recommended-protocol-by-application-scenario\"><\/span>Recommended protocol by application scenario<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-in-between-imperix-controllers\"><span class=\"ez-toc-section\" id=\"In-between-imperix-controllers\"><\/span>In-between imperix controllers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>This would typically take place in stacked controller configurations, or in-between parallel-operated converters.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Use RealSync!<\/strong> Performance is a few hundreds to millions of times superior to that of Ethernet or CAN depending on the considered criteria.<\/li>\n\n\n\n<li>The choice of native vs user-defined data transfers is usually imposed by the application (see <a href=\"https:\/\/imperix.com\/technology\/distributed-converter-control\/\">distributed converter control<\/a>). However, native transfers perform best and should be preferred whenever possible.<\/li>\n\n\n\n<li>In case RealSync couldn&#8217;t be used for some reason, then the backup choices would be Ethernet or CAN.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-from-to-third-party-devices-e-g-plc\"><span class=\"ez-toc-section\" id=\"Fromto-third-party-devices-eg-PLC\"><\/span>From\/to third-party devices (e.g. PLC)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>This typically corresponds to situations where an imperix controller must receive instructions or set points from a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Programmable_logic_controller\">PLC<\/a>, or respectively return basic status information or measurements.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>If the device supports OPC UA as a client (not as an OPC UA server), then <strong>OPC UA is the most comfortable<\/strong> to use in the long run. Indeed, as it isn&#8217;t even necessary to place blocks\/functions in the developed code, OPC UA offers the deepest and easiest access to the running software.<\/li>\n\n\n\n<li>If OPC UA can not be easily supported, two cases should be distinguished:\n<ul class=\"wp-block-list\">\n<li>If numerous variables (typically &gt;20) must be read or sent at once, and if time determinism isn&#8217;t absolutely essential, then <strong>Ethernet could be preferred<\/strong> due to its superior bandwidth.<\/li>\n\n\n\n<li>Opposedly, if only a few variables must be exchanged and if packet arbitration can be avoided, then the lower (and more constant) latency of <strong>CAN <\/strong>could make it a better choice.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>If none of the above protocols is usable, then analog inputs\/outputs or custom serial protocol implementations should be considered.  <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>OPC UA<\/strong><\/td><td><strong>UDP\/IP<\/strong><\/td><td><strong>CAN<\/strong><\/td><\/tr><tr><td>++ Instant access to all variables<br>+ No efforts on the control side<br>+ Access to auxiliary routines (start, stop, enable, etc.).<br>&#8211; Non-constant latency<\/td><td>++ Generally well supported by 3rd party devices<br>+ Good for exchanging numerous variables<br>&#8211; Non-constant latency<\/td><td>++ Relatively constant latency<br>&#8211; Low total data bandwidth (1Mbaud)<br>&#8212; CANopen not available<\/td><\/tr><tr><td><a href=\"https:\/\/imperix.com\/doc\/help\/opc-ua\"> OPC UA documentation<\/a><\/td><td><a href=\"https:\/\/imperix.com\/doc\/software\/ethernet-input-mailbox\">UDP_in<\/a>, <a href=\"https:\/\/imperix.com\/doc\/software\/ethernet-output-mailbox\">UDP_out<\/a><\/td><td><a href=\"https:\/\/imperix.com\/doc\/software\/can-input-mailbox\">CAN_in<\/a>, <a href=\"https:\/\/imperix.com\/doc\/software\/can-output-mailbox\">CAN_out<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Comparison of supported protocols for communication with 3rd-party devices.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-from-to-a-user-defined-gui-on-a-computer\"><span class=\"ez-toc-section\" id=\"Fromto-a-user-defined-GUI-on-a-computer\"><\/span>From\/to a user-defined GUI on a computer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>In this case, two cases should be distinguished:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Using the <a href=\"https:\/\/imperix.com\/doc\/help\/gui-builder-module\">GUI builder<\/a> in Cockpit. In this case, OPC UA is used and data exchanges occur automatically, similarly to other variables read\/write accesses in Cockpit.<\/li>\n\n\n\n<li>Implementing an independent GUI, for instance using <a href=\"https:\/\/imperix.com\/doc\/help\/gui-with-matlab-app-designer\">Matlab App Designer<\/a>. In this case, OPC UA is recommended, but not mandatory. Further information is provided in <a href=\"https:\/\/imperix.com\/doc\/help\/build-custom-user-interface\">TN175<\/a>.<\/li>\n<\/ul>\n\n\n\n<p> <a href=\"https:\/\/imperix.com\/software\/cockpit\/\">Imperix Cockpit<\/a> or a user-defined GUI. Regarding real-time communication, the above-presented selection procedure for third-party devices also applies. Furthermore, as <strong>OPC UA<\/strong> becomes widely supported with easy-to-use libraries, this option shall be privileged whenever possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-for-interfacing-with-additional-hardware\"><span class=\"ez-toc-section\" id=\"For-interfacing-with-additional-hardware\"><\/span>For interfacing with additional hardware<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>This case occurs when implementing communication with integrated circuits or similar devices, such as ADCs, sensors, etc. Often, with the exception of motor drive applications (see below), a device-specific peripheral driver must be implemented somehow.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Implement <strong>whatever is supported<\/strong> by the to-be-interfaced integrated circuit or equipment, knowing that device-specific implementation efforts are often unavoidable.<\/li>\n\n\n\n<li>When facing multiple options, the following guideline may help:\n<ul class=\"wp-block-list\">\n<li>SPI can offer attractive performance due to high maximum clock rates. Its support is also often coupled with relatively rigid timings, which may be attractive in hard real-time applications.<\/li>\n\n\n\n<li>I2C may not be as fast as SPI, but generally slightly easier to implement.<\/li>\n\n\n\n<li>RS235, RS422, RS485, and other UART-based communication interfaces are by essence asynchronous, hence certainly less attractive than the two first options whenever available.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">More information on how to design a suitable carrier board for B-Board PRO is given in <a href=\"https:\/\/imperix.com\/doc\/help\/b-board-pro-carrier-board\">PN201<\/a>.<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imperix converter controllers (e.g., B-Box family, B-Board PRO, and TPI) utilize various real-time communication protocols to enable coordination and interaction with external devices. In this&#8230;<\/p>\n","protected":false},"author":3,"featured_media":14277,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[3],"tags":[],"software-environments":[105,103,104],"provided-results":[],"related-products":[50,31,32,92,166,51,110],"guidedreadings":[],"tutorials":[],"user-manuals":[137,146],"coauthors":[69],"class_list":["post-13871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-help","software-environments-c-plus-plus","software-environments-matlab","software-environments-plecs","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-micro","related-products-b-box-rcp-3-0","related-products-cpp-sdk","related-products-tpi","user-manuals-b-box-rcp-3-0","user-manuals-mmc-bundle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Real time communication protocols for power electronics - imperix<\/title>\n<meta name=\"description\" content=\"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Real time communication protocols for power electronics - imperix\" \/>\n<meta property=\"og:description\" content=\"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-13T09:26:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T12:49:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nicolas Cherix\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nicolas Cherix\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols\"},\"author\":{\"name\":\"Nicolas Cherix\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/44e7187157f1379207dce2b570f63f86\"},\"headline\":\"Real time communication protocols\",\"datePublished\":\"2023-01-13T09:26:12+00:00\",\"dateModified\":\"2026-02-09T12:49:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols\"},\"wordCount\":1988,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Imagette.jpg\",\"articleSection\":[\"Product notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols\",\"name\":\"Real time communication protocols for power electronics - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Imagette.jpg\",\"datePublished\":\"2023-01-13T09:26:12+00:00\",\"dateModified\":\"2026-02-09T12:49:07+00:00\",\"description\":\"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Imagette.jpg\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Imagette.jpg\",\"width\":450,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/real-time-communication-protocols#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product notes\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/help\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Real time communication protocols\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/44e7187157f1379207dce2b570f63f86\",\"name\":\"Nicolas Cherix\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=gaafd9afe469fe587a71b66de1b538283\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=g\",\"caption\":\"Nicolas Cherix\"},\"description\":\"Nicolas is the chief engineer and product director at imperix. On the knowledge base, he is the author, co-author, or reviewer of numerous notes.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/nicolas-cherix-268a2b83\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/cherix\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Real time communication protocols for power electronics - imperix","description":"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols","og_locale":"en_US","og_type":"article","og_title":"Real time communication protocols for power electronics - imperix","og_description":"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.","og_url":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols","og_site_name":"imperix","article_published_time":"2023-01-13T09:26:12+00:00","article_modified_time":"2026-02-09T12:49:07+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg","type":"image\/jpeg"}],"author":"Nicolas Cherix","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nicolas Cherix","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols"},"author":{"name":"Nicolas Cherix","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/44e7187157f1379207dce2b570f63f86"},"headline":"Real time communication protocols","datePublished":"2023-01-13T09:26:12+00:00","dateModified":"2026-02-09T12:49:07+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols"},"wordCount":1988,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg","articleSection":["Product notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols","url":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols","name":"Real time communication protocols for power electronics - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg","datePublished":"2023-01-13T09:26:12+00:00","dateModified":"2026-02-09T12:49:07+00:00","description":"Imperix controllers support several real time communication protocols, offering multiple options for low-latency data transfers.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2023\/01\/Imagette.jpg","width":450,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/help\/real-time-communication-protocols#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Product notes","item":"https:\/\/imperix.com\/doc\/category\/help"},{"@type":"ListItem","position":3,"name":"Real time communication protocols"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/44e7187157f1379207dce2b570f63f86","name":"Nicolas Cherix","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=gaafd9afe469fe587a71b66de1b538283","url":"https:\/\/secure.gravatar.com\/avatar\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/07fe58bb65e7c65d6f4c53854ee4045d0c6cb2eb7b2cd3f58f03c926fab246c7?s=96&d=mm&r=g","caption":"Nicolas Cherix"},"description":"Nicolas is the chief engineer and product director at imperix. On the knowledge base, he is the author, co-author, or reviewer of numerous notes.","sameAs":["https:\/\/www.linkedin.com\/in\/nicolas-cherix-268a2b83\/"],"url":"https:\/\/imperix.com\/doc\/author\/cherix"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/13871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=13871"}],"version-history":[{"count":53,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/13871\/revisions"}],"predecessor-version":[{"id":42389,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/13871\/revisions\/42389"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/14277"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=13871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=13871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=13871"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=13871"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=13871"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=13871"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=13871"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=13871"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=13871"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=13871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}