Aug 032012

The “European Installation Bus” (EIB) is the standard adopted by the  KNX specification for the interconnection of home appliances in a decentralized network.

In a building we can find many devices for the control of illumination, temperature, doors and blinds, etc. Overall, these devices can be classified in two broad groups of “sensors” and “actuators”. Each of these devices communicates with the other devices by sending and receiving “telegrams” (data packets) to/from the bus.

Physically, the bus can be implemented on several media:

  • A twisted pair (TP) cable, running along the power line.
  • Wireless communication.
  • The existinig power line itself (PL)

Topology of an EIB network over TP

An EIB network is structured in several levels:

  • A line segment can have up to 64 devices (called APT) attached. Every line segment has its own power supply, providing power to the devices connected to the segment.
  • A line can have up to 4 line segments attached to it.
  • An area is made up of a main line, that can have up to 15 more lines connected to it by means of “line couplers”.
  • Finally, a backbone line can have up to 15 areas connected to it.

Addressing of the devices

In a EIB bus, every device is identified by means of a unique physical address, and one or more group addresses.

The physical address is 16 bits long and has the format AAAA-LLLL-CCCCCCCC,where:

  • AAAA identifies an area (from 1 to 15)
  • LLLL identifies a line inside a given area (from 1 to 15)
  • CCCCCCCC identifies a device inside a line

The value AAAA=0 is used for devices directly connected to the backbone line

The value LLLL=0 is used for devices directly connected to the main line of a given area.

Finally, the value CCCCCCCC=0 identifies a line coupler or area coupler

Filtering of telegrams by line couplers

When a line coupler is configured, it is given a table with the addresses of devices directly connected to the line.

When the line coupler receives a telegram, it checks if the destination address is in the table. If it is not, the telegram is sent to the other lines. Otherwise it is sent only to the line being served by the line coupler

Structure of an IMI telegram

Inside the bus, the telegrams interchanged by devices are structured as IMI (Internal Message Interface):

Control / Origin / Destination / Counter / Length / Data / Checksum

  • Control: 8 bits
  • Origin: 16 bits
  • Destination : 16 bits plus 1 bit (0: physical address, PA; 1: group address, GA)
  • Counter : 3 bits
  • Length : 4 bits. Number of bytes in the data field
  • Data: de 1 a 15 bytes.  Payload
  • Checksum: 8 bits to detect transmission errors.

 Connectivity to the bus from outside


The way external applications connect to the bus has evolved over time. Historically, TP-UART (Twisted Pair – Universal Asynchronous Receiver/Transmitter) transceivers have been used. These transceivers convert the signals employed in the twisted pairs to bytes in an RS-232 serial port. However, the TP-UART does not perform data processing, and relies on an external driver to implement the protocols.


Later, BCU (Bus Coupling Unit) devices where developed. These BCUs also expose the bus to the outside world by means of a RS-232 serial port, and besides they incorporate a micro-processor that handles the IMI communication protocol in the TP side, and an external protocol (EMI, External Message Interface) in the RS232 side.

There are two types of BCU, named BCU1 and BCU2.

The BCU1 couplers are older, and have some limitations. They have an small amount of memory, and employ a PEI16 type of serial port. PEI16 is an asynchronous protocol with a critical timing kind of handshake. This handshake can only be implemented in a personal computer by means of an specialized low-level driver.

To overcome the limitaions of the  BCU1 couplers, the newer BCU2 couplers were developed. These couplers implement more memory, and a RS-232 interface of type PEI10/FT1.2, that is not based on critical timing as the PEI16.


Finally, new devices that implement USB and ethernet interfaces were developed

The IP connectivity is done by sending/receiving UDP packets to the multicast address

It is also possible to establish a one-to-one connection against the IP address of the gateway device connected to the bus.

cEMI protocol

The structure of telegrams exchanged between the bus and the outside world (EMI, External Message Interface), has suffered also an evolution, from the initial EMI1, EMI2 specifications (dependant on the physical media) to cEMI (Common External Message Interface).

The structure of a cEMI frame is:

The Header structure is:

cEMI message codes are:

The two control bytes structure is:

Appendix A – EMI1/EMI2/cEMI message codes

 Posted by at 5:52 pm

  One Response to “Introduction to EIB/KNX”

  1. […] already mentioned in our previous post  introduction to EIB/KNX, the physical connectivity to the bus can be done in different ways, by means of a serial port, a […]

 Leave a Reply